Jesli uda ci się pokonfigurować sprzęt i system, to polecenie
cdrecord -scanbus wyświetli ci listę urządzeń, dostępnym do
zapisu. Celem tego rozdziału jest poprowadzenie cię poprzez
konfigurację Linuksa, tak abyś na końcu zobaczył coś takiego:
$> cdrecord -scanbus
Cdrecord release 1.7a1 Copyright (C) 1995-1998 Jörg Schilling
scsibus0:
0) 'Quantum ' 'XP34300 ' 'F76D' Disk
1) 'SEAGATE ' 'ST11200N ' '8334' Disk
2) *
3) 'TOSHIBA ' 'MK537FB/ ' '6258' Disk
4) 'WANGTEK ' '5150ES SCSI-36 ' 'ESB6' Removable Tape
5) 'EXABYTE ' 'EXB-8500-85QUE ' '0428' Removable Tape
6) 'TOSHIBA ' 'XM-3401TASUNSLCD' '3593' Removable CD-ROM
7) *
scsibus1:
100) 'Quantum ' 'XP31070W ' 'L912' Disk
101) *
102) *
103) 'TEAC ' 'CD-R55S ' '1.0H' Removable CD-ROM
104) 'MATSHITA' 'CD-R CW-7502 ' '4.02' Removable CD-ROM
105) *
106) 'YAMAHA ' 'CDR400t ' '1.0d' Removable CD-ROM
107) *
Listing 1: Wykrywanie urządzeń na kontrolerze SCSI.
Przykład ten został dostarczony przez Jörga Schillinga. Widać tutaj cztery nagrywarki. Nie można rozróżnić zwykłego CD-ROMu od nagrywarek. Ale identyfikator produktu ma często w sobie wskazówki w stylu R, -R czy -RW.
Jądro można wyposażyć w sterowniki służące do różncyh celów. Można je wkompilować na stałe lub jako moduły ładowane na żądanie. Ta druga metoda jest preferowana dla sterowników niekrytycznych dla systemu. Np. jeśli masz system na dysku IDE, to sterownik do tego dysku musisz mieć w jądrze (a nie jako moduł).
Są trzy rodzaje nagrywarek: SCSI, IDE/ATAPI i zewnętrzne podłączane do portu równoległego. Tabela 4 pokazuje jak skonfigurować jądro dla tych typów nagrywarek. Pierwsza kolumna, to sekcja w menu konfiguracji jądra, gdzie można znaleźć dane ustawienie. Druga kolumna, to opis tej opcji. Trzecia kolumna, to nazwa modułu powstałego po kompilacji.
Y to tak (yes) i oznacza, że masz to wkompilować w jądro. M to moduł, i oznacza, że ma to być wkompilowane jako moduł. Y/M pozwala tobie wybrać czy ma to być moduł czy wkompilowanie w jądro. Puste ustawienia oznaczają, że nie trzeba tego modyfikować. Nie zmienianie tego ustawienia zwiększa szanse, że jadro będzie działać (jeśli działało wcześniej).
Aby sprawdzić jakie sterowniki są aktywne (tak statyczne jak i dynamiczne) w twoim jądrze, możesz odczytać plik /proc/devices. Aby sprawdzić jakie moduły są załadowane wydaj plecenie 'lsmod'. Aby sprawdzić jakie moduły są dostępne do załadowania wydaj polecenie 'modprobe -l'. Jeśli potrzebujesz modułu niedostępnego w twoim systemie, musisz przekompilować jądro. Przeczytaj Kernel-HOWTO na temat szczegółów kompilacji. Najświeższe informacje na temat obsługi modułów jądra znajdziesz w Module-HOWTO.
Sekcja Opis Moduł SCSI IDE PP
------------------------------------------------------------
BLOCK Enhanced IDE/MFM/RLL... Y
BLOCK IDE/ATAPI CDROM ide-cd M/N/Y
BLOCK SCSI hostadaptor emulation ide-scsi M
BLOCK Loopback device loop M M M
PARIDE Parallel port IDE device paride Y/M
PARIDE Parallel port ATAPI CD-ROMs M
PARIDE Parallel port generic ATAPI M
PARIDE (select a low-level driver) Y
SCSI SCSI support scsi_mod Y/M Y/M
SCSI SCSI CD-ROM support sr_mod Y/M Y/M
SCSI Enable vendor-specific Y Y
SCSI SCSI generic support sg Y/M Y/M
SCSI (select a low-level driver) Y
FS ISO 9660 CDROM filesystem iso9660 Y Y Y
FS Microsoft Joliet cdrom... joliet M M M
Tabela 4: Konfiguracja jądra
Jeśli udało ci się już skompilować jądro czy znaleźć potrzebne moduły, to albo dodaj je do /etc/modules albo pozwól ładować je automatycznym narzędziom (kmod, kerneld). Jeśli nie jesteś pewien, skonsultuj to z dokumenctacją swojej dystrybucji.
Opcja "SCSI hostadaptor emulation" we wczesniejszych jądrach nazywa się "SCSI emulation" (około 2.0.36). Jeśli jądro na to pozwala, skompiluj sterownik dla CD-ROM-ów IDE/ATAPI jako moduł. Jeśli nie, to wyłącz go (N) i użyj zamiast niego sterownika do CD-ROM-ów SCSI. W jądrach serii 2.2, nie możliwe jest uruchamianie sterowników do IDE i SCSI na tym samym fizycznym urządzeniu w tym samym czasie (jeśli masz 2.0.36, to przeczytaj poniżej).
Urządzenie loopback jest opcjonalne i pozwala przetestować obraz płyty przed zapisaniem.
Jeśli chcesz móc czytać płyty, to potrzebujesz obsługi systemu plików ISO 9660. Sterownik ten zawiera w sobie obsługę RockRidge Extensions. Jeśli chcesz mieć także obsługę MS Joliet ERxtensions, to skompiluj je jako moduł i załaduj.
[Od tłumacza] O ile się nie mylę, to Joliet jest obsługiwany przez jądro 2.0.36...
W każdym przypadku potrzebujesz sterownik niskiego poziomu dla swojego sprzętu. "Niskiego poziomu" odnosi się do sterownika, który komunikuje się bezpośrednio ze sprzętem. Dla urządzeń SCSI i podłączanych przez port równoległy jest wiele sterowników niskiego poziomu. Są one opisane poniżej.
W jądrze 2.2.1 nie włączaj na raz opcji CONFIG_SCSI_MULTI_LUN ('probe for multiple luns') i obsługi ide-scsi. Znany jest błąd ide-scsi, który nie pozwala na to. W każdym razie zaleca się uaktualnienie do wersji 2.2.5.
Niektórzy użytkownicy zgłaszali konflikty między prekompilowanymi binariami a jądrem 2.2. Jest to problem z jądrem. Oto rozwiązania:
Jądra w wersji wcześniejszej niż 2.0.31 mają kilka błedów i nie mogą czytać ostatniego pliku na płycie. Uaktualnij je do wersji 2.0.36.
W jądrze 2.0.36 możesz podać który sterownik (IDE czy SCSI) użyć
do którego urządzenia ATAPI. Dokładniej: możesz włączyć opcję
"SCSI emulation" w jądrze i uaktywnić ją dla
konkretnego urządzenia przed lub podczas ładowania jądra. Np. jesli
twojej nagrywarce odpowiada plik /dev/hdb, to dodaj polecenie
hdb=ide-scsi.
image=/boot/zImage-2.0.36
label=Linux
read-only
append="hdb=ide-scsi"
Listing 2: Przykładowa konfiguracja dla lilo (/etc/lilo.conf)
linux "Linux 2.0.36" {
image=/boot/zImage-2.0.36
cmdline= root=/dev/hda5 readonly hdb=ide-scsi
}
Listing 3: Przykłądowa konfiguracja dla chos (/etc/chos.conf)
Jak już zainstalowałeś wszystkie potrzbne sterowniki, wystartuj nowe jądro. Powinno się tam już znajdować wszystko czego będziesz potrzebować do do następnych rozdziałów.
[Użytkownicy devfs nie muszą się przejmować następnymi krokami (ręczną konfiguracją plików urządzeń. Jeśli używasz devfs, wszystko pojawi się automagicznie na swoim miejscu.]
Przejdź do katalogu /dev i sprawdź czy masz urządzenia
loopback. Nie jest to konieczne, żebyś musiał je mieć ale
wygodniejsze (zobacz punkt 3.5). Jeśli już je
masz, to polecenie ls powinno pokazać loop0 - loop7:
$ > cd /dev
$ > ls loop*
loop0 loop1 loop2 loop3 loop4 loop5 loop6 loop7
Listing 4: pliki urządzenia loopback
Jeśli nie masz tych urządzeń, to stwórz je przy pomocy skryptu
/dev/MAKEDEV:
$ > cd /dev/
$ > modprobe loop
$ > ./MAKEDEV loop
Listing 5: polecenia do tworzenia plików urządzeń loopback
Ostatnie polecenie powiedzie się tylko jeśli masz skompilowany moduł
loop. To co przeczytałeś dotąd na temat obsługi plików
urzdzenia loopback odnosi się do wszystkich plików urządzeń (sg*,
pg*, hd*, ...) i nie piszę wyraźnie o tym dalej.
ATAPI oznacza "polecenia SCSI przez szynę IDE". Innymi słowy napędy IDE/ATAPI porozumiewają się poprzez protokół SCSI (z pewnymi ograniczeniami) i w ten sposób mogą imitować urządzenia SCSI.
W Linuksie nagrywarka IDE może pojawić się jako SCSI dzięki opcji "SCSI (hostadaptor) emulation". Tak więc uaktywnij odpowiedni moduł jądra ide-scsi, jak to opisano powyżej i potem możesz robić wszystko tak jakbyś miał nagrywarkę SCSI.
Upewnij się, że twoja nagrywarka jest rozpoznawana przez BIOS twojego komputera. Nie ma sensu robić czegokolwiek dalej jeśli twój komputer nie zaakceptuje sprzętu. (fakt, że komputer nie wypluje nagrywarki nie jest potwierdzeniem; na ekranie musi pojawić się odpowiedni napis).
Jeśli planujesz podłączyć swój napęd SCSI do portu równoległego, będziesz potrzebował specjalnego kabla i specjalnego sterownika w jądrze. Więcej na ten temat możesz poczytać pod adresem www.torque.net/parport/parscsi.html.
Pliki urządzeń /dev/sd* i /dev/sr* używane do komunikacji z dyskami i CD-ROM-ami SCSI mają zaimplementowany tylko transfer zorientowny na bloki danych. To właśnie czyni je tak szybkimi i idealnymi do zapisu danych. Sterowanie laserem nagrywarki to bardziej skomplikowane zadanie i wymaga trochę więcej niż transferu danych w postaci bloków. Aby utrzymać tę jakość urządzeń sd* i sr* stworzono nowy rodzaj plików urządzeń SCSI; tzw ogólne urządzenia SCSI.
Ponieważ poprzez ogólne urządzenia SCSI można zrobić wszystko ze sprzętem SCSI nie są one przeznaczone do jakiegoś konkretnego celu - stąd nazwa ogólne (generic).
Tak jak inne pliki urządzeń i te można znaleźć w katalogu /dev/:
$ > cd /dev
$ > ls sg*
sg0 sg1 sg2 sg3 sg4 sg5 sg6 sg7
Jeśli nie masz tych plików urządzeń, to stwórz je używając skryptu
/dev/MAKEDEV:
$ > cd /dev/
$ > ./MAKEDEV sg
Przykro mi, ale nie mam pojęcia na ten temat. Przeczytaj informacje
zawarte na
stronie WWW poświęconej temu tematowi albo plik na swoim dysku
/usr/src/linux/Documentation/paride.txt.
Przegląd narzędzi służących do nagrywania płyt znajduje się pod adresem www.fokus.gmd.de. Project tworzenia CD dla Unix-a.
Jedno z poniższych narzędzi potrzebne jest aby wygenerować obraz płyty.
mkisofs mkhybrid
W zależności od modelu twojej nagrywarki (zobacz 1.3) potrzebne jest jedno z poniższych narzędzi do zapisania danych na CD:
Nie wierz podręcznikowi systemowemu od (starego) mkisofs, który stwierdza, że potrzebujesz wersji 1.5. Po prostu użyj programu cdrecord i będzie w porządku. Zauważ, że program mkisofs dostarczany wraz z cdrecord ma kilka rozszerzeń wspomnianych w dokumentacji programu.
Front-endy w Linuksie to rzeczywiste front-endy. Oznacza to, że ciągle musisz zainstalować narzędzia obsługiwane z linii poleceń, ale masz do nich dostęp w ładniejszy sposób.
X-CD-Roast to pakiet stworzony do ułatwienia tworzenia płyt w Linuksie. Łączy on narzędzia sterowane z linii poleceń jak cdrecord i mkisofs z ładnym graficznym interfejsem.
www.fh-muenchen.de
BurnIT to front-end napisany w Javie do cdrecord, mkisofs i cdda2wav-0.95, co czyni z niego kompletny pakiet do wypalania płyt CD na platformach unixowych. Ściągnąć go można z adresu sunsite.auc.dk.