Arriva il giorno che ogni pinguino ha voglia (anche senza la reale necessità) di compilare un kernel vanilla, cioè un kernel senza le patch applicate dalla distribuzione utilizzata ![]()
Questa la macchina utilizzata per l’attività:
- Acer Aspire 5634WLMi
- Intel Core 2 Duo T5600
- NVIDIA GeForce Go 7300
- Intel Pro/Wireless 3945 802.11 Wireless
- Audio Intel 82801G
Per prima cosa, ci servono alcuni pacchetti dai repository:
sudo apt-get install build-essential bin86 kernel-package libqt3-headers libqt3-mt-dev ncurses-dev libncurses5 libncurses5-dev gawk linux-kernel-develquindi, usando
sudo -s -H
saremo root senza bisogno, per ogni comando di amministrazione, anteporre sudo.
Ora andiamo nella cartella /usr/src:
cd /usr/src
e da qui eseguiamo il download del tar.bz2 direttamente dal sito kernel.org:
wget -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.2.tar.bz2
Oltre al kernel però, ci servono degli altri pacchetti “a contorno”:
- Driver per la scheda grafica NVIDIA
- Driver per la scheda Intel Pro/Wireless 3945 802.11 Wireless
- Driver Alsa per la scheda audio 82801G
e questi li mettiamo in una cartella apposita:
mkdir EXTRAscaricare i driver 802.11 e ipw3945 rispettivamente da qui e qui, oltre a questi ci servono anche altri files a support ed i driver Alsa:
cd EXTRA
wget -c http://download.nvidia.com/XFree86/Linux-x86/1.0-9629/NVIDIA-Linux-x86-1.0-9629-pkg1.run
wget -c http://bughost.org/ipw3945/ucode/ipw3945-ucode-1.13.tgzOk, ora diamo inizio ai balli
wget -c http://bughost.org/ipw3945/daemon/ipw3945d-1.7.22.tgz
wget -c ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.13.tar.bz2
![]()
Andiamo nella cartella dei sorgenti
cd /usr/src
scompattiamo il files che abbiamo scaricato
tar jxvf linux-2.6.18.2.tar.bz2
se avevamo già un link alla cartella linux, lo rinominiamo con la versione del kernel attuale
mv linux linux.`uname -r`
creiamo il nostro link
ln -s linux-2.6.18.2 linux
cd linux
La configurazione del kernel non è certamente una cosa semplice e alla portata di tutti, quindi è sempre meglio partire dalla precedente configurazione e concentrarsi sulle nuove funzionalità implementate
cp /boot/config-`uname -r` .config
make oldconfig
Verranno poste una serie di domande, non sempre semplici da capire, specialmente ai meno esperti, ai quali suggerisco di farsi aiutare dalla scelta di default o eventualmente includere (dove possibile) la funzionalità come modulo
O per i più temerari partire direttamente con un
make xconfig
e selezionare tutte funzionalità che vogliamo siano presenti
Terminata la configurazione possiamo partire con la compilazione:
make-kpkg clean
make-kpkg –initrd –append-to-version=-custom kernel_image kernel_headers
Invece di -custom possiamo specificare l’estensione che preferiamo
Prima di installare il nuovo pacchetto che abbiamo creato, è meglio fare il backup delle configurazioni di GRUB:
cp /boot/grub/menu.lst /boot/grub/menu.lst_backup
ora che siamo più tranquilli possiamo installare i pacchetti creati:
dpkg -i ../kernel-image-2.6.18.2-custom_10.00.Custom_i386.deb
dpkg -i ../kernel-headers-2.6.18.2-custom_10.00.Custom_i386.deb
Il secondo pacchetto possiamo anche non installarlo
![]()
per sicurezza andiamo a controllare quali sono le differenze nel menu.lst prima e dopo l’installazione dei nostri pacchetti:
diff /boot/grub/menu.lst /boot/grub/menu.lst_backup
dato che dobbiamo installare anche i driver per la nostra scheda video, è preferibile eseguire un backup del file xorg.conf
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf_backup
impostare i driver vesa invece di nvidia o nv
Section "Device"EndSection
Identifier “NVIDIA Corporation NVIDIA Default Card”
Driver “vesa”
BusID “PCI:1:0:0″
e rimuovere il vecchio pacchetto nvidia-glx se presente:
apt-get remove --purge nvidia-glx
e solo ora possiamo riavviare!
Una volta eseguito il boot, la scheda WiFi non è stata inizializzata, il sonoro non funziona e la risoluzione della nostra scheda video non è certo il massimo… mettiamoci all’opera per completare l’installazione!
Nuovamente entriamo come root:
sudo -s -H
e quindi fermiamo il server X
/etc/init.d/gdm stop
Andiamo nella cartella EXTRA che abbiamo precedentemente creato
cd /usr/src/EXTRA
scompattiamo i pacchetti per la scheda Wifi e installiamoli:
tar zxvf ieee80211-1.2.15.tgz
cd ieee80211-1.2.15
make
make install
cd ..
tar zxvf ipw3945-1.1.2.tgz
cd ipw3945-1.1.2
make
Quest’ultimo comando potrebbe dare errore, provare “make IEEE80211_IGNORE_DUPLICATE=y”
Andiamo avanti:
cd ..
tar zxvf ipw3945-ucode-1.13.tgz
cp ipw3945-ucode-1.13/ipw3945.ucode /lib/firmware/
tar zxvf ipw3945d-1.7.22.tgz
cp ipw3945d-1.7.22/x86/ipw3945d /sbin/ipw3945d
cd ipw3945-1.1.2
cp ipw3945.ko /lib/modules/2.6.18.2-custom/
Sistemiamo alcuni files necessari al caricamente del modulo ipw3945, ma facciamo come sempre un backup:
cd /etc/modprobe.d/
mv ipw3945 /etc/ipw3945.backup
cat > ipw3945
install ipw3945 /sbin/modprobe –ignore-install ipw3945 ; sleep 0.5 ; /sbin/ipw3945d –quiet
remove ipw3945 /sbin/ipw3945d –kill ; /sbin/modprobe -r –ignore-remove ipw3945
!
Un ultimo aggiornamento ai moduli del kernel
depmod -a
e la scheda WiFi funzionerà alla perfezione ![]()
Ora andiamo a sistemare la scheda video NVIDIA, installando i nuovi driver stable che ci consentono inoltre di poter installare AiGLX:
cd /usr/src/EXTRA
chmod +x NVIDIA-Linux-x86-1.0-9629-pkg1.run
sh ./NVIDIA-Linux-x86-1.0-9629-pkg1.run –extract-only
cd NVIDIA-Linux-x86-1.0-9629-pkg1
./nvidia-installer
E finalmente manca solo l’audio
cd /usr/src/EXTRA
tar jxvf alsa-driver-1.0.13.tar.bz2
cd alsa-driver-1.0.13
./configure –with-cards=hda-intel –with-sequencer=yes; make; make install
aggiungere in /etc/modprobe.d/alsa-base
# ALSA portion
alias char-major-116 snd
alias snd-card-0 snd-hda-intel
# module options should go here
# OSS/Free portion
alias char-major-14 soundcore
alias sound-slot-0 snd-card-0
# card #1
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
Finalmente, abbiamo finito!
Il kernel è installato con i driver necessari al suo funzionamento, un reboot e ci godiamo la nostra Ubuntu con kernel vanilla!
nn va una mazza..:)
dyve@a6j:~/driver/ipw3945-1.1.3$ sudo make
/bin/sh: Syntax error: “(” unexpected
/bin/sh: Syntax error: “(” unexpected
-e
ERROR: A compatible subsystem was not found in the following path[s]:
/lib/modules/2.6.19.1-divi/include/ /lib/modules/2.6.19.1-divi/
You need to install the ieee80211 subsystem from http://ieee80211.sf.net
and point this build to the location where you installed those sources, eg.:
% make IEEE80211_INC=/usr/src/ieee80211/
or use the ‘make patch_kernel’ within the ieee80211 subsystem to patch your
kernel sources.
make: *** [check_inc] Error 1
anche se metto il path nn va una mazza..
Hai provato a seguire anche il mio suggeimento=

“Quest’ultimo comando potrebbe dare errore, provare “make IEEE80211_IGNORE_DUPLICATE=y””
si ma nn funziona..ora sto aprendo un topic
cmq ti aggiorno..sono riuscito ad installare tutto ma pare che il demone ipw3945d abbia dei problemi
difatti mentre tutti sono marcati col nome del kernel..in /sbin l’unico che nn va e’ guardacaso ipw3945d
No, è normale che ipw3945d non abbia la versione del kernel nel nome, non penso sia quello il problema
okm tutto a posto..;)
ciao, è possibilie che “make-kpkg –initrd –append-to-version=-custom kernel_image” sia sbagliato? Da me non lo prende!
Prima di “initrd” e di “append” non ci vogliono due trattini “–” anziché il trattino lungo? Così ho visto altrove.
Di nuovo io…
ATTENZIONE! Ho visto che i due trattini che avevo scritto io li ha trasformati in trattino lungo!!! Qualcosa non va…
E’ un problema di visualizzazione del post, a codice risultano essere 2 trattini, ma effettivamente si vede un trattino lungo… ora indago meglio…
Grazie della segnalazione
Grazie a te per questa guida
Ho visto che non è un problema solo tuo.
Leggi qui: http://ubuntubible.wordpress.com/2006/11/19/guida-4-aggiornare-firefox-in-ubuntu-dapper/
ciao paper0k,
quando dò il “./configure ecc. ecc.” per installare i driver della scheda audio, mi dà questo errrore:
“checking for power management… yes
checking for which soundcards to compile driver for… configure: error: Unknown soundcard snd-als4000
make all-deps
make[1]: Entering directory `/usr/src/EXTRA/alsa-driver-1.0.13′
make[1]: Nothing to be done for `all-deps’.
make[1]: Leaving directory `/usr/src/EXTRA/alsa-driver-1.0.13′
Please, run the configure script as first…
rm -f /snd*.*o /persist.o /isapnp.o
make[1]: Entering directory `/usr/src/EXTRA/alsa-driver-1.0.13/acore’
Makefile:6: /usr/src/EXTRA/alsa-driver-1.0.13/Makefile.conf: Nessun file o directory
/usr/src/EXTRA/alsa-driver-1.0.13/Rules.make:75: /Rules.make1: Nessun file o directory
make[1]: *** No rule to make target `/Rules.make1′. Stop.
make[1]: Leaving directory `/usr/src/EXTRA/alsa-driver-1.0.13/acore’
make: *** [install-modules] Error 1
root@prova-desktop:/usr/src/EXTRA/alsa-driver-1.0.13#”
Hai la soluzione?
Puoi riprovare a dare questi comandi singolarmente?
./configure –with-cards=hda-intel –with-sequencer=yes
make
make install
l’avevo già provato ma mi dà sempre quell’errore!
E’ da un po’ che provo a far funzionare la scheda audio, senza risultati. Ho richiesto aiuto anche qui http://forum.ubuntu-it.org/index.php/topic,50699.msg313871.html#msg313871 ma non ho potuto risolvere.
E’ l’ora d’abbandonare l’impresa!