30.12.10

DVD mechanika přes udev v Gentoo

Nedávno jsem si po delší době strčil do DVD mechaniky placku a zjistil jsem, že mi nefunguje načítání. Ani dmesg nic nevypsal. Začal jsem pátrat po netu a udělal několik úprav, které sem sepíšu, aby případní budoucí hledající byli ušetřeni toho trápení.
Ano, v Gentoo občas něco nefunguje automaticky. I taková trivialita jako je obyčejná DVD mechanika. Gentoo totiž přešlo na udev a s ním je třeba upravit několik konfiguráků. Nejen klávesnici (když už jsem to naťuknul, tak diff souboru /etc/X11/xorg.conf, který je třeba upravit, je zde), ale i zařízení, která jsou připojena na PATA sběrnici. V mém případě to byla právě DVD mechanika. Systém včetně konfigurace jádra mám už snad 8 let, takže obsahuje některé věci, které by v moderní instalaci už asi dávno nebyly. A jednou za čas to dojde do bodu, kdy tyto obsolete věci najdu i já, jako v případě nefunkční DVD mechaniky.

V prvé řadě doporučuji postupovat podle návodu NeddySeagoon's Rough Guide to libata Migration, který jsem objevil při řešení chyby. Je tam popsán způsob, jak přejít na libata. V prvé řadě je třeba v konfiguraci jádra odstranit volbu "ATA/ATAPI/MFM/RLL support (DEPRECATED)" a přesunout podporu DVD mechaniky do "SCSI device support". Dále je třeba upravit i "Serial ATA and Parallel ATA drivers". Tady už se trochu odlišuji od výše uvedeného návodu, proto přikládám screenshot, jak vypadá konfigurace u mě:
Konfigurace (nejen) pro Serial ATA drivery
Důležité je (v mém případě, kdy mám v notebooku i normální SATA disk) ponechat volbu AHCI SATA support a Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support, jinak dopadnete nějak takto.
Po této změně následoval restart počítače. V systému se mi vytvořilo zařízení /dev/sr0 (dříve jsem tam měl /dev/hda) a symbolický odkaz /dev/scd0. Mnoho aplikací však hledá něco jako /dev/cdrom nebo /dev/dvd; pokud se vám tyto symlinky nevytvořily, budete muset zřejmě upravit soubor /etc/udev/rules.d/70-persistent-cd.rules. Takto vypadá můj:

# DVD-RAM_UJ-850 (pci-0000:00:1f.1-scsi-0:0:0:0)
SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1f.1-scsi-0:0:0:0", SYMLINK+="cdrom", ENV{GENERATED}="1"
SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1f.1-scsi-0:0:0:0", SYMLINK+="cdrw", ENV{GENERATED}="1"
SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1f.1-scsi-0:0:0:0", SYMLINK+="dvd", ENV{GENERATED}="1"
SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1f.1-scsi-0:0:0:0", SYMLINK+="dvdrw", ENV{GENERATED}="1"

Každý řádek vytvoří symlink na zařízení dané DVD mechaniky - /dev/cdrom, /dev/cdrw, /dev/dvd, /dev/dvdrw. Podle toho budete možná muset ještě upravit /etc/fstab.

To by bylo vše, každopádně doufám, že se s podobnými hříčkami moc nesetkáte. :-)

2 komentáře:

Unknown řekl(a)...

libata teprve ted? vzdyt jako default to maji jadra od 2.6.18/19 .. kdysi davno:)

m1c4a1 řekl(a)...

Jak jsem psal, aktualizuju systém přes rolling updates už něco kolem 8 let. Mám pocit, že jsem ještě měl nějaké jádro 2.4.*. Některý věci se ale automaticky neudělají jako u nové instalace.
A dokud mě to nijak neomezuje, tak jsem neměl důvod to měnit.