Kompilering av Linux-kjernen i Ubuntu 6.10
Prerequisites
Forhåndskrav: Installer Ubuntu Linux… og bli kjent med nyhetene… i kjernen 2.6.19.
Les også spørsmålet om “kernel panic” under teksten på http://kerneltrap.org/node/7440
0) Studer
http://ubuntuforums.org/showthread.php?t=217657&highlight=compile+kernel og Kernel-Build-HOWTO.html
1) Installer kompilator og andre nødvendigheter (necessities)
Utfør:
$ sudo apt-get install build-essential kernel-package gcc libncurses5 libncurses5-dev
Andre (ikke obligatoriske) pakker:
$ sudo apt-get install libqt3-mt-dev # QT pakker som behøves av: make xconfig i pkt 5)
$ sudo apt-get install libglade2-dev libgtk2.0-dev libglib2.0-dev # GTK pakker som behøves av: make gconfig i pkt 5)
2) Hent kildekoden til linux kernel 2.6.19 (= sk. ren vanilla kjerne)
Du kan hente kildekoden til kjernen fra http://kernel.org, men benytt helst en lokal mirror (speilsait) dersom mulig.
Norske brukere kan laste ned fra: ftp://ftp.no.kernel.org/pub/linux/kernel/v2.6/
Pr. 01.des.2006, nyeste versjonen er Linux 2.6.19. Uannsett, sjekk kernel.org og ta nyeste, ferskeste vanilla kjerne.
Jeg foretrekker å downloade med wget -c.
$ mkdir $HOME/tmp; cd $HOME/tmp
$ wget -c http://www.no.kernel.org/pub/linux/kernel/v2.6/linux-2.6.19.tar.bz2
Alternativt nedlastingssted
$ wget -c ftp://ftp.no.kernel.org/pub/linux/kernel/v2.6/linux-2.6.19.tar.bz2
Ta også en kopi av linux-2.6.19.tar.bz2.sign og les…. hvordan du verifiserer kildekoden (tar.bz2 pakken) etter nedlastinga.
Jeg droppet denne sjekken.
Spis kun vaniljeiskrem ! Den er ikke forurenset av leverandørenes egne søtningsmidler og kode.
3) Bli root-bruker eller utfør kommandoene vha sudo
Du kan normalt skaffe root-rettigheter ved å utføre
$ sudo -s -H
eller
$ su – (dersom du har aktivert root-kontoen i Ubuntu. Aktivering betyr å gi root-kontoen et passord. Mer om dette i ‘man passwd’, studer opsjonene -l og -u.)
4) Forberede kildekoden
Alle kommandoene herunder skal utføres som root eller sudo.
Kopier først nedlastet linux-2.6.19.tar.bz2 til /usr/src katalogen.
# mv linux-2.6.19.tar.bz2 /usr/src
# cd /usr/src
Sjekk om filen er der
# ls -l linux-2.6.19.tar.bz2
-rw-r–r– 1 moma moma 42733268 2006-12-01 12:54 linux-2.6.19.tar.bz2
Unzip2 og untar
# tar -xvjf linux-2.6.19.tar.bz2
Fjern gammel og creer ny symbolsk lenke fra linux-2.6.19 til /usr/src/linux
# rm linux
# ln -s linux-2.6.19 linux
5) Konfigurer kjerne
Konfigurering betyr at du bestemmer hvilke egenskaper og drivere linux-kjernen skal inkludere og kompilere.
Noen egenskaper (drivere, moduler) kompileres inni kjernen mens andre kompileres og lastes inn (ved behov) som moduler vha modprobe eller insmod kommandoer.
Konfigurasjonen lagres i “.config” filen i /usr/src/linux/ katalogen.
# cd /usr/src/linux
Ta kopi av siste (stabile) konfigurasjon. Gammel .config fil vil gi oss et bra grunnlag, ellers må vi begynne helt fra skratch og det er ikke noe morro.
# cp /boot/config-`uname –kernel-release` ./.config
Utfør automatisk sjekk av NYE kernel-opsjoner, nye egenskaper.
Trykk på [Enter] dersom du får et spørsmål av ukjent karakter. Jeg ga default svar med [Enter] på alle spørsmål.
# make oldconfig
Til slutt, la oss utføre en manuell kjernekonfigurasjon.
# make menuconfig
(Merk: “make xconfig” og “make gconfig” gjør akkurat det samme som “make menuconfig”, men de har penere grafisk gui.
Vanlig menuconfig er tekstbasert, laget med ncurses og trenger ei X-windows. Les mer om dette i /usr/src/linux/README
La oss aktivere noen egenskaper i kjernen.
‘*’ betyr at modulen kompileres inni kjernen. M = lastes inn som modul. Blank = modulen, driveren eller egenskapen benyttes ei.
Følg menyvalget og press mellomrom-tast (space-tast) for å endre verdien:
Konfigurasjonen av Seriell og Parallel ATA har fått nye valg og spørsmål i v2.6.19.
“make oldconfig” klarer ikke å sette de nye variablene riktig så vi må gjøre det manualt ellers vil ikke maskinen finne SATA / PATA drevne harddisker.
Du kan lese mer om dette i “Libata PATA (Parallel ATA) merge” seksjonen i http://kernelnewbies.org/LinuxChanges
Den sier bl.a: “”It is probably worth reiterating that if you have SATA drives, and you do a make oldconfig from a 2.6.18 or previous kernel, your system will not boot unless you specifically go in and enable the new SATA subsystem, and the driver for your controller.””
Så la oss konfigurere det nye SATA subsystemet. Bla til
Device Drivers —>
Serial ATA (prod) and Parallel ATA (experimental) drivers —>
og sett “*” i ‘ATA device support’.
Alle drivere inkluderes som moduler, altså sett “M” på alle driverlinjer. Listen er nokså lang.
<*> ATA device support
<M> AHCI SATA support
<M> ServerWorks Frodo / Apple K2 SATA support
<M> Intel PIIX/ICH SATA support
<M> Marvell SATA support (HIGHLY EXPERIMENTAL)
<M> NVIDIA SATA support
<M> Pacific Digital ADMA support
<M> Pacific Digital SATA QStor support
<M> Promise SATA TX2/TX4 support
<M> Promise SATA SX4 support
<M> Silicon Image SATA support
<M> Silicon Image 3124/3132 SATA support
<M> SiS 964/180 SATA support
<M> ULi Electronics SATA support
<M> VIA SATA support
<M> VITESSE VSC-7174 / INTEL 31244 SATA support
<M> ALi PATA support (Experimental)
<M> AMD/NVidia PATA support (Experimental)
<M> ARTOP 6210/6260 PATA support (Experimental)
<M> ATI PATA support (Experimental)
…..
…..
<M> SiS PATA support (Experimental)
<M> VIA PATA support
<M> Winbond SL82C105 PATA support
Du kan selvfølgelig bare velge de drivere som matcher din maskinvare. Benytt lspci for å finne ut hvilken harddiskkontroller maskinen din har.
$ lspci
….
00:08.0 IDE interface: nVidia Corporation CK8S Parallel ATA Controller (v2.5) (rev a2)
00:0a.0 IDE interface: nVidia Corporation CK8S Serial ATA Controller (v2.5) (rev a2)
….
Som du ser, denne PCn har Nvidias CK8S Parallel og Seriell ATA kontroller.
Altså jeg trenger kun disse disse to (2) Nvidias/AMD drivere. Jeg kan også kompilere støtten for Nvidias diskkontoller inni kjernen ved å sette “*” i
<*> NVIDIA SATA support
og i
<*> AMD/NVidia PATA support (Experimental)
selv om “M” (inkluder som modul) fungerer helt greit og uten problemer. Husk også at kjernen laster inn kun de modulene den trenger i tillegg de moduler du laster inn manuelt vha. modprobe kommando.
—————–
Konfigurer multimedia
Jeg har Hauppauge WinTV PVR 350 TV-kort. Den har CX2341x MPEG decoder/encoder chipset og den benytter ivtv driveren. Ivtv driveren (som matcher kjernen 2.6.19) må jeg kompilere fra sourcen men noen opsjoner må først aktiveres i kjernen.
Returner til hovedmenyen og bla til
Device Drivers —>
Multimedia devices —>
Video Capture Adapters —>
[ ] Enable advanced debug functionality
La dette valget være tomt
[ ] Autoselect pertinent encoders/decoders and other helper chips
Bla videre til
Encoders/decoders and other helper chips —>
Og velg alle drivere som innlastbare (loadable) moduler. Altså sett “M” på alle linjene i listen.
— Audio decoders
<M> Simple audio decoder chips
<M> Philips TDA7432 audio processor
<M> Philips TDA9840 audio processor
<M> Philips TDA9875 audio processor
<M> Philips TEA6415C audio processor
<M> Philips TEA6420 audio processor
<M> Micronas MSP34xx audio decoders
<M> Cirrus Logic CS53L32A audio ADC
<M> Texas Instruments TLV320AIC23B audio codec
<M> Wolfson Microelectronics WM8775 audio ADC with input mixer
<M> Wolfson Microelectronics WM8739 stereo audio ADC
— Video decoders
<M> BT819A VideoStream decoder
<M> BT856 VideoStream decoder
<M> BT866 VideoStream decoder
<M> KS0127 video decoder
— Philips SAA7110 video decoder
<M> Philips SAA7111 video decoder
<M> Philips SAA7114 video decoder
<M> Philips SAA7113/4/5 video decoders
<M> Philips SAA7191 video decoder
<M> Texas Instruments TVP5150 video decoder
<M> vpx3220a, vpx3216b & vpx3214c video decoders
— Video and audio decoders
<M> Conexant CX2584x audio/video decoders
— MPEG video encoders
— Conexant CX2341x MPEG encoders <— Virker som dette valget er allrede satt.
— Video encoders
<M> Philips SAA7127/9 digital video encoders
<M> Philips SAA7185 video encoder
<M> Analog Devices ADV7170 video encoder
<M> Analog Devices ADV7175 video encoder
— Video improvement chips
<M> NEC Electronics uPD64031A Ghost Reduction
<M> NEC Electronics uPD64083 3-Dimensional Y/C separation
Punkt 12) forklarer hvordan du kompilerer ivtv (Hauppauge PVR 250/350) driveren.
—————–
Returner til hovedmenyen og bla til
General setup —>
[*] Kernel .config support
[*] Enable access to .config through /proc/config.gz
Selve kernel-config blir nå tilgjengelig i det virtuelle /proc/ filsystemet. Du vil kunne gjøre
$ zcat /proc/config.gz # zcat gjør cat på gzip filer.
Denne funksjonen er bare en fancy måte å finne ut om kjernekonfigurasjonen senere. Config.gz stjeler noen kb av minnet.
Ikke velge denne egnskapen dersom du er sparsommelig av natur.
—————–
Velg timer frequenzy 1000 HZ dersom denne kjernen benyttes i en desktop PC (altså med grafisk GUI).
Bla til
Processor type and features —>
Timer frequency (1000 HZ) —>
og velg 1000 HZ. Den gir lav latency i X windows, altså du opplever at X GUIen gir rask respons.
Velg 250 HZ dersom du benytter maskinen som desktop med noen serverprosesser.
—————–
Aktiver ext4 (ext4dev) filsystem. Hensikten er å teste utviklingsversjonen av Ext4 i pkt 13).
Bla til
File systems —>
<M> Ext4dev/ext4 extended fs support development (EXPERIMENTAL)
[*] Ext4dev extended attributes (NEW)
[*] Ext4dev POSIX Access Control Lists
[*] Ext4dev Security Labels
Behold de andre filsystemene slik de er.
Jeg ser også at kjernen 2.6.19 kommer med driver for Hauppauge WinTV-PVR USB2 support (VIDEO_PVRUSB2). Bravo !
6) Build kjernen
Build betyr at du kompilerer kildekoden til kjernen med opsjoner du valgte i pkt 5).
Den vil lage selve kjernen “vmlinuz-2.6-xx” og en sk. initial ramdisk (initrd.img-2.6-xx) samt 2 Debian-pakker som installerer alle delene der de skal.
Fjern evt. spor etter forrige kompilering
# cd /usr/src/linux
# make-kpkg clean
Kompiler kjerne.
Jeg sjekket i min /boot/grub/menu.lst og ser at tidligere kjerner har initrd (initial ramdisk) modul. Derfor gjør
# make-kpkg -initrd –revision=custom.1.5 –append-to-version=-686 kernel_image kernel_headers modules_image
# make-kpkg –initrd –stem linux –revision=custom.1.0 kernel_image (første forsøk)
Merk. Du bør endre revisjonsstrengen “custom.1.5” for hver ny kompilering eller test.
F.eks neste revisjonsstreng kan godt være “custom.1.6”. Du velger teksten selv.
Kompileringa og build tar noen minutter. Ta en lunsj eller litt lengre kaffepause og drømm om en distcc…
—
Build skal outputte 2 ferdige Debian pakker. Verifiser om pakkene finnes.
# cd /usr/src
# ls -l *deb
-rw-r–r– 1 root src 7836872 2006-12-02 14:23 ../linux-headers-2.6.19-686_custom.1.5_i386.deb
-rw-r–r– 1 root src 19597124 2006-12-02 14:22 ../linux-image-2.6.19-686_custom.1.5_i386.deb
Ser OK ut.
7) Installer kjernen i ditt system
Installer header filer og Linux-kjerne. Pass på å ta riktige .deb filer.
# cd /usr/src
# dpkg -i linux-headers-2.6.19-686_custom.1.5_i386.deb linux-image-2.6.19-686_custom.1.5_i386.deb
….
Preparing to replace linux-headers-2.6.19-686 1 (using linux-headers-2.6.19-686_custom.1.5_i386.deb) …
Unpacking replacement linux-headers-2.6.19-686 …
Setting up linux-image-2.6.19-686 (1) …
Running depmod.
Not updating image symbolic links since we are being updated/reinstalled
(custom.1.1 was configured last, according to dpkg)
Running postinst hook /sbin/update-grub.
Searching for GRUB installation directory … found: /boot/grub
Testing for an existing GRUB menu.list file … found: /boot/grub/menu.lst
Searching for splash image … none found, skipping …
Found kernel: /boot/vmlinuz-2.6.19-686
Found kernel: /boot/vmlinuz-2.6.17-10-generic
Found kernel: /boot/memtest86+.bin
Updating /boot/grub/menu.lst … done
….
Sjekk nå om “vmlinuz-2.6.19-686” og “initrd.img-2.6.19-686” havnet i /boot katalogen.
# ls -l /boot
-rw-r–r– 1 root root 771282 2006-12-01 20:34 System.map-2.6.19-686
-rw-r–r– 1 root root 1693573 2006-12-01 20:34 vmlinuz-2.6.19-686
-rw-r–r– 1 root root 75613 2006-12-01 19:58 config-2.6.19-686
-rw-r–r– 1 root root 5279044 2006-12-01 19:42 initrd.img-2.6.19-686
…
Ja, det ser meget bra ut.
—-
Merk: Du kan evt. slette gamle oppføringer fra /lib/modules/ og /boot/ dersom du konfigurerer og kompilerer samme kjernen flere ganger.
Ellers vil dpkg -i spørre om det er OK å erstatte tidligere kjerne og moduler/drivere.
# rm -fr /lib/modules/2.6.19-686
# rm /boot/*2.6.19*
! eller gjør det på en penere og riktigere måte. List først alle installerte (ii) 2.6.19 kjerner og moduler.
# dpkg -l “*2.6.19-686*” | grep ii
og avinstaller dem på en pen måte
# dpkg -r linux-headers-2.6.19-686
# dpkg -r linux-image-2.6.19-686
8) Sjekk og modifiser menu.lst (=grub configurasjon for boot)
Debian pakken (ved dpkg -i ) skal ha skrevet en ferdig oppføring i /grub/menu.lst, men la oss likevel sjekke det.
I de fleste tilfeller vil boot og grub-konfigurasjon ligge på samme disk som selve kjernen.
Men min boot-partisjon og grub ligger på /dev/sdb2 (en testdisk for Ubuntu 6.10). Så jeg må endre menu.lst der. Eg gjer
$ sudo gedit /media/sdb2/boot/grub/menu.lst
Du bør sikkert gjøre
$ sudo gedit /boot/grub/menu.lst
Våre nye kjerne skal ha følgende boot-definisjon. Erstatt sda og hd0 med dine verdier.
title Ubuntu, kernel 2.6.19-686 (custom.1.2)
root (hd0,7)
kernel /boot/vmlinuz-2.6.19-686 root=/dev/sda8 ro quiet splash elevator=cfq
initrd /boot/initrd.img-2.6.19-686
quiet
savedefault
boot
———-
Du bør alltid beholde noen av de gamle, stabile kjernene i noen uker som en sikkerhet.
Flytt gamle tittel-linjer ned i menyen men behold dem!
Grupper menyvalgene. Slik lager du en skillelinje (en lang strek) mellom menyvalgene.
title ——————————————–
root
Når du først er i menu.lst, sjekk også verdiene på:
default 0 # 0=første menyvalg (tittel), 1=andre menyvalg osv..
timeout 15 # Velg ‘default’ menyvalg automatisk etter noen (f.eks 15) sekunder.
———-
Merk at jeg har lagt elevator=cfq i slutten av kernel-linjen.
Den instruerer kjernen til å bruke CFQ I/O scheduler… Ryktene sier at CFQ gir en bra gjennomsnittlig disk I/O ytelse. (? har egentlig lite peiling om dette ?) Du kan også sette CFQ I/O som eneste alternativ i kjernekonfigurasjonen (i make menuconfig). Se
Block layer —>
IO Schedulers —>
< > Anticipatory I/O scheduler
< > Deadline I/O scheduler
<*> CFQ I/O scheduler
Default I/O scheduler (CFQ) —>
Les: http://ubuntuforums.org/showthread.php?t=119546
Men jeg liker å kunne velge I/O-scheduleren ved oppstart i GRUB-menyen. CFQ er forresten default disk I/O scheduler dersom ikke noe annet er sagt på kernel-linjen.
Alternativene er:
- elevator=cfq Completely Fair Queuing I/O
- elevator=deadline Deadline I/O scheduler
- elevator=noop NOOP scheduler
- elevator=as Anticipatory I/O scheduler
Verdiene er tatt fra denne…. artikkelen.
———-
Fjern “quiet” og evt. “splash” fra kernel-linjen dersom du liker å følge med i bootmeldiger på skjermen under oppstart.
kernel /boot/vmlinuz-2.6.19-686 root=/dev/sda8 ro elevator=cfq
Listen er lettere å lese dersom du putter “vga=791” i slutten av linjen
kernel /boot/vmlinuz-2.6.19-686 root=/dev/sda8 ro elevator=cfq vga=791
Du finner flere vga-koder på bunnen av denne…. fila (ein utgått GRUB-guide).
Eksperimenter også med og uten “splash” parameter.
Ps. kan hende at vga=971 (eller et annet nummer) fungerer ikke med alle grafikkort. Prøv med vga=ask istedet.
9) Reboot
Restart din maskin.
Velg den nye kjernen fra GRUB-menyen. Login og sjekk kjerneversjon
$ uname -r
2.6.19-686 <—- Suksess
?? Har en ny kjerne men drivere har forsvunnet ??
Du oppdager fort at den nye kjernen har mistet støtten for NVidia, ATI, Wifi-kort med ndiswrapper og ditt nye TV-kort osv. Jeg snakker her om drivere som du tidligere har installert manuelt.
Dersom du sjekker /lib/modules katalogen,
$ ls -l /lib/modules
ser du at hver kjerne har sitt eget direktorat med underkataloger for innlastbare moduler og drivere. Kjernene kan ikke bare låne drivere fra hverandre. De er rett og slett ikke kompatible nok fordi kjernens header filer (*.h) med datastrukturer og data-linjering (alignment) kan ha endret seg fra kjerne til kjerne.
F.eks jeg prøvde å kopiere “ivtv” (Hauppauge 250/350 TV-kort) driveren fra kernel 2.6.12-686 til 2.6.16.19-686 men “modprobe ivtv” ga denne meldingen.
FATAL: Error inserting ivtv (/lib/modules/2.6.16.19-686/kernel/drivers/media/video/ivtv.ko): Invalid module format. (gjorde først: depmod -a). Jeg måtte til slutt kompilere og installere driveren fra sourcen. Driveren havnet i /lib/modules/2.6.16.19-686/… Den ble da OK.
Lærdommen er at du må reinstallere manuelle drivere for hver ny kjerne. Ubuntu håndterer denne saken nokså automatisk vha. restricted repo for sine egne kjerner.
10) Håndtering av parallel ATA (ATA / IDE) devicer har endret seg i kernel 2.6.19
Endringsloggen benytter begrepet “Parallel ATA” til å bety helt ordninære ATA/IDE disker og kontrollere. F.eks de fleste dvd/cdrom faller i Parallel ATA/IDE kategorien. Kjernen 2.6.19 har en ny modul som håndterer disse IDE/ATA devicene på en bedre måte. Men denne endringen fører bl.a til at devicenavnene i /dev/ katalogen har fått nye navn.
Jeg anbefaler igjen at du leser meget nøye “Libata PATA (Parallel ATA)” seksjonen i http://kernelnewbies.org/LinuxChanges filen. Man kan fremdeles benytte den gamle ATA/IDE modulen men jeg har ikke aktivert den i min kjernekonfigurasjon. Jeg ønsker å teste den nye koden.
Som sagt, den mest påfallende endringen er at mine dvd/cdrom har fått nye devicenavn i /dev/ katalogen.
Jeg har 2 dvd/cdrom devicer. De ble tidligere identifisert som /dev/hda og /dev/hdb.
De nye navnene er /dev/scd0 (sg0) og /dev/scd1 (sg1). Der er også symbolse lenker fra /dev/sr0 og /dev/sr1 til /dev/scd0 og scd1.
$ ls -l /dev/scd*
brw-rw—- 1 root root 11, 0 2006-12-05 17:32 /dev/scd0
brw-rw—- 1 root root 11, 1 2006-12-05 17:32 /dev/scd1
$ ls -l /dev/sg?
crw-rw—- 1 root root 21, 0 2006-12-06 13:56 /dev/sg0
crw-rw—- 1 root root 21, 1 2006-12-06 13:56 /dev/sg1
Jeg må nå oppdatere devicenavnene i /etc/fstab filen.
De gamle linjene
/dev/hda /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/hdb /media/cdrom1 udf,iso9660 user,noauto 0 0
ble endret til
/dev/sg0 /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/sg1 /media/cdrom1 udf,iso9660 user,noauto 0 0
Re-monter devicene etter endringen
$ sudo mount -a
eller
$ sudo mount -a -o remount
Skrive og leserettigheter på dvd og cdrom.
Som du ser fra utlistingen så kun root-brukeren (og roots gruppe) kan skrive til og lese fra dvd/cdrom devicer. Dette vil være et problem når en vanlig bruker vil brenne f.eks CDer.
I Ubuntu skal alle som tilhører gruppen “cdrom” kunne skrive til og lese fra dvd/cdrom. Altså vi må la gruppen “cdrom” eie /dev/scd0 (sg0) og scd1 (sg1).
Utfør:
$ sudo chgrp cdrom /dev/sg?
$ sudo chgrp cdrom /dev/scd?
Sjekk rettighetene omigjen.
$ ls -l /dev/{scd?,sg?}
brw-rw—- 1 root cdrom 11, 0 2006-12-06 13:56 /dev/scd0
brw-rw—- 1 root cdrom 11, 1 2006-12-06 13:56 /dev/scd1
crw-rw—- 1 root cdrom 21, 0 2006-12-06 13:56 /dev/sg0
crw-rw—- 1 root cdrom 21, 1 2006-12-06 13:56 /dev/sg1
Nå er det OK. Nå vil Gnomebaker og K3B fungere riktig.
———-
Jeg burde egentlig ha lest dokumentasjonen for udev og udev-regler for å finne ut hvordan den håndterer devicer og mountpunkter, men har ikke rukket å komme så… Jeg føler at udev jobber litt feil i.h.t gjeldende devicenavn.
http://www.enterprisenetworkingplanet.com/nethub/article.php/3635686
+
http://reactivated.net/writing_udev_rules.html
11) Installer støtte for grafikkort (NVIDIA).
Jeg må re-installere NVIDIAs grafikkdriver etter kjerneoppdateringen.
Ubuntu Linux har sk. “restricted repository” som rommer bl.a proprietære drivere for NVIDIA og ATIs skjermkort men det vil ta — naturlig nok — rimelig lang tid før Ubuntus utviklere rekker å lage nye pakker for 2.6.19 kjernen.
Så vi må installere NVIDIAs driver manuelt.
Last ned nyeste driverpakke fra http://www.nvidia.com/content/drivers/drivers.asp
Q: Jeg har en 64bits maskin som kjører 32bits Ubuntu Linux. Hvilken driverpakke må jeg velge?
S: Velg alltid driver som tilsvarer operativsystemet, altså du må installere 32bits (x86) driverpakke.
$ cd $HOME/tmp
$ wget http://download.nvidia.com/XFree86/Linux-x86/1.0-9629/NVIDIA-Linux-x86-1.0-9629-pkg1.run
Lagre dine filer og terminer grafisk GUI (the X)
$ sudo /etc/init.d/gd? stop
X terminerer og du vil nå havne på tekstkonsollen (CNTR + ALT + F1). Logg inn med ditt vanlige brukernavn og passord.
Installer NVIDIA-Linux-x86-1.0-9629-pkg1.run
$ cd $HOME/tmp
$ sudo sh NVIDIA-Linux-x86-1.0-9629-pkg1.run
Antar at alt gikk bra 🙂
Installasjonen putter den nye driveren i /lib/modules/2.6.19-686/kernel/drivers/video/ katalogen. Du kan sjekke dette med
$ find /lib/modules/2.6.19-686 -name “*nvidia*”
Omstart grafisk GUI (the X) — eller bedre, omstart hele maskinen.
$ sudo /etc/init.d/gd? restart
Du kan også dykke ned på kjørenivå 1 (=single user, vedlikeholdsmodus) og gå tilbake til nivå 2 som omstarter nettverket og grafiske GUIen. Du kan gjøre slik
$ sudo init 1
og
# init 2
ps. Kan hende at du må også legge til “nvidia” i /etc/modules filen.
Beryl-desktop viser seg å være mer stabil med denne nye NVIDIA-driveren sammenlignet med den som kom fra Ubuntus restricted repo 🙂
—————————————————–
Dersom du mislykkes med å re-installere driveren for NVIDIA eller ATI, så modifiser din /etc/X11/xorg.conf og sett Driver lik “vesa”.
Den vil gi en fungerende dok litt tregt grafisk GUI. Editer din /etc/X11/xorg.conf slik:
Section “Device”
Driver “vesa”
Identifier “Ett eller annet navn her. Samme navn som i Screen seksjonen av xorg.conf !”
EndSection
Vesa driveren er en god nødløsning.
ps. Du bør beholde “NVIDIA-Linux-x86-1.0-9629-pkg1.run” pakken slik at du kan raskt reinstallere driveren etter hver test / kjerneoppdatering.
12) Installer ivtv driver for Hauppauge PVR 250/350 TV-kort
For dere som har Hauppauge 250/350 TV-kort,
se http://www.futuredesktop.org/hauppauge_350-2.html
13) Testing av Ext4 filsystemet
<TODO>
Les guide:
http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/filesystems/ext4.txt
http://kernelnewbies.org/LinuxChanges
Hent oppdatert versjon av e2fsprogs fra
ftp://ftp.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs-interim/e2fsprogs-1.39-tyt1/
Last ned “e2fsprogs-1.39-tyt1.tar.bz2” pakke.
Unzip og untar e2fsprogs-1.39-tyt1.tar.bz2.
$ cd e2fsprogs-1.39-tyt1
Les INSTALL og README filer.
$ less README INSTALL
Konfigurer kildekode og kompiler
$ mkdir build; cd build
$ ../configure
$ make
$ make check
Installer e2fsprogs
$ sudo make install
<TODO>
————————-