1 (edytowany przez jakobs84 2017-10-02 19:02:21)

Temat: LEDE /dev/ttyUSB"X"

Witam

Do rutera podpięty hub 4 portowy, do hub'a modem Huawei E3372 tryb NCM i arduino. Czy jest opcja aby wymusić montowanie arduino po zamontowaniu modemu ewentualnie wymusić montowanie arduino  jako np /dev/ttyUSB10.

Zależy mi aby modem montował się jako /dev/ttyUSB0 w przeciwnym wypadku za każdym restartem muszę zmieniać konfigurację.

Reboot (17.01-SNAPSHOT, r3491-889638c)
Build time: 2017-08-11 07:13 CEST
Cezary Jackiewicz (obsy), http://eko.one.pl
Machine: TP-Link TL-WR1043N/ND v1


root@LEDE:~# dmesg | grep tty
[    0.000000] Kernel command line: board=TL-WR1043ND  console=ttyS0,115200 rootfstype=squashfs,jffs2 noinitrd
[    0.537402] console [ttyS0] disabled
[    0.561015] serial8250.0: ttyS0 at MMIO 0x18020000 (irq = 11, base_baud = 12500000) is a 16550A
[    0.569708] console [ttyS0] enabled
[   14.150600] usb 1-1.2.4: FTDI USB Serial Device converter now attached to ttyUSB0
[   14.774636] usb 1-1.4: GSM modem (1-port) converter now attached to ttyUSB1
[   14.788525] usb 1-1.4: GSM modem (1-port) converter now attached to ttyUSB2

2

Odp: LEDE /dev/ttyUSB"X"

Czytaj: http://eko.one.pl/?p=openwrt-linkidoportowszeregowych

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: LEDE /dev/ttyUSB"X"

Dzięki o to właśnie chodziło.

4

Odp: LEDE /dev/ttyUSB"X"

Cezary jak przerobić ten skrypt żeby w hub-ie DLINK 7 portowym móc konkretnie nazywać poszczególnie wykrycie urządzenia. Urządzeniami są 4 modemu E3276 nohilink i 2 E3131 też nie hilink. W tej chwili system wykrywa je tak:

root@OpenWrt:~# dmesg | grep tty
[    0.000000] Kernel command line:  board=WNDR4300 console=ttyS0,115200 mtdparts=ar934x-nfc:256k(u-boot)ro,256k(u-boot-env)ro,256k(caldata)ro,512k(pot),2048k(language),512k(config),3072k(traffic_meter),2048k(kernel),121856k(ubi),123904k@0x6c0000(firmware),256k(caldata_backup),-(reserved) rootfstype=squashfs noinitrd
[    0.573768] console [ttyS0] disabled
[    0.597652] serial8250.0: ttyS0 at MMIO 0x18020000 (irq = 11, base_baud = 2500000) is a 16550A
[    0.606854] console [ttyS0] enabled
[   20.964207] usb 1-1.5.2: GSM modem (1-port) converter now attached to ttyUSB0
[   20.978476] usb 1-1.5.2: GSM modem (1-port) converter now attached to ttyUSB1
[   20.993059] usb 1-1.4: GSM modem (1-port) converter now attached to ttyUSB2
[   21.006956] usb 1-1.4: GSM modem (1-port) converter now attached to ttyUSB3
[   21.193185] usb 1-1.5.5: GSM modem (1-port) converter now attached to ttyUSB4
[   21.208099] usb 1-1.5.5: GSM modem (1-port) converter now attached to ttyUSB5
[   21.509853] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB6
[   21.524451] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB7
[   25.605987] usb 1-1.5.4: GSM modem (1-port) converter now attached to ttyUSB8
[   25.828822] usb 1-1.5.4: GSM modem (1-port) converter now attached to ttyUSB9
[   25.843688] usb 1-1.5.4: GSM modem (1-port) converter now attached to ttyUSB10
[   26.654268] usb 1-1.5.3: GSM modem (1-port) converter now attached to ttyUSB11
[   26.828931] usb 1-1.5.3: GSM modem (1-port) converter now attached to ttyUSB12
[   26.843888] usb 1-1.5.3: GSM modem (1-port) converter now attached to ttyUSB13

