Gentoo on an HP Pavilion dv5000 (dv5139)

By Paulus, 5 October, 2007

When my Compaq Presario X1000 (X1010US) died I was sad. It took me some time to get gentoo to work correctly with the hardware. The biggest hurdle that I faced was getting the wireless to work. At the time ndiswrapper wasn't working very well and would often either lock up my system or cause a kernel panic. The second hurdle that I faced was getting 3d acceleration to work. When I was forced to give up the ghost on my beloved Compaq Presario X1000 I ended up purcharsing a HP Pavilion dv5000 (dv5139).AMD Turion 64 ML-37 (2.0Ghz)
2x1GB DDR333
120GB 5400 RPM Seagate HD
15.4" Wide 1280x800
ATI XPRESS 200M
8x DVD-RW DL with lightscribe
54a/b/g wireless
Bluetooth
Windows XP MCE 2005 ( which was wiped out right after removing it from the box )

Again, I was having problems with the wireless and video. The laptop has a bcm4319 chip and from what I've read, the native Linux kernel only has drivers that support the bcm4318 and earlier. However, I was able to get the ndiswrapper to work with the Windows drivers. The video card took a lot of monkeying around with but after many many hours I was able to get it to work. Unforunately there are some strange bugs in the driver such as once X starts you can't switch back to the VT without seeing some tripy colours.

Kernel Configuration

Power management options -->

[ * ] Power Management support
[ * ] Software Suspend
( /dev/hda4 ) Default resume partition
ACPI (Advanced Configuration and Power Interface Support) -->

[ * ] Sleep States
< * > AC Adapter
< * > Battery
< * > Button
< * > Fan
< * > Processor
< * > Thermal Zone

CPU Frequency scaling -->

[ * ] CPU Frequency scaling
< * > CPU frequency translation statistics
< * > Powersave governor
< * > userspace governor for userspace frequency scaling
< * > AMD Operton/Athlon64 PowerNow!
< * > ACPI Processor P-States driver

Bus options (PCI etc)

[ * ] PCI Express support
[ * ] Root Port advanced Error Reporting support
PCCARD (PCMCIA/CardBus) Support -->

< * > PCCard (PCMCIA/CardBus) Support
< * > 16-bit PCMCIA Support
[ * ] Load CIS updates from userspace
[ * ] PCMCIA Control ioctl
< * > CardBus yenta-compatible bridge support

Executable file formats / Emulations

[ * ] IA32 Emulation
< * > IA32 a.out support

Networking -->

< * > IrDA (infrared) subsystem support -->

< * > IrLAN protocol
< * > IrCOMM protocol

Infrared-port device drivers -->

< * > IrTTY (uses Linux serial driver)
< * > SigmaTel STIr4200 bridge (EXPERIMENTAL)
< * > NSC PC87108/PC87338
< * > Winbond W83977AF (IR)
< * > SMSC IrCC (EXPERIMENTAL)
< * > ALi M5123 FIR (EXPERIMENTAL)
<*> VLSI 82C147 SIR/MIR/FIR (EXPERIMENTAL)
<*> VIA VT8231/VT1211 SIR/MIR/FIR

< * > Bluetooth subsystem support -->

< * > L2CAP protocol support
< * > SCO links support
< * > RFCOMM protocol support
[ * ] RFCOMM TTY support
< * > GNEP Protocol Support
< * > HIDP protocol support
Bluetooth device drivers --->

< * > HCI UART driver
[ * ] UART (H4) protocol support
[ * ] BCSP protocol support.

Device Drivers -->

< * > ATA/ATAPI/MFM/RLL support -->

< * > ATI IXP chipset IDE support

SCSI device support -->

< * > SCSI disk support
< * > SCSI CDROM support
< * > SCSI generic support
< * > Serial ATA (prod) and Parallel ATA (experimental) drivers -->

< * > AHCI SATA support
< * > ATI PATA support (Experimental)

IEEE 1394 (FireWire) Support

