OpenLinux als Deel vun SIM7600E-H Moduler

OpenLinux als Deel vun SIM7600E-H Moduler

De Mechanismus fir eng personaliséiert Applikatioun z'entwéckelen an se an de Modul ze lueden ass verfügbar souwuel ënner de Linux a Windows Betribssystemer. An dësem Artikel wäerte mir detailléiert kucken wéi, mat Beispiller vun der SDK zur Verfügung gestallt SIMCom Wireless Léisunge kompiléieren a lued eng personaliséiert Applikatioun an e Modul.

Ier ech den Artikel schreiwen, huet ee vu menge Bekannten, wäit vun der Entwécklung fir Linux, mech gefrot, d'Fro ze beschreiwen, de Prozess ze beschreiwen fir meng eegen Applikatioun fir de SIM7600E-H Modul esou vill Detail wéi méiglech z'entwéckelen. De Critère fir d'Accessibilitéit vun der Presentatioun vum Material ze bewäerten war den Ausdrock "sou datt ech verstinn."

Ech invitéieren Iech mat deem wat geschitt ass kennenzeléieren.

Den Artikel gëtt regelméisseg ergänzt an aktualiséiert

Prelude

Typesch ginn cellulär Kommunikatiounsmoduler nëmme fir Dateniwwerdroung, Stëmm Appellen, SMS Iwwerdroung an dergläiche benotzt. All dëst gëtt gemaach duerch AT Kommandoen, déi vun engem externen Kontrollmikrocontroller geschéckt ginn. Awer et gëtt eng Kategorie vu Moduler déi Iech erlaben personaliséiert Code auszeféieren, dee vu baussen gelueden ass. An e puer Fäll reduzéiert dëst de Gesamtbudget vum Apparat wesentlech, wat Iech erlaabt e méi einfachen (a gläiche Budget) Mikrokontroller um Bord z'installéieren oder se ganz opzeginn. Mat dem Advent vun LTE Moduler kontrolléiert vun Android oder Linux OS an hir mächteg Ressourcen, ass et méiglech all Aufgaben ze léisen, déi fir populär Prozessoren disponibel sinn. Dësen Artikel schwätzt iwwer SIM7600E-H, kontrolléiert vu Linux OS. Mir kucken wéi Dir eng ausführbar Applikatioun eroflueden an ausféiert.

A ville Weeër baséiert d'Material op dem Dokument "SIM7600 Open Linux Development Quide", awer e puer Ergänzunge an, éischtens, déi russesch Versioun wäert nëtzlech sinn. Den Artikel hëlleft deenen, déi just ufänken de Modul ze beherrschen, ze verstoen wéi d'Demo-Applikatioun eroflueden an déi néideg Fäegkeeten fir déi spéider Aarbecht ubidden.

Kuerz iwwer déi SIM7600E-H ass

SIM7600E-H ass e Modul op dem ARM Cortex-A7 1.3GHz Prozessor vu Qualcomm gebaut, mat dem Linux Betribssystem (Kernel 3.18.20) dobannen, fäeg mat europäeschen (och russeschen) Frequenzbands 2G/3G/ LTE ze schaffen, déi Cat ënnerstëtzen .4, déi maximal download Vitesse vun bis zu 150Mbps an eropluede Vitesse vun bis zu 50Mbps. Räich Peripheriegeräter, en industriellen Temperaturbereich an d'Präsenz vun agebauter GPS / GLONASS Navigatioun decken all Ufuerderunge fir eng modern modulär Léisung am M2M Feld.

System Iwwersiicht

De SIM7600E-H Modul baséiert op dem Linux Betribssystem (Kernel 3.18.20). Am Tour ass de Dateiesystem op der Basis vum journaliséierte Dateiesystem UBIFS (Unsorted Block Image File System) gebaut.

