Configurando Adaptador USBSerial no Ubuntu usando udev

Publicado por rafael farias novaes 27/01/2009

[ Hits: 17.491 ]

Homepage: http://www.vivaolinux.com.br/perfil/verPerfil.php?login=bfmano

Download Configurando Adaptador USBSerial no Ubuntu usando udev.txt




Configurando USB.

  



Esconder código-fonte

 Requisitos

    * Cabo USB
    * Adaptador USB->Serial Prolific (este é um dos modelos mais comuns no mercado)
    * Ubuntu Linux 7.10 (Pode funcionar em outras distribuições baseadas que utilizem udev para gerenciamento de dispositivos) 


[editar]
Configuração

Antes de mais nada é necessário detectar qual o dispositivo conectado a inteface USB. Para isto basta utilizar o udevmonitor

# udevmonitor
udevmonitor will print the received events for:
UDEV the event which udev sends out after rule processing
UEVENT the kernel uevent


Agora basta conectar o Adaptador USB->Serial ao cabo USB e em seguida conectar o cabo USB no computador.

Será mostrada uma saida de tela parecida com a saida abaixo:

UEVENT[1197270418.942270] remove   /devices/pci0000:00/0000:00:02.0/usb3/3-2/3-2:1.0/ttyUSB0 (usb-serial)
UDEV  [1197270418.950251] remove   /class/tty/ttyUSB0 (tty)
UDEV  [1197270418.951950] remove   /devices/pci0000:00/0000:00:02.0/usb3/3-2/3-2:1.0/ttyUSB0 (usb-serial)
UEVENT[1197270420.922868] add      /devices/pci0000:00/0000:00:02.0/usb3/3-2 (usb)
UEVENT[1197270420.922933] add      /class/usb_endpoint/usbdev3.19_ep00 (usb_endpoint)
UEVENT[1197270420.925735] add      /devices/pci0000:00/0000:00:02.0/usb3/3-2/3-2:1.0 (usb)
UDEV  [1197270420.934592] add      /devices/pci0000:00/0000:00:02.0/usb3/3-2 (usb)
UDEV  [1197270420.943919] add      /class/usb_endpoint/usbdev3.19_ep00 (usb_endpoint)
UEVENT[1197270420.983005] add      /class/usb_endpoint/usbdev3.19_ep81 (usb_endpoint)
UEVENT[1197270420.983068] add      /class/usb_endpoint/usbdev3.19_ep02 (usb_endpoint)
UEVENT[1197270420.983087] add      /class/usb_endpoint/usbdev3.19_ep83 (usb_endpoint)
UEVENT[1197270420.983105] add      /class/usb_device/usbdev3.19 (usb_device)
UDEV  [1197270421.042027] add      /devices/pci0000:00/0000:00:02.0/usb3/3-2/3-2:1.0 (usb)
UDEV  [1197270421.042097] add      /class/usb_endpoint/usbdev3.19_ep81 (usb_endpoint)
UDEV  [1197270421.042117] add      /class/usb_endpoint/usbdev3.19_ep02 (usb_endpoint)
UDEV  [1197270421.042136] add      /class/usb_endpoint/usbdev3.19_ep83 (usb_endpoint)
UDEV  [1197270421.153474] add      /class/usb_device/usbdev3.19 (usb_device)


Para identificar o dispositivo, vamos observar a class listada acima, neste caso /class/usb_device/usbdev3.19.

Agora basta obter informações detalhadas sobre o dispositivo, usando o comando udevinfo:

# udevinfo -a -p /class/usb_device/usbdev3.19

 looking at device '/class/usb_device/usbdev3.19':
   KERNEL=="usbdev3.19"
   SUBSYSTEM=="usb_device"
   DRIVER==""
   ATTR{dev}=="189:274"

 looking at parent device '/devices/pci0000:00/0000:00:02.0/usb3/3-2':
   KERNELS=="3-2"
   SUBSYSTEMS=="usb"
   DRIVERS=="usb"
   ATTRS{product}=="USB-Serial Controller"
   ATTRS{manufacturer}=="Prolific Technology Inc."
   ATTRS{quirks}=="0x0"
   ATTRS{maxchild}=="0"
   ATTRS{version}==" 1.10"
   ATTRS{devnum}=="19"
   ATTRS{busnum}=="3"
   ATTRS{speed}=="12"
   ATTRS{bMaxPacketSize0}=="64"
   ATTRS{bNumConfigurations}=="1"
   ATTRS{bDeviceProtocol}=="00"
   ATTRS{bDeviceSubClass}=="00"
   ATTRS{bDeviceClass}=="00"
   ATTRS{bcdDevice}=="0300"
   ATTRS{idProduct}=="2303"
   ATTRS{idVendor}=="5372"
   ATTRS{bMaxPower}=="100mA"
   ATTRS{bmAttributes}=="80"
   ATTRS{bConfigurationValue}=="1"
   ATTRS{bNumInterfaces}==" 1"
   ATTRS{configuration}==""
   ATTRS{dev}=="189:274"


Serão mostradas mais informações, mas o que realmente é necessário para configuração do dispositivo estão em negrito no quadro acima.


[editar]
Arquivo de configuração udev: /etc/udev/rules.d/26-usbserial.rules

ACTION=="add", BUS=="usb", ID="ttyUSB0", DRIVER="pl2303", \
SYSFS{product}=="USB-Serial Controller", \
MODE="0666", SYMLINK="pilot", \
RUN+="/bin/sh -c '/bin/chmod 666 $env{DEVICE}'"


[editar]
Testando dispostivo

Para testar o dispositivo, basta desconectar o cabo USB e conectá-lo novamente.

Se tudo estiver correto, uma mensagem semelhante a do quadro abaixo será mostrada no arquivo /var/log/messages

Dec 10 00:00:00 xxxx kernel: [ xxxx.xxxxxx] pl2303 3-2:1.0: pl2303 converter detected
Dec 10 00:00:00 xxxx kernel: [ xxxx.xxxxxx] usb 3-2: pl2303 converter now attached to ttyUSB0
Dec 10 00:00:00 xxxx kernel: [ xxxx.xxxxxx] usbcore: registered new interface driver pl2303


Agora basta configurar o seu cliente, neste caso configurei o minha conexão com o Palm, para utilizar o dispositivo /dev/ttyUSB0. 

Scripts recomendados

Correção do arquivo status

Criando Autoridades Certificadoras e Certificados de Testes no Linux

Backup compactado

cg_ext - Script para alteração de extensão de arquivos em larga escala.

Algoritmo para calcular notas com array


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário