
Tak jsem na svém notebooku v Gentoo upgradoval baselayout na vývojovou verzi, což řeší problémy s WPA_Supplicantem, který starší baselayout neobsluhoval správně (nepoznal, že došlo k asociaci a po čase timeoutoval). Jenže mám tu jiný problém. Od té doby se mi wifi zapne vždycky hned při nabootování. Sérií testů jsem přišel na to, že to spouští coldplug, konkrétně coldplug pci zařízení. Řešením by určitě bylo vyndat pci zařízení z hotplugu, protože můj notebook samozřejmě žádné PCI Hotplug rozhranní nemá.
Já šel ale kousek dál. Asi hodinu jsem analyzoval soubory v adresáři /etc/hotplug a /etc/hotplug.d. Přitom jsem zjistil asi toto:
- Soubory *.rc slouží pro coldplug - skript projde /sys strukturu a vygeneruje hotplug událost pro každé zařízení, co najde.
- Soubory *.agent jsou agenti pro jednotlivé druhy událostí, které hotplug generuje. Tito agenti jsou spouštěny skriptem /etc/hotplug.d/default/default.hotplug
- V adresáři /etc/hotplug.d/default/ jsou ještě skripty 10-udev.hotplug - ten vyvolá udev událost pro přidání zařízení do /dev a 20-hal.hotplug - ten zřejmě informuje HAL vrstvu o události pro další zpracování (např. v KDE)
Takže o spuštění síťového rozhranní se stará agent /etc/hotplug/net.agent. A opravdu:
... case $INTERFACE in # interfaces that are registered after being "up" (?) ppp*|ippp*|isdn*|plip*|lo*|irda*|dummy*|ipsec*|tun*|tap*) debug_mesg assuming $INTERFACE is already up exit 0 ;; *) ... # Gentoo elif [ -f /etc/gentoo-release ]; then script=/etc/init.d/net.$INTERFACE if [ -x "$script" ]; then debug_mesg invoke \"$script\" --quiet start exec "$script" --quiet start fi ...
Takže můj workaround bude zřejmě spočívat v přidání eth2 - tak se jmenuje moje bezdrátová karta, do seznamu zařízení, která se nemají spouštět.
V posledních dnech jsem objevil celkem závažný nedostatek v zavaděči jádra GRUB. Spočívá v používání grafického režimu (tzv. splashe), který v manuálu ani není popsán, a jak jsem zjistil, jedná se o Gentoo-patch. Totiž, když je v konfiguračním souboru nastaveno například
splashimage=(hd0,0)/grub/splash.xpm.gza na daném místě se splash nenachází, například proto, že je na jiném oddílu, GRUB nezahlásí chybu a zřejmě se i pokusí spustit grafický režim, což ovšem skončí pouze blikajícím kurzorem v levém horním rohu obrazovky.
Takže poučení pro příště: Nejdříve nainstaluj GRUB bez splashe, zkontroluj jestli funguje a pak teprve přidej splash.
Každý, kdo začíná s linuxem, řeší problém, jak uskladnit na disku data tak, aby se k nim dostal jak z linuxu, tak z Windows. Pro začátek doporučuji používat oddíl typu FAT32, který požadavky interoperability splňuje výborně - pokud se správně nastaví proměnné iocharset (iso8859-2) a codepage (852), dokonce jsou čitelné i české názvy souborů pod oběma systémy. S rozmachem DVD se však čím dál více negativně projevuje snad největší neduh FAT32 - neschopnost uložit soubor větší, než 4 GB.
Používání NTFS nelze v žádném případě doporučit - přestože v oficálním jádru linuxu je ovladač, který umí bezproblémově číst NTFS oddíly a dokonce i bez nebezpečí přepisovat již vytvořené soubory, vytváření nových souborů je možně pouze s ovladačem z třetí strany, který není vždy 100% úspěšný.
Proto se jako výhodné naopak jeví přejít na souborový systém ext2 a donutit
Windows, aby s ním začaly pracovat. To se mi nejlépe povedlo s programem ext2fsd. Ten, narozdíl od jiných,
umí i transparentně měnit kódování národních znaků do jedné znakové sady.
Stačí pouze v registrovém klíči
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Ext2Fsd\Parameters
nastavit "CodePage"="iso8859-2". A jak bývá u Windows zvykem, všechno
začne řádně fungovat až po restartu .
Ještě poznámka na závěr: Ve verzi 0.25 je chyba, která způsobuje, že převod kódování nefunguje, proto doporučuji buď verzi 0.25a, nebo 0.24.