Portál AbcLinuxu, 4. května 2025 02:07
Jádra řady 2.6 už jsou na světě pěknou chvíli, proto v tomto příspěvku nejsou žádné zásadní převratné informace. Popisuji jak jsem tápal při kompilaci jádra 2.6 a konfiguraci udev.
Jisté pokusy jsem činil již kdysi s jádrem 2.6.9, ale odradil mě nefungující framebuffer (moje chyba). Pak jsem zjistil, že nemůžu připojit cédéčko a pohled na poloprázdný adresář /dev mě k smrti vyděsil.
Nicméně protože mi mezitím došla trpělivost s mountováním USB médií a taky tady na Abclinuxu vyšel článek Devfs vs. udev, rozhodl jsem se zabít jeden víkend přechodem na jádro řady 2.6.
Tápavě jsem nakonfiguroval aktuální stabilní jádro. Nebudu to natahovat, postupně jsem vychytal všechny chybky (zapnul podporu CP852 kvůli FAT disku, podporu PS/2 myší zakompiloval natvrdo, ne jako modul, ip_conntrack_ftp jako modul, zapnul podporu pro opět chybějící VESA framebuffer a vygooglil a zapnul podporu PC Speakeru). Při té příležitosti mě zarazilo, že nové jádro chtělo pro připojování NTFS oddílu option nls, kdežto pro FAT option iocharset. Nějak jsem měl dojem, že je to totéž. No to je jedno, hlavně že jsem se zbavil chybových hlášek.
Pak jsem začal laborovat s udev. Šlo mi o to, abych když připojím USB klíčenku, ji mohl namountovat vždycky stejným příkazem. U jádra 2.4 totiž když člověk nejprve připojil třeba foťák, jádro si ho pamatovalo i po odpojení a další USB věcičku už bralo jako sdb. Jasná věc. Pomohlo jedině znovu zavést modul tuším mass_storage, nebo tak něco. Nejprve mi dlouho trvalo než jsem si ujasnil rozdíl v získávání údajů z /proc a /sys. Pak jsem si pořádně přečetl Jak psát pravidla pro udev a dále mě napadlo, že symlink pravděpodobně musí směřovat na oddíl (sd?1), ne na celý disk (sd?) a při té příležitosti si ujasnil, že oddíl není na sběrnici "usb", ale "scsi".
A úplně nakonec mě teď napadá, že vlastně veškerá ta námaha byla docela zbytečná. Tím, že si jádro nepamatuje kterej bazmek byl sda, mi vlastně stačí do fstabu ke flashdisku i foťáku napsat "/dev/sda1, protože obě věcičky nikdy nepřipojuji současně. A stačil by na to jeden přípojný bod a jeden alias...
Pak jsem ještě musel vypnout v lilo.conf pro obě optické mechaniky parametr ide-scsi a udělat jim alias cdrom a dvd. No a úplně nakonec jsem vygooglil, že /dev/lp0 se vytvoří, jakmile zavedu modul lp (světe div se, najednou to začalo tisknout půl dne starou úlohu!). Celá ta hrozivá věc (udev) byla vlastně mnohem blíže stavu okamžité použitelnosti, než jsem si myslel.
Ještě OT poznámka: Dlouhá a IMO zbytečná diskuze o pravopisu pod článkem Devfs vs. udev mě opravdu zamrzela. Čekal jsem nějaké cenné postřehy z praxe a místo toho se tam skoro všichni fackovali slovíčky "inteligence" a "pravopis".
Tiskni
Sdílej:
eth1394
, a tam toho bude shnilého víc. Opět udev nic neudělá (ani se nepokouší), ale nejhorší je, že nefunguje ani modprobe
(prostě tiše skončí a modul nezavede) - jedinou cestou je použít insmod
. Chtělo by to tyto chyby nahlásit, ale bohužel jsem zatím nenašel čas pořádně zdokumentovat, co se děje a neděje.
# cat /dev/.udev/db/block\@hda\@hda3 N:hda3 S:disk/by-id/ata-ST3160021A_3LJ36A7L-part3 S:disk/by-path/pci-0000:00:06.0-ide-0:0-part3 S:disk/by-uuid/df5a176d-78a7-4c68-936b-aeadd1fd46e8 M:3:3 E:ID_TYPE=disk E:ID_MODEL=ST3160021A E:ID_SERIAL=3LJ36A7L E:ID_REVISION=8.01 E:ID_BUS=ata E:ID_PATH=pci-0000:00:06.0-ide-0:0 E:ID_FS_USAGE=filesystem E:ID_FS_TYPE=ext3 E:ID_FS_VERSION=1.0 E:ID_FS_UUID=df5a176d-78a7-4c68-936b-aeadd1fd46e8 E:ID_FS_LABEL= E:ID_FS_LABEL_SAFE=a je jasný, že... no nevím, ale je to skutečně pravdivý info o /dev/hda
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.