Ubuntu 6.06 on HP Compaq nx6310

I am a Linux user for 99.9% of my computer time.
I have my nx6310 for a little more than a month. I took time too put everything to work. Aim of this post is to provide you with all-in-one solution for nx6310 + Ubuntu
I’ll share my Ubuntu Dapper Drake GNU/Linux experience on mine HP-Compaq nx6310 Business Laptop

The specs

CPU: Intel CeleronM works out of the box
Chipset: Intel 945GML works out of the box, but badly; needs tweaking
Video: Intel GMA 950 works out of the box, but badly; needs tweaking
Optical drive: Matshita DVD-RAM UJ-840S works out of the box
Lan: Broadcom BCM4401-B0 works out of the box
WiFi: Broadcom 4311 doesn’t work out of the box; needs tweaking
PCMCIA: Texas Instruments ( 8039 ?) not tested
Firewire: Texas Instruments ( 803a?) not tested
VGA (D-Sub): not tested
USB 2.0: works out of the box

Chipset

Intel’s i945GML chipset is not that well supported by Linux, yet. On Ubuntu 6.06 ( 2.6.15.26 kernel ) suspend and hibernate ( suspend-to-disk ) doesn’t work. I compiled a custom 2.6.17 kernel and nothing changed =(
Though, as usual in Linux world, I found a solution. There’s Suspend2 to help us. There’s even a Dapper Section out. It is simple ass

sudo echo deb http://dagobah.ucc.asn.au/ubuntu-suspend2 dapper/ >> /etc/apt/sources.list
sudo apt-get update
sudo apt-get install suspend2
sudo gedit /boot/grub/menu.lst

Find section like this

## ## Start Default Options ##
## default kernel options
## default kernel options for automagic boot options
## If you want special options for specific kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
## e.g. kopt=root=/dev/hda1 ro
## kopt_2_6_8=root=/dev/hdc1 ro
## kopt_2_6_8_2_686=root=/dev/hdc2 ro
# kopt=root=/dev/sda7 resume2=swap:/dev/sda6

The resume2=swap:/dev/sda6 is what I have added ( and is similar to what you have to add ). As it is said, find yours SWAP with swapon -s

sudo update-grub
Reboot. If this will work for you, you’re lucky. After this install my WiFi didn’t work. So I had to ctrl+x ctrl+v the Ubuntu, kernel 2.6.15-26-686 part below Ubuntu, kernel 2.6.15-26-386
After this I booted by default into 386 (original dapper kernel) and can hibernate with
sudo hibernate

Video
Intel’s GMA950 video also has its negative issues. The hardware was detected and i810 driver used. I had OpenGL, but while watching movies with Totem (GStreamer), VLC, MPlayer they were too dark AND ogg-theora movies failed to open ( giving X does not have enough resources ). With Totem (Xine) they were too bright and only up to 5MB ogg-theora movies were playable. Moreover, with Totem (GStreamer) I could watch .wmv videos only in original resolution ( it’s ok with Xine ). Non of this problems existed with vesa driver.
In Totem you can adjust the brightness in EDIT>PREFERENCES>DISPLAY tab
So if you have the same problems, run (be aware! installing libxine-extracodecs maybe illega in USA, Australia and some other countries. Install it on YOUR OWN risk. This is legal where I live 8) )

sudo apt-get install totem-xine totem-xine-firefox-plugin libxine-extracodecs
You don’t need to run the above code, and I think you don’t have any problems if you used Automatix or EasyUbuntu. They install Xine by default, when checking install extra codecs.

WiFi
WiFi works well with ndiswrapper.

sudo apt-get update
sudo apt-get install ndiswrapper-utils
sudo mkdir /usr/windrv

***now this part depends on where your drivers are***

sudo cp /media/sda1/SwSetup/WLAN/Broadcom/bcmwl5.inf /usr/windrv/bcmwl5.inf
sudo cp /media/sda1/SwSetup/WLAN/Broadcom/bcmwl5.sys /usr/windrv/bcmwl5.sys

It’s best to use drivers which came with windows. I found them in /media/sda1/SwSetup/WLAN/Broadcom or, while in windows, you can copy them from C:/SwSetup/WLAN/Broadcom to USB drive. Of course you’ll have to use the right path in the commands above 🙂

sudo ndiswrapper -i /usr/windrv/bcmwl5.inf
sudo ndiswrapper -l

*** if driver installed, continue; if not, try again and google ***
***if you have a line saying bcmwl5 driver present, hardware present skip to depmod -a***

sudo lspci

***lot of output, somewhere at the end look for Broadcom:
0000:08:00.0 Network controller: Broadcom Corporation: Unknown device 4311 (rev 01)
Remember the 0000:08:00.0 or whatever your number is***

