Gravando CDs sob o Linux

ArticleCategory: [Es gibt verschiedene Artikel Kategorien]

Applications

AuthorImage:[Ein Bild von Dir]

[Photo of the Authors]

TranslationInfo:[Autor und Übersetzer]

original in en Katja and Guido Socher 

en to pt Bruno Sousa

AboutTheAuthor:[Eine kleine Biographie über den Autor]

A Katja é a editora alemã da LinuxFocus. Ela gosta do Tux, filmes & fotografia e do mar. A sua página pessoal pode ser encontrada aqui.

O Guido é um fã de há longa data do Linux e ele gosta do Linux porque é desenhado por pessoas honestas e abertas. Isto é uma das razões porque se chama código aberto. A sua página pessoal pode ser encontrada em linuxfocus.org/~guido.

Abstract:[Hier sollte eine kleine Zusammenfassung stehen]

Neste artigo descreveremos como pode gravar CDs sob o Linux.

ArticleIllustration:[Das Titelbild des Artikels]

[Illustration]

ArticleBody:[Der eigentliche Artikel. Überschriften innerhalb des Artikels sollten h2 oder h3 sein.]

Provavelmente leu o artigo da Katja Um novo mundo inteiro na nossa última edição e saiu de viagem com o Tux. E agora tem imensos "imagens" e "sons" que deseja trazer para casa e questiona-se como pode fazer isto. Gravar tudo num CD é uma boa solução e neste artigo vamos dizer-lhe como é que pode fazer isto.

O que é que precisa ?

Configuração de Hardware:
Claro que o Linux tem de estar instalado e a correr na sua máquina e precisa de um gravador de CDs para fazer o trabalho.
Se tiver um gravador de CDs SCSI as chances de ser reconhecido imediatamente pelo Kernel são muito boas. Só precisa de confirmar se o seu dispositivo SCSI é suportado pelo Linux (para isto, veja a base de dados de hardware). Todos os gravadores SCSI de CDs trabalharam sob o Linux.
Para um gravador ATAPI/IDE tem de configurar a emulação SCSI para o seu gravador parecer um dispositivo SCSI mesmo que esteja ligado através do bus IDE. Como fazer isto está descrito no ficheiro README.atapi do xcdroast, também recomendamos que leia o HOWTO de Gravação de CDs em linuxdoc.org
Para gravadores USB veja o HOWTO de Gravadores de CDs USB em mobilix.org/linux_usb_cd.html.
Como ambos só experimentámos com gravadores SCSI só podemos repetir o que lemos aqui.

Software para gravar CDs:
Para gravar CDs, você precisa dos seguintes programas:

  1. cdrecord: este é o programa que, actualmente, comunica com o seu gravador de CDs.
  2. mkisofs: precisa dele para fazer CDs de dados. É usado para gerar uma imagem do sistema de ficheiros para o CD, chamada imagem ISO.
  3. cdda2wav: este é preciso para ler audio digital a partir de CDs audio.
Todos os três estão incluídos no pacote cdrtools que pode obter a partir de www.xcdroast.org
ou ftp.fokus.gmd/pub/unix/cdrecord/
Com estes utilitários pode já gravar CDs utilizando a linha de comandos. Mas se deseja uma interface simpática e amigável precisa ainda de interfaces. Existem imensas interfaces disponíveis mas neste artigo só falaremos do xcdroast (http://www.xcdroast.org) e koncd (http://www.koncd.org/).O xcdroast parece ser o frontend com mais possibilidades e gostamos do Koncd porque é muito fácil de utilizar.


Instalação

Em muitos casos o xcdroast já estará instalado no seu computador, pelo menos com a distribuição RedHat é compilado com a biblioteca pam o que significa que lhe pedirá sempre pela password root se quiser gravar CDs e provavelmente, não quer dar a palavra-passe do root a todos os utilizadores que queiram gravar CDs. Um segundo senão é não poder iniciar o programa remotamente pela rede. Assim sendo é melhor fazer download da última versão a partir de http://www.xcdroast.org. Isto deve ser suficiente visto que existem pacotes pré-compilados para a maioria das distribuições disponíveis.
O koncd pode ser obtido a partir de www.koncd.org. As versões recentes do koncd assentam nas novas características QT/KDE. Se não quiser passar algum tempo a actualizar as bibliotecas do QT e do KDE pode utilizar uma versão mais antiga do koncd. Para este artigo utilizámos o koncd-0.7.5 sob o redhat 7.1.

Gravando CDs como um utilizador normal (não-root)

Para gravar CDs você precisa de ter permissões de escrita nos dispositivos /dev/sg* que são utilizados para a comunicação com o hardware. Mas o cdrecord utiliza extensões em tempo real para evitar "buffer underruns" durante o processo de escrita, o que requer, também permissões de root. Assim a melhor solução é utilizar o SUID no cdrecord e cdda2wav. Uhh ? SUID ? Não se preocupe. Pode ler o artigo do Guido acerca de permissões de ficheiros se quer saber exactamente o que é. De momento basta digitar os dois seguintes comandos e esquecer-se deles novamente :-)

