Fórum Root.cz

Hlavní témata => Software => Téma založeno: prezek 17. 12. 2015, 09:45:00

Název: SMS a internet pomocí user space device driveru?
Přispěvatel: prezek 17. 12. 2015, 09:45:00
Zdravím. Mám Raspberry Pi s GPRS modemem připojený přes převodník USB<->Seriový port a při aktivním internetovém připojení bych potřeboval přijímat SMS. Internet funguje přes ppp protokol. Pppd startuji pomocí wvdialu. Myslel jsem, že bych mezi pppd a soubor ovladače sériového portu (/dev/ttyUSB0) vložil virtuální soubor, ve kterém bych mohl komunikaci přerušit, přečíst a poslat SMS a pak zase pokračovat. Pokud víte o lepším řešení, tak sem s ním.

Jde vytvořit v user space virtuální soubor tak, abych měl plnou kontrolu nad tím, co z něho programy čtou a co zapisují?(v user space simulovat character device)

Díky, Petr
Název: Re:SMS a internet pomocí user space device driveru?
Přispěvatel: Ondřej Caletka 17. 12. 2015, 10:21:54
Nemá ten modem víc sériových portů? Modemy, co jsem zkoušel, měly třeba tři. Možná by šlo posílat SMSky po některém z těch zbývajících portů.
Název: Re:SMS a internet pomocí user space device driveru?
Přispěvatel: k 17. 12. 2015, 10:36:53
Modem který umí dělat něco jiného při navázaném internetovém spojení má rovnou ovladač který vytvoří více sériových portů. Starší GSM/EDGE modemy to uměly skoro všechny, dnešní 3G/4G jen občas.
Název: Re:SMS a internet pomocí user space device driveru?
Přispěvatel: prezek 17. 12. 2015, 10:48:23
jedná se o průmyslový modem s jedním sériovým portem. Modem si bohužel nemůžu vybírat.
Název: Re:SMS a internet pomocí user space device driveru?
Přispěvatel: Radek 17. 12. 2015, 11:21:22
Ahoj,

kolega to kdysi resil, ale pak se kuli nespolehlivosti od tohoto reseni upustilo. Modem(tenkrat se to resilo pro wavecom) jde vetsinou prepnout do multiplexopvaneho rezimu a pak jde mit jak GPRS tak i SMS. Ale asi by sis musel napsat vlastni "ovladac" co by to dokazal rozdelovat na vice portu, nebo to predavat nejak bokem pppd.

Radek
Název: Re:SMS a internet pomocí user space device driveru?
Přispěvatel: prezek 17. 12. 2015, 12:50:31
Chtěl jsem data předávat bokem a nechtěl jsem psát kernel modul, kvůli tomu abych udělal char device. Vypadá to, že jsem našel řešení ve formě 2 virtuálních tty
Kód: [Vybrat]
sudo socat PTY,link=/dev/ttyS98 PTY,link=/dev/ttyS99příkaz vytvoří /dev/ttyS98 a /dev/ttyS99, které jsou mezi sebou provázané, co se zapíše do ttyS98, to se dá vyčíst z ttyS99 a naopak. Hledal jsem poměrně dlouho a našel jsem to až po dotazu zde  :).

Pokud vás napadá lepší řešení, nebo nějaký důvod nepoužívání zmíněného příkazu, dejte vědět.
Název: Re:SMS a internet pomocí user space device driveru?
Přispěvatel: Radek 17. 12. 2015, 15:00:39
Ahoj,
ja si myslim ze ten napad se socat neni spatnej. Pripadne muzes volat socat ze sveho programu. Taky jsem nasel neco ohledne toho multiplexu. Koukni sem : https://www.kernel.org/doc/Documentation/serial/n_gsm.txt  https://github.com/Rtone/cmux to je co mi google vratil na dotaz CMUX. Tim se obecne ten multiplex oznacuje.

Radek
Název: Re:SMS a internet pomocí user space device driveru?
Přispěvatel: prezek 17. 12. 2015, 16:48:15
Ahoj Radku, díky, na CMUX se podívám.

socat budu moct vynechat otevřením /dev/ptmx mi vznikne v /dev/pty pseudotty, do kterého můžu přeposílat data. Už jsem si ověřil, že při přeposílání dat z modemu mi internet funguje, odesláním +++ ho můžu pozastavit, přečíst SMS a pak zase obnovit. Přesně to jsem potřeboval.