Kernelforgatas, nvidia blob es beryl

Kernelforgatas, nvidia blob es beryl

#Bevezeto

Minden kernelforgatasomat pontosan dokumentalni szoktam,
igy amikor ujra forgatom, akkor megprobalok vegigmenni az elozo
naplon.
Ahhoz hogy ez sikeres legyen, nagyon fontos hogy a kernel konfigfajljait ne
keverjem el, ezert szerintem aki kernelt forgat
az mindenkeppen jelolje be, hogy a .config fajl latszodjon a /proc fajlrendszer alatt.
(magyaran a mindenkori kernelbe benne van, hogy milyen konfiggal lett forgatva.)
Ennek az opcioja:


General setup
<*> Kernel .config support
    [*]   Enable access to .config through /proc/config.gz

# Az uj kernellel szemben tamasztott elvarasaim

A regi kernelem 2.6.16-rc3 volt, az akkori legujabb. Akkor azert kellett (tobbek
kozott) kernelt forgatnom, mert a laptopba levo wifi kartya(bcm43xx) drivere
akkor volt eloszor hasznalhato, kellett meg a madwifi driver is
(a masik wifis kartyamhoz). Plusz nehany olyan aprosag is, mint wacom tabla
(serial->usb atalakito), tancszonyeg, etc.

A mostani kernellel (2.6.19.1p7) szemben tamasztott igenyeim:
1. madwifi-ng + aircrack-ng.org patch (eddig madwifi-old ment)
2. nvidia
3. suspend2
4. procisebesseg mutatasa
5. pulseaudio
6. bcm43xx (elvileg kernelben, csak devicescap verziot kell kulon lebanyaszni,
de ez nem kell nekem)
7. beryl (forgo kocka)

Mostani kernelem :
Linux buza 2.6.16-rc3p2 #1 Wed Feb 22 01:34:18 CET 2006 i686 GNU/Linux

# Kernelforgatas

Nem ertek egyet azzal, hogy disztro kernelt kellene hasznalnom
(amit trey hangoztat allandoan). Valami baj mindig van vele, ha barmi egyedi
igenyed van (pl. tancszonyeg playstation2->usb atalakitoja,
wacom tablahoz serial->usb atalakitoja, legujabb driver (bcm43xx), hivatalos
kernelben nem levo madwifi driver) akkor altalaban kernelforgatassal vegzi az ember.

Viszont a masik oldalrol az uj kernelforgatast allando szivas koveti, megha
mindenre megprobalok ugyelni, akkor is. Pl. nvidia driverevel allandoan szivnom kell,
a multkor kezzel kellett ossze-vissza patchelnem. Most az 1.0-9746 -os driverevel
a kartyam obsolate vacak lett (1 eves laptop), az 1.0-8756-ot megint patchelni
kellett. Aztan vegulis kiderult, hogy az 1.0-9631 is jo nekem,
amit elo kellett turnom.

Szoval az en allaspontom az, hogyha valami mukodik, akkor azt kar elkurni;)
Ha lenne valami ertelmes stabil ag, akkor pl. a mostani
kernelt majd ujraforgatnam 2.6.19.45 kornyeken. Bar olyan ugyse lesz...
Termeszetesen ha valami bugzik, akkor kernelverziok kozott ingazhatunk
(pl. madwifi drivere megfagyasztotta regi kernelem, ha megprobaltam countrycode-ot allitani rajt.)

# A log

Eleg a szovegelesbol, lassunk is neki!

letoltottem:
wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.19.1.tar.bz2
wget http://www.suspend2.net/downloads/all/suspend2-2.2.9-for-2.6.19.patch.b…

apt ideiglenesen experimental nvidiahoz:
apt-get update

apt-get install nvidia-kernel-source=1.0.9746-1
(Packages.bz2-ben *benne van*(!!!) az 1.0.9746-1, ujabb mint a jelenlegi
1.0.8756-4. Megint szarakodik apt-get, synaptic. foleg az apt-get update.
--print-uris opcioval is szepen kiirja. a Packages.bz2 is, de megse)

ebben van egy ilyen fajl:
/usr/src/nvidia-kernel-source.tar.gz

kitomoriteni a /usr/src/modules konyvtarba

sources.list visszairasa (sid), majd:
apt-get update

apt-get install madwifi-source

ebben van egy ilyen fajl:
/usr/src/madwifi.tar.gz
kitomoriteni a /usr/src/modules konyvtarba
megpatchelni ezzel (aircrack-ng.org -rol)
wget http://patches.aircrack-ng.org/madwifi-ng-r1816.patch

