Naprej Nazaj Vsebina

2. Priprava Linuxa na zapisovanje CD-ROM-ov

Pred novembrom 1997 programska oprema za Linux ni podpirala zapisovalnikov CD-jev vrste ATAPI. To se odraža tudi v trenutni verziji tega spisa, ki se osredotoča na delo z napravami SCSI.

Dobra novica je, da je delo z napravami ATAPI veliko lažje in da boste ta HOWTO lahko uporabljali tudi, če ste pozabili na "splošne naprave SCSI". Da bi ugotovili, kako nastaviti naprave ATAPI, uporabite ukaz cdrecord -scanbus.

Naslednje različice tega spisa bodo vsebovale več podrobnosti o delu z zapisovalniki CD-jev vrste ATAPI.

2.1 Nastavitev strojne opreme

Ugasnite računalnik, ga izklopite in priključite zapisovalnik CD-jev na vodilo SCSI.

Prepričajte se, da so vodila SCSI ustrezno zaprta in izberite prost SCSI-ID za zapisovalnik. Če niste popolnoma prepričani, preberite Linux SCSI-HOWTO. V primeru da ste popolnoma brez idej, povprašajte izkušene uporabnike.

Ponovno prižgite računalnik in preberite sporočila, ki jih takoj po vključitvi izpiše BIOS SCSI krmilnika. V primeru da ne prepozna vašega zapisovalnika, se vrnite na korak (b). Opaziti bi morali tudi sporočilo z naslednjo obliko :-)

2.2 Opomba glede zapisovanja na CD-je v Linuxu

V nasprotju z govoricami jedra Linux ni potrebno ponovno prevajati, da bi lahko zapisovali na CD-je. Čeprav datoteka drivers/scsi/scsi.c, ki je v izvorni kodi jedra, vsebuje vrstice

case TYPE_WORM:
case TYPE_ROM:
 SDpnt->writable = 0;
to pomeni le, da na CD-je in WORM-e ni možno zapisovati preko standardnih naprav /dev/sda-/dev/sdh - kar pa je tudi dobro.

Namesto s pomočjo teh naprav, se zapisovanje na CD-je vrši preko tako imenovanih splošnih naprav SCSI, ki omogočajo skoraj vse - celo zapisovanje na CD-je.

2.3 Ustvarjanje splošnih naprav

V Linux SCSI-HOWTO je o napravah SCSI zapisano:

Gonilnik za splošno napravo SCSI nudi vmesnik za pošilajnje ukazov za SCSI vsem napravam SCSI - diskom, trakom, CD-ROM-om, mehanizmom za izmenjavo medijev, itd.
Ko govorimo o splošnih napravah kot o vmesnikih, hočemo povedati, da poleg dostopa preko standardnih naprav, nudijo tudi alternativen način za dostop do strojne opreme vrste SCSI.

Ta alternativni način je potreben zato, ker so standardne naprave oblikovane tako, da berejo podatkovne bloke z diska, traku ali CD-ROM-a. V primerjavi s tem je uporaba zapisovalnikov CD-jev (ali scannerja) bolj eksotična, npr. potrebno je posredovati ukaze za pozicioniranje laserja. Da bi imeli čisto (in s tem tudi hitro) vgradnjo standardnih naprav, se morajo vse te eksotične operacije izvajati preko splošnih naprav SCSI.

Ker lahko preko splošnih naprav s strojno opremo SCSI počnemo skoraj vse, njihov namen ni fiksno določen - prav zaradi tega tudi ime "splošne".

Pojdite v imenik /dev in poiščite splošne naprave SCSI; ukaz ls bi moral pokazati sga-sgh:

bash> cd /dev
bash> ls -l sg*
crw-------    1    root    sys    21,    0 Jan    1    1970    sga
crw-------    1    root    sys    21,    1 Jan    1    1970    sgb
crw-------    1    root    sys    21,    2 Jan    1    1970    sgc
crw-------    1    root    sys    21,    3 Jan    1    1970    sgd
crw-------    1    root    sys    21,    4 Jan    1    1970    sge
crw-------    1    root    sys    21,    5 Jan    1    1970    sgf
crw-------    1    root    sys    21,    6 Jan    1    1970    sgg
crw-------    1    root    sys    21,    7 Jan    1    1970    sgh
V primeru da teh naprav-datotek nimate, jih lahko ustvarite z uporabo zapisa /dev/MAKEDEV:
bash> cd /dev/
bash> ./MAKEDEV sg
Sedaj bi se morale naprave-datoteke prikazati.

