Wednesday, July 13, 2005

PVR Build Log #05 (Holy crap, it works!)

Huh. Who knew it could be that easy? Certainly not me.

I can see now that I'm going to miss gads of details (my list is at home, I'm at work), so consider this the broad strokes version.

First, you read that right, the machine really does work. And it was easy (for me, probably not so easy for your grandma). And Windows is handling everything just fine.

First, I bought SageTV, and that was an excellent decision. SageTV is a lovely package. It supports unlimited tuners...did you catch that? UNLIMITED TUNERS. There are guys on SageTV's user forums who are running four Hauppauge PVR-500's at two tuners each, equals eight tuners total.

I'm pretty sure that these are the same guys who seed all of those TV show torrents. Yeah, recording eight shows simultaneously and having fat pipes makes that sort of thing possible.

And that reminds me...SageTV records in plain vanilla MPEG-2. Doncha love that? XP MCE puts video files in some Windows locked-up format, and MythTV defaults to XviD garbage. But SageTV? MPEG-2. DO YOU KNOW WHAT THAT MEANS?

Sorry for the all caps. It means that I can simply share my recording drive with the rest of the network and anyone can watch my recorded shows. Neat, right? You know it is.

My Hauppauge PVR-500 MCE card arrived yesterday. I'm now running triple tuners. Haven't really used them yet, but I've noticed that with my current preferences, the PVR is recording something like 8 hours of TV a day for me. It's a little worrying, because when will I ever watch all this crap? That's not the point. The crap is mine. MINE!

I spent last night setting up my ATI Remote Wonder that came with my vid card, but that I've never used before. It's an RF remote, so I figure it could be really cool. ATI's software support sucks (as usual), so it took a while to track down a DLL that the install program kept losing. Once I found that and put it in the right place, that remote fired right up.

And I'm totally sold on the Remote Wonder. The remote control has full mouse control, keyboard control, program launching, shortcuts, macros, you name it. Mine. Crystal will get the Hauppauge IR remote to use once I get it set up. And the Hauppauge remote is my next project.
I'm getting really close to where I want to be with this system. It has disc burning software, the proper network access rights, it's sharing what I want shared, it has Remote Desktop running now, and I'm just about ready to freeze the sucker.

I bought a copy of Faronics DeepFreeze for the PVR for $30. Oh yes, this will be good.

More later.

Thursday, July 07, 2005

PVR Build Log #04 (Shiny, Happy Windows)

And the title says it all. I'm a nicer person to be around now that I'm not mucking about with Linux anymore.

And it really, really felt good to let the Linux geeks, and particularly OALUG, have it in my last post. Really good. It's been ten days since I posted there for help, and there still isn't a single reply. (Actually there's one, and it's me clarifying my question.) From time to time I get emails from interested parties about Weber Entrepreneurs Association. I generally answer them within an hour or two. I care. My cause is important to me. And...what's that? I'm on a soap box? Sorry.

Let me bring you up to speed.

Stephanie at ProVantage promised an RMA for the tuner card later that afternoon. The RMA never came. There go your brownie points, Steph.

In the mean time, I began research in earnest about SageTV. One of the users on SageTV's forum said that he had a PVR-250 tuner card that didn't work, and he simply put it in a different PCI slot, and it suddenly worked.

I hadn't yet boxed up my PVR-250, because my promised RMA hadn't arrived yet, and I wasn't sure if they wanted a note in the box with the returned item (sometimes they want that). It was just sitting there, so on a whim, I took out the card and popped it back into the box, but in a different PCI slot than before. I then loaded the drivers for it, and installed the trial version of SageTV. I was wrong about the SageTV setup process. It doesn't take 45 seconds. It's more like a minute and fifteen. Sorry.

SageTV fired up, and lo and behold, I had TV and sound to go along with it. And a program guide. And full recording capabilities. And lots of other cool options. The point is it worked. OMG, OMG, OMG. Nice picture, too.