Wichteg Feature vun dësem Dateisystem enthalen:

  • schafft mat Partitionen, erlaabt Iech hir Gréisst ze kreéieren, ze läschen oder z'änneren;
  • garantéiert d'Opnameausrichtung iwwer de ganze Medienvolumen;
  • schafft mat schlechte Blocks;
  • miniméiert d'Wahrscheinlechkeet vum Dateverloscht während engem Stroumausfall oder aner Feeler;
  • Logbicher halen.

Beschreiwung geholl vun hei, gëtt et och eng méi detailléiert Beschreiwung vun esou engem Dateiesystem.

Déi. Dës Zort Dateiesystem ass ideal fir haart Operatiounsbedingunge vum Modul a méiglech Stroumproblemer. Awer dëst bedeit net datt onbestänneg Kraaftbedéngungen den erwaarten Operatiounsmodus vum Modul sinn; et weist nëmmen déi méi grouss Viabilitéit vum Apparat un.

Erënnerung

D'Verdeelung vun Erënnerung Beräicher ass wéi follegt konstruéiert:

OpenLinux als Deel vun SIM7600E-H Moduler

Et ginn dräi Haaptberäicher fir ze markéieren:

ubi0:rootf - nëmme liesen an enthält de Linux Kernel selwer
ubi0: usrfs - haaptsächlech fir Benotzerprogramm an Datelagerung benotzt
ubi0: ep - reservéiert fir FOTA Updates. Wann de verfügbare Raum net genuch ass fir den Update erofzelueden, läscht de System onbenotzt Dateien an doduerch Plaz fräi. Awer aus Sécherheetsgrënn sollt Dir Är Dateien net do placéieren.

All dräi Sektiounen sinn wéi follegt verdeelt:

Dateie benotzt
Gréisst
benotzt
sinn
Benotzt%
Montéiert op

ubi0:rootf
40.7M
36.2M
4.4M
89%
/

ubi0: usrfs
10.5M
360K
10.1M
3%
/ Donnéeën

ubi0: cachefs
50.3M
20K
47.7M
0%
/ Cache

Verfügbar Funktionalitéit

Wéi uewen erwähnt, ass de Modul op dem Cortex A7 Chipsatz vu Qualcomm gebaut. Et wier falsch net esou e High-Performance-Kär ze bidden fir de Benotzerprogramm ze verarbeiten an den Haaptprozessor vum Apparat ofzelueden andeems en Deel vum Programm op de Modul ofgeluede gëtt.

Fir de Benotzerprogramm sinn déi folgend Peripheriebetribsmodi fir eis verfügbar:

Pin Nr.
Numm
Sys GPIO No.
Standard Aktioun
Fonktioun 1
Fonktioun 2
Pull
Wakeup Ënnerbriechung

6
SPI_CLK
-
UART1_RTS
-
-
B-PD
-

7
SPI_MISO
-
UART1_Rx
-
-
B-PD
-

8
SPI_MOSI
-
UART1_Tx
-
-
B-PD
-

9
SPI_CS
-
UART1_CTS
-
-
B-PD
-

21
SD_CMD
-
SD-Kaart
-
-
B-PD
-

22
SD_DATA0
-
SD-Kaart
-
-
B-PD
-

23
SD_DATA1
-
SD-Kaart
-
-
B-PD
-

24
SD_DATA2
-
SD-Kaart
-
-
B-PD
-

25
SD_DATA3
-
SD-Kaart
-
-
B-PD
-

26
SD_CLK
-
SD-Kaart
-
-
B-PN
-

27
SDIO_DATA1
-
WLAN
-
-
B-PD
-

28
SDIO_DATA2
-
WLAN
-
-
B-PD
-

29
SDIO_CMD
-
WLAN
-
-
B-PD
-

30
SDIO_DATA0
-
WLAN
-
-
B-PD
-

31
SDIO_DATA3
-
WLAN
-
-
B-PD
-

32
SDIO_CLK
-
WLAN
-
-
B-PN
-

33
GPIO 3
GPIO_1020
MIFI_POWER_EN
GPIO
MIFI_POWER_EN
B-PU
-