megpatkoltam suspend2-vel
.config file atmasolasa /proc/-bol:
cp /proc/config.gz .
gunzip config.gz
mv config .config

make menuconfig
(SUSPEND2-ot aktivizaltam a menuben)
make-kpkg --append_to_version p1 kernel-image
make-kpkg --append_to_version p1 modules_image

(elfelejtettem bcm43xx-et.
p2-hoz letoroltem a debian/ konyvtarat, es ujra)

menu.lst -be pci=assign-busses

beszoptam, nvidia sux (mar nem tamogatja a kartyam):
apt-get install nvidia-kernel-source=1.0.8776-3
es ujra a make-kpkg-vel
szaros 8776 nem fordul.
/etc/kernel-pkg.conf
do_clean:=no
(kesobb kiderult, hogy nem a make-kpkg-vel van a gond,
hanem az nvidia-t kell patchelni, patch itt:
http://www.nvnews.net/vbulletin/showthread.php?t=76574
)

make-kpkg clean
make-kpkg --append_to_version p5 kernel-image
make-kpkg --append_to_version p5 modules_image

(kozben a regi nem valt be kerneleket szepen dpkg -r rel leszedni)

1.0-9631 -es is megy a kartyammal!;)
(1.0-97xx az amivel csak >=nv3x kartya megy)
Letolteni innen :
http://snapshot.debian.net/archive/2006/12/08/debian/pool/non-free/n/nv…
http://snapshot.debian.net/archive/2006/12/08/debian/pool/non-free/n/nv…
http://snapshot.debian.net/archive/2006/12/08/debian/pool/non-free/n/nv…

dpkg -i nvidia-kernel-source*deb
make-kpkg clean
make-kpkg --append_to_version p7 kernel-image
make-kpkg --append_to_version p7 modules_image

(beryl-es csomik)
wget http://download.tuxfamily.org/3v1deb/pool/debian-unstable/beryl-svn/lib…

beryl_0.1.5+svn20061228-r2101+imudebian0_i386.deb
beryl-core_0.1.5+svn20061228-r2101+imudebian0_i386.deb
beryl-dbus_0.1.5+svn20061226-r2077+imudebian2_i386.deb
beryl-dev_0.1.5+svn20061228-r2101+imudebian0_i386.deb
beryl-manager_0.1.5+svn20061228-r2100+imudebian0_i386.deb
beryl-plugins_0.1.5+svn20061228-r2130+imudebian0_i386.deb
beryl-plugins-data_0.1.5+svn20061228-r2130+imudebian0_all.deb
beryl-settings_0.1.5+svn20061228-r2100+imudebian0_i386.deb
emerald_0.1.5+svn20061228-r2119+imudebian0_i386.deb
emerald-themes_0.1.5-svn+svn20061226-r2077+imudebian0_all.deb
libberylsettings0_0.1.5+svn20061228-r2101+imudebian0_i386.deb
libberylsettings-dev_0.1.5+svn20061228-r2101+imudebian0_i386.deb
libemeraldengine0_0.1.5+svn20061228-r2119+imudebian0_i386.deb
libemeraldengine-dev_0.1.5+svn20061228-r2119+imudebian0_i386.deb

# Beryl

Miutan a beryl-es csomikat felszenvedtem (dpkg -i, ha hiba tortent, akkor
fuggosegeket feltenni).
Ideje volt, megnezni, hogy a beryl mukodik-e.
Uj nvidia fut startx-szel:
Ezt nehez volt nem eszrevenni, mivel szep fekete 3D-s logoja lett nvidianak;)
egyebkent:
>glxinfo |grep NVI
OpenGL version string: 1.5.8 NVIDIA 96.31

A xorg.conf fajlba az alabbiakat irtam bele:


Section "Module" -ba:
    Load    "glx" # ez kell, berylhez is

Egy uj Section:
Section "Extensions" #beryl
   Option "Composite" "Enable"
EndSection

A Section Device-ba:
#beryl
    Option       "RenderAccel"      "true"  #render accel is enabled by default
    Option       "AllowGLXWithComposite"    "true"

A Section Screen-be:
Option          "AddARGBGLXVisuals"     "True" #beryl

A beryl szepen fut (beryl-manager).
Van meg par dolog ami teljesen berylhez kapcsolodik, azt mar ide nem is irom le.

# Utoszo

Termeszetesen csomo mindent meg nem probaltam ki, igy valoszinu, hogy tovabbi
proba kernelek varhatoak (jelenleg p7-nel jarok).

