Ta razdelek se nanaša na naslednje vrste zapisovalnikov CD: SCSI,
IDE/ATAPI ter enote, ki se priključijo na tiskalniška vrata. Med pisanjem
tega spisa (maj 2000) zapisovalniki na vodilu USB niso bili
podprti. Zapisovalniki, ki ne uporabljajo vodila SCSI, potrebujejo
posebne gonilnike, s katerimi se predstavljajo kot zapisovalniki
SCSI. Po eni strani je taka strategija poenotenja ("vse je SCSI")
koristna, ker se na ravni namenskih programov z vsemi zapisovalniki
dela enako. Po drugi strani pa zahteva, da znova nastavite nekatere
namenske programe kot predvajalnike plošč ali ukaz mount
--
če ste bili navajeni svoj zapisovalnik ATAPI uporabljati prek
datoteke /dev/hdc
, bo to treba z aktivacijo združljivosti
spremeniti, denimo na /dev/scd0
.
Ko ste uspešno nastavili svoje železje in preostanek sistema Linux,
ukaz cdrecord -scanbus
prikaže seznam vseh enot na vodilih
SCSI. Namen tega razdelka je, da bi vam pomagal pri nastavljanju sistema
Linux, tako da boste čim prej zagledali nekaj takega kot:
shell> cdrecord -scanbus Cdrecord release 1.7a1 Copyright (C) 1995-1998 Jörg Schilling scsibus0: 0,0,0) 'Quantum ' 'XP34300 ' 'F76D' Disk 0,1,0) 'SEAGATE ' 'ST11200N ' '8334' Disk 0,2,0) * 0,3,0) 'TOSHIBA ' 'MK537FB/ ' '6258' Disk 0,4,0) 'WANGTEK ' '5150ES SCSI 36 ' 'ESB6' Removable Tape 0,5,0) 'EXABYTE ' 'EXB-8500-85QUE ' '0428' Removable Tape 0,6,0) 'TOSHIBA ' 'XM-3401TASUNSLCD' '3593' Removable CD-ROM 0,7,0) * scsibus1: 1,0,0) 'Quantum ' 'XP31070W ' 'L912' Disk 1,1,0) * 1,2,0) * 1,3,0) 'TEAC ' 'CD-R55S ' '1.0H' Removable CD-ROM 1,4,0) 'MATSHITA' 'CD-R CW-7502 ' '4.02' Removable CD-ROM 1,5,0) * 1,6,0) 'YAMAHA ' 'CDR400t ' '1.0d' Removable CD-ROM 1,7,0) *Programski izpis: Zaznavanje naprav na vodilu SCSI.
Zgled, ki ga je prispeval Jörg Schilling, kaže skupaj štiri
zapisovalnike SCSI na dveh vodilih. Izbira -scanbus
prikaže
tudi druge naprave SCSI, kot so enote CD-ROM, diski in tračne
enote. Zadnji stolpec prikazuje opis enote SCSI, iz katerega pa ni
mogoče zlahka ločiti zapisovalnikov CD od enot CD-ROM, s katerimi
lahko le beremo. V oznaki izdelka (srednji stolpec) pa je pogosto
kakšen namig (pripone R, -R ali -RW), ki nam pomaga pri prepoznavanju,
katera enota je zapisovalnik.
Ta razdelek skuša ponuditi hiter in enostaven opis nastavitve. Res ne
pokriva vseh mogočih situacij, kljub temu pa ste vabljeni, da nadaljujete
in poskusite. Najprej z ukazom uname -r
preverite, katero
različico jedra Linuxa poganjate. Rezultat bo verjetno 2.4.nekaj ali
2.2.nekaj (pri čemer je ta drugi nekaj večji od 11). Če uporabljate
jedro, starejše od različice 2.0.36, si morate pomagati, kakor veste
in znate. Enako velja tudi, če uporabljate katero od razvojnih
različic jedra (2.5.nekaj ipd.). Z namestitvijo novega jedra ni nič
več dela kot s popravljanjem starega, zato tu ne navajamo nobenih
receptov za krpanje napak v jedru.
Spodnji izpis prikazuje nabor ukazov, ki jih potrebujete za
začetek. Z ukazi ustvarimo datoteke naprav v imeniku /dev
,
razen če ti že obstajajo.
test `whoami` = 'root' || echo "You must be root to execute the commands." cd /dev/ umask -S u=rwx,g=rwx,o-rwx [ -f loop0 ] \ || ./MAKEDEV loop \ || for i in 0 1 2 3 4 5 6 7; do mknod loop$i b 7 $i; done [ -f sg0 -o -f sga ] \ || ./MAKEDEV sg \ || for i in 0 1 2 3 4 5 6 7; do mknod sg$i c 21 $i; doneProgramski izpis: ustvarjanje datotek naprav
Dostop do strojne opreme se v Linuxu izvaja prek datotek
naprav. Preden se torej lotimo česarkoli, moramo preveriti, ali te
datoteke obstajajo v imeniku /dev
. Resda mi še nihče ni
prepričljivo razložil, zakaj to ne gre samodejno, denimo z datotečnim
sistemom naprav (devfs). Ta je na voljo že nekaj let in je standardna
oprema jeder 2.4. Ponuja varnejši in veliko jasnejši način
poimenovanja naprav, tako da se te samodejno pojavijo v imeniku
/dev
. Nekaj pomembnih ljudi resda trdi, da devfs ni idealna
rešitev, vendar ne le, da niso ponudili ničesar boljšega -- ponudili
niso niti ničesar primerljivega ali vsaj česa, kar bi bilo dostopno
in preizkušeno. Začnimo že enkrat uporabljati devfs, da bom lahko
zgornji programski izpis izpustil iz tega spisa.
Naslednja pomembna stvar, ki jo moramo preveriti, je, ali je jedro
Linuxa opremljeno s potrebnimi gonilniki. Z naslednjimi ukazi
v več datotekah preverimo, ali so gonilniki naloženi v jedro. Navadno
ukaz cdrecord -scanbus
samodejno sproži nalaganje vseh
potrebnih gonilnikov v jedro. Če se to ne zgodi, dobimo sporočilo o
napaki in modularni gonilnik lahko z ukazom insmod
ročno
naložimo v jedro.
test `whoami` = 'root' || echo "You must be root to execute the commands." cdrecord -scanbus > /dev/null if ! (pidof kerneld || test -f "/proc/sys/kernel/modprobe"); then echo "Neither kerneld nor kmod are running to automatically load modules". fi report_no_autoload() { echo "Ensure the module $1 is loaded automatically next time." } if test ! -f "/proc/scsi/scsi"; then report_no_autoload scsi_mod && insmod scsi_mod fi if ! grep "^........ sg_" /proc/ksyms > /dev/null; then report_no_autoload sg && insmod sg fi if ! grep "^........ sr_" /proc/ksyms > /dev/null; then report_no_autoload sr_mod && insmod sr_mod fi if ! grep "^........ loop_" /proc/ksyms > /dev/null; then report_no_autoload loop && insmod loop fi if ! grep iso9660 /proc/filesystems > /dev/null; then report_no_autoload iso9660 && insmod iso9660 fi echo "The following is only needed for IDE/ATAPI CD-writers." if ! grep ide-scsi /proc/ide/drivers > /dev/null; then report_no_autoload ide-scsi && insmod ide-scsi fi cdrecord -scanbusProgramski izpis: Preverjanje gonilnikov
Če ukaz insmod
sporoči napako o manjkajočem gonilniku, si,
prosimo, preberite naslednje poglavje. Če delujete v terminalskem
načinu, boste ob nalaganju gonilnikov videli izpisano vrsto
diagnostičnih sporočil. Te lahko v grafičnem okolju (X11, KDE, GNOME)
prikličete nazaj z ukazom dmesg
.
Dva načina sta, da potrebne module samodejno naložimo v jedro ob zagonu:
insmod
vnesemo v zagonski skript
(rc.local
ali ustrezno).
kerneld
ali kmod
, ki ju nastavimo v
datoteki /etc/modules.conf
(pravzaprav je to nastavitvena
datoteka za ukaz modprobe
, ki ga kliče en ali drug demon)Uporabniki zapisovalnika na vodilu SCSI lahko preostanek tega razdelka
preskočijo, ker je ukaz cdrecord
najverjetneje že zaznal
njihovo strojno opremo. Če je ni, prosim, pošljite avtorju tega spisa
elektronsko sporočilo z osnovnimi podatki o vašem sistemu, tako da
bo lahko izboljšal razdelek o zapisovalnikih SCSI.
Zdaj pa k uporabnikom, ki uporabljajo zapisovalnike CD na vodilu
IDE/ATAPI. Kot smo že omenili v prejšnjem poglavju, morate naložiti
združljivostni modul ide-scsi
. Vendar pa ima ta gonilnik
lahko dostop do zapisovalnika le, če ga že ne uporablja kak drug
gonilnik. Z drugimi besedami: svojemu običajnemu gonilniku IDE morate
dopovedati, naj zapisovalnika ne prepozna in naj ga pusti pri miru, tako da ga
lahko pograbi gonilnik ide-scsi
.
hda = IDE vodilo/vtič 0 master hdb = IDE vodilo/vtič 0 slave hdc = IDE vodilo/vtič 1 master hdd = IDE vodilo/vtič 1 slaveTabela: datoteke naprav za naprave IDE/ATAPI
Zgornja razpredelnica kaže povezavo med imeni datotek naprav in
položajem naprav na katerem od vodil IDE. Ime datoteke naprave, ki
predstavlja vaš zapisovalnik CD, je treba podati jedru Linuxa, na primer
hdb=ide-scsi
. Tako nastavitev moramo dodati v datoteki
lilo.conf
ali chos.conf
, če je gonilnik statični del
jedra, kar je najpogostejši primer. Če morate podati jedru več kot en
parameter, parametre ločite s presledki, tako kot v zgledu za chos spodaj. V
programskih izpisih zgleda nastavitev, ki sledita, je prikazano več
vrstic, ne le tista, ki jo je treba dodati. Vedite, da so vrstice
append- in cmdline- odvisne od jedra, zatorej jih ne dodajajte na
začetek datoteke.
image=/boot/zImage-2.2.14 label=Linux read-only append="hdb=ide-scsi"Programski izpis: Zgled nastavitve za LILO (/etc/lilo.conf)
linux "Linux 2.1.14" { image=/boot/zImage-2.0.37 cmdline= root=/dev/hda5 readonly hdb=ide-scsi }Programski izpis: Zgled nastavitve za chos (/etc/chos.conf)
Če gonilnik IDE/ATAPI nalagamo kot modul, nam zgornja dva izpisa nista v pomoč. Namesto tega vključimo vrstico "options" iz naslednjega izpisa. Vključitev zadnjih treh vrstic navadno svetujejo zato, da se nadalje avtomatizira samodejno nalaganje potrebnih modulov.
options ide-cd ignore=hdb # tell the ide-cd module to ignore hdb alias scd0 sr_mod # load sr_mod upon access of scd0 #pre-install ide-scsi modprobe imm # uncomment for some ZIP drives only pre-install sg modprobe ide-scsi # load ide-scsi before sg pre-install sr_mod modprobe ide-scsi # load ide-scsi before sr_mod pre-install ide-scsi modprobe ide-cd # load ide-cd before ide-scsiProgramski izpis: Zgled nastavitve /etc/modules.conf
Če je zapisovalnik CD edina enota CD-ROM v sistemu, vedite, da jo morate zdaj
uporabiti prek datoteke naprave /dev/scdx
,
kjer je x številka od 0 do 7. Verjetno boste želeli tudi
simbolno ime cdrom
spremeniti tako, da bo kazalo na novo ime
naprave. Spodnji programski izpis kaže, kako to izvedemo za napravo
scd0
.
cd /dev && rm cdrom && ln -s scd0 cdromProgramski izpis: Nastavitev cdrom kot simbolno ime za scd0
Če sta zapisovalnik CD in enota CD-ROM dve različni napravi, potem pustite simbolno ime cdrom pri miru.
Preverite, ali je BIOS krmilnika SCSI prepozna zapisovalnik. Krmilniki SCSI ob zagonu preiščejo vodilo SCSI in izpišejo vse najdene naprave. Izpis obsega identifikacijsko številko SCSI ID naprave in oznako izdelka. Nobenega smisla nima nadaljevati, če vaš pisalnik ob zagonskem pregledu naprav SCSI ni naveden.
Če načrtujete priklop naprave SCSI prek vzporednih vrat (ne zamenjujte tega s priključitvijo naprav IDE prek vzporednih vrat), potrebujete posebni aktivni kabel in posebni gonilnik za jedro. Več podatkov o takih sistemih najdete na naslovu http://www.torque.net/parport/parscsi.html.
Pisec priznava, da o tem nima pojma, in bralca vljudno vabi, naj obišče
stran
http://www.torque.net/parport/paride.html ali
prebere datoteko /usr/src/linux/Documentation/paride.txt
v
svojem računalniku.
Ta razdelek lahko preskočite, če je bila vaša strojna oprema pravilno prepoznana in nastavljena, kot je bilo opisano zgoraj.
Jedro Linuxa je lahko opremljeno z gonilniki za različne naprave. Gonilniki so lahko statično naloženi v jedru, lahko pa jih prevedemo tudi kot module, ki se naložijo po potrebi. Zadnji način je priporočljiv za gonilnike, ki niso nujno potrebni ob zagonu sistema, ker bo tako jedro manjše in se bo hitreje naložilo. Pri gonilnikih za naprave, ki so nujno potrebne za zagon sistema, izbire nimamo, temveč jih moramo vključiti v jedro. Če imamo sistem naložen na disku IDE, je gonilnik IDE zgled za tak gonilnik -- vključiti ga moramo neposredno v jedro in ne kot modul, sicer se sistem ne bo pravilno zagnal.
Poznamo tri različne vrste zapisovalnikov CD: take na vodilu SCSI, na vodilu IDE/ATAPI in zunanje naprave, ki jih priključimo na vzporedna vrata. Spodnja tabela kaže, kako nastaviti jedro Linuxa za vsako od treh navedenih vrst. Prvi stolpec tabele podaja razdelek na nastavitvenem menuju jedra, kjer lahko najdemo nastavitev. Drugi stolpec navaja kratek opis, prav tako pobran z nastavitvenega menuja. V tretjem stolpcu najdemo ime modula. Zadnji trije stolpci navajajo, kateri moduli so potrebni za katero vrsto vodila: SCSI, IDE in PP (parallel port, vzporedna vrata).
Razd. Opis Modul SCSI IDE PP ------------------------------------------------------------ BLOCK Enhanced IDE/MFM/RLL... Y BLOCK IDE/ATAPI CDROM ide-cd M BLOCK SCSI emulation support 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/M Y/M Y/M FS Microsoft Joliet cdrom... joliet Y Y YTabela: izbira gonilnikov za različne vrste zapisovalnikov
Oznaka Y
pomeni, da moramo gonilnik vključiti kot del jedra,
M
pa, da ga moramo prevesti kot modul. Pri oznaki
Y/M
imamo na izbiro, ali gonilnik vključimo neposredno v
jedro ali pa kot modul. Če ni navedeno nič, to pomeni, da te izbire ni
treba spreminjati. Veliko večje so možnosti, da bo ob vnovičnem zagonu
vse še naprej delovalo, če jih v tem primeru tudi res ne
spreminjamo. Posebej v mešanih okoljih (IDE/SCSI) je pametno, če
prevedemo čim več gonilnikov kot module.
Prevajanje povratnozančne naprave (loopback device) ni obvezno, vendar pa nam omogoča preizkušanje slike CD, preden jo zapišemo na ploščo. Če želimo brati CD, moramo vključiti podporo datotečnemu sistemu ISO 9660. Ta že vključuje razširitve Rock Ridge, podporo razširitvam, ki jih prinaša Microsoftov zapis Joliet, pa moramo izrecno dodati. V vsakem primeru pa potrebujemo nizkonivojski gonilnik za našo vrsto strojne opreme. To je gonilnik, ki občuje neposredno z izbrano napravo. Za gonilnike na vodilu SCSI in vzporednih vratih imamo na voljo široko paleto gonilnikov.
Nameščanje tako prevedenega jedra Linuxa presega zastavljeni okvir tega spisa, zato se za podrobnosti obrnite na dokumentacijo za vašo distribucijo Linuxa.
Uporabniki sistemov Red Hat Linux morajo poleg navedenega vključiti še
podporo za "Ramdisk support" in "Initial ramdisk", poleg tega pa
morajo z ukazom mkintrd --preload ide-cd initrd-2.2.16.img
2.2.16
ustvariti nov pomnilniški disk z novimi moduli.
Podrobnejši pregled orodij za izdelavo diskov CD je na voljo na naslovu http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdb.html.
Za pripravo slik CD-R je potreben eden od naslednjih paketov:
ftp://tsx-11.mnt.edu/pub/linux/packages/mkisofs/ (mkisofs)ftp://ftp.ge.ucl.ac.uk/pub/mkhfs (mkhybrid)
Za zapisovanje slik CD-R na diske pa boste potrebovali enega od naslednjih programov:
ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/ (cdrecord)http://www.ping.de/sites/daneb/cdrdao.html (cdrdao)
http://www.munich-vision.de/vcd/ (mkvcdfs)
Ne verjemite navodilom za starejše izdaje programa mkisofs
,
ki trdijo, da morate uporabljati izdajo 1.5 programa
cdwrite
. Namesto tega raje uporabite
cdrecord
. Novejše različice programa cdrecord
vsebujejo poleg tega še izboljšano izdajo programa mkisofs
in
nekaj dodatnih orodij v podimeniku misc/
(readcd,
isosize...), ki jih ne najdete nikjer drugje.
Navedeni grafični uporabni vmesniki so čelni programi -- za delovanje poleg njih potrebujemo še prej navedene programe, ki jih poganjamo iz ukazne vrstice.
X-CD-Roast je program za Linux, ki poenostavlja pripravo
plošč CD in ponuja enovit vmesnik tako za pripravo slik CD
(mkisofs
) kot za zapis le-teh na disk (cdrecord
).
http://www.fh-muenchen.de/home/ze/rz/services/projects/xcdroast/e_overview.html
BurnIT je javanski čelni program za cdrecord, mkisofs and cdda2wav, kar je vse, kar potrebujemo za pripravo CD v okolju Unix. Dostopen je na naslovu:
http://sunsite.auc.dk/BurnIT/
CD-Tux je terminalski čelni program za programa mkisofs in cdrecord. Z uporabo (ne)slavne knjižnice ncurses ustvarja enostavno okolje, v katerem lahko počnemo s CD skoraj vse, in to v barvah. Pri vsem skupaj je koda prevedenega programa manjša od 75 KB.
http://www.datadictator.co.za/cdtux/