sobota, 26 czerwca 2010

MultiTool - obsługa w systemie Linux

Aby urządzenie MultiTool było widoczne w systemie i możliwa była praca z nim należy najpierw odpowiednio skonfigurować jądro systemu (o ile nie zostało to już zrobione przez wydawcę dystrybucji). Poniższy przykład oparty jest o system Gentoo.

Przed rozpoczęciem konfiguracji należy zaopatrzyć się w źródła jądra.
Logujemy się więc jako root

$ su -
Hasło: ##########

a następnie instalujemy źródła jądra
# emerge -av gentoo-sources


po pomyślnej instalacji przechodzimy do katalogu z jądrem i uruchamiamy make menuconfig

# cd /usr/src/linux
# make menuconfig

i konfigurujemy jądro następująco:

Device Drivers  --->
   SCSI device support  --->


(Wybierając USB Mass Storage możemy być pewni, że obsługa SCSI zostanie włączona, jednak musimy zadbać o włączenie obsługi dysku)
---   SCSI support type (disk, tape, CD-ROM)
<*>   SCSI disk support


(Cofamy się o jeden poziom, do opcji USB support)
  USB support  --->


(Główny hub jest wymagany dla wsparcia USB. Jeśli skompilujemy to jako moduł, będzie dostępny pod nazwą usbcore)
<*> Support for Host-side USB


(Wybieramy tę opcję, by urządzenia USB pojawiały się w /proc/bus/usb. Opcja zalecana.)
 [*]   USB device filesystem


(Wybieramy przynajmniej jeden HCD. Jeśli brak nam pewności, to wybieramy wszystkie)
--- USB Host Controller Drivers
<*> EHCI HCD (USB 2.0) support
< > OHCI HCD support
<*> UHCI HCD (most Intel and VIA) support


(Schodząc trochę niżej dochodzimy do urządzeń CDC i urządzeń masowego składowania danych)
<*> USB Modem (CDC ACM) support
<*> USB Printer support
<*> USB Mass Storage support


(Włączamy obsługę przejściówek USB <-> złącze szeregowe. Jeśli posiadamy przejściówkę innych producentów to również tu możemy je wybrać)
 USB Serial Converter support  --->
    [*] USB Generic Serial Driver
    <*> USB FTDI Single Port Serial Driver
    <*> USB Prolific 2303 Single Port Serial Driver


następnie kompilujemy jądro
# make

kopiujemy jądro w odpowiednią lokalizację np. (należy pamiętać aby również odpowiednio skonfigurować Gruba lub Lilo):
# cp arch/x86_64/boot/bzImage /boot/kernel-2.6.33-r1 

instalujemy moduły jądra:
# make modules_install

i restartujemy system.

Po udanym ponownym uruchomieniu systemu podłączamy MultiTool do portu USB i ładujemy moduł współpracujący z MultiToolem:

# modprobe usbserial vendor=0x1FC9 product=0x0500

Uruchom program dmesg i w konsoli powinieneś zobaczyć mniej więcej coś takiego:

usbserial_generic 1-1:1.0: generic converter detected
usb 1-1: generic converter now attached to ttyUSB0
usbcore: registered new interface driver usbserial_generic

Jak widać nowy port szeregowy jest przyporządkowany do /dev/ttyUSB0 Od teraz możesz korzystać z MultiToola za pomocą dowolnego programu :-)