This is the Hardy sequel to the gutsy one, that, i must admit, had a great success !!
In Hardy Heron everything seems to work (I am always ready to update this guide), except the wireless device, the infamous hard disk reduced life and a video memory allocation problem, that is a bit problematic... so, let's see...
1) UBUNTU EATS YOUR HARD DISK
2) MAKING WIRELESS WORK
3) CORRECT ALLOCATION OF VIDEO MEMORY (should have been fixed with the last updates)
4) CLOSING THE LID MAKES YOUR SYSTEM FREEZE
5) CONFIGURING YOUR MICROPHONE
UBUNTU EATS YOUR HARD DISK
Just copying and pasting from the ubuntu howto
# Enable CONTROL_HD_POWERMGMT=1 in /etc/laptop-mode/laptop-mode.conf
*
(Bug 244832 missing hdparm -B setting during boot (fixed in intrepid 250935))
# ENABLE_LAPTOP_MODE=true in /etc/default/acpi-support (another package's conffile), even if you do not ENABLE_LAPTOP_MODE_ON_BATTERY or _ON_AC in laptop-mode.conf. So that laptop-mode-tools can control the harddisk power management settings.
*
(244838 laptop-mode needs to be activated in two places)
# Delete or #comment the four $HDPARM blocks (for...done) in /etc/acpi/power.sh and change the two $LAPTOP_MODE start/stop lines to "$LAPTOP_MODE auto"
*
(244836 /etc/acpi/power.sh overrides user settings (fixed in intrepid 250938))
(244831 /etc/acpi/power.sh overrides user scripts (fixed in intrepid 250938))
(244844 Adapt laptop-mode-tools invocation to ubuntu's acpi-support / pm-utils packages (fixed in intrepid 250935))
# Create a bogus /etc/pm/power.d/laptop-tools script to override /usr/lib/pm-utils/power.d/laptop-tools.
*
(239419 pm-utils has laptop-tools script which conflicts with laptop-mode-tools (not so in intrepid))
MAKING THE WIRELESS DEVICE ( BROADCOM BCM4312 rev 02 ) WORK
Before trying any method below, try to unlock the "proposed" repository and do a full update of Hardy. Then install the package b43-fwcutter. It has been reported that working drivers have been put there. Just if this doesn't work go forward.
If you haven't managed to get your wireless card working...
METHOD 0) -- Ndiswrapper zero - This one works for sure
Tested a minute ago.. works on all the laptos I tried onto...
Check you've got a BCM4312 (rev 02) before proceeding
Code:
lspci | grep Broadcom\ Corporation
Just copy and paste - line by line - in the terminal
(I've been very busy lately, when I'll have enough time I'll explain the commands as usual...)
Code:
mkdir ~/bcm43xx; cd ~/bcm43xx
wget ftp://ftp.compaq.com/pub/softpaq/sp34001-34500/sp34152.exe
sudo apt-get install cabextract
cabextract sp34152.exe
echo 'blacklist bcm43xx' | sudo tee -a /etc/modprobe.d/blacklist
echo 'blacklist wl' | sudo tee -a /etc/modprobe.d/blacklist
sudo apt-get install ndiswrapper-utils-1.9
sudo ndiswrapper -i bcmwl5.inf
ndiswrapper -l
sudo depmod -a
sudo modprobe ndiswrapper
sudo cp /etc/network/interfaces /etc/network/interfaces.orig
echo -e 'auto lo\niface lo inet loopback\n' | sudo tee /etc/network/interfaces
sudo ndiswrapper -m
echo 'ndiswrapper' | sudo tee -a /etc/modules
echo 'ENABLED=0' | sudo tee -a /etc/default/wpasupplicant
sudo aptitude remove b43-fwcutter
Turn gedit into Kate, of Xfce, or your favourite text editor in the next line
Code:
sudo gedit /etc/init.d/wirelessfix.sh
Paste into the created (and opened) text file the following lines:
Code:
#!/bin/bash
modprobe -r b44
modprobe -r b43
modprobe -r b43legacy
modprobe -r ssb
modprobe -r ndiswrapper
modprobe ndiswrapper
modprobe b44
Save the text file and exit; now paste into the terminal the following lines:
Code:
cd /etc/init.d/ && sudo chmod 755 wirelessfix.sh
sudo update-rc.d wirelessfix.sh defaults
Reboot... I can assure this works..
Well, if you're unlucky enough and it shouldn't work you can use these old deprecated methods...
METHOD 1) -- Patching your kernel
Hardy Heron Kernel 2.6.24 allows the use of (rev 01) hardware, but not (rev 02). If you apply a patch to the kernel you may use (rev 02) hardware but no more (rev 01). So Be careful!
To understand if you got (rev 01) or (rev 02) hardware, type in terminal
You got to compile a patched kernel and then install it.
Before you follow this method please take a backup of your data, the result could be a damage of your ubuntu installation...
Let's compile a patched kernel from the linux-source package:
Code:
sudo apt-get install linux-source
mkdir ~/src
cd ~/src
tar xjvf /usr/src/linux-source-2.6.24.tar.bz2
cd linux-source-2.6.24
Now let's configure it. We will re-use the configuration of the already running kernel:
Code:
sudo cp -vi /boot/config-`uname -r` .config
We'll need some packages now for the next step
Code:
sudo apt-get install libncurses5 libncurses5-dev
Now let's run:
Code:
sudo make menuconfig
Here you can choose your modules. You won't need this, but i suggest you to unselect "Kernel Debugging" (under "Kernel Hacking) for a lighter kernel.
Before compiling our kernel, we need to patch it!
Be sure yo ugot the necessary packages:
Code:
sudo apt-get install linux-source-2.6.24 kernel-package build-essential
Download the patch:
http://linuxwireless.org/download/b4....24_for_4311_2
Drag and drop the patch file in the directory /yourusername/src/linux-headers-2.6.24-18-generic (well the name of the folder may be a bit different...however there should be only one!)
Now, in terminal:
Code:
sudo patch -p1 --dry-run < patch_2.6.24_for_4311_2
If all looks good, re-run the patch command and remove the --dry-run to do it for real.
Now we got to compile our patched kernel!
If you got a dual core or quad processor, you'll be happy to use it! Give this info to the terminal only
If you got a Dual Core:
Code:
export CONCURRENCY_LEVEL=3
If you got a Quad Core:
Code:
export CONCURRENCY_LEVEL=5
because the number in the end means 1 + "the number of your processors".
Now, finally, let's compile our patched kernel (copy and paste as it is written):
Code:
sudo fakeroot make-kpkg --initrd --append-to-version=-some-string-here kernel-image kernel-headers
Let it compile...
When it has finished, you got your patched kernel in the folder /home/yourusername/src/ directory.
It is a *deb archive (there should be two packages, one for the image, one for the headers).
Install it and enjoy...
p.s. perhaps I've forgotten one or two packages needed to perform all the operations i posted. In this case the terminal should help you
Now let's install the broadcom driver cutter package:
Code:
sudo apt-get install b43-fwcutter
It should work by now... if it doesn't, let's try the ndiswrapper way:
METHOD 2) -- The return of ndiswrapper!
Again, let's blacklist the native bcm43xx driver (that should be blacklisted by default in Hardy Heron):
Code:
echo 'blacklist bcm43xx' | sudo tee -a /etc/modprobe.d/blacklist
Let's install ndiswrapper (here I explain the text-terminal way, you can install these packages with synaptic package manager too, where there's also the graphical interface for ndiswrapper : ndisgtk - you can try that too)
Code:
sudo apt-get install ndiswrapper-utils-1.9
let's create a driver folder:
Code:
mkdir ~/bcm43xx; cd ~/bcm43xx
Now let's download the drivers:
First, let's download cabextract to extract them:
Code:
sudo apt-get install cabextract
Now, let's download the drivers:
Code:
wget ftp://ftp.compaq.com/pub/softpaq/sp34001-34500/sp34152.exe
And let's extract the drivers:
Code:
cabextract sp34152.exe
Now let's configure ndiswrapper:
Code:
sudo ndiswrapper -i bcmwl5.inf
Let's see if everything it's ok
The result should be driver installed, hardware present.
Now let's go forward:
Then:
Code:
sudo modprobe ndiswrapper
Then:
Code:
sudo cp /etc/network/interfaces /etc/network/interfaces.orig
Then:
Code:
echo -e 'auto lo\niface lo inet loopback\n' | sudo tee /etc/network/interfaces
Then:
Code:
sudo ndiswrapper -m
Then:
Code:
echo 'ndiswrapper' | sudo tee -a /etc/modules
Then:
Code:
echo 'ENABLED=0' | sudo tee -a /etc/default/wpasupplicant
Now it's important to remove he firmware extraction tool if you have installed it. The Kernel of Hardy Heron needs a patch to work with your bcm4312 (rev 02) device, that breaks the compatibility with (rev 01 hardware). Therefore b43 won't work.
Code:
sudo aptitude remove b43-fwcutter
Now we got to apply a trick to make the module "ssb" not to load before "ndiswrapper" (preventing it from working:
Code:
sudo gedit /etc/init.d/wirelessfix.sh
Paste the followings in the opened text file (wirelessfix.sh)
#!/bin/bash
modprobe -r b44
modprobe -r b43
modprobe -r b43legacy
modprobe -r ssb
modprobe -r ndiswrapper
modprobe ndiswrapper
modprobe b44
Then in the terminal:
Code:
cd /etc/init.d/ && sudo chmod 755 wirelessfix.sh
Finally:
Code:
sudo update-rc.d wirelessfix.sh defaults
Reboot, your wireless should work! If you had no luck still, we can try recompiling ndiswrapper from source:
Let's remove Stock ndiswrapper (paste every code that follows in the terminal, as usual...)
Code:
sudo modprobe -r ndiswrapper
Code:
sudo ndiswrapper -r bcmwl5
Code:
sudo apt-get remove ndiswrapper-utils
Code:
sudo rm -r /etc/ndiswrapper/
Code:
sudo rm -r /etc/modprobe.d/ndiswrapper
Now, REBOOT.
Compile and Install New ndiswrapper
Code:
sudo apt-get update
Code:
sudo apt-get install build-essential
Code:
sudo apt-get install linux-headers-`uname -r`
Code:
sudo ln -s /usr/src/linux-`uname -r` /lib/modules/`uname -r`/build
Code:
mkdir -p ~/bcm43xx/ndiswrapper; cd ~/bcm43xx/ndiswrapper
Code:
sudo wget http://downloads.sourceforge.net/ndiswrapper/ndiswrapper-1.52.tar.gz -Ondiswrapper.tar.gz
Code:
tar xvzf ndiswrapper.tar.gz
Redo Some Steps That Were Undone by ndiswrapper Compilation/Installation
Code:
sudo ndiswrapper -i bcmwl5.inf
Code:
sudo modprobe ndiswrapper
Code:
sudo ndiswrapper -m
Now, reboot... everything should work!!
Disclaimer : i took some info from these two guides, who deserve my thanx:
https://help.ubuntu.com/community/Wi...358e4b611353c0
http://ubuntuforums.org/showthread.p...hlight=BCM4312
CORRECT ALLOCATION OF VIDEO MEMORY
It should have been fixed with the last updates. Do the changes below only if you experience troubles.
The "intel" driver is not able to do a correct allocation of the video memory. But we can solve manually the problem:
In terminal:
sudo gedit /etc/X11/xorg.conf
Then add the underlined options in the text file
Code:
[...]
Section "Device"
Identifier "Videocard0"
Driver "intel"
Option "LinearAlloc" "6144"
Option "CacheLines" "agoodnumberyoudecide"
Option "AperTexSize" "agoodnumberyoudecide"
[...]
From the intel website:
Option "CacheLines" "integer" Decreasing this amount leaves more for 3D textures. Increasing it can improve 2D performance at the expense of 3D performance. The default used for a specific configuration can be found by exam- ining the Xorg log file
Option "AperTexSize" "integer" Default: 32768
I suggest these settings: Cachelines = 768 ; AperTexSize = 131072
However you decide those values! Still pasting from the intel website:
Option "CacheLines" "integer"
This allows the user to change the amount of graphics memory
used for 2D acceleration and video when XAA acceleration is
enabled. Decreasing this amount leaves more for 3D textures.
Increasing it can improve 2D performance at the expense of 3D
performance. Default: depends on the resolution, depth, and
available video memory. The driver attempts to allocate space
for at 3 screenfuls of pixmaps plus an HD-sized XV video. The
default used for a specific configuration can be found by exam-
ining the Xorg log file.
Option "AperTexSize" "integer"
Give the size in kiB of the AGP aperture area that is reserved
for the DRM memory manager present in i915 drm from version
1.7.0 and upwards, and that is used with the 3D driver in Mesa
from version 6.5.2 and upwards. If the size is set too high to
make room for pre-allocated VideoRam, the driver will try to
reduce it automatically. If you use only older Mesa or DRM ver-
sions, you may set this value to zero, and activate the legacy
texture pool (see Option "Legacy3D" ). If you run 3D programs
with large texture memory requirements, you might gain some per-
formance by increasing this value. Default: 32768.
4) CLOSING THE LID MAKES YOUR SYSTEM FREEZE
Try this command in the terminal:
Code:
sudo gedit /etc/rc.local
Put this line in the text file (before the "exit 0" line):
Code:
echo 1 > /proc/acpi/video/*/DOS
now in terminal
Code:
sudo gedit /etc/modprobe.d/options
add the following string (thanx to pleusicles for this tip)
Code:
options video no_automatic_changes=0
Save, close, reboot and try. It should work!
5) CONFIGURING THE MICROPHONE
It should not be a problem if you're eager to configure your audio devices... however there's an easy howto if you wanna use quickly programs like Skype...
1 right click on the audio icon on the upper bar on the right, then "open volume control"
2 Edit / Preferences
3 Enable everything
4 Raise the volume of the microphones, then in the "recording" section, enable the microphone in the "capture side"
It should work... cheers !!!
Bookmarks