2.4 Omogočanje uporabe splošnih naprav SCSI in povratnih naprav

Jedro Linuxa potrebuje modul, ki mu omogoča upravljanje s splošnimi napravami SCSI. Če ima vaše delujoče jedro to opcijo, bi morala biti navedena v psevdo-datoteki /proc/devices:

bash> cat /proc/devices
Character devices:
 1 mem
 2 pty
 3 ttyp
 4 ttyp
 5 cua
 7 vcs
21 sg         <----- označuje "splošne naprave SCSI"

30 socksys

Block devices:
 2 fd
 7 loop       <----- uporabljamo lahko celo povratne naprave
 8 sd
11 sr         <----- označuje "SCSI CD-ROM"
Mogoče boste morali za naložitev modula v jedro uporabiti ukaze insmod sg, insmod loop ali insmod sr_mod. Ko boste to storili, ponovno poskusite.

Če eden izmed njih ne uspe izvesti svoje funkcije, boste morali preoblikovati jedro in ga ponovno prevesti.

bash> cd /usr/src/linux
bash> make config

[..]
*
* Additional Block Devices
*
Loopback device support (CONFIG_BLK_DEV_LOOP) [M/n/y/?] M

[..]
*
* SCSI support
*
SCSI support (CONFIG_SCSI) [Y/m/n/?] Y
*
* SCSI support type (disk, tape, CD-ROM)
*
SCSI disk support (CONFIG_BLK_DEV_SD) [Y/m/n/?] Y
SCSI tape support (CONFIG_CHR_DEV_ST) [M/n/y/?] M
SCSI CD-ROM support (CONFIG_BLK_DEV_SR) [M/n/y/?] M
SCSI generic support (CONFIG_CHR_DEV_SG) [M/n/y/?] M

[..]
ISO9660 cdrom filesystem (CONFIG_ISO9660_FS) [Y/m/n/?] M
Opomba: izpustil sem vsa manj pomembna vprašanja.

2.5 Izgradnja in namestitev jedra

V primeru da imate vprašanja, ki se nanašajo na naslov tega razdelka, predlagam, da si preberete Linux Kernel-HOWTO. Nekaj dokumentacije o tem bi morala vsebovati tudi vaša distribucija Linuxa.

Namig: Medtem ko prevajate jedro, lahko nadaljujete s točkami od 2.7 do 2.9

2.6 Za učinkovanje sprememb ponovno zaženite računalnik

Naj vas ne zgrabi panika, če bo jedro Linuxa hitreje izpisovalo podatke, kot jih boste lahko vi brali; z ukazom dmesg lahko ponovno preberete vsaj inicializacijo naprav SCSI:

scsi0 : NCR53c{7, 8}xx (rel 17)
scsi : 1 host.
scsi0 : target 0 accepting period 100ns offset 8 10.00MHz
scsi0 : setting target 0 to period 100ns offset 8 10.00MHz

  Vendor: FUJITSO    Model: M1606S-512        Rev: 6226
  Type:   Direct-Access                       ANSI SCSI
Detected scsi disk sda at scsi0, channel 0, id 0, lun 0
  Vendor: NEC        Model: CD-ROM DRIVE:84   Rev: 1.0a
  Type:   CD-ROM                              ANSI SCSI
Detected scsi CD-ROM sr0 at scsi0, channel 0, id 4, lun 0

scsi : detected 1 SCSI disk total.
SCSI device sda: hdrw sector= 512 bytes. Sectors= 2131992
Zgornje vrstice so samo del inicializacijskega sporočila, ki daje informacije o zaznavanju fizično prisotnih naprav SCSI.

2.7 Ustvarjanje povratnih naprav

Pojdite v imenik /dev in poiščite povratne naprave. Nič hudega, če teh naprav nimate, je pa priporočljivo (glej Testiranje slike CD-jev). V primeru da te naprave že obstajajo, bi moral ukaz ls prikazati loop0 - loop7:

bash> cd /dev
bash> ls -l loop*
crw-------    1    root    sys    7,    0 Sep    23    17:15    loop0
crw-------    1    root    sys    7,    1 Sep    23    17:15    loop1
crw-------    1    root    sys    7,    2 Sep    23    17:15    loop2
crw-------    1    root    sys    7,    3 Sep    23    17:15    loop3
crw-------    1    root    sys    7,    4 Sep    23    17:15    loop4
crw-------    1    root    sys    7,    5 Sep    23    17:15    loop5
crw-------    1    root    sys    7,    6 Sep    23    17:15    loop6
crw-------    1    root    sys    7,    7 Sep    23    17:15    loop7
Če teh naprav-datotek nimate, jih ustvarite z uporabo skripte /dev/MAKEDEV:
bash> cd /dev/
bash> ./MAKEDEV loop
Zadnji ukaz bo učinkovit le v primeru, da imate v jedro vključen loop-modul (o delu z moduli si preberite v Omogočanje uporabe splošnih naprav SCSI in povratnih naprav). Če ismod loop ne pomaga, boste morali počakati, da bo novo jedro pravilno nameščeno (glej Izgradnja in namestitev jedra).

2.8 Uporabniška programska oprema za zapisovanje na CD-je

Programi za ukazno vrstico

Za tvorjenje prototipov CD-R-jev je potreben naslednji paket:

ftp://tsx-11.mnt.edu/pub/linux/packages/mkisofs/ (mkisofs)
ftp://ftp.ge.ucl.ac.uk/pub/mkhfs (mkhybrid)
V odvisnosti od modela vašega zapisovalnika CD-jev (glej Terminologija...Laserje na maksimalno moč...Ogenj!) je za zapisovanje prototipov CD-R-jev potrebna naslednja programska oprema:
ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/ (cdrecord)
ftp://sunsite.unc.edu/pub/Linux/units/disk-management/ (cdwrite)
Prosim, da uporabite najbližji zrcalni strežnik teh dveh strežnikov FTP, ali pa si programe priskrbite na CD-ju.

Prepričajte se, da imate program cdwrite različice 2.0 ali novejše. Nobena starejša, še posebej pa ne beta-različica, ne bo pravilno delovala! Ne upoštevajte man strani (starejših) različic programa mkisofts, kjer je navedeno, da potrebujete program cdwrite različice 1.5.

Informacije o prenosu programa cdwrite na operacijska sistema Irix in AIX najdete na:

http://lidar.ssec.wisc.edu/-forrest/
Če uporabljate jedro, ki je starejše od različice 2.0.31, boste verjetno ponovno prevedli mkisofts in se tako izognili napaki v kodi datotečnega sistema za Linux.

Distribucija Debian nudi popravke za različico 1.05 programa mkisoft (deloval bi tudi za različico 1.11), ki doda stikalo '-K' (glej Ustvarjanje datotečnega sistema iso9660); dobite jo lahko na

ftp://ftp.debian.org/pub/debian/bo/source/otherosfs/mkisofts_1.11-1.diff.gz
Ta popravek je nujen samo v primeru, če želite sliko CD-ja povezati preko povratne naprave (glej Testiranje slike CD-jev).

Grafični uporabniški vmesnik (ni obvezen)

X-CD-Roast je program, zasnovan popolnoma za X, za zapisovanje na CD-je in je naslednik programa cdwtools-0.93. Najdete ga na

http://www.fh-muenchen.de/home/ze/rz/services/projects/xcdroast/e_overview.html
Trenutna različica programa X-CD-Roast je osnovana na popravljeni različici programa cdwrite-2.0 in zaradi tega vsebuje enake izbire (glej Podprti zapisovalniki CD-jev). Naslednje različice bodo mogoče osnovane na alternativni programski opremi cdwrite.


Naprej Nazaj Vsebina