Configurando Adaptador USBSerial no Ubuntu usando udev

Publicado por rafael farias novaes 27/01/2009

[ Hits: 21.083 ]

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

Instalação do Cacti v0.8.7g + Plugins

Backup Automatizado (atualizado)

Cria ambiente virtual (VirtualHost no Apache e Virtual Mail no Postfix) para desenvolvimento web

Descompactar vários arquivos ao mesmo tempo de um diretório específico

Dropando IPs


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts