|
Os softwares default usados para gravar CDs no Linux são, basicamente, o cdrecord (que faz a gravação) e o mkisofs (que gera a imagem do CD para ser gravada). Como o cdrecord espera encontrar um drive CD-R/CD-RW SCSI em seu sistema, o que não é o caso, precisaremos habilitar a opção de emulação SCSI no kernel para possibilitar a gravação de CDs.
Para isto será preciso recompilar o kernel e/ou seus módulos. Mais detalhes sobre como compilar o kernel podem ser encontrados neste texto sobre compilação do kernel no Slackware.
A seguir estão os items que devem ser ativados/desativados no kernel para que seu drive gravador de CD seja reconhecido pelo sistema:
ATA/IDE -> IDE, ATA and ATAPI Block Devices
< > Include IDE/ATAPI CDROM support // nosso CDROM será SCSI agora =)
<Y> SCSI emulation support // ativar a emulação em si
SCSI Support
<Y> SCSI CD-ROM support
<Y> Enable vendor-specific extensions // se o drive for modelo antigo NEC/Toshiba ou HP
<Y> SCSI generic support // sempre prefira os genéricos =)
File Systems
<Y> Microsoft Joliet CDROM extensions
Ou, respectivamente:
CONFIG_BLK_DEV_IDECD (n)
CONFIG_BLK_DEV_IDESCSI (s)
CONFIG_BLK_DEV_SR (s)
CONFIG_BLK_DEV_SR_VENDOR (s)
CONFIG_CHR_DEV_SG (s)
CONFIG_JOLIET (s)
Recomenda-se também incluir suporte a loopback para testar imagens de CD.
As seleções dos devices foram feitas a partir de uma compilação 'mrproper' do kernel 2.4.18 em um sistema Slackware Linux 8.0.
Algumas opções (ou todas?) podem ser incluídas como módulo. Esta configuração do gravador é semelhante a outros kernels, e inclusive, o segundo CD do Slackware 8 acompanha um kernel previamente configurado com suporte a ide-scsi, no diretório unsupported/.
Depois de compilado, adicione a seguinte linha ao lilo.conf (no início do arquivo, antes do prompt), caso tenha adicionado como módulo:
append="hdx=ide-scsi"
Substitua hdx pelo seu dispositivo, lembrando hda (primary master), hdb (primary slave), hdc (secondary master) e hdd (secondary slave). Se necessário adicione ou altere a referência à nova imagem no lilo também. Grave as alterações e atualize o lilo (digite # lilo).
Por fim, reinicie o sistema pelo seu novo kernel, e observe se o drive foi reconhecido, como SCSI, na inicialização (digite # dmesg). No caso do meu drive CD-R Sony, o kernel me informa o seguinte:
SCSI subsystem driver Revision: 1.00
scsi0 : SCSI host adapter emulation for IDE ATAPI devices
Vendor: SONY Model: CD-RW CRX100E Rev: 2.0h
Type: CD-ROM ANSI SCSI revision: 02
Attached scsi CD-ROM sr0 at scsi0, channel 0, id 0, lun 0
sr0: scsi3-mmc drive: 24x/24x writer cd/rw xa/form2 cdda tray
Uniform CD-ROM driver Revision: 3.12
Veja também se está tudo certo com o cdrecord digitando o comando:
cdrecord -scanbus
Ele deverá informar o nome do seu gravador de CD e em que dispositivo SCSI ele pode ser acessado. É importante lembrar que seu CD passará a ser acessado da seguinte forma:
mount /dev/sr0 /mnt/cdrom (sr0 pode variar também, o que pode ser detectado via dmesg)
Por isso atualize o link:
ln -s /dev/cdrom /dev/sr0
Gravando CDs
Para gravar um CD de dados (via linha de comando) será preciso:
1) criar uma imagem do CD
2) gravar a imagem no CD-R
Por exemplo, para criar a imagem:
mkisofs -r -J -o nome_da_imagem diretorio/
O diretorio refere-se ao nome do diretorio com os arquivos a serem gravados.
Para testar a imagem (caso o kernel suporte loopback)
mount -t iso9660 -o ro,loop=/dev/loop0 cd_image /cdrom
Acesse os arquivos em /cdrom para verificar se está tudo correto.
Para gravar a imagem:
cdrecord -v speed=4 dev=0,0,0 -data nome_da_imagem
Verifique no scanbus os valores de dev (o BUS, ID e LUN) e indique uma velocidade suportada pelo seu gravador em speed (no caso 4x).
Não me responsabilizo por eventuais danos que estes comandos possam gerar... =)
Para gravar um CD de audio, o procedimento é similar:
1) converter as faixas (stereo, 16-bit, 44.1kHz)
Com o sox:
sox musica.wav musica.cdr
Com o mpg123:
mpg123 --cdr - track1.mp3 > track1.cdr
2) gravar usando TAO (track at once).
cdrecord -v speed=4 dev=0,0,0 -audio track1.cdr track2.cdr...
Obs: para gravar sem intervalos use o método DAO através do software cdrdao.
Para gravar um CD de boot, siga o exemplo do como gravar um cd bootable do Slackware, que também acompanha o CD de instalação da distribuição.
Para mais detalhes, consulte o CD Writing How-To ou a manpage do cdrecord.
|