Strona 1 z 1

[+] Ustawienie kolejności montowania usb - usbserial

: 01 maja 2009, 08:31
autor: glob9
Jest to mój pierwszy post na forum więc witam wszystkich serdecznie.

Mój problem polega na tym że posiadam podpięte dwie przejściówki usbserial jedna na ftdi druga na pl2303 i podczas startu systemu ich kolejność montowania jest losowa raz ftdi jest na /dev/ttyUSB0, a następnym razem /dev/ttyUSB1. Czy jest jakaś możliwość przypisania konkretnego numeru urządzenia na sztywno dla poszczególnych przejściówek?

: 01 maja 2009, 12:02
autor: sigo
Nigdy nie robiłem tego z przejściówkami, ale chyba można by spróbować z edycją pliku

Kod: Zaznacz cały

/etc/fstab

: 01 maja 2009, 13:26
autor: glob9
Z kolejnoscia juz sobie poradziłem przy pomocy modprobe

Kod: Zaznacz cały

rmmod -f ftdi_sio.ko
rmmod -f pl2303.ko
modprobe ftdi_sio
modprobe pl2303
teraz mam inny problem chciałbym aby wynik modprobe był zapisywany w osobnym pliku abym mógł sobie to wywalic na konsole wiec zrobiłem tak

Kod: Zaznacz cały

modprobe pl2303 >> /tmp/usb.log
modprobe ftdi >> /tmp/usb.log

Kod: Zaznacz cały

cat /tmp/usb.log |grep -a /dev/ttyUSB0
cat /tmp/usb.log |grep -a /dev/ttyUSB1
ale niestety nic sie nie zapisuje w /tmp/usb.log

: 01 maja 2009, 14:37
autor: lis6502
Zauważ że modprobe samo z siebie nic nie wyrzuca na STDOUT, bardziej modinfo, bądź lspci -k. Może

Kod: Zaznacz cały

dmesg |grep ttyUSB[0-9]
Nazwy urządzeń przyznaje udev, więc odpowiedzi na swoje pytanie poszukaj w

Kod: Zaznacz cały

man udev
i /etc/udev/rules.d, a najprawdopodobniej w pliku 64-device-mapper.rules.

: 01 maja 2009, 17:31
autor: glob9
lis6502 pisze:Zauważ że modprobe samo z siebie nic nie wyrzuca na STDOUT, bardziej modinfo, bądź lspci -k. Może

Kod: Zaznacz cały

dmesg |grep ttyUSB[0-9]
Nazwy urządzeń przyznaje udev, więc odpowiedzi na swoje pytanie poszukaj w

Kod: Zaznacz cały

man udev
i /etc/udev/rules.d, a najprawdopodobniej w pliku 64-device-mapper.rules.
Dziekuje za odpowiedz lecz moja wiedza na temat linuxa jest mizerna, wiec co do udev chwilowo dam sobie spokój. Wiem ze mój sposób na kolejnosc jest mało "elegancki" ale jak na razie skuteczny.

Co do

Kod: Zaznacz cały

dmesg |grep ttyUSB[0-9]
jak najbardziej próbowałem ale wynikiem tego jest wyplucie na konsole wszystkiego co jest zwiazane z ttyUSB a mnie interesowało by ostanie zdarzenie.
Gdzies doczytałem w manualu modprobe
Jeśli istnieje katalog /var/log/ksymoops, a modprobe zostanie
uruchomiany z opcją powodującą załadowanie lub usunięcie modułu,
modprobe zaloguje swoje polecenie i kod powrotu w
/var/log/ksymoops/`date +%Y%m%d.log`.
utworzyłem taki katalog ale efekt taki sam zero zapisu :-(

: 01 maja 2009, 18:02
autor: lis6502
Skoro udev odpada, a Ciebie interesują ostatnie wpisy w dmesg, skorzystaj z takiej konstrukcji

Kod: Zaznacz cały

dmesg |tail -n 10|grep ttyUSB[0-9]
tail wyświeli Ci dziesięć ostatnich linii od końca.
modprobe zaloguje swoje polecenie i kod powrotu
czyli nic, co Ciebie interesuje.

: 01 maja 2009, 18:48
autor: glob9
Dziękuję właśnie o to mi chodziło.

Zrobiłem tak aby tą informację dostać na gg:

Kod: Zaznacz cały

#!/bin/sh
ftdi=`dmesg |tail -n 10|grep ttyUSB[0-9] |awk '/FTDI USB/ {print$12}'`
pl2303=`dmesg |tail -n 10|grep ttyUSB[0-9] |awk '/pl2303/ {print$9}'`
echo "Zatrzymuje moduly USB>COM"
rmmod -f ftdi_sio.ko
echo "FTDI stop"
rmmod -f pl2303.ko
echo "PL2303 stop"
echo "Laduje moduly USB>COM"
modprobe ftdi_sio
echo "FTDI start"
modprobe pl2303
echo "PL2303 start"
echo "FTDI- na porcie:"
dmesg |tail -n 10|grep ttyUSB[0-9] |awk '/FTDI USB/ {print$12}'
echo "PL2303- na porcie:"
dmesg |tail -n 10|grep ttyUSB[0-9] |awk '/pl2303/ {print$9}'
echo "Wysylam info do gg"
/usr/bin/ekg msg globus "FTDI- na porcie-0: $ftdi PL2303- na porcie-1:$pl2303"
Końcowy efekt na gg:

Kod: Zaznacz cały

FTDI- na porcie-0: ttyUSB0
PL2303- na porcie-1:ttyUSB1
Jeszcze raz dziękuję.

Pozdrawiam.

[Dodano: 2009-05-04, 19:39 ]
Witam ponownie

Niestety moja radość nie trwała długo przelotki dalej ładują się losowo czy lis6502 mógłby mi podpowiedzieć jak ugryźć udev.

To co mam w katalogu /etc/udev/rules.d:

Kod: Zaznacz cały

024_hpmud.rules                   65-dmsetup.rules
05-options.rules                  65-id-type.rules
20-names.rules                    70-persistent-cd.rules
30-cdrom_id.rules                 70-persistent-net.rules
40-basic-permissions.rules        75-cd-aliases-generator.rules
40-permissions.rules              75-persistent-net-generator.rules
45-fuse.rules                     80-programs.rules
45-hplip.rules                    85-hdparm.rules
55-hpmud.rules                    85-hwclock.rules
60-persistent-input.rules         85-ifupdown.rules
60-persistent-storage.rules       90-hal.rules
60-persistent-storage-tape.rules  90-modprobe.rules
60-symlinks.rules                 95-udev-late.rules
61-persistent-storage-edd.rules  
Jak to dokładnie ustawić?

: 04 maja 2009, 22:06
autor: lis6502
Pisanie regułek udev'a wcale nie jest takie trudne jakby mogło się wydawać. Spójrz tutaj. Przykład z drukarką chyba najbardziej odpowiada Twojej sytuacji. W moim udev'ie (wersja 141) polecenia udevinfo nie ma i zostało zastąpione przez udevadm info (dalej składnia niezmieniona. Uzbrojony w te informacje powinieneś sobie poradzić.