The Windows XP install at the time was more of a testbed than anything else, so I re-installed XP Pro and started over. Here were the basic steps:
  1. Kill the Linux MBR with the GRUB bootloader. Not really necessary, as the new Windows install will overwrite it, but it feels good anyway. (Do this with the FIXMBR command in Recovery Console by booting to the Windows install disc.)
  2. Kill all Linux partitions. The hard drive is now exclusively NTFS. It's about time, too.
  3. Make one huge partition for video storage.
  4. Make one small partition (~10GB) for virtual CDs. Remember? This will be a gaming system, too.
  5. Make one smaller partition (~8GB) for hidden OS images. Just in case. This is habit now, and it's saved me hours and hours of work innumerable times.
  6. Perform the actual Windows install. I can't believe this part used to intimidate me. Enter, F8 (agree to the EULA), Enter (on the chosen partition), Esc (if there's a previous Windows install you're installing over), Quick format to NTFS, Enter, F (you're sure you want to format), Enter. Wait for Windows to do its thing. Nothing to it.
  7. Enter key, choose Time Zone, blah, blah.
  8. Important: Machine name, Admin name, Workgroup name. Windows finishes installing itself.
  9. First boot. Leave that install CD in the drive. Pull up the Add/Remove Windows Components dialogue, uninstall the following Windows bloat: MSN Explorer, MSN Messenger, Outlook Express, other such cruft. This stuff won't go away without the install disc. How moronic.
  10. Reset resolution. 1280 x 1020 is fine if the 19" LCD is two feet in front of your face, but for this application, 1024 x 768 is much more appropriate.
  11. While in display settings, find a different desktop image than that stupid green hill. The hill might be bearable if it weren't the desktop on five billion other Windows boxes.
  12. And while we're still in display settings, let's change the color scheme to silver. Blue desktop (the one called "Crystal"), silver window frames. Perfect for a media box. (Who says geeks can't have a sense of style?)
  13. Windows Update. The one thing IE is good for. That's good for, not good at. Reboot. Windows Update again. Reboot. Windows Update again. Reboot. Windows Update again.
  14. Install audio drivers, refuse to reboot. Install NIC drivers, refuse to reboot. Install chipset drivers, refuse to reboot. Install video drivers. Reboot. Takes a lot less time this way.
Whew. Are we there yet?...Hey. That whole process just took about 45 minutes. The same thing in Linux would have taken a couple of days and several doses of valium. Have a little respect.

Software installed: AnyDVD, CloneDVD2 (oh yes, this system will copy DVDs), AVG, Firefox, K-Lite Mega Codec Pack, PowerDVD, WinAmp, RegCleaner, Nero 6, Farstone Virtual Drive, Half-Life, MCM2, WinTidy.

Only one reboot for all of that. What, do you think I'm made of reboots? Update AVG (six times...why can't AVG just do all the updating it needs to do in one go?), Update CloneDVD, Update AnyDVD, Update Firefox, Update Half-Life. Curiously, nothing breaks. Must be doing something wrong.

Run RegCleaner. Remove 721 invalid registry entries. WTF? 721 invalid entries? This install isn't even 90 minutes old! I know that the registry is a big step up from the config settings messes that Win95 and Win98 were, but when there are over 700 invalid registry entries in a new install with just a few little apps installed, something is wrong with the way Windows is running the registry. Yes, I know that Nero is really messy in the registry, but Nero accounts for probably 75 of the above 721. Roughly 10%. This is not a problem with Nero.

Yeah, Windows is easy to install. And it's a good thing, too, because if you want to keep Windows clean, you'll learn to re-install it every six months or so. Come to think of it, my desktop is getting ripe...

Back to the PVR work. Give the PVR an account on Dentserver so that I can start getting some real work done. The PVR user account didn't have a password so that it would auto logon at startup, but the server doesn't allow accounts without passwords. Give the PVR account a user password. Use the arcane "control userpasswords2" command to make the PVR auto logon even though the account has a password now.

Pull game Virtual CD images from the server. Pull shortcuts to music playlists from the server for WinAmp. Map network drives to make media stored on the server easy to play on this machine.

Arrange icons on the desktop in a coherent fashion, run WinTidy and create a profile of the desktop settings. This way, if a program (Half-Life, MCM2, video driver) resets the icon positions, I can tell WinTidy to put them back. Very handy.

Lots of progress. This is a good place to image the machine in case something goes wrong in the next few steps. Normally I'd use my super-secret SDB (Super Duper Booter) disc to boot to Ghost and image the drive from there, but as I sadly learned with Dentserver a while back, Ghost doesn't like SATA drives. If a SATA drive is detected at all by Ghost, Ghost will simply hang while starting up. Disabling the SATA drive from the BIOS does not fix it. It doesn't matter whether the SATA drive has any partitions or data on it. The only way to get Ghost to run is to physically unplug either the power or the data cable to the SATA drive and then reboot.

