Sul mio piccolo netbook con scheda video nvidia ion, processore atom ho deciso di compilarmi un kernel customizzato, il sistema operativo che equipaggia il portatile è archlinux per la compilazione ho scelto il metodo classico.
Se volete pure voi cimentarvi nell'impresa seguite questa guida, scaricate i sorgenti del kernel dal sito www.kernel.org
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.1.tar.bz2
scompattate i sorgenti all'interno della vostra home.
tar jxvf linux-2.6.36.1.tar.bz2
entrate dentro la nuova cartella.
cd linux-2.6.36.1
iniziate la configurazione, scrivete:
make menuconfig
nella sezione general setup in local version scrivete -ARCH in modo che la compilazione del kernel dentro /lib/modules non sovrascrivi il kernel precedente.
[*] Prompt for development and/or incomplete code/drivers
() Cross-compiler tool prefix
(-ARCH) Local version - append to kernel release
in linea di massima ho proseguito lasciando tutto di default tranne che per il processore che ho scelto atom.
finita la vostra configurazione salvate i risultati all'interno del file .config cliccate su Save an Alternate Configuration File
per uscire cliccate su exit.
date i comandi per la compilazione in questo ordine:
make dep bzImage
make modules
installate i moduli del kernel all'interno della cartella /lib/modules/
sudo make modules_install
il comando dovrebbe darvi alla fine questo risultato.
DEPMOD 2.6.36.1-ARCH
copiate l'immagine bzImage dentro la cartella /boot cambiandogli il nome in vmlinuz2631-ARCH.
sudo cp -fr arch/x86/boot/bzImage /boot/vmlinuz26361-ARCH
utilizzate il comando mkinitcpio per creare l'immagine initramfs del kernel, come nome per creare l'immagine date questo 2.6.36.1-ARCH questa dicitura si è ottenuta dal risultato finale del comando sudo make modules_install.
sudo mkinitcpio -k 2.6.36.1-ARCH -g /boot/kernel26361-ARCH.img
modificate il file menu.lst inserendo le due nuove voci.
sudo nano /boot/grub/menu.lst
title arch 2.6.36.1-ricompilato
root (hd0,0)
kernel /boot/vmlinuz26361-ARCH root=/dev/sda1 ro
initrd /boot/kernel26361-ARCH.img
# (0) Arch Linux
title Arch Linux
root (hd0,0)
kernel /boot/vmlinuz26 root=/dev/sda1 ro
initrd /boot/kernel26.img
# (1) Arch Linux
title Arch Linux Fallback
root (hd0,0)
kernel /boot/vmlinuz26 root=/dev/sda1 ro
initrd /boot/kernel26-fallback.img
# (2) Windows
#title Windows
#rootnoverify (hd0,0)
#makeactive
#chainloader +1
benissimo abbiamo finito potete riavviare il pc, vi ricordo che aggiornando il kernel i moduli caricati da un precedente kernel devono essere ricompilati.
Se utilizzate i driver nvidia al riavvio vi troverete con schermata nera, bisognerà ricompilare i driver con il nuovo kernel customizzato.
per installare i driver servitevi di abs.
da terminale scrivete:
sudo pacman -S abs
sudo abs
createvi all'interno della vostra home un ambiente idoneo per ricompilarvi i driver.
cd
mkdir -p devel/abs/
copiate la cartella nvidia ed il suo contenuto da /var/abs/extra/nvidia nella cartella abs che avete creato all'interno della vostra home.
cp -fr /var/abs/extra/nvidia $HOME/devel/abs/
entrate dentro la cartella nvidia è cambiate i file PKGBUILD ed nvidia.install modificando le voci che puntano ai sorgenti del kernel.
nano PKGBUILD
# $Id: PKGBUILD 98622 2010-11-11 19:49:00Z ibiru $
# Maintainer : Thomas Baechler
pkgname=nvidia
pkgver=260.19.21
_kernver='2.6.36.1-ARCH'
pkgrel=2
pkgdesc="NVIDIA drivers for kernel26."
arch=('i686' 'x86_64')
url="http://www.nvidia.com/"
depends=('kernel26>=2.6.36' 'kernel26<2.6.37' utils="${pkgver}">
makedepends=('kernel26-headers>=2.6.36' 'kernel26-headers<2.6.37')
conflicts=('nvidia-96xx' 'nvidia-173xx')
license=('custom')
install=nvidia.install
if [ "$CARCH" = "i686" ]; then
_arch='x86'
_pkg="NVIDIA-Linux-${_arch}-${pkgver}"
source=("ftp://download.nvidia.com/XFree86/Linux-${_arch}/${pkgver}/${_pkg}.run")
md5sums=('2ec917f51e752802646920e9bcd747e7')
elif [ "$CARCH" = "x86_64" ]; then
_arch='x86_64'
_pkg="NVIDIA-Linux-${_arch}-${pkgver}-no-compat32"
source=("ftp://download.nvidia.com/XFree86/Linux-${_arch}/${pkgver}/${_pkg}.run")
md5sums=('9db612fb5679249627d52bfff0e16f4f')
fi
build() {
cd $srcdir
sh ${_pkg}.run --extract-only
cd ${_pkg}/kernel
make SYSSRC=/lib/modules/${_kernver}/build module
}
package() {
install -D -m644 $srcdir/${_pkg}/kernel/nvidia.ko \
$pkgdir/lib/modules/${_kernver}/kernel/drivers/video/nvidia.ko
install -d -m755 $pkgdir/etc/modprobe.d
echo "blacklist nouveau" >> $pkgdir/etc/modprobe.d/nouveau_blacklist.conf
sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" $startdir/nvidia.install
}
nano nvidia.install
post_install() {
KERNEL_VERSION='2.6.36.1-ARCH'
depmod $KERNEL_VERSION
}
post_upgrade() {
post_install
rmmod nvidia || echo 'In order to use the new nvidia module, exit Xserver and unload it manually.'
}
post_remove() {
KERNEL_VERSION='2.6.36.1-ARCH'
depmod $KERNEL_VERSION
}
salvate i file, compilate scrivendo:
makepkg
alla fine vi troverete con il pacchetto nvidia pronto per essere installato con pacman.
sudo pacman -U nvidia-260.19.21-2-i686.pkg.tar.xz
riavviate il pc il modulo nvidia verrà carricato senza problema.
Nessun commento:
Posta un commento