FreeBSD : Compaq Presario V3010AU


Presario V3000
Got myself a Compaq Presario V3010AU notebook 2 months ago and installed FreeBSD. And finally got time to drop down some notes on setup of this laptop. I’m not keen to get it run on amd64, so i386 is the option to go.

Compaq V3000 series come with a layer lamination, subtle looking pinstripe patterns on the chassis, which ensures greater protection from scratches. The v3000 series truly looks and feels impressive.

In addition, I don’t pay for M$ Windows licence as the unit comes with FreeDOS preinstalled.

THE SPECIFICATIONS

The HP Compaq presario V3010AU specs stated as per HP website :-

Processor : AMD Turion 64 X2 Mobile Technology TL-50 1.60 GHz, Level 2 cache 256 KB + 256 KB

Standard memory : 512 MB DDR2 533 MHz

hard disk drive : 60 GB 5400 rpm

Optical drive : Super Multi DVD Writer (+/-R +/-RW) with Double Layer support

Modem : High speed 56K modem

Network interface : 10/100 LAN Ethernet integrated

External I/O ports : 1 VGA, 3 USB 2.0 ports, 1 IEEE-1394, 1 RJ-11, 1 RJ -45, S-video TV out, 1 headphone-out, 1 microphone-in, 1 Expansion Port 3 connector, AC Adapter, 2 Omni - directional microphones

Expansion slots : One ExpressCard/54 slot (also supports ExpressCard/34)

Display size : 14.1″ WXGA High Definition BrightView Widescreen Display max resolution 1280 x 800

Video adapter : NVIDIA® GeForce Go 6150

Speakers and microphone : Altec Lansing® speakers, Dual omni-directional microphones

Keyboard : Full-sized Keyboard

Pointing device : Touch Pad with dedicated vertical Scroll Up/Down pad

Power supply type : 65 W AC Adapter

Weight : 2.4 kg (5.31 lbs)

FREEBSD INSTALLATION

The installation was an easy task. However, getting the device working tends to be tricky and involves considerably much of upgrading and patching of FreeBSD operating system. Booting straight away from FreeBSD 6.1/6.2-beta1, requires to escape to loader prompt, by pressing 6 at beastie boot menu.

Type set hint.apic.0.disabled=1

and follow by boot to resume booting process. At this stage, FreeBSD will boot into installer and start installation as usual discribed in the FreeBSD handbook. Refer to the handbook if you have problem with installation.

TIPS : Please note that FreeBSD 6.2-beta installer CD is recommended as nve(4) is detected properly. This is a plus as it allows you to upgrade your system with cvsup via the nic without hassle.

Complete the installation and reboot. Again, you need to escape to loader prompt again and have apic disabled.

CONFIGURATION

UPDATE :

Ariff Abdullah has created a single RELENG_6 patch for presario v3000. After applying this patch, you can skip all the patches below except Project evil driver conversion.

Sound
Install cvsup and sync src according to FreeBSD branch you wish to follow. If you are on RELENG_6, grab a patch by Ariff Abdullah to get Conexant Venice HDA sound card working. Big thanks for his dedicated work. Please read the instructions on the site and download the correct patch. His patch was merged into FreeBSD -current. So you can skip this step if you following -current development branch.

Broadcom wireless

UPDATE : If you apply single RELENG_6 patch from Ariff, you can skip this patch.

ndis patch made by Scot Hetzel got the broadcom working. You will get kernel panic if you do not apply this patch.

# fetch http://bsd.ipv6.la/ndis.patch

# patch -d /usr/src -p0 < ndis.patch

# cd /usr/src/sys/modules/ndis && make obj && make && make install

You can either patch and recompile the kernel or just compile ndis module as above.

Project evil

# fetch ftp://ftp.hp.com/pub/softpaq/sp33001-33500/sp33008.exe

# cabextract -F 'bcmwl5*' sp33008.exe

# ndisgen bcmwl5.inf bcmwl5.sys

# kldload ./bcmwl5_sys.ko

# cp bcmwl5_sys.ko /boot/kernel/

# kldxref /boot/kernel

Using ndis0 with wpa_supplicant