< * > IEEE 1394 (FireWire support - alternative stack, EXPERIMENTAL
< * > Support for OHCI FireWire host controllers
< * > Support for storage devices (SBP-2 protocol driver)
< * > IEEE 1394 (FireWire) support
< * > Texas Intruments PCILynx support
< * > OHCI-1394 support
< * > OHCI-1394 Video support
< * > SBP-2 support (Harddisks etc.)
< * > IP over 1394
< * > OHCI-DB I/O support
< * > Raw IEEE1394 I/O support

Network Device support -->

[ * ] Network device support
< * > Universal TUN/TAP device driver support
Ethernet (10 or 100MBit) -->

[ * ] Ethernet (10 or 100Mbit)
[ * ] EISA, VLB, PCI and onboard controllers
< * > RealTek RTL-8139 C+ PCI Fast Ethernet Adapter support
< * > RealTek RTL-8129/8130/8139 PCI Fast Ethernet Adapter
Wireless LAN -->

[ * ] Wireless LAN (IEEE 802.11)
< M > Broadcom BCM43xx wireless support
[ * ] Broadcom BCM43xx debugging
BCM43xx data transfer mode (DMA + PIO)

< * > PPP (point-to-point protocol) support
[ * ] PPP multilink support
< * > PPP support for async serial ports
< * > PPP support for sync tty ports
< * > PPP MPPE compression (encryption)
< * > PPP Over Ethernet

< * >Hardware Monitoring support -->

< * > AMD Athlon64/FX or Opteron Temperature sensor

Advanced Linux Sound Architecture -->

< * > Advanced Linux Sound Architecture
< * > Sequencer support
< * > Sequencer dummy client
< * > OSS mixer API
< * > OSS PCM (digital audio) API
[ * ] OSS PCM (Digital audio) API - Include plugin system
[ * ] OSS Sequencer API
< * > RTC Timer support
[ * ] Use RTC as default sequencer timer
PCI Devices -->

< * > ATI IXP AC97 Controller
< * > ATI IXP Modem

< * > MMC/SD card support -->

< * > MMC block device driver
< * > Secure Digital Host Controller Interface support
< * > TI Flash Media MMC/SD Interface support

There are no thermal sensors in the laptop, however there is a thermal sensor in the processor that can be accessed via the PCI bus.

# cat /sys/bus/pci/devices/0000\:00\:18.3/temp1_input
42000

The 42000 means 42 degrees Celcius.

I would also like to point out that even though there is "support" for Broadcom chips in the kernel, they don't actually work right with the BCM43xx drivers. It's better to use ndiswrapper.

NDISWrapper

Installing the ndiswrapper driver is pretty striaght foward:

# echo "net-wireless/ndiswrapper" >> /etc/portage/package.keywords
# echo "net-wireless/ndiswrapper" >> /etc/portage/package.unmask
# echo "net-wireless/bcm43xx" >> /etc/portage/package.keywords
# echo "net-wireless/bcm43xx" >> /etc/portage/package.unmask
# emerge ndiswrapper bcm43xx-fwcutter wireless-tools
# bcm43xx-fwcutter -w /lib/firmware bcwl564.sys
# ndiswrapper -i netbc564.ini
# cd /etc/ndiswrapper/netbc564
# ln -s 14E4\:4320.5.conf 14E4\:4319.5.conf
# ndiswrapper -d 14e4:4319 netbc564
# ndiswrapper -m
# modprobe ndiswrapper

Download the drivers for wireless card here.

X Configuration

I'm not going to beat a dead horse with a stick, I've blogged about installing XOrg using an ATI card. So for me to repeat myself would be rather pointless. However, in the dv5139 there is a PCI-E video card opposed to AGP.

# emerge ati-drivers xorg-x11 mesa-progs xvinfo
# env-update && source /etc/profile
# eselect opengl set ati
# aticonfig --intial --input=/etc/X11/xorg.conf.example --output=/etc/X11/xorg.conf

Modify the xorg.conf file:

Section">
Identifier "aticonfig-Device[0]"
Driver "fglrx"
BusID "PCI:1:5:0"
# Option "DesktopSetup" "horizontal" # for multiple monitors.
Option "VideoOverlay" "on"
Option "UseFastTLS" "2"
Option "EnablePrivateBackZ" "on"
EndSection

Section "Extensions"

Option "XVideo" "Enable"

EndSectio

Try as I might I still have problems when I start X and then try to drop into another VT. I still get either a blank screen or a screen full of flashing vertical bars. The upside is that valuable CPU cycles are not wasted on processing graphics calculations.

To save time, you can download the kernel from here. The version is 2.6.22-gentoo-r8.