chmod 4111 /usr/bin/cdrecord
chmod 4111 /usr/bin/cdda2wav

Tenha precaução que isto pode ser um potencial risco, mas não é, definitivamente. menos seguro do que dizer a toda a gente que deseja gravar CDs qual a palavra-passe do root.
Agora pode testar se o seu gravador de CDs é reconhecido correctamente. Corra simplesmente:

cdrecord -scanbus

Se tudo está bem, então devia var algo parecido com isto:

0,6,0 6) 'PLEXTOR ' 'CD-ROM PX-W8220T ' '1.03' Removable CD-ROM

Os números e a descrição podem ser diferentes, dependendo da sua configuração de hardware.
Pode, alternativamente, clicar no botão SETUP do xcdroast ou koncd e verificar se o seu gravador é reconhecido correctamente. correctly.
Comecemos, então, finalmente a gravar um CD.

Notas gerais acerca da gravação de CDs

Existem quatro passos necessários para gravar CDs:
  1. Tem de seleccionar os dados/música que deseja gravar num CD.
  2. Tem de definir algumas opções para o CD que vai ser gravado. Por exemplo quando deseja gravar um CD audio tem de escolher entre o modo TAO e DAO ou para um CD de dados tem de definir algumas opções para o sistema de ficheiros.
  3. Deve criar um directório de imagem com os ficheiros que deseja gravar para o CD. Se só deseja duplicar completamente, um outro CD você "escreverá on the fly" caso contrário tem de criar uma imagem primeiro no disco rígido.
    Um directório imagem é um espaço de armazenamento temporário para os dados que vão ser escritos para o CD. Para os CDs audio isto são ficheiros indexados e os ficheiros wav contêm a música e os CDs de dados são um ficheiro muito grande chamado imagem ISO.
  4. Grava actualmente o CD.
Geralmente, os CDs precisam de ser escritos de "uma só ida" e o fluxo de dados não perturbado durante o processo de escrita. Graças às extensões de tempo real os buffer underruns que conduzem a CDs queimados são só um problema do utilizadores do windows. Com o Linux não precisa, realmente, de "burn proof". Existe um buffer especial, chamado FIFO, dentro do gravador de CDs para compensar pequenos distúrbios o que, normalmente, é suficiente para evitar falhas de gravação no Linux. Contudo deve ser cuidadoso e não deve fazer coisas que precisem de muito poder de computação. Pode navegar na Web, compilar software,... mas apagar um ficheiro grande pode ser um problema e talvez seja suficiente para perturbar o processo o que resultado num CD queimado.
Se está preocupado com os buffer underruns pode utilizar a opção de simulação de escrita (dummy write) para primeiro testar se a escrita do CD trabalha antes de o queimar. O processo de gravação é testado com dados reais, mas o laser dentro do gravador de CDs é desligado. É sempre melhor fazer um teste em vez de ter de repetir tudo novamente.
O facto de ter de gravar de "uma só ida" significa que se esqueceu, mesmo de um simples ficheiro você tem de gravar o CD novamente. Existe uma possibilidade de multisessão onde adiciona algo mais tarde, mas não falaremos disto aqui porque com a multisessão não pode ler o CD em muitos gravadores de CD visto que não está pronto e o preço de um CD está tão baixo que nunca tivemos uma razão para o usar.

Configuração

Quando inicia o koncd ou o xcdroast, reconhecerá que ambos têm um botão de setup. Aqui pode descobrir se o seu gravador é reconhecido correctamente e definir opções gerais.
[xcdroast: run as root to configure] Olhemos para o setup do xcdroast e do koncd:

CDs de música (audio) (Puros)