34
GPIO 6
GPIO_1023
MIFI_SLEEP_CLK
GPIO
MIFI_SLEEP_CLK
B-PD
-

46
ADC 2
-
ADC
-
-
-
-

47
ADC 1
-
ADC
-
-
B-PU
-

48
SD_DET
GPIO_26
GPIO
GPIO
SD_DET
B-PD
X

49
STATUS
GPIO_52
Status
GPIO
Status
B-PD
X

50
GPIO 43
GPIO_36
MIFI_COEX
GPIO
MIFI_COEX
B-PD
-

52
GPIO 41
GPIO_79
BT
GPIO
BT
B-PD
X

55
SCL
-
I2C_SCL
-
-
B-PD
-

56
natierlech Ressourcen
-
I2C_SDA
-
-
B-PU
-

66
Witz
-
UART2_RTS
-
-
B-PD
-

67
CTS
-
UART2_CTS
-
-
B-PD
-

68
RxD
-
UART2_Rx
-
-
B-PD
-

69
RI
-
GPIO(RI)
-
-
B-PD
-

70
DCD
-
GPIO
-
-
B-PD
-

71
TxD
-
UART2_Tx
-
-
B-PD
-

72
DTRMore
-
GPIO(DTR)
-
-
B-PD
X

73
PCM_OUT
-
PCM
-
-
B-PD
-

74
PCM_IN
-
PCM
-
-
B-PD
-

75
PCM_SYNC
-
PCM
-
-
B-PD
-

76
PCM_CLK
-
PCM
-
-
B-PU
-

87
GPIO 77
GPIO 77
BT
GPIO
BT
B-PD
-

Averstanen, d'Lëscht ass beandrockend an notéiert: en Deel vun de Peripheriegeräter gëtt benotzt fir de Modul als Router ze bedreiwen. Déi. Baséierend op esou engem Modul kënnt Dir e klenge Router maachen, deen den Internet iwwer Wi-Fi verdeelt. Iwwregens gëtt et eng fäerdeg Léisung mam Numm SIM7600E-H-MIFI an ass eng MiniPCIE Kaart mat engem soldered SIM7600E-H Modul a verschidde Antenne Pins, ee vun hinnen ass eng Wi-Fi Antenne. Wéi och ëmmer, dëst ass en Thema fir en separaten Artikel.

Mëttwoch (net een Dag vun der Woch)

SIMCom Wireless Léisunge bidden d'Entwéckler d'Méiglechkeet fir dat bekanntst Entwécklungsëmfeld fir Linux oder Windows ze wielen. Wa mir iwwer eng ausführbar Applikatioun op engem Modul schwätzen, ass et besser Windows ze wielen, et wäert méi séier a méi einfach sinn. Wann eng komplex Applikatiounsarchitektur a spéider Upgrades erwaart ginn, ass et besser Linux ze benotzen. Mir brauchen och Linux fir ausführbar Dateien ze kompiléieren fir spéider an de Modul ze lueden; eng virtuell Maschinn ass genuch fir d'Kompilatioun.

Wat Dir braucht ass net fräi verfügbar fir erofzelueden - eng SDK, déi Dir vun Ärem Distributeur ufroe kënnt.

Installéiere vun Utilities fir mam Modul ze schaffen

Duerno wäerte mir ënner Windows schaffen als dat bekanntst OS fir déi meescht Benotzer.

Mir mussen déi néideg Software an e puer einfache Schrëtt installéieren fir duerno mam Modul ze schaffen:

  1. GNU / Linux
  2. Cygwin
  3. Drivers
  4. ADB

GNU/Linux installéieren

Fir d'Applikatioun ze bauen, kënnt Dir all ARM-Linux kompatibel Compiler benotzen. Mir benotze SourceryCodeBenchLiteARM GNU/Linuxtranslater verfügbar fir erofzelueden op Link.