sudo lspci -n

*** find the line which starts with 0000:08:00.0 or whatever your number was; remember the next number, in my case 14e4:4311***

sudo ndiswrapper -d 14e4:4311 bcmwl5
sudo ndiswrapper -l

***I had Installed ndis drivers:
bcmwl5 driver present, hardware present
which meant, that everything is fine***

sudo depmod -a

*** if no errors, continue; if errors exist, refer to ndiswrapper docs & mans***

sudo ndiswrapper -m
sudo modprobe ndiswrapper

*** now I had
Adding "alias wlan0 ndiswrapper" to /etc/modprobe.d/ndiswrapper
***

sudo iwlist wlan0 scan

*** WLAN should be turned on now ***
In my case it didn’t work. It didn’t work after several reboots. But suddenly worked the next day. I can’t and don’t want to figure out why 😐 , it works and that’s just fine. Before installing the Suspend2 package even the WiFi on/off button worked. But I guess the package unloads some drivers, and you have to turn it on with sudo iwlist wlan0 scan
AVOID Broadcom and other OpenSource unfriendly hardware vendors, don’t be a prisoner of their (good?) will.
And remember that IBM and HP, maybe some one else, have a BIOS WiFi lock. It won’t allow you to use non original mini-pci WiFi cards. If it interests you, search the web about it.
UPDATE! When updating the kernel you also need to re-install ndiswrapper

sudo rmmod ndiswrapper
sudo dpkg --purge ndiswrapper-utils
sudo rm -r /etc/ndiswrapper/
sudo rm -r /etc/modprobe.d/ndiswrapper
sudo rm /lib/modules/$(uname -r)/kernel/drivers/net/ndiswrapper/ndiswrapper.ko

Then follow the installation guide above.

UPDATE! The above installation method didn’t work with the latest kernel update (2.6.15.27). I followed these instructions and it worked =)) Remove your previous ndiswrapper (above), follow instructions on the link or these:

sudo apt-get install linux-headers-$(uname -r)
sudo tar xvfz ndiswrapper-VERSION.tar.gz
sudo cd ndiswrapper-VERSION
sudo make distclean
sudo make
sudo make install

UPDATE! Finally I googled out how to get rid of annoing 20s hang on start up
Add modprobe -r psmouse to /etc/init.d/halt and /etc/init.d/reboot ( after the blue comments of course )

sudo gedit /etc/init.d/halt
sudo gedit /etc/init.d/reboot

I know problem exists in Ubuntu, SUSE Enterprise 10 and Arch linux.
Danke schön goes to the author of the http://home.no/slazz/nx6310/nx6310.html 😉

SUSE 10.1
SUSE 10.1 worked well ( for a few hours ) on my laptop. I didn’t test wifi, but I suppose it will work. Everything else worked fine, but I couldn’t use Linux without apt-get =(
The major thing is that here suspend-to-disk ( hibernate ) works out of the box.

Some useful links, which helped me:
Broadcom 4318 howto
Ndiswrapper wiki
GMA950 crappy video on ubunutforums
BIOS hang on stratup resolved
SUSE BIOS hang bug discussion on novell.com
Broadcom Wireless in Ubuntu Dapper 6.06
WiFi help on Ubuntu.com

Tuxmobil

I thank all the people & authors of above mentioned posts for their work, all Linux, Ubuntu, Debian and especially Ndiswrapper developers ( donations will follow in some time from here )

You are welcome to comment =)
Sergei.

Advertisements

6 Comments

  1. hmm nice howto , i have the same laptop withe same wlan card but i dont get it to work with ndiswrapper 😦
    only with bcm43xx , but with that its very slow… 😦

    Like

  2. Tnx, I installed ndis for two times, and it worked. I used the same method on Edgy few days ago and it worked too. Though, all the time not instantly. I used various combinations of iwup eth1, iwdown eth1. Look for more on ubuntu wiki, all instructions are from there 😉

    >>http://diozaka.org/modules/nx6310.html
    Yes, you have an intel chipset, which is open. I have Broadcom, which is closed =/

    Like

  3. I saw in a Brazilian site that the wifi card +ndiswraper crashs when it go to low energy mode.

    The solution is make a script that keep sending ping to one host with some interval !!!

    something like:

    # echo ‘ping -i 15 google.com &’ > /etc/rc5.d/S99ping
    # chmod +x /etc/rc5.d/S99ping

    I found it in http://www.guiadohardware.net/analises/nx6310/como-funciona-suporte-hardware-linux.html

    Thanks to Carlos Morimoto for this… Maintener of Kurumin Linux Distro !!!

    My best Regards !!!

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s