Set up /etc/wpa_supplicant.conf with your WIFI network information. Below is an example for WEP protected WLAN with DHCP enabled:-


network={
         ssid="mywifi"
         scan_ssid=1
         key_mgmt=NONE
         wep_tx_keyidx=1
         wep_key1=your_104bit_wep_key
}

Enable wpa_supplicant automatically, set /etc/rc.conf with ifconfig_ndis0="WPA DHCP". To initialise it, run /etc/rc.d/netif start ndis0.

Nvidia Geforce 6150 Go display

# cd /usr/ports/x11/nvidia-driver
&& make && make install


and configure xorg.conf as usual with xconfigurator of your choice; Xorg -configure, xorgconfig and etc.

If you want to have a peek of my xorg.conf, it is here.

Firewire

Working properly though did not test completely.

DVD +/- burner

Working properly.

APIC

UPDATE : If you apply single RELENG_6 patch from Ariff, you can skip this patch.

As pointed by soh, again great work by Ariff Abdullah allows APIC to work. It really gives you an edge if you have an identical laptop model to developers’. :-) Thanks soh!

AMD PowerNow!

UPDATE : If you apply single RELENG_6 patch from Ariff, you can skip this patch.

Bruno Ducrot has made a patch for AMD Turion 64 X2 system.



# fetch http://people.freebsd.org/~bruno/powernow.c.pending_bit_stuck.diff

# patch -d /usr/src/sys/i386/cpufreq -p0 < powernow.c.pending_bit_stuck.diff

If cpufreq is configured as module:-


# cd /sys/modules/cpufreq

# make install clean

Recompile your kernel if you included cpufreq. Lastly, enable powerd in rc.conf.

MISCELLANEOUS

/boot/loader.conf

add entry in /boot/loader.conf to load the module at startup.

hw.apic.idle_cpu=2

# For debugging
#boot_verbose="YES"

# Kernel Modules
acpi_load="YES"
sound_load="YES"
snd_hda_load="YES"
nvidia_load="YES"

#WIFI
bcmwl5_sys_load="YES"
if_ndis_load="YES"
wlan_wep_load="YES"
wlan_ccmp_load="YES"
wlan_tkip_load="YES"
wlan_xauth_load="YES"
wlan_acl_load="YES"

Multimedia keys

You can use xev to determine keycodes and put them into ~/.Xmodmap for binding.

keycode 177 = XF86Launch2
keycode 136 = XF86Launch1
keycode 138 = XF86ScreenSaver
keycode 144 = XF86AudioPrev
keycode 153 = XF86AudioNext
keycode 162 = XF86AudioPlay
keycode 164 = XF86AudioStop
keycode 178 = XF86WWW
keycode 176 = XF86AudioRaiseVolume
keycode 174 = XF86AudioLowerVolume
keycode 160 = XF86AudioMute

I use these keys to bind to ~/.fluxbox/keys

For example:-

None XF86Launch1 :ExecCommand mrxvt &
None XF86Launch2 :ExecCommand fbrun &
None XF86AudioPrev :ExecCommand xmms -r &
None XF86AudioNext :ExecCommand xmms -f &
None XF86AudioPlay :ExecCommand xmms -t &
None XF86AudioStop :ExecCommand xmms -s &
None XF86WWW :ExecCommand opera &
None XF86AudioMute :ExecCommand mixer pcm 0 &
None XF86AudioLowerVolume :ExecCommand mixer pcm -2 &
None XF86AudioRaiseVolume :ExecCommand mixer pcm +2 &

dmesg output

Can be found here v3010au.dmesg.

DEVICE CURRENTLY NOT WORKING

1) Ricoh SD/MMC card reader

2) ACPI suspense/resume/hibernation

3) Win modem

4) ExpressCard

pciconf -lv” output is as follow:-

none0@pci0:0:0: class=0x050000 card=0x30b5103c chip=0x02f010de rev=0xa2 hdr=0x00
    vendor   = 'NVIDIA Corporation'
    class    = memory
    subclass = RAM
none1@pci0:0:1: class=0x050000 card=0x30b5103c chip=0x02fa10de rev=0xa2 hdr=0x00
    vendor   = 'NVIDIA Corporation'
    class    = memory
    subclass = RAM