Pl hibernalas nem megy, ehhez majd suspend2-ot kell probalgatni. A multkori
kernellel az volt a gond, hogy utana (suspend utan), nem ment a touchpad csak
sima egerkent (oldalso gorgo bepurcant). Szoval hatha mostmar jo;)

Egy csomo dolgot nem is tudok kiprobalni, csak ha majd tenyleg szuksegem lesz ra,
ilyen pl. a kartyaolvaso
(ezt tudom, hogy nem megy, de meg lehet haxolni ha minden igaz), firewire, etc, etc.

Jah igen, ez nem egy howto, vagy ilyesmi. Gondoltam publikalom, mert evek alatt
ennyire jutottam kernelforgatas cimszo alatt, es hatha mast is erdekel+lattam a
forumba masokat szenvedni a beryllel.

Nagyon sok mindennel probalkoztam regebben:
egy csomo ideig szimplan mindenfele csomagkeszites nelkul csinaltam a kernelt,
szoval ugy nezem, hogy ez mar egy kiforrott technika (nalam legalabbis).

Legjobb az egeszben, hogy lehet probalkozni, es reprodukalhato (ami nagyon fontos).

Az offtopik/flame hozzaszolasokat ha lehet, keruljuk
(ha mar hianyzik a hozzaszolasok szurese/pontozasa innen a hup.hu-rol).

Update1:
Most keszul a p8 (csak 1 GB memoria latszik):


Processor type and features
  High Memory Support (off)  --->  
          ( ) off
          (X) 4GB
          ( ) 64GB

Szoval igen, nem latszott az egesz (1.5GB) memoriam.

Update2:
Ok, rebootolva es a gep random fagy, meg a caps-lockra se reagal.
Van ugy hogy bekapcsolaskor, de amikor a gnome splash feltunik akkor a
nautilus ikonnal tuti.
A legrosszabb, hogy mivel csontta fagy, fogalmam sincs, hogy mi miatt.

Megnezem majd meg a 2 config.gz-t, hogy biztosan csak a memot allitottam at.
Majd az lsmod-ot. Aztan random megprobalok egy-egy modult kivenni es ujraprobalni.

Update3:
Ok, most gond nelkul elindult az X. (X |DISPLAY=0:0 xterm, aztan gnome-session)
Fura ez az egesz. A config.gz csak a mem-ben kulonbozik.

Hozzászólások

Azt mar nem akartam a cikkbe beleirni, de a kernelforgatasra mar 2 honapja keszulok,
1 honapja irtam meg, hogy mik az elvarasaim az uj kernellel szemben.
De a p1-es kernel csak szombaton (30) keszult el, a p7-es pedig tegnap (1-je).
Kozben persze bulizik az ember, de az nvidias szivas azert tobb napig tartott utanajarni,
a beryl csomag felkutatasa se volt egyszeru (millio+1 howto, es mind mas sources.list-et ajanl)

Ja igen, a gdm. En az osszes ilyet (gdm, kdm, xscreensaver) szamuztem.
Szerintem hasznalhatatlan vackok;), foleg igy kernelforditasnal,
amikor uj Xorg-ot tesz fel az ember, uj driverek kerulnek fel,
es az X elsore sose indul el (most se).

---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....

Szia!

Nos, végigértem ezen olvasmányon. Azt nem mondom, hogy mindent megértettem, de 78százalékát értem. Gondolom, olyan stílusban írtad le ezt, hogy aki már forgatott kernelt, annak a szeme előtt vannak a lépések/képernyők. Én is készülök, de csak beszereztem egy rakás howto-t, s azokat böngészem este olvasnivalóként. Még nem nyúltam semmihez.

Szerinted, ha leszedem ezeket a debianos csomagokat, akkor tudom telepíteni az nvidia karit?

Lassuk csak, 3 csomagrol van szo:
nvidia-kernel-source
nvidia-glx
nvidia-glx-dev

A kernel-source tuti mukodik, tehat lesz kerneled, es annak lesz nvidia modulja (modprobe nvidia).
Az nvidia-glx es -dev nem biztos. Az adott X-hez van forgatva, es lehet, hogy libc kulonbozik.
Szoval ha nem menne, akkor letoltod a forrast es leforgatod.

De nem is kell, mivel az ubuntunak is fenn van a 1.0-9631 -es drivere

---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....

"megprobalok vegigmenni az elozo ,,logon'' (erre valami ertelmesebb magyar szo?;)."
Hmm... Talán... naplón?