smstools3 wykrywa mi poszczególne IMEI i IMSI ale tak jak pisałeś w innym poście skanowanie tych informacji może się nie udać ze względu na różne wykrywanie interfejsów nie w kolejności. Da się to jakoś zrobić na podstawie wpięcia w konkretny port huba-a?

5

Odp: LEDE /dev/ttyUSB"X"

Tak, zobacz cały log a nie przez grep to pokaże ci do jakiś portów jest wpięty poszczególny modem.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

6

Odp: LEDE /dev/ttyUSB"X"

jakiego wpisu mam mniej więcej szukać?

7

Odp: LEDE /dev/ttyUSB"X"

[   22.047815] option 1-1:1.0: GSM modem (1-port) converter detected
[   22.054564] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB0
[   22.061229] option 1-1:1.2: GSM modem (1-port) converter detected
[   22.067558] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB1
[   22.073757] option 1-1:1.3: GSM modem (1-port) converter detected
[   22.080606] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB2

to z logów.  Te 1-1 to numery hubów i portów

Jak sobie zrobisz mały debug w hotplugu to wyświetli ci w devpath pewnie pełną ścieżkę do urządzenia a w niej będziesz miał właśnie oznaczenie portu. Więc jak chcesz coś robić po swojemu to przeparsuj sobie to gdzie urządzenie się pojawia i z tego skorzystaj.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

8

Odp: LEDE /dev/ttyUSB"X"

Czy takie porównanie DEVICENAME będzie dobre? Jak zrobić żeby porównywał tylko 1-1.4 a to co jest po : pomijał bo tam zmienia się po włożeniu i wyjęciu modemu?

if [ "x$DEVICENAME" = "1-1.4" ]; then

9 (edytowany przez Cezary 2020-11-05 12:11:08)

Odp: LEDE /dev/ttyUSB"X"

Nie. f [ "x$DEVICENAME" = "x1-1.4" ]; then jak już.

Najpierw sobie wytnij z devicename to co chcesz (np. przez cut)

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

10

Odp: LEDE /dev/ttyUSB"X"

ie mogę tu wstawić treści skryptu wywala
403
Forbidden

Access to this resource on the server is denied!
Które znaki są zakazane?

11

Odp: LEDE /dev/ttyUSB"X"

To wstaw na pastebin i podaj link. Hosting stał się bardziej restrykcyjny ostatnio.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

12

Odp: LEDE /dev/ttyUSB"X"

Słabo mi idzie z tym wiec proszę Ciebie o cierpliwość Cezary. Oto link

https://pastebin.pl/view/0f8a00f6

13

Odp: LEDE /dev/ttyUSB"X"

Ale nie wyciąłeś nic z devpatha. Najpierw wytnij to co potrzebujesz.

PS. Zamiast tworzyć nowe urządzenia w /dev to nie było by prościej zmieniać w konfigu programów wstawiając odpowiednie urządzenia?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

14

Odp: LEDE /dev/ttyUSB"X"

No tak ale nie przychodzi mi nic do głowy jak zrobić  tym co mi pomogłeś w innym poscie w configu jak poniżej:

devices = GSM1, GSM2
incoming = /etc/sms/incoming
outgoing = /etc/sms/outgoing
checked = /etc/sms/checked
failed = /etc/sms/failed
sent = /etc/sms/sent
#report = /etc/sms/report
autosplit = 3
loglevel = 5
#eventhandler = /usr/bin/obsluga_sms

[queues]
GSM1 = /etc/sms/GSM1
GSM2 = /etc/sms/GSM2

[GSM1]
queues = GSM1
init = ATE0
device = /dev/ttyUSB1
incoming = yes
#pin = 0000
baudrate = 19200

