Visite também: Currículo ·  Efetividade BR-Mac

O que é LinuxDownload LinuxApostila LinuxEnviar notícia


Definindo devices persistentes com udev

Enviado por Marcelo Moreira de Mello (tchello·melloΘgmail·com):

“Resolvi escrever esse post explicando como podemos utilizar o udev para criarmos dispositivos de maneira persistente em servidores linux.

Para que vocês possam entender melhor em que situação vamos utilizá-lo vamos imaginar o seguinte cenário: como todo bom administrador, devemos nos preocupar com a realização de backups de maneira constante e isso não poderia ser diferente em sua estação de trabalho. Assim, você acaba de adquirir um HD externo via usb para realizar seus backups. Como esse HD é um dispositivo de armazenamento via usb, o kernel irá reconhece-lo através do módulo chamado usb_storage. Todo dispositivo que é acessado via o módulo usb_storage, será reconhecido pelo kernel como se fosse um dispositivo SCSI ou SATA e por esse motivo acessado através /dev/sd*. (…)” [referência: tchellomello.livejournal.com]


• Publicado por Augusto Campos em 2009-10-13

Comentários dos leitores

Os comentários são responsabilidade de seus autores, e não são analisados ou aprovados pelo BR-Linux. Leia os Termos de uso do BR-Linux.

    É interessante ter este tipo de conhecimento, especialmente aplicado a Modems 3G. Precisei pegar uma vez uma regra, para um modem ZTE que chamava o usb_modeswitch, para que ele fosse reconhecido pelo NetworkManager.

    Apesar de várias distros terem um pacote “udev-extras”, é interessante saber manusear estas regras =)

    Estou com uma duvida?
    Utilizar o UUID não seria a melhor forma de lidar com o problema?
    Não sou muito expert nesta area. Mas andei lendo sobre isto, aqui:
    http://blog.welrbraga.eti.br/?p=570

    Adilson dos Santos Dantas (usuário não registrado) em 13/10/2009 às 3:38 pm

    Já tentei isso com a placa de som. Comprei uma webcam com microfone usb e, após plugar e um boot, inverteu a posição do /dev/dsp causando alguns problemas em diversos aplicativos. Li a respeito das regras do udev e não deu certo. No final uma edição no /etc/modprobe.d/alsa-base.conf resolveu o meu problema:

    #Vamos facilitar no /dev/dsp
    options snd-emu10k1 index=0
    options snd-usb_audio index=1

    Outra complicação foi com os discos. O kernel padrão do Lenny considera tanto ide quanto sata como sd[a-z][0-9] e havia uma troca e troca de partiçoes. Neste usei uma solução parecida ao que foi mencionada pelo ghost-man. Em vez do UUID utilizei o LABEL. Por sorte dou um nome único para cada partição. Nem me preocupei com udev.

    Mas o caso mais comum em que utilizei as regras do udev foram nas placas de rede. Dá para definir tranquilo em qual eth a placa deve ficar pelo 70-persistent-net.rules.

    André Caldas (usuário não registrado) em 13/10/2009 às 6:30 pm

    Muito bacana, Marcelo! Valeu.

    Assim como o ghost man, eu também queria saber sobre os UUID.

    André Caldas.

    Marcelo Moreira de Mello (usuário não registrado) em 13/10/2009 às 6:34 pm

    Ghost man,

    A utilização do UUID pode ser uma alternativa quando se quer montar o dispositivo. Inclusive pode-ser visualizar todos os labels e uuid do sistema executando o comando blkid.

    Mas o udev é um sub-sistema poderoso, onde podemos por exemplo criar uma regra assim, agregar informações externas e não somente referente ao sistema de arquivos que iremos montar.

    Por exemplo:

    # udevinfo -a -p $(udevinfo -q path -n /dev/sdb1)
    looking at device ‘/devices/pci0000:00/0000:00:02.0/usb2/2-1/2-1:1.0/host6/target6:0:0/6:0:0:0′:
    ID==”6:0:0:0″
    BUS==”scsi”
    DRIVER==”sd”
    SYSFS{rev}==”1.00″
    SYSFS{model}==”X250,D560Z,C350Z”
    SYSFS{vendor}==”OLYMPUS ”
    SYSFS{scsi_level}==”3″
    SYSFS{type}==”0″

    /etc/udev/rules.d/63-camera.rules
    NAME==”sd?1″, BUS==”scsi”, SYSFS{model}==”X250,D560Z,C350Z”, SYMLINK+=”camera”

    Ou ainda.. algo to tipo..

    /etc/udev/rules.d/64-pppd.rules
    ACTION==”add”, KERNEL==”ppp0″, RUN+=”/usr/bin/wall Interface PPP Conectada”

    Abraços.

Este post é antigo (2009-10-13) e foi arquivado. O envio de novos comentários a este post já expirou.