Aqui, deve primeiro pensar um pouco no formato. Se a canção é a partir de outro CD não há problema. É só avançar e copiar. Por outro lado deve notar que o cdrecord reconhece ficheiros au e wav e converte-os automaticamente para os tocar no seu leitor de CDs mas outros formatos precisa de os converter primeiro se não quiser ouvir, mais tarde, só ruído. Para converter um ficheiro a partir de mp3 para wav pode fazer o seguinte na linha de comandos:
mpg123 -w /tmp/song.wav song.mp3
Isto permite-lhe obter CDs audio normais a partir de música mp3. Ocupa mais espaço mas pode ser tocado em quase todos os leitores de CDs.
Finalmente ao gravar o CD pode escolher se quer a cópia no modo TAO ou DAO. No modo TAO terá 2 segundos de pausa entre cada canção enquanto que no modo DAO não tem isto o que o torna o modo de escolha para gravações de música ao vivo. TAO= Track at Once (pista de uma só vez) e DAO= Disk at Once (disco se uma só vez).
Pode copiar um CD completamente ou misturar músicas a partir de CDs diferentes ou outros ficheiros de som, por exemplo obtidos da internet.

Vejamos, primeiro como pode copiar um CD sem alterações:

[xcdroast Duplicate CD]


Vejamos agora o que tem de fazer se quiser gravar um CD com música de vários sítios:

CDs de dados (Puro)

Para os CDs de dados precisa de um sistema de ficheiros ou, como normalmente se diz o CD tem de ser formatado. Tem de escolher o sistema de ficheiros que deseja. Esta escolha dependerá do sistema operativo no qual quer ler os dados. O standard ISO-9660, que descreve o sistema de ficheiros do CD, por exemplo não permite ficheiros de nomes compridos. Por isso foram desenvolvidas extensões para este standard. Para o Linux e Unix as extensões RockRidge são utilizadas, a Microsoft utiliza as extensões Joliet. Com o formato RockRidge pode também ter permissões, etc. como já o sabe do seu sistema.
A solução recomendada é utilizar as extensões RockRidge e Joliet no mesmo CD.
Se só quiser copiar um CD a partir de um outro existente, não tem de se preocupar com isto porque o CD já possui um sistema de ficheiros que também é copiado.

[xcdroast Master CD]

Se quiser copiar dados a partir do seu disco rígido :
[koncd Master CD]

Backup do seu directório de trabalho

Basicamente pode salvaguardar tudo em CD com o método descrito em "CDs de dados (puros)". Se os dados no seu directório de trabalho forem demasiado grandes para caberem num CD então precisa de seleccionar subdirectórios e escrevê-los para um CD diferente.

Dicas e Truques:

Pode ser útil verificar se a imagem ISO é correcta antes de proceder à gravação final. Para fazer isto pode montar a imagem ISO como se fosse um CD real:

Mude para root: su -
Crie um directório vazio (conhecido como ponto de montagem): mkdir /tmp/mycd
Monte a imagem ISO (ligue a imagem ISO ao directório):
mount -o loop -t iso9660 Image.iso /tmp/mycd
Agora pode utilizar o comando "ls" para inspeccionar a imagem do CD: ls /tmp/mycd
Se lhe parece ok desmonte-o: umount /tmp/mycd

... e grave a imagem para o seu CD.

Utilitários de linha de comandos

Acima discutimos duas interfaces gráficas para gravar CDs mas pode também gravar CDs utilizando somente a linha de comandos. Se olhar para a página do manual do cdrecord verá que existem centenas de opções, uuuhh... não tenha medo. É mais fácil do que parece á primeira. Obtenha as duas scripts em perl o cdrecordeasy e o mkisofseasy.
Estão incluídos no pacote easycdscripts (página de download)
Descomprima-os com o comando

tar zxvf easycdscripts-0.1.tar.gz

Agora corra o comando cdrecord -scanbus. Olhe para a linha onde pode ver o seu gravador de CDs e lembre-se dos números que vê no princípio. Devia ser algo como 0,4,0 ou 0,6,0 ....
Edite o ficheiro cdrecordeasy introduzindo este número atrás da linha que diz $dev=... Encontra-la-á algures no princípio.
Agora a instalação das nossas duas pequenas scripts está terminada. Criar, agora um CD de dados é muito fácil:
  1. Copie todos os ficheiros que deseja ter no CD para um directório (por exemplo ~/cdrom). Os discos rígidos são bastante grandes e baratos nestes dias e não deve constituir problema a cópia de algumas centenas de MB.
  2. Corra o comando: mkisofseasy ~/image.iso ~/cdrom
    Isto criará uma imagem ISO de todos os ficheiros no directório ~/cdrom.
  3. Grave o CD correndo o comando: cdrecordeasy ~/image.iso
E é isto. Muito mais fácil do que parecia no princípio, não é!? :-)

Divirta-se com os seus CDs!

Referências