Well, the only hard drive in this system is a SATA hard drive, and a big one at that. Ghost simply isn't going to cut it. This is why I built my BartPE disc. It's essentially a Windows Live CD, with utilities pre-installed on it so that once you boot to it, you can actually get some work done.

I even put Ghost 9 on the BartPE disc, just in case it might be useful at some point. No dice. Ghost 9 is crap. The files are there on the disc, and I can run some parts of Ghost (Image Explorer, PQE Boot, Disc Editor), but I'll be damned if I can get Ghost to do any actual drive imaging. I'm not as fond of Ghost as I used to be. Hey Symantec? If you want me to ever buy another copy of Ghost (and I've bought three versions so far), then you'll make it functional again. Acronis is eating your lunch here.

And coincidentally, Acronis TrueImage is precisely what I use to image OS drives now, simply because it works. And then I use Acronis Disk Director to re-hide the backup drive. It's a little kludgy, but it works, and the Acronis apps don't bitch about my SATA drive.

I haven't had an opportunity to use my new BartPE disc on Dentserver yet. I'm kind of looking forward to it.

So that's as far as I am with the PVR. I bought a SageTV license, and during the purchase I was offered a price break on SageTV Client Version. This allows any other computer on your network to stream TV from your SageTV computer in real time with all of the features that would be available to you if you were sitting in front of the main box. But you need a client license for every computer you put it on, and a license is $30, in addition to the original $80 for the main SageTV license.

The price break was $5. I figured that $25 was a pretty good deal for being able to make Crystal's laptop another fully-functional TV, so I put it in the cart.

When it was time to check out, I noticed that the checkout page had a coupon code field. I love coupon code fields, and so should you, because usually a coupon code field means that a little creative Googling can save you bucks. I Googled around for about ten minutes and tried about six expired codes before I got one that worked...10% off my entire purchase.

SageTV: $80
SageTV Client: $30
Client Price Break: $-5
Coupon Code: $-11

Total: $94.41

I kept it under $100. I'm happy. By the way, apparently Hauppauge and SageTV have a partnership, and part of that arrangement is a coupon code at SageTV that doesn't expire. If you're in a position to use it, the code is: HAUPP. It's only valid on software licenses, so don't try buying a software/hardware bundle and using the code. Mkay?

So I'm keeping the PVR-250, because it works. And when the PVR-500 arrives, I'll keep it too, if it works. That means triple tuners. One to watch and two to record. This is gonna be cool.

There is still more to do on this box. That'll be the next update.

Wednesday, July 06, 2005

PVR Build Log #03 (Trials and Tribulations)

Sorry it's been so long...I've worked really hard on the PVR, and I had holidays to worry about. Oh, and a LAN party. I guess I should post about that over at Phisch.

As you know (if you read parts 1 and 2), the hardware build for the PVR went swimmingly. I started with quality parts and did a clean, elegant build.

The software situation, well, not so much. Let's rehash:
  1. Fedora Core 4: I was wrong about FC4 not supporting SATA out of the box. It does. The install DVD actually has a bug that requires you to enter gibberish once and press "Enter" before it will install, or it will have a kernel panic. No, I am not making this up.This foiled me the first time, and then the second time I took the time to research it and found out about the bug. To be honest, I'm not sure if this is better or worse than not supporting SATA, but it is certainly stupid all the same. More on that later.
  2. Mandrake: I then tried (unsuccessfully) to get working ISOs of Mandriva. They hide the ISOs to try to get you to pay for support first, and that's not ok with me. Next!
  3. SUSE 9.2: This was my first experience with SUSE, and to put it simply, I was impressed and then some. These guys have polish like I've never before seen in a Linux distro. I desperately wanted to stick with SUSE (pronounced Soos-Uh), but I couldn't find a good step-by-step MythTV tutorial for SUSE, so I couldn't make it work.
  4. Ubuntu Full: Not the live CD, and not the single CD install, but the full 2.2 GB Ubuntu installer. Where SUSE is polished, Ubuntu has simplicity in spades. You get a plain, coffee-colored desktop, one net browser (FireFox), one file manager, and so on. Not a lot of choices, but it's simple and it works well. And like SUSE, Ubuntu found my unusual mouse and keyboard and used them fine without even asking about them. I left Ubuntu for the same reason I left SUSE; I couldn't find a comprehensive tutorial for it.
  5. Fedora Core 3: I finally ended up with FC3 because this fine tutorial is entirely based on it. The install DVD image was a little hard to find, because since the release of FC4, most mirrors have chosen to host that instead (even didn't have it). So I had to find a mirror that was a little behind the FC4 wave and was still hosting FC3 images, and then I had to use IE to make the download, as downloads over ~1GB make FireFox barf. And Star Downloader. And everything else I tried, except for BitTorrent (and remember, there wasn't a torrent for FC3) and Internet Exploder. Ech.
I'm reasonably certain that the above trial-by-fire would have shaken off damned near any beginner. I don't want to hear you Linux guys talking about how easy it is to get an image and make it do anything Windows does these days anymore, because it isn't. It just isn't. Finding the right distro was hell. Getting package dependencies to work is hell. Making sure that updates (which are harder than in Windows themselves) don't kill the work you've already done is hell. Learning BASH when you left DOS years ago is hell. Combing Google for answers when you have 20 stupid trivial problems, all of which are show-stoppers, for the command-line fix for each one, where the authors of such fixes assume that you know a lot more than you really do IS HELL.

Do you see where I'm going with this, Linux guys? This stuff needs to be easier. Follow SUSE's lead and improve on it. So anyway...

Oh, here's a tip. If you decide to dive into Linux, make sure you really take the dive and download the DVD ISOs instead of the CD ISOs, because it's well worth the trouble. First, you only have to download one image and burn one disc. But it's so much more than that! Some Linux distros want the install discs inserted a lot to pull packages from when you install software. When you have multiple install discs, this is a real pain. A single DVD is much less hairy. Ditto for the media check that some distros do before installing. Also, I archive my software in a large CD book. It's really nice to archive just one DVD for a full distro instead of five CDs. Sometimes the DVD images are a little harder to find, but they're well worth the trouble.

Ok. Let's rewind a little. SUSE wasn't working. It was beautiful and easy to use, but I couldn't find instructions tailored to SUSE for a MythTV install. So I reluctantly left SUSE for Fedora Core 4.

I had already read quite a bit of the above-linked tutorial, and I figured that since it was based on FC3, then FC4 should work mostly the same. I Googled my assumed SATA problem and discovered that FC4 does in fact support SATA. Hmm. I tried installing again; just to make sure I wasn't crazy. No dice. I then resorted to typing the exact wording of the kernel panic error message into Google with quotes. You know what? There are a lot of things that cause kernel panics. I read Google for four to five hours before stumbling upon the answer mentioned above...with some Intel motherboards (and very rarely, AMD boards too), you have to give the install prompt gibberish instead of an install command. The install prompt of course throws up an error, and then the normal install command will work. That's simple enough. If you're an idiot.

After that, FC4 installed fine. FC4 is nice. It uses the KDE desktop, which suits me far better than Gnome does. It seems to me that KDE is like a Windows desktop, while Gnome is more like a Mac desktop. So it's probably just a familiarity thing.

The problem with FC4 is that it's new. New and buggy. And not at all like FC3. The tutorial didn't work. I'd try running a BASH command copied from the tutorial, and BASH would barf. So I'd read my Linux books and find a way to work around the error. This got harder and harder, and progressively more time consuming, until I simply couldn't progress any further.

When you talk to a Linux nut about how hard things are with Linux, his argument is that it's ok because the Linux community is so supportive. All you have to do is make a post with your problem clearly stated at any Linux forum, and you'll have five hundred tech heads lining up to help. Let's debunk that, shall we?

There's a local association called the Ogden Area Linux Users Group, or OALUG. Not an elegant name, but perhaps that's appropriate. About a year ago, Leon and I attended an OALUG meeting at the WSU Ogden campus. It was a cold day, and they opened the doors to the building late, so that tainted the experience early on.

They finally let us into the building, and the meeting commenced in a classroom. They chattered about kernel updates and gave SCO a fairly good bashing (which is fine by me), and then talked about whatever members chose to bring up. During the meeting, there was a fellow behind me who was a WSU employee, and he provided the single warm, friendly greeting and conversation that I had at that meeting, despite the fact that I spent much of the time pointing out that it was my first time at such a meeting, and I'd like to know more about Linux, and the Linux community. Frankly, it was pretty much like I would imagine an Asperger's Anonymous meeting would go.

At the end of the meeting, they laid out some Linux-related books on a table that a publishing company had given the association, and said that anyone who wanted one or two could have them. I saw one that interested me and was reaching for it, when one of the OALUG members grabbed it right out from under me, boldly stating that he had seen me going for it, and then raced over and made a grab because he had just decided that he wanted it. Fine. Asshole.

So the meeting didn't go well. I did walk away with a book, which I committed to read and write a review for, and have done neither. And I won't be doing so, not only because I don't have the time, but also because of the hatred in my black, black heart.

Anyway, I decided to turn to the ever willing and helpful Linux community for assistance, and went to OALUG's website. Once there, I registered (even though it isn't mandatory for posting) and then posted about my problem. Why don't you have a look at the page? Really, click the link--I'll wait. Do you see all those helpful replies? Yeah, me neither.