Fir sécherzestellen datt all Komponenten korrekt installéiert sinn, loossen ech e puer Screenshots vum Installatiounsprozess. Am Prinzip ass et näischt komplizéiert an der Installatioun.

Fir sécherzestellen datt all Komponenten korrekt installéiert sinn, loossen ech e puer Screenshots vum Installatiounsprozess. Am Prinzip ass et näischt komplizéiert an der Installatioun.

  1. Mir akzeptéieren de Lizenzvertrag
    OpenLinux als Deel vun SIM7600E-H Moduler
  2. Gitt den Installatiounsdossier un
    OpenLinux als Deel vun SIM7600E-H Moduler
  3. Mir loossen déi néideg Komponenten onverännert
    OpenLinux als Deel vun SIM7600E-H Moduler
  4. Loosst et wéi ass
    OpenLinux als Deel vun SIM7600E-H Moduler
  5. E puer Mol "Nächst", "Installéieren" an am Fong dat ass et
    OpenLinux als Deel vun SIM7600E-H Moduler

Installatioun Cygwin

Weider, fir d'Entwécklung, braucht Dir eng Rei vu Bibliothéiken an Utilitys aus dem geliwwertem Set Cygwin. Alles ass einfach hei, déi aktuell Versioun vum Cygwin kann gratis op der offizieller Websäit vum Projet erofgeluede ginn; beim Schreiwen war d'Versioun 3.1.5 verfügbar, dat ass wat mir benotzt hunn beim Preparéieren vum Material.

Et gëtt näischt komplizéiert am Cygwin z'installéieren, dat eenzegt wat Dir musst auswielen ass e Spigel, aus deem den Installateur déi néideg Dateien erofluet, wielt een an installéiert se, souwéi eng Rei vun Utilities a Bibliothéiken, léisst all verfügbare Bibliothéiken an Utilities ausgewielt.

Installéiere vun Treiber

Nodeems de Modul un de PC ugeschloss ass, musst Dir Chauffeuren installéieren. Dës kënnen vun Ärem Distributeur gefrot ginn (recommandéiert). Ech recommandéieren net eleng um Internet ze sichen, well ... Et kann vill Zäit huelen fir ze fannen wat den Apparat Konflikt verursaacht huet.

OpenLinux als Deel vun SIM7600E-H Moduler

Ënnert de gewielte Ports gesi mir déi folgend:

Windows
Linux
Beschreiwung

SimTech HS-USB Diagnostik
USB Serien
Diagnostesch Interface

SimTech HS-USB NMEA
USB Serien
GPS NMEA Interface

SimTech HS-USB AT Port
USB Serien
AT port Interface

SimTech HS-USB Modem
USB Serien
Modem port Interface

SimTech HS-USB Audio
USB Serien
USB Audio Interface

SimTech HS-USB WWAN Adapter
USB Net
NDIS WWAN Interface

Android Composite ADB Interface
USB ADB
Android add Debugport

Wéi Dir wahrscheinlech gemierkt hutt, gëtt et keen USB ADB ënnert den Ports am Screenshot, dëst ass well den ADB Port am Modul als Standard zou ass an Dir musst et aktivéieren andeems Dir de Kommando 'AT+CUSBADB=1' un den AT schéckt Port vum Modul an nei starten (dëst kann mam Kommando 'AT + CRESET' gemaach ginn).

Als Resultat kréie mir déi gewënscht Interface am Apparat Manager:

OpenLinux als Deel vun SIM7600E-H Moduler

Mir si fäerdeg mat de Chauffeuren, loosst eis op ADB goen.

ADB Installatioun

Gitt op déi offiziell Android Entwéckler Websäit Link. Mir wäerten de voluminöse Android Studio net eroflueden; Mir brauche just d'Kommandozeil, verfügbar fir erofzelueden iwwer de Link "Download SDK Platform-Tools for Windows".

OpenLinux als Deel vun SIM7600E-H Moduler

Eroflueden an packt dat resultéierend Archiv op d'Root vum Drive C.

Ëmfeld Variablen