none2@pci0:0:2: class=0x050000 card=0x30b5103c chip=0x02fe10de rev=0xa2 hdr=0x00
    vendor   = 'NVIDIA Corporation'
    class    = memory
    subclass = RAM
none3@pci0:0:3: class=0x050000 card=0x30b5103c chip=0x02f810de rev=0xa2 hdr=0x00
    vendor   = 'NVIDIA Corporation'
    class    = memory
    subclass = RAM
none4@pci0:0:4: class=0x050000 card=0x30b5103c chip=0x02f910de rev=0xa2 hdr=0x00
    vendor   = 'NVIDIA Corporation'
    class    = memory
    subclass = RAM
none5@pci0:0:5: class=0x050000 card=0x30b5103c chip=0x02ff10de rev=0xa2 hdr=0x00
    vendor   = 'NVIDIA Corporation'
    class    = memory
    subclass = RAM
none6@pci0:0:6: class=0x050000 card=0x30b5103c chip=0x027f10de rev=0xa2 hdr=0x00
    vendor   = 'NVIDIA Corporation'
    class    = memory
    subclass = RAM
none7@pci0:0:7: class=0x050000 card=0x30b5103c chip=0x027e10de rev=0xa2 hdr=0x00
    vendor   = 'NVIDIA Corporation'
    class    = memory
    subclass = RAM
none8@pci0:9:0: class=0x050000 card=0x30b5103c chip=0x027010de rev=0xa2 hdr=0x00
    vendor   = 'NVIDIA Corporation'
    class    = memory
    subclass = RAM
none9@pci0:10:1:        class=0x0c0500 card=0x30b5103c chip=0x026410de rev=0xa3 hdr=0x00
    vendor   = 'NVIDIA Corporation'
    class    = serial bus
    subclass = SMBus
none10@pci0:10:3:       class=0x0b4000 card=0x30b5103c chip=0x027110de rev=0xa3 hdr=0x00
    vendor   = 'NVIDIA Corporation'
    class    = processor
none11@pci3:9:1:        class=0x080500 card=0x30b5103c chip=0x08221180 rev=0x19 hdr=0x00
    vendor   = 'Ricoh Co Ltd'
    device   = 'SD Bus Host Adapter'
    class    = base peripheral
none12@pci3:9:2:        class=0x088000 card=0x30b5103c chip=0x08431180 rev=0x01 hdr=0x00
    vendor   = 'Ricoh Co Ltd'
    class    = base peripheral
none13@pci3:9:3:        class=0x088000 card=0x30b5103c chip=0x05921180 rev=0x0a hdr=0x00
    vendor   = 'Ricoh Co Ltd'
    device   = 'Memory Stick Bus Host Adapter'
    class    = base peripheral
none14@pci3:9:4:        class=0x088000 card=0x30b5103c chip=0x08521180 rev=0x05 hdr=0x00
    vendor   = 'Ricoh Co Ltd'
    class    = base peripheral

SUGGESTION

Suggestion/advice/patch/tips are welcome. Let me know if you have similar system and got devices running properly.

5 Comments to “FreeBSD : Compaq Presario V3010AU”

  1. soh Says:

    If you want to enable SMP, apply his other patch:

    http://people.freebsd.org/~ariff/misc/idlecpu_apic_3.diff

    Set “hw.apic.idle_cpu=2″, re-enable apic, boot smp kernel and have fun :)

  2. Kevin Foo (chfl4gs_) Says:

    Thanks for the tip, soh. It’s working. Cool.

  3. ah`kin Says:

    how much u buy this ?

    i think to get V3119AU

  4. Lowks Says:

    not trying amd64 is a good choice … too much unknown. I tried out kubuntu amd64 and had a heck of a time trying to figure out some of the errors …

  5. Kevin Foo (chfl4gs_) Says:

    It’s another way of saying “I’m chicken out!” :-D. Anyway, getting the unit to operate fully on i386 is already a challenge to me, too many unsupported devices. ariff@ has a complied patch for RELENG_6.

Leave a Reply