Next Previous Contents

2. Ετοιμασία του Linux-κουτιού σας για εγγραφή CD-ROMs

Πριν το Νοέμβριο του 1997, το λογισμικό για Linux δεν υποστήριζε ATAPI cd-writers. Σαν αποτέλεσμα, η τρέχουσα έκδοση αυτού του HOWTO επικεντρώνεται στην αντιμετώπιση των συσκευών SCSI.

Τα καλά νέα είναι, πως η αντιμετώπιση των συσκευών ATAPI είναι πολύ ευκολότερη και μπορείτε ακόμα να χρησιμοποιείτε αυτό το HOWTO αν ξεχάσετε τις "Συσκευές SCSI γενικού τύπου".

Για να βρείτε πώς απευθύνεστε σε συσκευές ATAPI μπορείτε να δώσετε την εντολή cdrecord -scanbus.

Μελλοντικές εκδόσεις αυτού του HOWTO θα περιέχουν περισσότερες λεπτομέρειες για αντιμετώπιση των ATAPI cd-writers.

2.1 Εγκατάσταση του υλικού (hardware)

Κατεβάστε τον Η/Υ σας, κλείστε τον και κρεμάστε το CD writer στο δίαυλο SCSI. Βεβαιωθείτε πως ο δίαυλος SCSI είναι τερματισμένος (terminated) κατάλληλα και διαλέξτε μια ελεύθερη ταυτότητα θέσης SCSI (SCSI-ID) για τον εγγραφέα. Κοιτάξτε το Linux SCSI-HOWTO αν δεν είσαστε σίγουροι. Αν δεν έχετε απολύτως καμία ιδέα για αυτά, ρωτήστε έναν ειδικό.

Τροφοδοτήστε ξανά με ρεύμα και ελέγξτε τα μηνύματα που το BIOS του ελεγκτή (controller) SCSI τυπώνει αμέσως μετά το άνοιγμα του ρεύματος.

Αν δεν αναγνωρίσει το writer σας, πηγαίνετε πάλι πίσω στο βήμα (β). Θα πρέπει να δείτε ένα μήνυμα σαν

[λείπει η εικόνα ; έχει κανείς κάποιο στιγμιότυπο οθόνης (screenshot) από αυτό;]

2.2 Σημείωση στην εγγραφή CDs κάτω από Linux

Σε αντίθεση με κάποιες φήμες, ο πυρήνας του Linux-kernel _δεν_ απαιτεί διόρθωση (patch) για να γράψει σε CDs. Παρόλο που το αρχείο drivers/scsi/scsi.c από τον κώδικα του πυρήνα περιέχει τις γραμμές

case TYPE_WORM:
case TYPE_ROM:
 SDpnt->writeable = 0;

Αυτό σημαίνει μόνο πως τα CDs και τα WORMs δεν είναι εγγράψιμα μέσω των κλασσικών συσκευών (devices) /dev/sda-/dev/sdh - πράγμα το οποίο είναι εντάξει.

Αντί να χρησιμοποιήσετε αυτές τις συσκευές για εγγραφή των CDs γίνεται μέσω των αποκαλούμενων Συσκευών SCSI γενικού τύπου που επιτρέπουν σχεδόν τα πάντα - ακόμα και την εγγραφή σε CDs.

2.3 Δημιουργήστε τις γενικές συσκευές

The Linux SCSI-HOWTO says about generic SCSI-devices:

Ο οδηγός Γενικών συσκευών SCSI παρέχει ένα interface για αποστολή εντολών SCSI προς όλες τις συσκευές SCSI - δίσκους, ταινίες, CDROMs, μηχανικές συσκευές αλλαγής μέσων (media changer robots), κλπ.

Μιλώντας για τις γενικές συσκευές (devices) σαν interfaces σημαίνει πως παρέχουν έναν εναλλακτικό τρόπο προσπέλασης στο SCSI υλικό, αντί μέσω των κοινών devices.