I posted that eight days ago now, and all I hear is crickets chirping. Some community. I'm sorry...I know that I'm being pretty scathing here, but it's just because I love the idea of open-source so dearly, and I genuinely feel that these guys are pissing on their own cause. Seriously, guys. Grow some social skills.

Fedora Core 4 didn't work and it looked like it wasn't going to unless I wanted to spend a few weeks learning how to recompile kernels and other such nonsense. No. I went back to the tutorial to find out which distro it was meant for, and went immediately away to find an FC3 ISO.

By this time, I had learned an awful lot about working with a command line in BASH, and I was really getting proficient at moving around and getting things done in Fedora. FC3 install fine, there was no gibberish bug, and the tutorial, while not perfect, was very useful indeed. There were times when I had to deviate from the tutorial because the steps that it suggested didn't work, but I suspect that this is because updates have broken parts of it. I neatly sidestepped these problems for the most part, and only got really hung up once or twice.

There were a couple of things that the tutorial didn't cover, though, and they've been a concern all along. I want more than just a PVR. I want a fully networked box that can share its recordings with the rest of the house, and I want it to record to an NTFS partition on the hard drive so that when I boot to Windows, Windows can see the partition as well as Linux.

I made it through a certain step in the tutorial at about 2:20 am one night, decided to update the machine before bed, finished the update, shut it down, and hit the sack at about three. I was to tackle the NTFS and network problems the next day.

