projetos | download | linux | privacidade | contato
 
  Produtos | Documentação | Suporte | Treinamento | Conectiva | Cases | Soluções | Parcerias | Imprensa | Oportunidades
Pesquise 
português 
english 
español

SUPORTE

->Suporte Estendido
->Centros de Serviços
->Técnicos Certificados
->Formulário de Suporte
->Abrangência do Suporte
->Acionando o Suporte
->Perguntas e Respostas
->Atualizações
->Livros, Guias e Manuais
->Hardware

    2.4. Como fazer para o meu CDR-RW IDE funcionar no Linux?

    Gostaríamos de informar que este procedimento não faz parte do escopo do suporte, assim sendo não há como dar mais suporte do que o conteúdo deste, obrigado pela compreensão.

    ### CL70 e anteriores ###

    Para poder fazer funcionar seu drive de CD-R/CD-RW, você precisa primeiramente estar certo de que a instalação esteja correta na máquina, e que funcione como leitora normal, somente para leitura, se isto está ok então passemos à configuração dele como gravador propriamente dito.

    Antes de nada certifique-se de entrar no sistema como root e verifique que o pacote mkisofs-1.8-4cl esteja instalado, para verificar dê o seguinte comando:

        [root@localhost]# rpm -qa |grep -i mkisofs
    

    Se não retornar nada é por que não está instalado, então você precisa instalá-lo, para isto coloque seu CD 1 no drive de CDROM e monte-o e instale o pacote, faça-o da seguinte maneira:

        [root@localhost]# mount /mnt/cdrom
        
        [root@localhost]# cd /mnt/cdrom/conectiva/RPMS
        
        [root@localhost /RPMS]# rpm -ivh mkisofs-1.8-*
    

    Espere aparecerem as cerquilhas (####) após isto o pacote estará instalado e pode ser usado pelo script de gravação (já serão mencionados mais adiante).

    Agora desmonte seu CDROM:

        [root@localhost /RPMS]# cd /
        
        [root@localhost]# umount /mnt/cdrom
    

    Agora verifique se o pacote cdrecord-1.8 está instalado, para isto faça:

        [root@localhost]# rpm -qa | grep -i cdrecord
    

    Caso não aparecer nada, tem que instalar o pacote que encontra-se no CD 2, coloque este no drive de CDROM, monte-o e instale-o da seguinte maneira:

        [root@localhost]# [root@localhost]# mount /mnt/cdrom
        
        [root@localhost]# cd /mnt/cdrom/conectiva/RPMS
        
        [root@localhost /RPMS]# rpm -ivh cdrecord-1.8-*
    

    Espere aparecerem as cerquilhas (####) após isto o pacote estará instalado e pode ser usado pelo script de gravação (já serão mencionados mais adiante).

    Agora que os pacotes necessários para o processo foram instalados vamos dar uma olhada nos módulos que estão levantados na sua máquina, para isto dê o seguinte comando:

        [root@localhost]# lsmod
    

    deve dar como resultado algo do tipo:

        Module                  Size  Used by
        nls_cp437               3920   1  (autoclean)
        ide-cd                 24304   1  (autoclean)
        isofs                  17888   1  (autoclean)
        soundcore               2608   0  (autoclean) (unused)
        nfsd                  162336   8  (autoclean)
        nfs                    46272   4  (autoclean)
        lockd                  43760   1  (autoclean) [nfsd nfs]
        sunrpc                 58672   1  (autoclean) [nfsd nfs lockd]
        8139too                11744   1  (autoclean)
        agpgart                18640   0  (unused)
    

    O módulo que nos interessa é aquele ide-cd, precisamos removê-lo, para-isto faça:

        [root@localhost]# rmmod ide-cd
    

    após ter feito isto verifique se ele realmente já não está dando o mesmo comando lsmod como descrito acima, este não mais deve aparecer na lista que aparecer. Agora precisamos levantar os módulos para emular drives SCSI, faça:

        [root@localhost ]# modprobe sg; modprobe ide-scsi
    

    após isto edite o arquivo /etc/rc.d/rc.local e copie esta linha de comando no fim do arquivo:

        [root@localhost]# mcedit /etc/rc.d/rc.local
    

    Coloque no final de tudo:

        modprobe sg; modprobe ide-scsi
    

    Após isto dê F2 para salvar e F10 para sair.

    Agora precisamos testar para ver se a gravadora foi testada, siga o procedimento abaixo:

        [root@localhost ]# cdrecord -scanbus
    

    Se tudo ocorrer bem irá parecer algo do tipo:

        Cdrecord 1.8 (i686-pc-linux-gnu) Copyright (C) 1995-2000 Jörg Schilling
        Using libscg version 'schily-0.1'
        scsibus0:
                 0,0,0     0) 'HP      ' 'CD-Writer+ 9300 ' '2.0g' Removable CD-ROM
                cdrecord: Warning: controller returns wrong size for CD capabilities page.
                 0,1,0     1) 'CREATIVE' 'CD4820E CS990211' '1.03' Removable CD-ROM
                 0,2,0     2) *
                 0,3,0     3) *
                 0,4,0     4) *
                 0,5,0     5) *
                 0,6,0     6) *
                 0,7,0     7) *
    

    Feito isso, a gravadora e os outros drivers de CD-ROM da máquina deixarão de responder por um device IDE (hdXn) e passarão a responder por um device SCSI (srn), para ter certeza que esses drivers estão respondendo como dispositivos SCSI, digite:

    OBS.- O X representa se o dispositivo esta como primary master/slave ou secundary master/slave (hda, hdb, hdc ou hdd) o n representa o numero da partição no dispositivo.

        [root@localhost ]# dmesg |grep -i scsi
    

    Irá aparecer o seguinte:

        scsi0 : SCSI host adapter emulation for IDE ATAPI devices
        scsi : 1 host.
        Detected scsi CD-ROM sr0 at scsi0, channel 0, id 0, lun 0
        sr0: scsi3-mmc drive: 16x/48x cd/rw xa/form2 cdda tray  <--- Dispositivo
        SCSI (sr0)
    

    Agora que sabemos que o dispositivo pelo qual o CDR/CDRW irá responder é o sr0, vamos tentar montar um CD:

        [root@localhost ]# mount /dev/sr0 /mnt/cdrom
    

    Caso volte para tela uma mensagem de erro do tipo:

        mount: the kernel does not recognize /dev/sr0 as a block device
               (maybe   nsmod driver'?)
    

    É porque não existe, na máquina, um dispositivo sr0, para cria-lo digite:

        [root@localhost ]# mknod /dev/srn b 11 m
    

    Caso tenha mais de um CDROM, mesmo que não seja gravador, você também precisa criar um device para ele assim faça o seguinte troque o n pelo numero do device, ou seja se for o primeiro coloque sr0, se for o segundo sr1 e assim por diante, o mesmo para o m da sentença acima, o exemplo abaixo mostrará como criar dois devices no caso de se ter dois drive de CDROM uma gravadora e outra não; mas não faz diferença se ambas forem gravadoras. Ex:

        [root@localhost ]# mknod /dev/sr0 b 11 0
        
        [root@localhost ]# mknod /dev/sr1 b 11 1
    

    Agora para facilitar a montagem dos dispositivos no seu sistema é interessante, mas não necessário, criar um link para ele como mostra o exemplo:

        [root@localhost]# ln -sf /dev/sr0 /dev/cdrw
        
        [root@localhost]# ln -sf /dev/sr1 /dev/cdrom
    

    Perceba que eu estou assumindo como sendo seu gravador de CD o sr0, caso seja o sr1 ou qualquer outro número mude conforme sua situação vamos criar o diretório que será usado como ponto de montagem padrão para o CDR/CDRW:

        [root@localhost]# mkdir /mnt/cdrw
    

    E agora vamos editar o fstab para poder ter facilidade de montagem no sistema, para isto faça:

        [root@localhost]# mcedit /etc/fstab
    
        /dev/hda1        /                ext2       defaults         1  1
        /dev/hda2        swap             swap       defaults         0  0
        /dev/fd0         /mnt/floppy      auto       user,noauto      0  0
        /dev/cdrom       /mnt/cdrom       iso9660    user,noauto,ro   0  0 <
        /dev/cdrw        /mnt/cdrw        iso9660    user,noauto,ro   0  0 < 
        none             /proc            proc       defaults         0  0
        none             /dev/pts         devpts     gid=5,mode=620   0  0
    

    Deixe as linhas marcadas com '<' conforme o exemplo.

    Pronto agora você tem configurado seu gravador de CD e o seu drive de CD no Conectiva Linux, a seguir mostraremos como você pode gravar seus CDs ou arquivos usando o Linux, faça o seguinte, o primeiro passo é baixar os scripts que encontram-se no endereço:

    http://www.conectiva.com.br/~suporte-cl/programas/cdrwtool.tgz

    Ainda como root, copie este para o / (raiz) do seu disco, imaginemos que você o baixou da rede e está no seu home:

          [root@localhost]# mv ~/cdrwtool.tgz /
    

    agora vá até o /

        [root@localhost]# cd /
    

    e descompacte o script da seguinte maneira:

        [root@localhost]# tar xzvf cdrwtool.tgz
    

    após tê-lo descomprimido, poderá começar a fazer uso dos mesmos, neste arquivo vão dois scripts, um para criar imagens iso dos arquivos ou cds que deseja gravar e outro que gera o CD a partir destas imagens iso, é a maneira que nós recomendamos fazer suas gravações, caso você conheça outra, sinta-se a vontade para usá-la.

    Neste arquivo estão dois scripts como já tinha comentado anteriormente, o make_iso que serve para criar imagens e o run_cdrw que é o serve para gravar o CD propriamente, a seguir passarei a explicar brevemente como funciona cada um deles: (ambos processos são executados como root)

    make_iso:

    Funciona da seguinte maneira, ele cria uma imagem a partir de um diretório, sendo que, recursivamente, agrupa todos os arquivos e subdiretórios que possam existir no diretório indicado, por exemplo vou criar a imagem de um CD que está no CDROM, primeiramente coloco o CD que quero copiar no drive de CDROM e monto ele, da seguinte maneira:

        [root@localhost]# mount /mnt/cdrom
    

    vou até o diretório que quero que a imagem fique, imaginemos que criei o diretório /CDRW-ISO para armazenar as imagens, então vou lá:

        [root@localhost]# mkdir /CDRW-ISO
        
        [root@localhost]# cd /CDRW_ISO
    

    Considere que as imagens apenas criam um arquivo com todo o conteúdo do disco ou diretório dado, assim este não comprime e o tamanho do arquivo de imagem é de aproximadamente o tamanho do total do CD ou diretório, caso o CD esteja cheio, são aproximadamente 650MB que tem que ter disponíveis no disco, caso não tenha esta capacidade livre no disco o procedimento não vai funcionar. Para verificar o espaço livre em disco dê o comando:

        [root@localhost]# df
    

    Ex:

        Filesystem           1k-blocks      Used Available Use% Mounted on
        /dev/hda1              2015936   1611844    301680  84% /
    

    por exemplo no disco acima só tenho aprox. 301MB livres(Available) e 84% usado, assim não poderei fazer uma imagem de mais desta capacidade. Caso você tenha este problema, libere espaço no seu disco e comece o procedimento uma vez tendo liberado o espaço necessário.

    Agora, estando no diretório /CDRW-ISO vamos executar o script, da seguinte maneira e passando os parâmetros certos

        [root@localhost /CDRW-ISO]# make_iso <dir_base>
          <nome_da_imagem> <nome_CD>
    

    No nosso exemplo, digamos que quero copiar meu CD 1 do Conectiva Linux 6.0 (é totalmente possível e legal fazer isto):

        [root@localhost]# make_iso /mnt/cdrom/ linux.img linux
    

    isto quer dizer que vou criar um arquivo chamado linux.img no diretório /CDRW-ISO a partir do diretório /mnt/cdrom/ que será meu CDROM montado com o CD 1 do Conectiva Linux 6.0 e quando eu mandar gravar o CD o label do CD ficará com o nome linux, agora é só aguardar ele criar a imagem, quando o prompt retornar é por que está, a saída padrão é algo como:

        [root@snake /tmp]# make_iso /tmp/ tmpimage.img exemplo
         
    
        mkisofs: Option -a is obsolete. All files are included by default.
        Total extents actually written = 2065
        Total translation table size: 12007
        Total rockridge attributes bytes: 27770
        Total directory bytes: 81920
        Path table size(bytes): 686
        Max brk space used 37864
        2065 extents written (4 Mb)
        [root@snake /tmp]#
    

    claro que este é um exemplo, mas serve como base, criei uma imagem de 4MB do meu /tmp que se chama tmpimagem e se eu gravar um CD com esta imagem o CD chamar-se-à exemplo. Pronto, agora com a imagem em mãos podemos gerar nosso disco, só que pare isto usa-se outro script, o run_cdrw que passarei a explicar mais abaixo.

    run_cdrw:

    Este script é simples e auto explicativo, não precisa de muita explicação, é só ter o cuidado de desmontar o CDR/CDRW, este não deve estar montado e depois ir no diretório onde está a imagem criada e, seguindo nosso exemplo fazer:

        [root@localhost]# cd /CDRW-ISO
        
        [root@localhost /CDRW-ISO]# umount /mnt/cdrw
        
        [root@localhost /CDRW-ISO]# run_cdrw
    

    sairá uma lista e logo uma mensagem para você escolher qual CD deve escolher, tem que escolher o número do CDR/CDRW, caso tenha mais de um CD na máquina, caso só tenha um, escolha a única opção, coloque esta após a mensagem:

    Selecione um Gravador de CD:

    caso escolha o número errado ou este não for um CDR/CDRW o próprio programa voltará solicitando uma outra opção pois aquela é incorreta.

    Logo será solicitado o nome da imagem da qual se quer gerar o disco, então coloque o nome da imagem:

    Coloque o nome da imagem: linux.img

    Logo solicitará a velocidade com a qual você deseja gravar, isto vai depender da sua gravadora e da media que você estiver usando, no meu caso minha gravadora suporta gravar em 8x e a media também assim que colocarei para gravar em 8x:

        Velocidade de gravação [0/2/4/8/10]: 8
    

    Após isto o comando será mostrado e verificado e uma mensagem de configuração aparecerá, deve colocar yes ou no tal como está entre colchetes []:

    Verificando comando:

        cdrecord -v speed=8 dev= linux.img
    
          Você tem certeza que deseja fazer isto ? [No/yes] yes
    

    e o CD começará a ser gerado, é interessante não mexer na máquina enquanto grava, mesmo que os equipamentos mais avançados tenham buffer e o sistema também, pode ser que algum dos aplicativos venha a prejudicar a gravação e você venha a perder uma media, o que não é muito agradável.

    ### 5.0 ###

    O procedimento que segue abaixo, se destina à máquina que foi feita instalação completa. Caso a sua máquina não esteja com a instalação completa, será necessário instalar alguns pacotes, os quais seguem logo abaixo:

    PACOTES DO CONECTIVA 5.0

        glibc-2.1.2-11cl
        kernel-headers-2.2.14-14cl
        glibc-devel-2.1.2-11cl
        binutils-2.9.5.0.24-2cl.i386.rpm
        egcs-1.1.2-14cl
        egcs-c++-1.1.2-14cl
        egcs-g77-1.1.2-14cl
        egcs-objc-1.1.2-14cl
        kernel-source-2.2.14-14cl.i386.rpm
        make-3.78.91-1cl.i386.rpm
        bin86-0.4-9cl.i386.rpm
        ncurses-devel-4.2-21cl.i386.rpm
    

    Para instalar os pacotes:

    Monte o CD 1 do Conectiva 5.0:

        [root@localhost ]# mount /mnt/cdrom
        
        [root@localhost ]# cd /mnt/cdrom/conectiva/RPMS
        
        [root@localhost RPMS]# rpm -ivh nome_pacote
    

    RECOMPILANDO O KERNEL

    Segue abaixo os passos para recompilar o kernel:

    1 - Vá ate o diretório /usr/src/linux

        [root@localhost ]# cd /usr/src/linux
    

    2 - Digite o comando :

        [root@localhost ]# make menuconfig
    

    Logo após ter digitado esse comando, irá aparecer um menu onde poderá ser escolhido o que o kernel irá carregar como módulo, built-in ou simplesmente não carregará.

    Será necessário fazer algumas modificações, abaixo segue onde e quais são essas mudanças.

    Leia em cima da página como faz para alterar os componentes para Módulo, Built-in, etc... e altere somente as seguintes linhas, deixando-as como segue abaixo.

    Block Devices

        <*> Normal PC floppy disk support
        <*> Enhanced IDE/MFM/RLL disk/cdrm/tape/floppy support
        ---- Please see Documentation/ide.txt for help/info on IDE drives
        [ ]  Use old disk-only driver on primary interface
        [*]  Include IDE/ATA-2 DISK support
        <M>  Include IDE/ATAPI CDROM support
        <M>  Include IDE/ATAPI TAPE support
        <M>  Include IDE/ATAPI FLOPPY support
        <M>  SCSI emulation support
    

    SCSI Support

        <M> SCSI support
        --- SCSI support type (disk, tape, CD-ROM)
        <M> SCSI disk support
        <M> SCSI tape support
        <M> SCSI CD-ROM support
        [*] Enable vendor-specific extensions (for SCSI CDROM)
        <M> SCSI generic support
        --- Some SCSI devices (e.g. CD jukebox) support multiple LUNs
        [*] Probe all LUNs on each SCSI device
        [*] Verbose SCSI error reporting (kernel seize +=12K)
        [*] SCSI logging facility
    

    Saia e salve as suas alterações ( Só altere o que está descrito acima )

    3 - Recompilando o Kernel, digite:

        [root@localhost ]# make dep
        
        [root@localhost ]# make clean
        
        [root@localhost ]# make bzImage
        
        [root@localhost ]# make modules
        
        [root@localhost ]# make modules_install
    

    4 - Feito isso ( esse processo irá demorar bastante tempo), a nova imagem do kernel estará localizada no diretório /usr/src/linux/arch/i386/boot, vá até esse diretório e mova a imagem para o diretório /boot :

        [root@localhost ]# cd /usr/src/linux/arch/i386/boot
        
        [root@localhost ]# mv bzImage /boot
    

    5 - O próximo passo será a alteração do lilo.conf (arquivo se encontra no /etc), para que seja carregada a nova imagem:

    MODIFICANDO O ARQUIVO LILO.CONF

    Segue abaixo um exemplo de lilo.conf e o que deve ser alterado:

    lilo.conf ANTES DE RECOMPILADO

        boot=/dev/hda
        map=/boot/map
        install=/boot/boot.b
        prompt
        timeout=50
        image=/boot/vmlinuz-2.2.14-14cl
                label=linux
                        root=/dev/hda3
                                read-only
    

    lilo.conf DEPOIS DE RECOMPILADO

        boot=/dev/hda
        map=/boot/map
        install=/boot/boot.b
        prompt
        timeout=50
        image=/boot/vmlinuz-2.2.14-14cl
                label=linux
                root=/dev/hda3
                read-only
        image=/boot/bzImage         <----- Nome da imagem gerada pela recompilação
                label=cdr           <----- O que será digitado no LILO
                root=/dev/hda3      <----- Dispositivo do seu HD
                read-only
    

    6 - Pronto agora basta regravar o lilo :

        [root@localhost ]# lilo
    

    Reinicie a máquina, para que possamos subir os módulos.

    SUBINDO OS MÓDULOS

    7 - Após ter reiniciado a máquina, entre como root e suba os módulos na seguinte ordem:

        [root@localhost ]# modprobe scsi_mod
        
        [root@localhost ]# modprobe sr_mod
        
        [root@localhost ]# modprobe sg
        
        [root@localhost ]# modprobe ide-scsi
    

    Inclua essas linhas no final do arquivo rc.local, localizado no diretório /etc/rc.d para que não seja necessário digitar isso toda vez que reinicie a máquina:

        [root@localhost ]# cd /etc/rc.d
        
        [root@localhost ]# mcedit rc.local
    

    8 - Agora vamos testar para ver se a gravadora foi reconhecida:

        [root@localhost ]# cdrecord -scanbus
    

    Se tudo ocorrer bem irá parecer algo do tipo:

        Cdrecord 1.8 (i686-pc-linux-gnu) Copyright (C) 1995-2000 Jörg Schilling
        Using libscg version 'schily-0.1'
        scsibus0:
                0,0,0     0) 'HP      ' 'CD-Writer+ 8100 ' '1.0g' Removable CD-ROM
                cdrecord: Warning: controller returns wrong size for CD capabilities page.
                 0,1,0     1) 'CREATIVE' 'CD4820E CS990211' '1.03' Removable CD-ROM
                 0,2,0     2) *
                 0,3,0     3) *
                 0,4,0     4) *
                 0,5,0     5) *
                 0,6,0     6) *
                 0,7,0     7) *
    

    9 - Feito isso, a gravadora e os outros drivers de CD-ROM, deixarão de responder por um device IDE (hd??), e passarão a responder por um device SCSI (sr?), para ter certeza que esses drivers estão respondendo por esses dispositivos, digite:

        [root@localhost ]# dmesg
    

    Irá aparecer o seguinte:

        scsi0 : SCSI host adapter emulation for IDE ATAPI devices
        scsi : 1 host.
        Vendor: ATAPI     Model: CDROM   MS5.00    Rev:  .05
        Type:   CD-ROM                             ANSI SCSI revision: 02
        Detected scsi CD-ROM sr0 at scsi0, channel 0, id 0, lun 0
        sr0: scsi3-mmc drive: 16x/48x cd/rw xa/form2 cdda tray  <--- Dispositivo SCSI (sr0)
        Uniform CD-ROM driver Revision: 3.11
    

    Note que nesse caso o resultado do comando "dmesg", não está completo, sendo que só está reportado aqui a parte que interessa.

    10 - Bom, agora que sabemos que o dispositivo pelo qual o CdRom irá responder é o sr0, vamos tentar montar um CD:

        [root@localhost ]# mount /dev/sr0 /mnt/cdrom
    

    Caso volte para tela uma menssagem de erro do tipo:

        mount: the kernel does not recognize /dev/sr0 as a block device
               (maybe   nsmod driver'?)
    

    É porque não existe na máquina um dispositivo sr0, para cria-lo digite:

        [root@localhost ]# mknod /dev/sr0 b 11 0
    

    Pronto agora deverá funcionar sem problemas.

    10 - Pronto sua gravadora já está sendo reconhecida pelo Linux, bastando usar programas como o cdrecord ou xcdroast para a gravação dos discos.