Nodeems Dir Cygwin installéiert hutt, musst Dir de Wee Cygwin/bin/ an d'Entwécklungsëmfeldvariablen addéieren (Classic Control Panel → System → Advanced System Settings → Advanced → Environment Variables → System Variables → Path → Edit) wéi am Screenshot ënnendrënner:

OpenLinux als Deel vun SIM7600E-H Moduler

Ähnlech füügt de Wee zum erofgelueden an ausgepackten ADB-Archiv un d'Root vum Drive C.

OpenLinux als Deel vun SIM7600E-H Moduler

Klickt op OK e puer Mol a restart de Computer.

Nom Neistart kënnt Dir einfach iwwerpréiwen ob ADB korrekt funktionnéiert andeems Dir d'Kommandozeil opmaacht (Win + R → cmd) an de Kommando 'adb Versioun' aginn. Mir kréien eppes wéi dat:

OpenLinux als Deel vun SIM7600E-H Moduler

Loosst eis de Modul un de PC verbannen (wann et geschitt ze trennen) a kontrolléiert ob ADB et mam Kommando 'adb devices' gesäit:

OpenLinux als Deel vun SIM7600E-H Moduler

Gemaach, dëst fäerdeg d'Konfiguratioun vun der Verbindung zum Modul a mir kënnen d'Schuel starten fir mam Modul ze schaffen.

OpenLinux als Deel vun SIM7600E-H Moduler

Auspacken a kompiléieren d'SDK

Elo datt mir Zougang zu der Shell hunn a kënne mat der Kommandozeil vum Modul schaffen, loosst eis probéieren eis éischt Applikatioun ze kompiléieren fir an de Modul ze lueden.

Vill Leit hu vläicht Schwieregkeeten mat dësem! Well De Modul leeft um Linux Betribssystem; fir Kollisiounen ze vermeiden wann Dir Code ënner Windows kompiléiert, ass et am beschten am gebiertege Ëmfeld ze kompiléieren - Linux.

Mir wäerten net am Detail ophalen wéi Dir et op enger virtueller Maschinn installéiere kënnt an der Verontreiung vu Linux an dem Wonsch et op Ärer Maschinn z'installéieren. Mir benotze VirtualBox, installéiere Ubuntu Versioun 20.04 (déi aktuell Versioun zum Schreiwen) an ënner et fänken mir mat Compileren, SDKs, etc.

Loosst eis an d'Linux Ëmfeld goen an d'Archiv auspacken, déi vum Distributeur kritt gëtt.

simcom@VirtualBox:~/Desktop/OpenLinux$ sudo tar -xzf MDM9x07_OL_2U_22_V1.12_191227.tar.gz 

Gitt an de sim_open_sdk Verzeichnis a füügt d'Ëmwelt derbäi:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ cd sim_open_sdk
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ source sim_crosscompile/sim-crosscompile-env-init 

Mir bleiwen am selwechten Dossier a féieren déi spéider Befehle wärend derbäi.
Installéiert d'libncurses5-dev Bibliothéik wann se net installéiert ass:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get update && sudo apt-get install libncurses5-dev -y

Python, wann et och net installéiert gouf:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get install python -y

an gcc:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get install gcc

Zesummesetzung:

Elo musse mir e puer Dateien kompiléieren, mir lafen déi folgend Kommandoen sequenziell.

Wann d'Kernelkonfiguratiounsfenster während der Kompiléierung optrieden, wielt just Exit a gitt zréck op d'Konsole; mir brauchen de Kernel elo net ze konfiguréieren.

Mir maachen:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make

Kompiléiere vum Bootloader:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make aboot

Kompiléiere vum Kernel:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel_menuconfig
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel

Kompiléiert de Root Dateisystem:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make rootfs

Fir Linux Benotzer ass et relevant fir de Modul Chauffer ze kompiléieren:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel_module

Loosst eis d'Demo kompiléieren:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make demo

