Over the past few years I've had the pleasure of setting up two laptops with Gentoo Linux. Both of them are HPs, both of them have some difficult points. I'll start with my newest.
This is a powerhouse, more a desktop replacement as they call them now days. Specs are as follows (with a nifty color code for what works with linux and what doesn't [yet]):
| Processor | Intel Pentium 4 3.2GHz with HyperThreading | |
|---|---|---|
| L2 Cache: 512KB | ||
| FSB: 800MHz | ||
| (this is not a "mobile" P4 processor!) | ||
| Memory | 1024MB DDR SDRAM (expandable to 2048MB) | |
| Speed: 333MHz | ||
| Accessible memory slots: 2 | ||
| Video | NVIDIA® GeForce FX Go5700 with 128MB DDR dedicated video memory | |
| (this is great for a laptop!) | ||
| Display | 17.0" WSXGA+ High-Definition BrightView Widescreen (1680 x 1050) | |
| (this screen is simply amazing, the quality is excellent.) | ||
| Hard drive | 80GB Enhanced IDE (5400 rpm) | |
| (could be faster, but it's still faster than most) | ||
| Multimedia drive | DVD+R/RW and CD-RW combo | |
| Digital media | 5-in-1 integrated Digital Media Reader | |
| Wireless | 54g 802.11b/g WLAN with 125HSM / SpeedBooster support | |
| Network card | Integrated 10/100Base-T Ethernet LAN (RJ-45 connector) | |
| Fax/Modem | Integrated V.90/V.92 56K modem (RJ-45 connector) | |
| Sound | 16-bit Sound Blaster® Pro-compatible audio | |
| Internal Harman Kardon® speakers | ||
| AC audio link | ||
| Volume control button and mute button | ||
| Keyboard | Notebook keyboard with integrated numeric keypad and multimedia buttons | |
| (that's right folks, this laptop has a fullsize keypad due to the widescreen!) | ||
| Pointing device | Touch Pad with On/Off button and dedicated vertical Scroll Up/Down pad | |
| PC Card slots | 1 Type I/II/III 32-bit CardBus (also supports 16-bit) | |
| External ports | 4 Universal Serial Bus (USB) 2.0 | |
| 1 Parallel SPP/ECP standard interface | ||
| 1 VGA (15-pin) | ||
| 1 RJ-11 (modem) | ||
| 1 TV-Out (S-Video) | ||
| 1 RJ-45 (LAN) | ||
| 1 port replicator connector | ||
| 1 headphone-out | ||
| 1 microphone-in | ||
| 1 IEEE 1394 (FireWire) | ||
| 1 FIR (Fast Infrared) | ||
| (TV Tuner/PVR) | 1 TV antenna-in on USB TV/PVR7 | |
| 1 TV-in (S-Video) | ||
| 1 RCA Video-in | ||
| 2 RCA Audio-in (1L+1R) | ||
| (IR transceiver) | 2 Infrared blaster-out | |
| Security | Kensington® MicroSaver® lock slot | |
| Power | 135W AC adapter | |
| 12-cell Lithium-Ion battery |
Ok, enough of that. Here's the lspci:
0000:00:00.0 Host bridge: Intel Corporation 82865G/PE/P DRAM Controller/Host-Hub Interface (rev 02) 0000:00:01.0 PCI bridge: Intel Corporation 82865G/PE/P PCI to AGP Controller (rev 02) 0000:00:1d.0 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (rev 02) 0000:00:1d.1 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (rev 02) 0000:00:1d.2 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI #3 (rev 02) 0000:00:1d.7 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (rev 02) 0000:00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev c2) 0000:00:1f.0 ISA bridge: Intel Corporation 82801EB/ER (ICH5/ICH5R) LPC Interface Bridge (rev 02) 0000:00:1f.1 IDE interface: Intel Corporation 82801EB/ER (ICH5/ICH5R) IDE Controller (rev 02) 0000:00:1f.5 Multimedia audio controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (rev 02) 0000:00:1f.6 Modem: Intel Corporation 82801EB/ER (ICH5/ICH5R) AC'97 Modem Controller (rev 02) 0000:01:00.0 VGA compatible controller: nVidia Corporation NV36 [GeForce FX Go5700] (rev a1) 0000:02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) 0000:02:01.0 CardBus bridge: ENE Technology Inc CB-710/2/4 Cardbus Controller (rev 02) 0000:02:01.1 FLASH memory: ENE Technology Inc CB710 Memory Card Reader Controller 0000:02:02.0 FireWire (IEEE 1394): Texas Instruments TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) 0000:02:03.0 Network controller: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 03)
Now the fun part.
I opted to dualboot this laptop because I need some Windows functions such as playing games, and sometimes manufacturers won't respect your warranty if you remove Windows from the drive. So anyway my partition layout looks like this:
Device Boot Start End Blocks Id System /dev/hda1 * 1 5130 41206693+ 7 HPFS/NTFS /dev/hda2 5131 5260 1044225 82 Linux swap / Solaris /dev/hda3 5261 5265 40162+ 83 Linux /dev/hda4 5266 9729 35857080 5 Extended /dev/hda5 5266 7698 19543041 83 Linux /dev/hda6 7699 9729 16313976 c W95 FAT32 (LBA)
/dev/hda1 is the Windows drive, occupying ~40GB (games are big these days), /dev/hda2 is my ~1040MB swap partition (it's best to have swap as close as possible to
the start of the disk), /dev/hda3 is the ~32MB /boot partition, /dev/hda4 is an extended partition, /dev/hda5
is a ~20GB root reiserfs partition, and /dev/hda6 is a 10GB FAT32 partiton for sharing files between the two OS's.
Installing Gentoo was a breeze, provided you have a wired connection to the internet (wireless won't work within the Gentoo LiveCD). Also note that the Gentoo LiveCD uses 1400x1050 as its screen resolution while installing – more on this later.
Since this is a hyperthreaded processor, you can select SMP (max 2 CPUs) with
SMT in the kernel configuration. Also select sound support but don't select ALSA (we're
going to use the Gentoo alsa-driver in its place). Since this laptop has a gig of memory, we need to enable Highmem support as well.
A couple of use flags you might want (long list, I know, but mostly useful - pick out the
stuff you don't need, see /usr/portage/profiles/use.desc for descriptions):
USE="mozsvg nptl gtk gtk2 gnome kde -oss truetype \ acpi -apm cdr cups dvd flac gif java jpeg\ mmx sse sse2 X mozilla mpeg -postgres ncurses \ pcmcia perl png python qt quicktime samba sdl spell \ tcltk tiff trusted usb -wavelan xmms \ zlib xft xml oggvorbis xine faad opengl gnutls \ nptlonly hal cdparanoia wifi xscreensaver pthreads \ truetype-fonts bitmap-fonts type1-fonts -3dnow -dri glx \ userlocales xosd -xprint ftp mp3 cairo vorbis ogg -svga \ theora tga xvid xsl bzip2 mng -font-server \ bash-completion gpm zsh kdeenablefinal cddb audiofile cdio cdda \ freetype svg dvdr xrandr mozdevelop tidy objc \ ppds mhash xmlrpc xpm sharedmem rtsp nvidia alsa live \ unicode utf8 sndfile -xgetdefault ccache -esound ctype -esd \ ssl mmap cscope jpeg2k zeroconf posix aac ffmpeg mad a52 \ iconv dga visualization session nntp win32codecs \ divx4linux mmxext javascript moznomail gimp silc network 7zip \ sockets arts cpudetection -jack fftw transcode"
This is where it gets a bit tricky and/or strange. I mentioned the LiveCD using 1400x1050 as its screen resolution in the virtual terminal — turns
out that sadly the BIOS doesn't report that it supports anything higher. So you're stuck with a slightly horizontally scaled VT. Once you have performed an
emerge xorg-x11 (which only takes about 18 minutes on this thing!), emerge nvidia-kernel nvidia-glx to get support for the NVIDIA®
graphics chip. Then, edit your xorg.conf file and configure the "Device" section as follows:
Section "Device"
Identifier "NVIDIA Corporation NV36 [GeForce FX Go 5700]"
Driver "nvidia"
Option "NvAGP" "3"
Option "RenderAccel" "true"
Option "AllowGLXWithComposite" "true"
# Option "UseEdidFreqs" "true"
EndSection
Then, to use the full widescreen resolution of the display, configure a new "Modes" section:
Section "Modes"
Identifier "widescreen"
# 800x600 @ 60.00 Hz (GTF) hsync: 37.32 kHz; pclk: 38.22 MHz
Modeline "800x600" 38.22 800 832 912 1024 600 601 604 622 -HSync +Vsync
# 1024x768 @ 60.00 Hz (GTF) hsync: 47.70 kHz; pclk: 64.11 MHz
Modeline "1024x768" 64.11 1024 1080 1184 1344 768 769 772 795 -HSync +Vsync
# 1280x900 @ 60.00 Hz (GTF) hsync: 55.92 kHz; pclk: 94.84 MHz
Modeline "1280x900" 94.84 1280 1352 1488 1696 900 901 904 932 -HSync +Vsync
# 1280x1024 @ 60.00 Hz (GTF) hsync: 63.60 kHz; pclk: 108.88 MHz
Modeline "1280x1024" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync
# 1400x1050 @ 60.00 Hz (GTF) hsync: 65.22 kHz; pclk: 122.61 MHz
Modeline "1400x1050" 122.61 1400 1488 1640 1880 1050 1051 1054 1087 -HSync +Vsync
# 1680x1050 @ 60.00 Hz (GTF) hsync: 65.22 kHz; pclk: 147.14 MHz
Modeline "1680x1050" 147.14 1680 1784 1968 2256 1050 1051 1054 1087 -HSync +Vsync
EndSection
These are the VESA GTF timings for the widescreen resolutions. In order to use them, you have to set up the Monitor section to use the widescreen modes:
Section "Monitor"
Identifier "LaptopMonitor"
HorizSync 28.0-96.0
VertRefresh 50.0-86.0
Option "NoDDC" "true"
UseModes "widescreen"
EndSection
And to wrap it up, make sure your "Screen" section is using those modes.
Section "Screen"
Identifier "LaptopMonitor"
Device "NVIDIA Corporation NV36 [GeForce FX Go 5700]"
Monitor "LaptopMonitor"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1680x1050" "1400x1050" "1280x1024" "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubSection
EndSection
Now, since we're here, let's set up the Synaptics touchpad. Go ahead and emerge synaptics, and then configure the "InputDevice" section as follows:
Section "InputDevice"
Identifier "SynapticsTouchpad"
Driver "synaptics"
Option "Protocol" "auto-dev"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5"
Option "SendCoreEvents" "true"
Option "SHMConfig" "true"
Option "LeftEdge" "1900"
Option "RightEdge" "5400"
Option "TopEdge" "1900"
Option "BottomEdge" "4000"
Option "FingerLow" "25"
Option "FingerHigh" "30"
Option "MaxTapTime" "180"
Option "MaxTapMove" "220"
Option "EmulateMidButtonTime" "75"
Option "VertScrollDelta" "300"
Option "HorizScrollDelta" "300"
Option "MinSpeed" "0.02"
Option "MaxSpeed" "0.18"
Option "AccelFactor" "0.0015"
Option "EdgeMotionMinZ" "30"
Option "EdgeMotionMaxZ" "160"
Option "EdgeMotionMinSpeed" "1"
Option "EdgeMotionMaxSpeed" "100"
Option "EdgeMotionUseAlways" "0"
Option "UpDownScrolling" "1"
Option "TouchpadOff" "0"
Option "LockedDrags" "1"
Option "RTCornerButton" "3"
Option "RBCornerButton" "3"
Option "LTCornerButton" "2"
Option "LBCornerButton" "2"
Option "TapButton1" "1"
Option "TapButton2" "2"
Option "TapButton3" "3"
Option "CircularScrolling" "1"
Option "CircScrollDelta" "0.1"
Option "CircScrollTrigger" "4"
EndSection
These settings are, of course, up to you to change to fit your needs. Basically this setup enables the scroll pad, enables circular scrolling
(we lucky Linux users get this feature, Windows doesn't support it!), tells the driver that circular scrolling is activated when you place
your finger in the very upper or lower right corner and start dragging in a circle, tells it that tapping the upper-/lower-right corner should
produce a right click, and that tapping the upper-/lower-left corner should produce a middle click. To see a more thorough description
of synaptics driver options, execute gzcat /usr/doc/synaptics*/README.gz | less.
If you want to be able to use a USB mouse as well, set up a section like this:
Section "InputDevice"
Identifier "USBMouse"
Driver "mouse"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "Buttons" "5"
Option "ZAxisMapping" "4 5"
Option "SendCoreEvents" "true"
Option "Emulate3Buttons" "false"
Option "Resolution" "800"
EndSection
This assumes that you have a mouse with a scrollwheel (and the resolution is just for kicks, if your mouse doesn't support it, it won't make a difference).
Now that we have the main configuration set up, let's put it into action by adding these final two sections:
Section "ServerLayout"
Identifier "Default Layout"
Screen "LaptopMonitor"
InputDevice "LaptopKeyboard" "CoreKeyboard"
InputDevice "SynapticsTouchpad" "CorePointer"
# COMMENT OUT THE FOLLOWING LINE IF YOU AREN'T GOING TO USE A USB MOUSE!
InputDevice "USBMouse" "AlwaysCore"
EndSection
Section "Extensions"
Option "Composite" "Enable"
Option "RENDER" "Enable"
EndSection
FYI, the "Extensions" section is there so that we can play with the nifty new features in X.Org, since this laptop can handle it very nicely ;)
Now, I'm not sure if it's a problem with the nvidia driver or with vesafb-tng, but when you switch from X to the VT (by using Ctrl + Alt + F<n>,
it seems like the display timings are messed up, colors go strange, the display gets flickery, etc. If the display goes flickery/fuzzy, immediately switch
back to X, or restart X. That fuzzy stuff means that it's trying to feed the display faster than designed, and it could potentially damage the display.
If the display goes black, and you used "startx" to start X, switch to the terminal you started X from (even if you can't see it), and type in startx[enter]
to get the screen back. If you use an init script to start your X automatically, I suggest you disable it from starting automatically in the first place.
In any case, if you use /etc/init.d/xdm to start X, just blindly type in /etc/init.d/xdm restart to restart X if the above situation occurs.
It seems pretty random as to which of the above conditions happen (bad colors, fuzzy display, blank display, or a combination) and when, but they are no doubt annoying.
I have found a solution for this: make sure you have options nvidia NVreg_SoftEDIDs=0 NVreg_Mobile=2 in your /etc/modules.d/nvidia.
Now, let's move on to the wireless card.
Before we start, let's symlink /etc/init.d/net.eth0 to wlan0:
ln -s /etc/init.d/net.eth0 /etc/init.d/net.wlan0
We're going to have to use ndiswrapper with a Windows XP driver for this, so make sure you've got your Driver CD or download the driver from HP and extract it (on a windows system). Find the files bcmwl5a.inf and bcmwl5.sys and copy them somewhere where Linux can access them. Now we need to install ndiswrapper:
emerge ndiswrapper ndiswrapper -i /path/to/bcmwl5a.inf # install the driver modprobe ndiswrapper
Now you can set up /etc/conf.d/wireless — see /etc/conf.d/wireless.example for a fully commented file that explains
the configuration. When you're all done, you should be able to start wireless by doing this:
/etc/init.d/net.wlan0 start
Getting sound to work reliably on this integrated chip proved to be very much a pain in the rear. Even in Windows, the support for newer games such as
GTA: San Andreas is slim (but that's another issue entirely). Anyway, add this to your /etc/make.conf:
ALSA_CARDS="intel8x0"
That will tell the alsa-driver ebuild to only build drivers for that card. Also, you're going to want OSS emulation support, so enable the oss USE-flag just for alsa-driver:
echo "media-sound/alsa-driver oss" >> /etc/portage/package.use
Now, go ahead and install ALSA:
emerge alsa-driver alsa-utils rc-update add alsasound boot
Now, the easiest way to start alsa for the first time is to start alsasound:
/etc/init.d/alsasound start
Also, don't forget that by default the alsa sound is muted, so start up alsamixer and unmute Master and PCM by hitting the "M" key.
Now we can set up those nifty extra vol-up/down/mute buttons on the laptop too. I use Gnome's built-in program/method for doing this, KDE supports it too,
and if you don't want to use either of those, there's a number of other programs out there (I even made my own for my other laptop, for specific reasons).
Anyway, if you decide to use GNOME, you can start up gnome-keybinding-properties and set it up there.
So now that we've got that set up, let me outline some specific issues with specific apps.
The latest Doom 3 Linux binary has support for ALSA or OSS. We want to use OSS here; don't ask me why, but Doom 3 sounds REALLY bad otherwise. It's a pity, really. So when you start Doom 3 for the first time, start it with this command line:
doom3 +set s_driver oss
That should make it sound fine.
This might be a BZFlag bug, but the only way to get normal-speed sounds out of BZFlag (with this chip) is to use plughw:0 as the device. When configuring bzflag, go to Options –> Audio Settings and change the "driver" to "alsa" (and hit enter), and set the "device" to "plughw:0" (and hit enter). Then restart BZFlag, all should be good. Except you can't have any other apps accessing the sound card at the same time when you play it. I hope this is fixed soon.
If it supports alsa natively, you shouldn't need to do anything, if you have ALSA ≥ 1.0.9b. (if you're reading this, you probably have that).
This is actually very well supported. Add this to your /etc/make.conf:
LIRC_OPTS="--with-driver=mceusb"
Then you can emerge lirc and you'll have initial support for it. But before you can play around with it much you have to make a file called
/etc/modules.d/lirc_mceusb with the following contents:
alias char-major-61 lirc_mceusb options lirc_mceusb debug=1
Then, execute modules-update and you should be good to go. Plug it in and check dmesg to see that the module was loaded. Then you can
/etc/init.d/lircd start. In order for things like mplayer to work we need to set up a ~/.lircrc. So make a file named that, and for starters, this works:
begin button = Power prog = mplayer config = quit end begin button = TV prog = mplayer config = vo_fullscreen end begin button = Play prog = mplayer config = seek 0 1 end begin button = Stop prog = mplayer config = seek 0 1\npause end begin button = Rewind prog = mplayer config = seek -10 repeat = 1 end begin button = Forward prog = mplayer config = seek +10 repeat = 1 end begin button = Replay prog = mplayer config = seek 0 1 end begin button = Skip prog = mplayer config = seek 100 1 end begin button = Pause prog = mplayer config = pause end begin button = VolUp prog = mplayer config = volume 1 repeat = 1 end begin button = VolDown prog = mplayer config = volume -1 repeat = 1 end begin button = Mute prog = mplayer config = mute end begin button = More prog = mplayer config = osd end begin button = Up prog = mplayer config = dvdnav 1 end begin button = Down prog = mplayer config = dvdnav 2 end begin button = Right prog = mplayer config = dvdnav 4 end begin button = Left prog = mplayer config = dvdnav 3 end begin button = OK prog = mplayer config = dvdnav 6 end begin button = DVD prog = mplayer config = dvdnav 5 end begin button = Guide prog = mplayer config = sub_select end
So that should work. If it doesn't, make sure you have lirc in your USE flags and re-merge mplayer. There are tons of other things
you can do with LIRC, so do a little searching and manpage-reading. irxevent is a good tool, as is irexec—both of these are included with LIRC.
This is well supported too - just select "CardBus/yenta-compatable" in the PC-Card section of the kernel. Then you can:
emerge pcmcia-cs rc-update add pcmcia default
Many people think that only a couple of them work - but they are wrong! If you check your dmesg when you press one, you see that the kernel gives you a
nice little notice. Here's how to make them work all the time at bootup — add this to your /etc/conf.d/local.start:
setkeycodes e008 116 setkeycodes e00b 117 setkeycodes e00a 118
Sadly, this is not supported yet. I've looked just about everywhere. It's basically a rebranded Emuse Bali USB TV Tuner / PVR. Says the board inside it (Yes, I took it apart…). Unfortunately I can't find anything about getting this to work in Linux.
This one suffers the same fate as the PVR - nothing found on how to make it work. Oh well. I have a free 32mb SD card that came as some sort of Windows Mobile games thingy, and to my delight, it wasn't write protected — but I guess I won't be using it in Linux just yet.
This might be supported by the kernel (see the ALSA MC'97 driver) but I don't know for sure as I have absolutely no use for a modem anyway.
Haven't tested this, though it probably works. Not sure if the Fn-F4 works, but I'd imagine that the actual video out does. NVIDIA is pretty good for that stuff, so I hear.
Not sure about this either. It seems to show up as detected in dmesg after enabling it in the kernel (it's under networking options), but I have nothing to test it with (unless I can make it communicate with my Lego Robot...)
Not sure if this works, either—I don't have a port replicator. It might be a plug and play hardware based thing, though.
To sum this up: HP designed the notebook very badly with regards to heat dissipation.
More in depth; including story: My 18th birthday, middle of Nov. 2005—My aunt buys me Need For Speed: Most Wanted as a gift. I install it that day. I play it for some hours, and I play it off and on for a week or so. Suddenly, one day, the thing freezes; and when I turn it on again, the screen doesn't come on. But it loads the OS and everything. I reboot it twice and the screen is back. Repeat these symptoms with increasing amounts of reboots over the next week. I call HP support to have it fixed. While it's out at HP, I read zd7000forums.com and find that it's a super common problem. And that it keeps happening. I get it back some time later, and play MW again, and the problem is back within a day. I send it back again.. and I get it back some time in early Jan. I turn it on, play some MM2, and two minutes later, I've got green lines and/or red checkerboards down the screen and it's frozen. Rebooted it, kept happening, and after a certain point, it even happened on boot up, and the only thing that would actually load on it was Linux in text mode. So I sent it in again, and it had been two or so weeks, when I got a phone call from some dude in India asking me for authorization to downgrade my GeForce FX 5700 Go to a GeForce FX 5600 Go, because (for some reason) they ran out of the motherboards with the 5700. So I deny that, and call back shortly and work my way to the top of the support tier with my own case manager (that must be record time!). He asks me what kind of stuff I use it for; I say the usual and some gaming. He says, ok, since you're using it for gaming, we'll replace it. So I'm happy, and I get the replacement yesterday, only to find out that they messed up in the factory and put XP home on it and didn't ship it with any TV tuner or remote or anything. And after playing around with it, updating ATI drivers and all, I find that this gfx chip has an even more annoying problem: the White Screen of Death. It slowly fades from black to white in an uneven pattern when you change resoltuions, when you don't use the stock drivers. Poo. So I call him back again, and he's like, well all my things say Media Center here. He checks the rarely used database of what was installed at the factory -- and he finds that only XP home was installed. Now, you have to be pretty sleepy to install the wrong software and package it without the accessories for that to happen. I also complain about the lack of a 1680x1050 screen and he confirms my worry that they don't ship those with the zd8000s, and then offers to replace it with a dv8000z. Which is an AMD64 Turion 2.4GHz powered laptop. I think that's a fair deal, except the graphics card is a little less powerful, but if it works any better than the previous two, I'm happy. I've always wanted to play around with 64 bit Gentoo anyway =D Not to mention it has two hard drive bays, which means I can use the old hard drive from my zd7000 that I took out before sending also. The dv8000z already comes with a preinstalled 200mb linux partiton which is what their QuickPlay or whatever software runs on.
End long story.
Turns out the graphics card in the dv8000z is a P.O.S. also, integrated, horrible performance. That, and a day after I got my dv8000z, the brand spankin' new HP ad came in the mail, touting a dv8000t on its cover, with nearly identical specs. So I convince the case manager to exchange it one last time on the basis that this dv8000z is not better than or equal to the zd7380us (and it honestly isn't), and I've had this dv8000t for a very long while now. And it's heaven for a Linux user. Even the SD reader works out of the box in recent kernels! Everything works flawlessly. Except, of course, the TV tuner card, which I never expected to work in Linux anyway.
Recently I took custody of a good friend's zd7000 notebook with -- you guessed it -- an nVidia GeForce FX 5700 Go, that had fried itself, with identical symptoms to my own way-back-when. Going to try to salvage it for parts and sell what I can on eBay. I've got two AC adaptors and batteries now. And a screen that is really quite beautiful... I may put it in my dv8000t if I can. No dead pixels. Better backlight... mmm...