Memanfaatkan Fasilitas UDEV di Linux untuk Pengalamatan Hardware

Written by

in

Berawal dari sebuah kebutuhan untuk memasang 5 USB GSM Modem pada sebuah mesin Linux. Untuk
mengaktifkan GSM Modem dan berkomunikasi dengan si alat mungkin bukan masalah yang berat,
tetapi bagaimana jika alat tersebut lebih dari 1, semua nya 1 tipe. Permasalahannya adalah
bagaimana memaksa agar GSM Modem yg bernomer X akan selalu beralamatkan USB0, GSM Modem dengan
SIM Card Y ada di alamat USB1, dst.Ternyata kita bisa menyiasatinya dengan UDEV. Di kasus ini,
terdapat 2 USB Hub, dan anggap saja 8 USB GSM Modem … maka hal yg perlu dilakukan:1.

Ketahui urutan alamat Port di USB Hub, mana yg USB Hub pertama dan mana USB Hub yang kedua,
lalu di masing2 USB HUB … cari tau mana port 1, 2, 3, dan 4 (atau lebih). Caranya:- jalankan
dmesg atau tail -f /var/log/messages … dan colokan USB GSM Modem/USB apapun di salah satu
port di USB Hubusb 2-2.4: new full speed USB device using ohci_hcd and address 7pl2303
2-2.4:1.0: PL-2303 converter detected—> (2-2.4) artinya USB Hub kedua, port ke-4atauusb 2-1.3:
new full speed USB device using ohci_hcd and address 8pl2303 2-1.3:1.0: PL-2303 converter
detectedusb 2-1.3: PL-2303 converter now attached to tty USB4—> (2-1.3) artinya USB Hub
pertama, port ke-3Untuk mendapatkan informasi lebih detil, jalankan:udevinfo -a -p
/sys/class/tty/tty USB4Hasilnya:udevinfo starts with the device the node belongs to and then
walks up thedevice chain, to print for every device found, all possibly useful attributesin the
udev key format. Only attributes within one device section may be used together in one rule,to
match the device for which the node will be created.looking at class device ‘/sys/class/tty/tty
USB4’:SYSFS{dev}=”188:4″follow the class device’s “device”looking at the device chain at
‘/sys/devices/pci0000:00/0000:00:01.3/usb2/2-1/2-1.1/2-1.1:1.0/tty
USB4’:BUS=”usb-serial”ID=”tty USB4″SYSFS{detach_state}=”0″looking at the device chain at
‘/sys/devices/pci0000:00/0000:00:01.3/usb2/2-1/2-1.1/2-1.1:1.0’:BUS=”usb”ID=”2-1.1:1.0″SYSFS{b
Alternate Setting}=” 0″SYSFS{b Interface Class}=”ff”SYSFS{b Interface Number}=”00″SYSFS{b
Interface Protocol}=”00″SYSFS{b Interface Sub Class}=”00″SYSFS{b Num
Endpoints}=”03″SYSFS{detach_state}=”0″looking at the device chain at
‘/sys/devices/pci0000:00/0000:00:01.3/usb2/2-1/2-1.1’:BUS=”usb”ID=”2-1.1″SYSFS{b Configuration
Value}=”1″SYSFS{b Device Class}=”00″SYSFS{b Device Protocol}=”00″SYSFS{b Device Sub
Class}=”00″SYSFS{b Max Power}=”500m A”SYSFS{b Num Configurations}=”1″SYSFS{b Num Interfaces}=”
1″SYSFS{bcd Device}=”0001″SYSFS{bm
Attributes}=”80″SYSFS{detach_state}=”0″SYSFS{devnum}=”11″SYSFS{id Product}=”1080″SYSFS{id
Vendor}=”0eba”SYSFS{manufacturer}=”Prolific Technology
inc.”SYSFS{maxchild}=”0″SYSFS{product}=”USB-Serial Controller”SYSFS{speed}=”12″SYSFS{version}=”
1.10″looking at the device chain at
‘/sys/devices/pci0000:00/0000:00:01.3/usb2/2-1’:BUS=”usb”ID=”2-1″SYSFS{b Configuration
Value}=”1″SYSFS{b Device Class}=”09″SYSFS{b Device Protocol}=”00″SYSFS{b Device Sub
Class}=”00″SYSFS{b Max Power}=”100m A”SYSFS{b Num Configurations}=”1″SYSFS{b Num Interfaces}=”
1″SYSFS{bcd Device}=”0312″SYSFS{bm
Attributes}=”e0″SYSFS{detach_state}=”0″SYSFS{devnum}=”10″SYSFS{id Product}=”9254″SYSFS{id
Vendor}=”058f”SYSFS{manufacturer}=”ALCOR”SYSFS{maxchild}=”4″SYSFS{product}=”Generic USB
Hub”SYSFS{speed}=”12″SYSFS{version}=” 1.10″looking at the device chain at
‘/sys/devices/pci0000:00/0000:00:01.3/usb2’:BUS=”usb”ID=”usb2″SYSFS{b Configuration
Value}=”1″SYSFS{b Device Class}=”09″SYSFS{b Device Protocol}=”00″SYSFS{b Device Sub
Class}=”00″SYSFS{b Max Power}=” 0m A”SYSFS{b Num Configurations}=”1″SYSFS{b Num Interfaces}=”
1″SYSFS{bcd Device}=”0206″SYSFS{bm
Attributes}=”c0″SYSFS{detach_state}=”0″SYSFS{devnum}=”1″SYSFS{id Product}=”0000″SYSFS{id
Vendor}=”0000″SYSFS{manufacturer}=”Linux 2.6.11-1.27_FC3
ohci_hcd”SYSFS{maxchild}=”2″SYSFS{product}=”OHCI Host
Controller”SYSFS{serial}=”0000:00:01.3″SYSFS{speed}=”12″SYSFS{version}=” 1.10″looking at the
device chain at
‘/sys/devices/pci0000:00/0000:00:01.3’:BUS=”pci”ID=”0000:00:01.3″SYSFS{class}=”0x0c0310″SYSFS{detach_state}=”0″SYSFS{device}=”0x7001″SYSFS{irq}=”9″SYSFS{local_cpus}=”1″SYSFS{subsystem_device}=”0x7000″SYSFS{subsystem_vendor}=”0x1039″SYSFS{vendor}=”0x1039″looking
at the device chain at
‘/sys/devices/pci0000:00’:BUS=””ID=”pci0000:00″SYSFS{detach_state}=”0″Nah, sekarang saatnya
bermain dengan UDEV …. File yang kita mainkan cukup dengan file yg sudah ada saja …
/etc/udev/rules.d/50-udev.rules Tambahkan di baris2 terakhir saja … seperti berikut
BUS=”usb”, ID=”2-1.1″, NAME=”tty USB0″, SYMLINK=”gsm-modem1″BUS=”usb”, ID=”2-1.2″, NAME=”tty
USB1″, SYMLINK=”gsm-modem2″BUS=”usb”, ID=”2-1.3″, NAME=”tty USB2″,
SYMLINK=”gsm-modem3″BUS=”usb”, ID=”2-1.4″, NAME=”tty USB3″, SYMLINK=”gsm-modem4″BUS=”usb”,
ID=”2-2.1″, NAME=”tty USB4″, SYMLINK=”gsm-modem5″BUS=”usb”, ID=”2-2.2″, NAME=”tty USB5″,
SYMLINK=”gsm-modem6″BUS=”usb”, ID=”2-2.3″, NAME=”tty USB6″, SYMLINK=”gsm-modem7″BUS=”usb”,
ID=”2-2.4″, NAME=”tty USB7″, SYMLINK=”gsm-modem8″Symlink merupakan symbolic link dari tty USB0
ke sebuah file tersendiri yg kita sukai.

Jangan lupa jalankan:udevstartuntuk mengaktifkan konfigurasi tadi. Popularity: 5%[?]