Ο εναλλακτικός τρόπος απαιτείται γιατί τα κοινά devices σχεδιάστηκαν για να διαβάζουν δεδομένα κατά κομμάτια (block-wise) από ένα δίσκο, ταινία ή cd-rom Σε σύγκριση με αυτό, το να οδηγείς ένα cd-writer (ή ένα σαρωτή (scanner)) είναι πιο εξωτικό, π.χ. πρέπει να δοθούν εντολές για τοποθέτηση του laser . Αν έχεις μια καθαρή (και γι' αυτό γρήγορη) υλοποίηση των κοινών συσκευών (devices), όλες αυτές οι εξωτικές ενέργειες πρέπει να γίνουν μέσω των γενικών συσκευών SCSI.

Μια που όλα μπορούν να γίνουν στο SCSI υλικό μέσω των γενικών συσκευών, δεν έχουν φτιαχτεί για ένα συγκεκριμένο σκοπό - γι' αυτό και το όνομα γενικές (generic).

Πηγαίνετε στο /dev-directory και τσεκάρετε για γενικές συσκευές SCSI. Η εντολή ls θα πρέπει να δείξει 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

Αν δεν έχετε τέτοια αρχεία-συσκευών, δημιουργήστε τα χρησιμοποιώντας το /dev/MAKEDEV-script:

bash> cd /dev/
bash> ./MAKEDEV sg
Τώρα τα αρχεία συσκευών θα πρέπει να εμφανιστούν.

2.4 Ενεργοποιήστε τη χρήση των γενικών συσκευών SCSI και της συσκευής loopback

Ο πυρήνας του Linux χρειάζεται ένα module που του παρέχει την δυνατότητα να αντιμετωπίζει SCSI συσκευές. Αν ο τρέχων πυρήνας υποστηρίζει αυτό το χαρακτηριστικό, θα πρέπει να εμφανίζεται στο ψευδο-αρχείο /proc/devices:

bash> cat /proc/devices
Character devices:
 1 mem
 2 pty
 3 ttyp
 4 ttyp
 5 cua
 7 vcs
21 sg          <----- stands for "SCSI Generic device"
30 socksys

Block devices:

 2 fd
 7 loop        <----- we even can use the loop-devices
 8 sd
11 sr          <----- stands for "SCSI cd-Rom"

Ίσως πρέπει να δώσετε τις εντολές insmod sg, insmod loop ή insmod sr_mod για να φορτώσετε τα modules στον πυρήνα. Ελέγξτε ξανά αφού το δοκιμάσετε. Αν κάποιο από αυτά δεν πετύχει, πρέπει να ξαναρυθμίσετε τον πυρήνα σας και να τον ξαναμεταγλωττίσετε (re-compile).

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

Σημειώστε πως παρέλειψα τις όχι πολύ σημαντικές ερωτήσεις.

2.5 Χτίσιμο και εγκατάσταση του πυρήνα

Εάν έχετε ερωτήσεις σχετικά με αυτό, το Linux Kernel-HOWTO είναι το προτεινόμενο διάβασμά σας. Επιπλέον, η διανομή Linux σας, θα πρέπει να έρχεται με κάποια τεκμηρίωση για αυτό το θέμα.

[Υπόδειξη: όταν κάνετε ξανά compile, μπορείτε να συνεχίσετε με τα βήματα 2.7-2.9]

2.6 Επανεκκινήστε τον υπολογιστή για να εγκυροποιηθούν οι αλλαγές.

Μην πανικοβληθείτε εάν ο πυρήνας του Linux τυπώσει τα μηνύματα γρηγορότερα από όσο μπορείτε να διαβάσετε, τουλάχιστον η αρχικοποίηση των συσκευών SCSI μπορεί να επανεμφανιστεί με την εντολή dmesg:

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: FUJITSU   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: hdwr sector= 512 bytes. Sectors= 2131992

Παραπάνω φαίνεται μόνο το κομμάτι εκείνο των μηνυμάτων αρχικοποίησης που αναφέρουν τον εντοπισμό της φυσικής παρουσίας μιας συσκευής SCSI.

2.7 Δημιουργία των συσκευών loopback

Πηγαίνετε στο directory /dev και κοιτάξτε για συσκευές loopback. Δεν είναι κρίσιμο, το να μην έχετε τέτοιες συσκευές, αλλά είναι βολικό αν υπάρχουν (δείτε το 3.5). Αν ήδη τις έχετε, η εντολή ls θα πρέπει να δείξει loop0-loop7:

bash> cd /dev
bash> ls -l loop*
brw-rw----   1 root  disk    7,   0 Sep 23 17:15 loop0
brw-rw----   1 root  disk    7,   1 Sep 23 17:15 loop1
brw-rw----   1 root  disk    7,   2 Sep 23 17:15 loop2
brw-rw----   1 root  disk    7,   3 Sep 23 17:15 loop3
brw-rw----   1 root  disk    7,   4 Sep 23 17:15 loop4
brw-rw----   1 root  disk    7,   5 Sep 23 17:15 loop5
brw-rw----   1 root  disk    7,   6 Sep 23 17:15 loop6
brw-rw----   1 root  disk    7,   7 Sep 23 17:15 loop7

Αν δεν έχετε αυτά τα αρχεία συσκευών, δημιουργήστε τα χρησιμοποιώντας το script /dev/MAKEDEV:

bash> cd /dev/
bash> ./MAKEDEV loop

Η τελευταία εντολή επιτυγχάνει μόνο αν έχετε το loop-module στον πυρήνα σας (δες το 2.4 για τη χρήση των modules). Αν η insmod loop δεν βοηθήσει, θα πρέπει να περιμένετε μέχρι ο καινούργιος πυρήνας να εγκατασταθεί κανονικά (δες το 2.5).

2.8 Προμηθευτείτε το λογισμικό για εγγραφή των CDs

Ρουτίνες γραμμής-εντολών

Τα ακόλουθα πακέτα απαιτούνται για την παραγωγή πρωτοτύπων για CD-Rs:

ftp://tsx-11.mit.edu/pub/linux/packages/mkisofs/ (mkisofs)

ftp://ftp.ge.ucl.ac.uk/pub/mkhfs (mkhybrid)

Ανάλογα με το μοντέλο του cd-writer σας (δες 1.3), απαιτείται ένα από τα ακόλουθα λογισμικά για εγγραφή των πρωτοτύπων σε CD-Rs:

ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/ (cdrecord)

ftp://sunsite.unc.edu/pub/Linux/utils/disk-management/ (cdwrite)

Χρησιμοποιήστε το κοντινότερο mirror από αυτούς τους ftp-Servers ή πάρτε τα από CD. Να είσαστε απολύτως σίγουρος πως έχετε την έκδοση 2.0 του cdwrite, ή νεώτερή της. Καμιά παλαιότερη βήτα έκδοση δεν θα δουλέψει κανονικά! Μην εμπιστεύεστε την σελίδα-βοηθείας (man-page) του (παλιού) mkisofs που δηλώνει πως χρειάζεστε την έκδοση

1.5 του cdwrite.

Για πληροφορίες για μεταφορές του λογισμικού (ports) του cdwrite σε Irix και AIX επισκεφθείτε το URL :

http://lidar.ssec.wisc.edu/~forrest/

Εάν χρησιμοποιείτε πυρήνα πριν την έκδοση 2.0.31, μπορεί να θέλετε να διορθώσετε το mkisofs για να ξεπεράσετε ένα bug στον κώδικα του συστήματος αρχείων του Linux. Η διανομή της Debian περιλαμβάνει ένα διορθωτικό (patch) για την έκδοση 1.05 του mkisofs (για 1.11 θα πρέπει να δουλεύει, επίσης) που του προσθέτει την επιλογή '-K' (δες το 3.4). Είναι διαθέσιμο από το

ftp://ftp.debian.org/pub/debian/bo/source/otherosfs/mkisofs_1.11-1.diff.gz

Η διόρθωση αυτή είναι αναγκαία μόνο εάν θέλετε να προσαρτήσετε το CD-image μέσω της συσκευής loopback (δείτε το 3.5.).

Ένα γραφικό user interface (προαιρετικό).

Το X-CD-Roast είναι ένα πρόγραμμα εγγραφής CD βασιζόμενο αποκλειστικά στα X, και είναι ο απόγονος των cdwtools-0.93. Είναι διαθέσιμο στο

http://www.fh-muenchen.de/home/ze/rz/services/projects/xcdroast/e_overview.html

Προς το παρών το X-CD-Roast βασίζεται σε μια διορθωμένη έκδοση του cdwrite-2.0 και γι' αυτό έρχεται με ακριβώς τα ίδια χαρακτηριστικά (δείτε το 1.4). Οι μελλοντικές του εκδόσεις μπορεί να βασίζονται στο εναλλακτικό λογισμικό cdrecord.


Next Previous Contents