Эта секция применима ко всем типам CD-writer-ов, включая устройства SCSI, IDE/ATAPI и для параллельного порта. Последние два типа устройств требуют драйверов совместимости, производя впечатление реальных SCSI устройств. С одной строны такая унифицикация проста ("все есть SCSI"), потому что на уровне приложений Вы можете разделять знания с другими пользователями не взирая на свойства CD-writer-а. С другой стороны, Вы можете реконфигурировать приложения подобные проигрывателям музыкальных CD или утилиту монтирования для отражения изменения имени драйвера. Например, Ваш ATAPI CD-writer доступен через фал устройства /dev/hdc, Вы можете иметь доступ посредством /dev/scd0 после активизации драйверов SCSI совместимости.
Если Вы правильно установили вашу аппаратуру и Linux, команда cdrecord -scanbus
покажет вам список устройств имеющихся для записи. Цель этой главы - полностью
установить вашу Linux систему, т.о. в конце Вы должны получить что-то вроде:
shell> cdrecord -scanbus
Cdrecord release 1.7a1 Copyright (C) 1995-1998 JЖrg Schilling
scsibus0:
0) 'Quantum ' 'XP34300 ' 'F76D' Disk
1) 'SEAGATE ' 'ST11200N ' '8334' Disk
2) *
3) 'TOSHIBA ' 'MK537FB/ ' '6258' Disk
4) 'WANGTEK ' '5150ES SCSI-36 ' 'ESB6' Removable Tape
5) 'EXABYTE ' 'EXB-8500-85QUE ' '0428' Removable Tape
6) 'TOSHIBA ' 'XM-3401TASUNSLCD' '3593' Removable CD-ROM
7) *
scsibus1:
100) 'Quantum ' 'XP31070W ' 'L912' Disk
101) *
102) *
103) 'TEAC ' 'CD-R55S ' '1.0H' Removable CD-ROM
104) 'MATSHITA' 'CD-R CW-7502 ' '4.02' Removable CD-ROM
105) *
106) 'YAMAHA ' 'CDR400t ' '1.0d' Removable CD-ROM
107) *
Листинг 1: Обнаружение устройств на вашей SCSI-шине
Пример предоставлен JЖrg Schilling и показывает всего четыре CD-writers. Заметьте, что -scanbus также показывает другие устройства, такие как CD-ROM и жесткие диски. Последний столбец дает SCSI описание устройства, по которому вы не сможете отличить обычное CD-ROM устройство от устройства с возможностью записи. Но идентификатор продукта (средний столбец) часто содержит подсказку об этом свойстве в R, -R, или -RW.
Ядро Linux может быть оснащено драйверами для различных свойств. Вы можете компилировать драйвера в образ ядра статически, или компилировать как модули и загружать при необходимости. Последний метод предпочтительней для драйверов не существенных для оживления вашей Linux системы, так как при этом ваше ядро будет меньше и быстрее. Однако, некоторые драйвера необходимы для системы и Вы не должны компилировать их как модули. Например: если ваша система находится на жестком диске IDE, драйвер жесткого диска IDE должен содержаться в ядре, а не в модуле.
Существует три различных типа CD-writer-ов: SCSI, IDE/ATAPI и внешние устройства на параллельный порт. Таблица 4 показывает как сконфигурировать ядро Linux для этих типов аппаратуры. Первый столбец таблицы - секция конфигурационного меню ядра, где Вы видите установки. Второй столбец - описание свойства (также взято из конфигурационного меню ядра). Третий столбец - показывает имя результирующего модуля. Столбцы названые SCSI, IDE и PP содержат необходимую опцию для соответствующей аппаратуры (PP= параллельный порт)
Sect. Description Module SCSI IDE PP
------------------------------------------------------------
BLOCK Enhanced IDE/MFM/RLL... Y
BLOCK IDE/ATAPI CDROM ide-cd M
BLOCK SCSI hostadaptor emulation 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 Y Y
FS Microsoft Joliet cdrom... joliet M/Y M/Y M/Y
Таблица: выбор драйвера для различных типов устройств
Y обозначает, что вы должны включить пункт в ядро. M означает модуль, и подразумевает, что Вы должны или можете скомпилировать это свойство как модуль. Y/M дает вам возможность выбрать (порядок показывает выбор с меньшим количеством потенциальных проблем). Пустые места не требуют модификации, и их не изменение увеличивает шанс, что ядро, в результате,будет работать как Вы хотите (если работало ранее). Особенно при смешивании ATAPI и SCSI устройств, будет лучше сконфигурировать большинство свойств как модули.
Компиляция петлевого устройство необязательна. Это поможет Вам тестировать образ перед записью на носитель. Если Вы хотите читать CD-ROMы, Вам нужна поддержка файловой системы ISO9660. Этот драйвер автоматически включает поддержку расширения RockRidge. Расширение Microsoft Joliet, полностью добавлено в ISO9660 файловую систему. В любом случае Вам нужен драйвер низкого уровня для Вашего оборудования. Низкий уровень обозначает драйвер, который взаимодействует с вашим оборудованием. Для SCSI и параллельного порта существует много драйверов низкого уровня.
Для загрузки модулей Вы должны либо перечислить их в конфигурационном файле, таком как /etc/modules или запустить демонов kerneld или kmod, которые автоматически загружают требуемые модули когда ядро их ищет. Чтобы сделать Ващу жизнь проще, Вы можете добавить следующие строки в /etc/conf.modules:
alias scd0 sr_mod # загружает sr_mod при доступе к scd0
alias scsi_hostadaptor ide-scsi # эмуляция адаптера SCSI
options ide-cd ignore=hdb # если ваш CD-writer - /dev/hdb
Некоторые установки для использования IDE/ATAPI устройств записи
Псевдонимы (aliases) предоставляют альтернативные имена для тех же модулей и не существенны. options предоставляют путь для создания опций для постоянной загрузки модуля, таким образом Вы можете успешно использовать их с modprobe/insmod. Для информации о различных опциях для различных модулей, читайте.
Описание Команда
-------------------------------------------------
Список активных драйверов cat /proc/devices
Список активных модулей cat /proc/modules
Список имеющихся модулей modprobe -l
Удалить модуль modprobe -r
Загрузить модуль вручную modprobe
Загрузить модуль при старте echo "перечислите их в /etc/modules"
(пожалуйста, сверьтесь с руководством вашего дистрибутива)
Загрузить модули по требованию echo "запустите kmod или kerneld"
Таблица: команды для работы с модулями ядра и драйверами
Если Вам нужен модуль не имеющийся в системе, вы должны перекомпилировать и переустановить ядро. Для подробностей, пожалуйста, читайте Kernel HOWTO. Если Вы успешно создали или нашли требуемые модули, либо добавьте их в /etc/modules или используйте автоматические возможности (kmod, kerneld) для их загрузки. Сверьтесь с документацией вашего Linux дистрибутива, если не уверены.
Если Вы сам себе хозяин, попробуйте установить пакет "Linux Kernel source", который прилагается к Вашему дистрибутиву. После чего используйте следующие команды:
cd /usr/src/linux
make menuconfig # следуйте инструкциям и меню
make dep
make zImage # или "make bzImage"
# вставьте дискету перед продолжением
dd if=arch/i386/boot/zImage of=/dev/fd0
make modules
make modules_install
Таблица: создание загрузочной дискеты
Это должно создать загрузочную дискету. Если Вы действительно не догадываетесь о чем речь, лучше прочитайте документацию Kernel HOWTO или попросите друга, прежде чем полностью потеряете систему.
Владельцы ATAPI CD-writers внимание: если Ваше ядро обнаруживает Ваше устройство как ATAPI при старте системы, у Вас нет шансов использовать CD-writer под Linux. Как только IDE/ATAPI драйвер захватывает устройство, SCSI драйвер (поверх эмуляции SCSI адаптера) не сможет это сделать. Пожалуйста, перекомпилируйте ядро с модульной поддержкой CD-ROM, как показано выше.
С 2.2 и выше, Вы можете управлять прожорливостью ide-cd драйвера параметром "ignore=". Если Вы используете это, драйвер не захватит указанное устройство, таким образом оно будет доступно, когда активируется эмуляция адаптера SCSI. Например: используйте "modprobe ide-cd ignore=hdb", если Ваше ATAPI устройство записи - hdb и Вы хотите, чтобы ide-scsi драйвер работал с hdb как со scsi устройством [обычно sr0]. Нет пути указать это в командной строке ядра (как в ядре 2.0).
До версии 2.2.9, не включайте CONFIG_SCSI_MULTI_LUN ('probe for multiple luns') и ide-scsi поддержку вместе, существует ide-scsi ошибка которая мешает этому.
Некоторые пользователи сообщают о конфликтах с предкомпилированными бинарниками и 2.2-релизом. Это проблемы ядра Linux. Решения:
Мне сообщили, что ядра начиная с 2.2.10 продвинулись предоставляя обе опции из 2.0.x серии и 2.2.x серии. Автор рекомендует стратегию сообщения ядру, какое устройство ядра будет управляться каким драйвером, как в 2.0.37. Следующее описывает этот метод.
Ядра до 2.0.31 имеют несколько ошибок и не могут считать последний файл на CD-ROM. Пожалуйста обновите до 2.0.37 или выше. Для этой версии, свойство, которое называлось "SCSI emulation" было переименовано в "SCSI host adapter emulation".
С 2.0.37 и выше Вы можете выбрать какой драйвер (IDE или SCSI) использовать с каким ATAPI устройством. Чтобы быть более точным, Вы можете добавить свойство "SCSI hostadaptor emulation" в Ваше ядро и активировать эмуляцию для указанных устройств в командной строке ядра (при загрузке). Например, если Ваш CD-writer на устройстве /dev/hdb, тогда добавьте выражение hdb=ide-scsi. Следующая распечатка показывает эти установки применимо к менеджерам загрузки LILO и chos.
image=/boot/zImage-2.0.37
label=
Linux
read-onlyappend="hdb=ide-scsi"
Листинг 2: Пример конфигурации для lilo (/etc/lilo.conf)
linux "Linux 2.0.37" {
image=/boot/zImage-2.0.37
cmdline= root=/dev/hda5 readonly hdb=ide-scsi
}
Листинг 3: Пример конфигурации для chos (/etc/chos.conf)
После установки всех необходимых драйверов, загрузите новое ядро. Оно должно содержать все необходимые Вам свойства для следующий секций.
[Пользователи devfs могут не беспокоится о следующих шагах ручной установки файлов устройств. Если Вы используете devfs, все будет автоматически появляться в нужном месте.]
Войдите в /dev
-каталог и проверьте петлевые устройства
Это не критично, если у Вас нет этих устройств, но удобнее если есть. (см. 3.5).
Если они у Вас есть , то ls
-команда должна показать
loop0
-loop7
:
shell> cd /dev
shell> ls loop*
loop0 loop1 loop2 loop3 loop4 loop5 loop6 loop7
Листинг: файлы устройств для обратной связи
Если у Вас нет этих устройств, создайте их, используя /dev/MAKEDEV
-скрипт:
shell> cd /dev/
shell> modprobe loop # загрузить модуль loop
shell> ./MAKEDEV loop
Листинг: команды для создания петлевых устройств
Последняя команда выполняется правильно, если у Вас есть loop
-модуль в ядре.
Что Вы читали о loop-файлах устройств может быть применимо ко всем другим файлам
устройств (sg*, pg*, hd*, ...) и это не явно указано далее в документе.
В случае, если Ваш дистрибутив Linux не содержит сценария /dev/MAKEDEV, создайте файлы устройств вручную этим циклом:
for i in 0 1 2 3 4 5 6 7
do
mknod /dev/loop$i c 7 $i
done
ATAPI - расширение для IDE устройств, которые существуют во всех новых IDE устройствах. Расширения позволяют использовать SCSI-протокол по IDE шине. Вместе с модулем ide-scsi, который превращает Ваш IDE-контроллер частично в SCSI-контроллер, Вы можете обращаться с Вашими IDE/ATAPI устройствами, как со SCSI. Таким образом просто загрузите этот модуль и продолжайте, как будто у Вас есть SCSI устройство.
Пожалуйста убедитесь, что Ваше устройство записи распознается BIOSом Вашего компьютера. Не имеет смысла продолжать, если компьютер не принял аппаратуру (факт что она не разговаривает не должен пониматься как подтверждение; требуется сообщение на экране).
Если Вы планируете соединять Ваше SCSI устройство к параллельному порту (не путайте с IDE устройством для параллельного порта), Вам нужен специальный кабель и специальный драйвер ядра. Прочтите http://www.torque.net/parport/parscsi.html, чтобы узнать больше об этой опции.
Файлы устройств /dev/sd* и /dev/sr* для доступа к SCSI жестким дискам и SCSI CD-ROM-ам ограничены блочно-ориентированными передачами данных. Это делает их быстрыми и идеально подходящими для накопителей. Управление лазером CD-writer-а более сложная задача и требует больше, чем блочные передачи. Для сохранения sd* и sr* устройств быстрыми и чистыми, был введен новый тип SCSI устройств и назван обобщенными SCSI устройствами. С помощью обобщенных устройств со SCSI-аппаратурой может быть сделано все, они не предназначены для конкретной цели - следовательно называются обобщенными.
Как и другие устройства, Вы можете найти их в /dev каталоге (по соглашению)
shell> cd /dev
shell> ls sg*
sg0 sg1 sg2 sg3 sg4 sg5 sg6 sg7
Если у Вас нет этих файлов устройств, тогда создайте их используя
/dev/MAKEDEV
скрипт:
shell> cd /dev/
shell> ./MAKEDEV sg
Если в Вашем дистрибутиве Linux отсутствует скрипт /dev/MAKEDEV, тогда создайте устройства вручную таким циклом:
for i in 0 1 2 3 4 5 6 7
do
mknod /dev/sg$i c 21 $i
done
Извините, но у меня нет догадок относительно этого. Пожалуйста, читайте http://www.torque.net/parport/paride.html или ваш локальный файл /usr/src/linux/Documentation/paride.txt.
Более детальный обзор инструментов связанных с созданием CD-ROM-ов имеется на http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdb.html.
Один из следующих пакетов нужен, для создания образов CD-R: (требуется только для CD-ROM с данными)
ftp://tsx-11.mit.edu/pub/linux/packages/mkisofs/ (mkisofs)ftp://ftp.ge.ucl.ac.uk/pub/mkhfs (mkhybrid)
Для записи образов на CD-R, Вам нужен один из следующих программных пакетов:
ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/ (cdrecord)http://www.ping.de/sites/daneb/cdrdao.html (cdrdao)
Не доверяйте странице руководства (старой) mkisofs
, которая заявляет, что
Вам нужна версия 1.5 cdwrite
. Используйте только cdrecord, и все будет в
порядке. Пожалуйста, заметьте, новые версии cdrecord поставляются с расширенной
версией mkisofs и некоторыми дополнительными утилитами в каталоге misc/ (readcd,isosize).
Оболочки являются действительно оболочками под Linux. Это означает, Вы должны установить утилиты командной строки, но доступ к ним лучше выглядит.
X-CD-Roast - программный пакет посвященный простому созданию CD под Linux.
Она объединяет инструменты командной строки, такие как cdrecord
и
mkisofs
, в хороший графический интерфейс.
http://www.fh-muenchen.de/home/ze/rz/services/projects/xcdroast/e_overview.html
BurnIT - JAVA оболочка к cdrecord, mkisofs и cdda2wav-0.95, создающая полный пакет для создания CD на UNIX платформе. Она доступна по
http://sunsite.auc.dk/BurnIT/
XDaodio
Это графическая оболочка к cdrdao. Главная ее цель - 1:1 копирование аудио CD.
http://www.lrz-muenchen.de/~MarkusTschan/