Duerno erschéngen e puer nei Dateien am sim_open_sdk/output Verzeichnis:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ ls output/
appsboot.mbn  boot.img  demo_app  helloworld  system.img

Demo

Loosst eis probéieren d'Demo an eise Modul ze lueden a kucke wat doraus kënnt.

Download

Am sim_open_sdk Verzeichnis kënne mir d'Datei demo_app gesinn. Mir huelen et an iwwerdroen et op d'Wuerzel vum Drive C um PC, mat deem de Modul verbonne ass. Start dann d'Windows Kommandozeil (Win + R -> cmd) a gitt:

C:>adb push C:demo_app /data/

D'Konsol wäert eis soen:

C:demo_app: 1 file pushed, 0 skipped. 151.4 MB/s (838900 bytes in 0.005s)

Dëst bedeit datt d'Datei erfollegräich an de Modul geschéckt gouf an alles wat mir maache mussen ass et auszeféieren. Zéckt net.

Mir maachen:

C:>adb shell

Mir erweideren d'Rechter vun der erofgeluede Datei:

/ # cdhmod 777 /data/demo_app

A mir lafen:

/ # /data/demo_app

An der selwechter Konsole wäert de Modul eis déi folgend soen:

SDK_VER : SIM_SDK_VER_20191205
DEMO_VER: SIM_SDK_VER_20191205

Please select an option to test from the items listed below.

1. WIFI                       2. VOICE CALL
3. DATA CALL                  4. SMS
5. WDS(APN)                   6. NAS
7. AT                         8. OTA
9. TTS                        10. GPIO
11. GPS                       12. Bluetooth
13. TCP/UDP                   14. Timer
15. ADC                       16. I2C
17. UIM(SimCard)              18. DMS(IMEI,MEID)
19. UART                      20. SPI
21. Version                   22. Ethernet
23. FTP                       24. SSL
25. HTTP(S)                   26. FTP(S)
27. MQTT(S)                   28. ALSA
29. DEV                       30. AUDIO
31. JSON                      32. LBS
99. EXIT
Option >   

Loosst eis den IMEI vum Modul kucken, gitt 7 (op Kommandomodus schalten) a gitt dann 5:

Please select an option to test from the items listed below.

1. WIFI                       2. VOICE CALL
3. DATA CALL                  4. SMS
5. WDS(APN)                   6. NAS
7. AT                         8. OTA
9. TTS                        10. GPIO
11. GPS                       12. Bluetooth
13. TCP/UDP                   14. Timer
15. ADC                       16. I2C
17. UIM(SimCard)              18. DMS(IMEI,MEID)
19. UART                      20. SPI
21. Version                   22. Ethernet
23. FTP                       24. SSL
25. HTTP(S)                   26. FTP(S)
27. MQTT(S)                   28. ALSA
29. DEV                       30. AUDIO
31. JSON                      32. LBS
99. EXIT
Option > 7

Please select an option to test from the items listed below.

1. get Module Version         2. get CSQ
3. get CREG                   4. get ICCID
5. get IMEI                   6. get CIMI
99. back
Option > 5
IMEI: 867584030090489

Please select an option to test from the items listed below.

1. get Module Version         2. get CSQ
3. get CREG                   4. get ICCID
5. get IMEI                   6. get CIMI
99. back
Option >

Op dës Manéier wäerte mir den IMEI vum Modul gesinn.

Als Conclusioun

Ech hoffen mir konnten eng allgemeng Iddi kréien wéi mir mam Modul unzefänken. An den folgenden Artikele wäerte mir d'Fähigkeiten méi no kucken, déi d'SIM7600E-H Plattform ubitt, wéi och wéi Dir Är eege Applikatioun am Modul op afstand aktualiséieren kënnt.

Ech invitéieren Iech Froen an de Kommentaren ze stellen, an och uginn wéi en Aspekt vun de Fäegkeeten vum Modul an de folgenden Artikelen reflektéiert ginn.

Source: will.com

Setzt e Commentaire