Flash to the next day, wherein FC3 fails to boot. You guessed it; the update the night before borked Linux, and borked it good. The machine would start up and initialize almost everything, but then the graphical environment would simply fail to load. I could Ctrl-Alt-F4 out of the broken graphical environment to a command line, but I'm not that good at the command line yet, and it was no help.

I'm convinced that it takes computers to build computers. Without another PC running and ready to Google its little heart out, I'd never make progress on a project like this. In about an hour, I had found other users with the same problem, and a workaround. I had to edit a config file. Not so hard, right? Not if you're in a graphical environment with root priveleges. But no graphics for me.

Fine, I said. That's what Knoppix is for. I booted to Knoppix, browsed to the necessary file, and...I couldn't edit it. I wasn't root. And Knoppix doesn't have a root password, you have to elevate yourself from a command line using the SUDO command and then give yourself a root password. But the command didn't work for me.

Fine, I said. That's what Ubuntu Live is for. I booted to Ubuntu, and had the same problem: No root, and no root password in the distro. Is there a workaround? You bet! See above. It didn't work in Ubuntu, either.

Fine, I said. that's what SimplyMepis is for. I booted SimplyMepis and was presented with a logon screen. Wha? The other two didn't have logon screens. I entered "root" as my user name, and "root" as my password, and I was suddenly root. Whew. After editing the necessary file and rebooting, FC3 worked fine again.

That's what I get for updating before bed. My fault.

Now the NTFS problem. Google was quick about this one, and mounting the NTFS drive was a relative breeze, taking only about 3 hours to get it to automatically mount with every boot. But then, no matter what I tried, I couldn't write to the NTFS partitions. Not as user, not as root, not when I stood on one leg and looked at it cross-eyed. I could see the files, execute them (not like you think, though), browse them, but I couldn't even create a new folder.

