💾 Archived View for magaz.hellug.gr › 28 › 03_rithimis › index.gmi captured on 2024-08-18 at 17:36:28. Gemini links have been rewritten to link to archived content
View Raw
More Information
⬅️ Previous capture (2024-02-05)
-=-=-=-=-=-=-
CD Recording
Νίκος Αποστολάκης(mailto:nickapos@agriroot.aua.gr)
Νοε 2000
Βήματα και μεθόδοι που ακολουθούμε για να γράψουμε ένα cd απο το Linux.
1. DISCLAIMER
2. Ρυθμίσεις του πυρήνα του Linux για να γράψουμε ένα cd.
- [2.1 Η θεωρία]
- [2.2 Τα modules]
- [2.3 Ειδικές περιπτώσεις όσον αφορά το module loading and unloading.]
3. Δημιουργία και έλεγχος του iso-image.
- [3.1 Δημιουργία του iso-image.]
- [3.2 Έλεγχος του iso-image.]
4. Το κάψιμο του cd.
- [4.1 Η εντολή]
- [4.2 Επεξήγηση παραμέτρων]
5. Ειδικές ρυθμίσεις για την εγγραφή multisession cd.
- [5.1 Γενικά]
- [5.2 Έλεγχος του προηγούμενου session και δημιουργία του image.]
- [5.3 Εγγραφή του session]
6. Βιβλιογραφία
[1. DISCLAIMER]
Δεν φέρω καμία ευθύνη για τυχόν ζημίες που θα προκληθούν στο μηχάνημα σας απο την εφαρμογή των παρακάτω. Εάν αποφασίσετε να ακολουθήσετε τα παρακάτω το κάνετε με δική σας ευθύνη.
[2. Ρυθμίσεις του πυρήνα του Linux για να γράψουμε ένα cd.]
[2.1 Η θεωρία]
Κατ' αρχάς για να επιτύχουμε την εγγραφή του cd στο Linux πρέπει να ενεργοποιήσουμε την υποστήριξη για SCSI που έχει το Linux. Εάν το cdwriter που έχουμε δεν είναι SCSI ακόμη και τότε θα πρέπει να ενεργοποιήσουμε το λεγόμενο SCSI emulation.
Η δική μου περίπτωση είναι η δεύτερη.
[2.2 Τα modules]
Εδώ θα ήθελα να αναφέρω ότι όσον αφορά το configuration του πυρήνα προτιμώ να βάζω μέσα στον πυρήνα τα απολύτως απαραίτητα και να φτιάχνω τα υπόλοιπα σαν modules.
Θεωρούμε ότι έχετε ρυθμίσει τον πυρήνα ώστε να μπορείτε να χρησιμοποιείτε το cdrom και να διαβάζετε iso-9660 filesystems.
Για να ενεργοποιήσουμε το SCSI emulation πρέπει να απαντήσουμε Y ή M στην επιλογή scsi emulation support, στο SCSI generic support επίσης Y ή M και το ίδιο και στο SCSI cdrom support. Αφότου ενεργοποιήσουμε το SCSI emulation μπορούμε πια να αναφερόμαστε στις IDE συσκευές μας σα να ήταν SCSI.
[2.3 Ειδικές περιπτώσεις όσον αφορά το module loading and unloading.]
Eνδιαφέρουσες περιπτώσεις.
Κατά την ρύθμιση του πυρήνα μπορούν να προκύψουν κάποιες ενδιαφέρουσες περιπτώσεις.
- Η πρώτη περίπτωση είναι να έχετε επιλέξει το SCSI emulation ώστε να γίνει compile μέσα στον πυρήνα (όχι σαν module). Σε αυτή την περίπτωση αν έχετε επιλέξει την υποστήριξη για IDE cd-rom drives ώστε να γίνει compile μέσα στον πυρήνα τότε δεν θα μπορείτε να χρησιμοποιήσετε το cdwriter για την εγγραφή cd. Αυτό συμβαίνει γιατί όπως αναφέρεται στο documentation του πυρήνα όταν έχετε επιλέξει υποστήριξη για IDE cd-rom και SCSI emulation τότε αυτόματα χρησιμοποιείται το default δηλαδή εδώ το IDE cd-rom. Το ίδιο αποτέλεσμα και για τους ίδιους λόγους θα έχετε και όταν επιλέξετε το IDE cd-rom drive support σαν build-in στον πυρήνα και το SCSI emulation σαν module.
- Η δεύτερη περίπτωση είναι να έχετε επιλέξει και στις δύο επιλογές Module. Τότε θε πρέπει να παίζετε με τις εντολές lsmod , rmmod , insmod ή modprobe προκειμένου να μπορέσετε να κάνετε load τα modules που χρειάζονται για το SCSI emulation και unload τα modules που χρησιμοποιούνται απο το IDE cd-rom.
- Η τρίτη περίπτωση είναι να έχετε επιλέξει μόνο το SCSI emulation είτε build-in στον πυρήνα είτε σαν module και να έχετε επιλέξει Module στο IDE cd-rom support. Σε αυτή την περίπτωση θα βλέπετε όλα τα cd-rom drives σας σαν SCSI και θα μπορείτε να χρησιμοποιείτε το cdwriter άμεσα.
Αποτελέσματα
Εάν όλα είναι εντάξει τότε η εντολή cdrecord -scanbus μας δείχνει τις SCSI συσκευές που υπάρχουν στο σύστημα. Εγώ προσωπικά έχω δοκιμάσει και τα δύο τελευταία configurations για σχετικά μεγάλα χρονικά διαστήματα με εξίσου καλά αποτελέσματα όσον αφορά την εγγραφή των cd's.
Όταν είχα το configuration μόνο για SCSI emulation είχα κάποια προβλήματα στο audio-ripping αλλά δεν έχω διαπιστώσει αν γι'αυτο ήταν υπεύθυνο το configuration ή το drive μου που είναι αρκετά παλιό και σχετικά προβληματικό.
[3. Δημιουργία και έλεγχος του iso-image.]
[3.1 Δημιουργία του iso-image.]
Η εντολή
Φτιάχνουμε το iso-image με το mkisofs. Η εντολή που δίνουμε είναι η παρακάτω:
mkisofs -r --o iso-image firstdir/
Επεξήγηση παραμέτρων
- Η παράμετρος -r χρησιμοποιείται για να προσθέσει τα Rockridge extensions στο iso-image.
- Η παράμετρος -o χρησιμοποιείται για να δηλώσει ο χρήστης το όνομα του αρχείου που θα αποθηκευτεί η έξοδος του mkisofs δηλαδή το iso-image.
- Το firstdir/ αποτελεί το directory εισόδου του mkisofs δηλαδή το directory απο το οποίο το mkisofs θα ξεκινήσει να διαβάζει ώστε να δημιουργήσει το iso-image. Το directory αυτο δεν θα φαίνεται όταν γραφεί το cd και θα αντικατασταθεί απο το root directory του cd.
[3.2 Έλεγχος του iso-image.]
Η εντολή
Για να ελέγξουμε εάν το iso-image που δημιουργήσαμε είναι αυτο που επιθυμούμε, δεν έχει λάθη κ.τ.λ. χρησιμοποιούμε τα λεγόμενα loopback devices. Έτσι η εντολή που δίνουμε είναι η παρακάτω :
mount -t iso9660 -o ro,loop=/dev/loop0 iso-image /cdrom
Επεξήγηση παραμέτρων
- Η παράμετρος -t δηλώνει τον τύπο του filesystem που θέλουμε να προσαρτήσουμε.
- Η παράμετρος -o δηλώνει με τι επιλογές θέλουμε να προσαρτήσουμε το iso-image και σε ποιό loopback device.
- Τέλος προσδιορίζουμε σε ποιό directory θέλουμε να προσαρτήσουμε το iso-image.
Αφού προσαρτήσουμε το iso-image μπορούμε να πάμε στο directory που επιλέξαμε να γίνει η προσάρτηση και να ελέγξουμε αν όλα είναι εντάξει.
[4. Το κάψιμο του cd.]
[4.1 Η εντολή]
Η εντολή που χρησιμοποιούμε είναι η παρακάτω:
cdrecord -v -multi -eject speed=2 dev=0,0 iso-image
[4.2 Επεξήγηση παραμέτρων]
- Η παράμετρος -v χρησιμοποιείται ώστε το cdrecord να τυπώνει αναλυτικά το στάδιο στο οποίο βρίσκεται το γράψιμο του cd.
- Η επιλογή speed=2 δηλώνει την ταχύτητα της εγγραφής.
- Η επιλογή dev=0,0 δηλώνει την συσκευή μέσω της οποίας θα γίνει η εγγραφή (στο pc μου αυτή είναι η dev=0,0) σε άλλα μηχανήματα θα είναι διαφορετική.
- Η επιλογή -multi χρησιμοποιείται για την δημιουργία multisession cd.
- Η επιλογή -eject χρησιμοποιείται για να γίνει eject μόλις τελειώσει η εγγραφή.
[5. Ειδικές ρυθμίσεις για την εγγραφή multisession cd.]
[5.1 Γενικά]
Παρακάτω περιγράφεται η διαδικασία για την δημιουργία ενός multisession cd. Για την εγγραφή του πρώτου session αρκεί η παραπάνω διαδικασία με την επιλογή -multi κατά την εγγραφή του cd.
[5.2 Έλεγχος του προηγούμενου session και δημιουργία του image.]
Έλεγχος του προηγούμενου session.
Αρχικά πρέπει να πάρουμε πληροφορίες για το sector που έχει σταματήσει το προηγούμενο session. Η εντολή που χρησιμοποιούμε είναι η παρακάτω:
cdrecord -msinfo dev=0,0.
Το output της εντολή αυτής είναι δύο αριθμοί της μορφής xx,yy.
Εννοείται βέβαια ότι για να πάρουμε αυτές τις πληροφορίες θα πρέπει το cd στο οποίο θα προστεθεί το νέο session να είναι μέσα στο drive.
Δημιουργία του image
Για να φτιάξουμε το iso-image χρησιμοποιούμε και πάλι το mkisofs και η εντολή που δίνουμε είναι η παρακάτω
mkisofs -o cd-image -R --C xx,yy -M /dev/cdwriter firstdir/
Η επεξήγηση των παραμέτρων της εντολής ακολουθεί παρακάτω:
- Η παράμετρος -o καθορίζει το όνομα του αρχείου στο οποίο θα γραφεί το iso image.
- Η παράμετρος -R προσθέτει στο iso image τα Rockridge extensions.
- Η παράμετρος -C xx,yy προσδιορίζει δύο αριθμούς. Ο πρώτος αντιστοιχεί στο πρώτο sector number του τελευταίου session του cd στο οποίο θα προστεθεί το image που θα φτιάξουμε και ο δεύτερος στο πρώτο sector number του νέου session. Οι αριθμοί xx,yy δίνονται ακριβώς με την σειρά που βγαίνουν απο το cdrecord -msinfo dev=0,0.
- Η παράμετρος -M /dev/cdwriter προσδιορίζει την συσκευή απο την οποία θα διαβαστούν πληροφορίες για το iso image στο τέλος του οποίου θα προστεθεί το iso image που εμείς θα δημιουργήσουμε. Στην περίπτωση μας η συσκευή αυτή είναι το cdwriter που στο pc μου είναι η συσκευή /dev/sr0.
- Η παράμετρος firstdir/ έχει περιγραφεί παραπάνω.
Έλεγχος του iso image
Η γενική ιδέα του ελέγχου του iso image είναι η ίδια όπως και παραπάνω όμως υπάρχει μια μικρή (σχετικά) διαφορά. Έτσι για να μπορέσουμε να ελέγξουμε το iso image θα πρέπει να φτιάξουμε ένα άλλο iso image με την παρακάτω εντολή:
mkisofs -o iso-image1 -R --C xx,0 -M /dev/cdwriter firstdir/.
Η εντολή αυτή είναι η ίδια με την προηγούμενη απλά εδώ το iso image θα είναι φτιαγμένο έτσι ώστε το πρώτο του sector number να είναι μηδέν.
Τώρα μπορούμε να το κάνουμε mount κατά τα γνωστά με τις loopback devices.
[5.3 Εγγραφή του session]
Η εγγραφή του session γίνεται κατα τα γνωστά με την εντολή :
cdrecord -v -multi -eject speed=2 dev=0,0 iso-image
[6. Βιβλιογραφία]
- Το σχετικό howto.
- Τα manuals των εντολών mkisofs, cdrecord, lsmod , rmmod , insmod, modprobe.
- Το documentation του πυρήνα.
- Το Internet.
Αρχική Σελίδα