2016-06-07 29 views
1

Ich benutze Simcom 800H Mobilfunkmodul mit meinem BeagleBone Black, die sehr ähnlich zu dem beliebten Simcom 900 ist. Ich möchte zwei Hauptaufgaben mit dem Simcom-ModulSMS und GPRS: Multiplexing GSM-Modul auf BeagleBone Black mit n_gsm

  • Verwenden AT-Befehle Einstellungen konfigurieren und Nachrichten senden und empfangen
  • pPP-Internet-Zugang auf dem BBB über GPRS zu ermöglichen.

Jetzt ist das offensichtliche Problem, dass ich nicht beides gleichzeitig tun kann. Ich habe eine Web-Suche und fand die folgenden Beiträge

  1. Using GPRS and GSM Simulatneously
  2. Sending AT commands to SIM900 whilst pppd is active

Die zweite Verbindung besonders nützlich gewesen ist, wo einer der Benutzer den Code auf dieser repository benutzt hat.

Das allgemeine Thema war, das n_gsm Modul zu verwenden. Ich habe versucht, das Modul mit modprobe n_gsm zu laden, und es ist fehlgeschlagen. Wie der Benutzer erwähnt, enthält die BBB auch nicht das n_gsm-Modul als Standard, also musste ich einen neuen Kernel bauen, mit n_gsm als Modul hinzugefügt. Allerdings habe ich Probleme mit der n_gsm als ein Modul. Hier sind die Schritte, denen ich folgte

  1. Ich folgte this Tutorial und heruntergeladen die richtigen Linux-Header für meine BBB.
  2. Ich habe versucht, das Modul als Linux LKM (ladbare Kernel-Modul) zu kompilieren als

  3. I folgt dem n_gsm.c von here

  4. Die n_gsm.c Datei heruntergeladen hatte einige enthält, die in meinem BBB fehlten . Also habe ich sie heruntergeladen.
  5. Ich habe ein Makefile erstellt. Meine Auswahl hatte n_gsm.c und Makefile

Makefile

obj-m += n_gsm.o 

all: 
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules 

clean: 
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean 

Dieser Fehler erzeugt, wie in Abbildung gezeigt n_gsm errors

  • ich in der Lage war erfolgreich ein anderes Modul zu laden, um wie in this gezeigt (die Hallo Welt der Kernel-Module). Ich verstehe auch nicht, warum ich den gesamten Linux-Kern neu kompilieren muss, um ein LKM zu schaffen.

  • Ich fühle, dass ich einige offensichtliche Fehler mache, wie es aussieht, wir Leute konnten dieses Modul erfolgreich laden.

  • Ist dies der richtige Weg, um ein Modul und speziell n_gsm zu laden. Es gibt nicht viel Dokument/Tutorial zu diesem.

  • Gibt es eine einfachere Möglichkeit, dieses Multiplexing durchzuführen, falls das alles nicht funktioniert? Ich mag die Idee von AT-Befehlen für SMS und PPP für GPRS (anstelle von AT-Befehlen für beide).

Alle Tipps und Vorschläge werden sehr hilfreich sein!

Edit1: Details über meine BBB

  1. Kernel - Linux BeagleBone 3.8.13-bone79
  2. Distro - Debian 7.9 (sid)

Edit 2: Hinzugefügt Details über GSM-Modul

  1. This ist das GSM-Breakout-Board, das ich benutze.
  2. Es verwendet this Modul und Sie können die command manual und multiplexing application note auschecken.

aktualisieren 1

  1. Dank @Serge, konnte ich das n_gsm Modul und fügen Sie es ohne erneute Kompilierung des Kernels bauen. Ich war jedoch immer noch nicht in der Lage, das GSM-Modul in den Mux-Modus zu bringen.
  2. AT+CMUX=?, AT+CMUX? und AT+CMUX= generiert einen Fehler auf dem Sim800H-Modul.
  3. Hier ist der de-Lausch I
    1. rumgespielt mit Hardware/Software und kein Durchfluss getan haben. Hat in keinem Modus funktioniert.
    2. Set TE-TA lokale Rate AT+IPR zu auto, 115200 fixierte und noch AT+CMUX erzeugt einen Fehler
    3. AT+CMUX? auf einem anderen Modul SIM900 Getestet und das funktioniert.

Jede Idee, warum es nicht mit sim800H funktioniert?

+0

Welche Verteilung verwenden Sie an Ihrem BB? – Serge

+0

Debian Wheezy. Ich werde den Beitrag in Kürze bearbeiten, um weitere Details zur BBB hinzuzufügen. – am3

+0

wie das modul verbunden ist: über uart oder usb? – Serge

Antwort

1

Das make-Problem in der Frage wurde durch Herunterladen der n_gsm.c von beaglebone's kernel source repository für die verwendete Kernel-Version gelöst.

+0

Ich konnte das Modul und Zeug laden. Es ist jedoch ein Problem, dass das GSM-Modul im Mux-Modus funktioniert (siehe Update 1). Irgendwelche Zeiger? – am3

+0

Leider habe ich kein solches Modul, daher kann ich das Szenario nicht nachvollziehen, sorry. – Serge