More research showed that many others have had the same problem, and it's just that way. You can mount an NTFS drive in Fedora, but you can't write to it. So stop asking.

I did find an outdated project that allowed reading and writing of NTFS drives, but it hadn't had development in more than a year, and it would require recompiling my kernel. No.

I re-formatted the drive as Ext3, got it to mount (you'd think that Linux would mount a new native file system automatically, but no), and moved on.

On to what? Networking, of course, and more specifically Samba. I knew the network card was working fine, because the Fedora box was online. I browsed web pages and updated the system (bad idea) from the internet. So I tried to browse my own network.

BARF! You have to start the service "Lisa" for Samba to work! Lisa was running. I checked. I rebooted. Same thing. I restarted Lisa over and over, but I still couldn't even begin to see my LAN. This was unexpected and very discouraging. Samba had worked without a hiccup in SUSE. I'd browse to DENTSERVER and it would pop up a logon box and off I'd go. But this was a problem.

Later, I told myself. MythTV still isn't set up. MythTV was coming along nicely, though. When it came to configuring my TV tuner card, I couldn't manage to get a picture. I found a guy online who had the same problems in Linux, but his card worked from Windows. He tweaked some configuration settings after finishing the MythTV install and it worked fine. I hadn't tried Windows yet, but I vowed to later and moved on.

I configured MySQL and set up the Myth Database. I got an account at Zap2It, for downloading TV listings automatically. I ran MythTVSetup, where I actually saw the blue MythTV user interface. This all happened miraculously in the span of about two hours.

The MythTV interface looks friendly, but it is not. It's probably not so bad when you have it configured to talk to a remote control rather than a keyboard, but you have to set it up with a keyboard because you have to type in settings, and it is seriously keyboard unfriendly.

I guessed at a few of the settings, and decided it was time to test if my tuner card worked in Windows. Reboot.

I ran the Hauppauge software in Windows. The card didn't work. It knew what channels I was supposed to receive, but it would only display a black screen. Hauppauge's support faq page says that this is a problem with using a video card that doesn't support the overlay function. The Radeon 7000 that's in the system does support overlay, and since it's not functioning in both Windows and Linux, I'm betting that the tuner card is defective.

The girl at ProVantage was a dream to work with, and she promised an RMA without giving me any trouble at all. I've bought from ProVantage several times before. Their prices have always been reasonable to excellent, and now I know that their support is good. I'll be buying from them more often.

I found that ProVantage has the Hauppauge PVR-500 MCE for only $8 more than the PVR-250 I had bought, so I ordered the 500 right away. The 500 is like the 250, only with slightly better graphics quality, dual TV tuners instead of single, dual hardware MPEG 2 encoders instead of single, and an added FM tuner built in. That's pretty impressive for an $8 upgrade.

The 250 came with an IR remote that I'll have to send back with it, and the 500 doesn't include a remote, but I have an RF remote from my ATI 9800 Pro AIW that I'm not using, and it will do fine. And it's a better remote anyway.

So here's where I'm at. Linux is just too hard. I've learned a lot in the last three weeks. And I mean, a lot. I've learned that Linux is very powerful, and yet very frail. Bruce Perens, an open-source advocate and Debian proponent, famously said:
"Well, let's just say, 'if your VCR is still blinking 12:00, you don't
want Linux.'"
And that's certainly true. And maybe even if it isn't blinking 12:00. I wanted Linux to replace my VCR, and I just don't think I can see it through. Frankly, this project has kicked my butt. I can take some butt kicking--I'm used to a certain degree of it, but I've really taken a beating, and I've had precious little reward from the process.

As much as I hate throwing in the towel, I've got certain tasks that I want this system to perform, and I'm not willing to sacrifice them just so that I can say that I run Linux on my PVR instead of Windows. Windows doesn't barf when I try to network it. Windows will let me read, write, and even share my NTFS drive.

And SageTV's users are saying a lot of very nice things about SageTV. I suppose a rather substantial bribe could get me considering the Linux option again. It's not too late...I haven't formatted the Fedora partitions yet. But I'm going to.

I gave Linux an honest, hardcore effort. More effort than I'd give most other projects. I've really worked hard on this one, and part of me doesn't want to let all that work go. Oh well.

There will be further updates. I've given up on Linux, but not the whole project.