[GSM2]
queues = GSM2
init = ATE0
device = /dev/ttyUSB3
incoming = yes
#pin = 0000
baudrate = 19200


Chodzi o to że różne karty różnych operatorów są w różnych modemach ja wiem w których ale niestety one zgłaszają się losowo a sms ma iść konkretną kartą czyli przez konkretny modem zdefiniowany w programie wyżej smstools3 przez nr GSM konkretny a ten z kolei powiązany z ttyUSB da się to jakoś pożenić?

15

Odp: LEDE /dev/ttyUSB"X"

Jeżeli smstools3 będzie działał z takim konfigiem (sprawdź bo nie wiem):

devices = GSM1, GSM2
incoming = /etc/sms/incoming
outgoing = /etc/sms/outgoing
checked = /etc/sms/checked
failed = /etc/sms/failed
sent = /etc/sms/sent
#report = /etc/sms/report
autosplit = 3
loglevel = 5
#eventhandler = /usr/bin/obsluga_sms

[queues]
GSM1 = /etc/sms/GSM1
GSM2 = /etc/sms/GSM2

[GSM1]
queues = GSM1
init = ATE0
device = /dev/ttyUSB1 #orange
incoming = yes
#pin = 0000
baudrate = 19200

[GSM2]
queues = GSM2
init = ATE0
device = /dev/ttyUSB3 #play
incoming = yes
#pin = 0000
baudrate = 19200

To zamiana interfejsów w konfigu jest prosta:

sed -i 's|device = .*#orange|device = /dev/ttyUSB5 #orange|g' /etc/smsd.conf

itp.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

16 (edytowany przez smereka 2020-11-05 14:00:23)

Odp: LEDE /dev/ttyUSB"X"

Będzie działał z tym configiem Cezary. Sprawdziłem i wrzuciłem config z 6 modemami i hula dobrze. Tylko te zmiany modemów psują trochę zamierzony cel. Czyli raz modem GSM1 jest pod GSM 3 raz na odwrót i takie same mieszanki z pozostałymi 4. W sumie 6 modemów. I jak sms przychodzi to zamiast przyjść na GSM1 to przychodzi na GSM3 bo zmieniły się miejscami ttyUSB. To samo z wysyłaniem


sed -i 's|device = .*#orange|device = /dev/ttyUSB5 #orange|g' /etc/smsd.conf


Gdzie mam wstawić tą linijkę?

17

Odp: LEDE /dev/ttyUSB"X"

A o czym rozmawiamy? W skrypcie do hotpluga zmiast tego tworzenia urządzeń w /dev. No i oczywiście on nadal nie będzie działał bo nie wycinasz części nazwy z devpath.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

18

Odp: LEDE /dev/ttyUSB"X"

A dlaczego trzeba wycinać z devpath a nie porównywać początek z np. DEVICENAME=1-1.4:1.4 oprócz końcówki po dwukropku :1.4

19

Odp: LEDE /dev/ttyUSB"X"

To teraz napisz mi jak chcesz porównać początek oprócz kropki bez dwukropku? To nie są wyrażenia regularne tylko proste porównanie testów.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

20 (edytowany przez smereka 2020-11-05 15:11:11)

Odp: LEDE /dev/ttyUSB"X"

Porównać tylko pierwsze 5 znaków po = czyli będa do 1-1.4 czyli jedynka myślnik znowu jedynka kropka i 4 Da się tak?

21

Odp: LEDE /dev/ttyUSB"X"

Czyli musisz wciąć ze zmiennej pierwsze pięć znaków i je dopiero porównać. Dokładnie to co napisałem już wcześniej dwa razy.

Na razie nic nie wycinasz tylko porównujesz zmienną.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

22

Odp: LEDE /dev/ttyUSB"X"

Tak tylko właśnie nie wiem jak zastosować te cut

23

Odp: LEDE /dev/ttyUSB"X"

cut wycina albo po polach albo po licznie znaków. Na wikibooksach masz: https://en.wikibooks.org/wiki/Cut

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.