Πριν το Νοέμβριο του 1997, το λογισμικό για Linux δεν υποστήριζε ATAPI cd-writers. Σαν αποτέλεσμα, η τρέχουσα έκδοση αυτού του HOWTO επικεντρώνεται στην αντιμετώπιση των συσκευών SCSI.
Τα καλά νέα είναι, πως η αντιμετώπιση των συσκευών ATAPI είναι πολύ ευκολότερη και μπορείτε ακόμα να χρησιμοποιείτε αυτό το HOWTO αν ξεχάσετε τις "Συσκευές SCSI γενικού τύπου".
Για να βρείτε πώς απευθύνεστε σε συσκευές ATAPI μπορείτε να δώσετε την εντολή
cdrecord -scanbus
.
Μελλοντικές εκδόσεις αυτού του HOWTO θα περιέχουν περισσότερες λεπτομέρειες για αντιμετώπιση των ATAPI cd-writers.
Κατεβάστε τον Η/Υ σας, κλείστε τον και κρεμάστε το CD writer στο δίαυλο SCSI. Βεβαιωθείτε πως ο δίαυλος SCSI είναι τερματισμένος (terminated) κατάλληλα και διαλέξτε μια ελεύθερη ταυτότητα θέσης SCSI (SCSI-ID) για τον εγγραφέα. Κοιτάξτε το Linux SCSI-HOWTO αν δεν είσαστε σίγουροι. Αν δεν έχετε απολύτως καμία ιδέα για αυτά, ρωτήστε έναν ειδικό.
Τροφοδοτήστε ξανά με ρεύμα και ελέγξτε τα μηνύματα που το BIOS του ελεγκτή (controller) SCSI τυπώνει αμέσως μετά το άνοιγμα του ρεύματος.
Αν δεν αναγνωρίσει το writer σας, πηγαίνετε πάλι πίσω στο βήμα (β). Θα πρέπει να δείτε ένα μήνυμα σαν
[λείπει η εικόνα ; έχει κανείς κάποιο στιγμιότυπο οθόνης (screenshot) από αυτό;]
Σε αντίθεση με κάποιες φήμες, ο πυρήνας του 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.
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
Τώρα τα αρχεία συσκευών θα πρέπει να εμφανιστούν.
Ο πυρήνας του 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
Σημειώστε πως παρέλειψα τις όχι πολύ σημαντικές ερωτήσεις.
Εάν έχετε ερωτήσεις σχετικά με αυτό, το Linux Kernel-HOWTO είναι το προτεινόμενο διάβασμά σας. Επιπλέον, η διανομή Linux σας, θα πρέπει να έρχεται με κάποια τεκμηρίωση για αυτό το θέμα.
[Υπόδειξη: όταν κάνετε ξανά compile, μπορείτε να συνεχίσετε με τα βήματα 2.7-2.9]
Μην πανικοβληθείτε εάν ο πυρήνας του 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.
Πηγαίνετε στο 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).
Τα ακόλουθα πακέτα απαιτούνται για την παραγωγή πρωτοτύπων για 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.).
Το 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.