SIM7600E-H モゞュヌルの䞀郚ずしおの OpenLinux

SIM7600E-H モゞュヌルの䞀郚ずしおの OpenLinux

カスタム アプリケヌションを開発しおモゞュヌルにロヌドするメカニズムは、Linux ず Windows の䞡方のオペレヌティング システムで利甚できたす。この蚘事では、提䟛されおいる SDK の䟋を䜿甚しお、その方法を詳しく説明したす。 SIMCom ワむダレス ゜リュヌション カスタム アプリケヌションをコンパむルしおモゞュヌルにロヌドしたす。

この蚘事を曞く前に、Linux 向けの開発どころか、私の知人の 7600 人が、SIMXNUMXE-H モゞュヌル甚の独自のアプリケヌションを開発するプロセスをできるだけ詳しく説明するずいう問題に取り組んでほしいず頌んできたした。資料のプレれンテヌションのアクセシビリティを評䟡する基準は、「理解できるように」ずいうフレヌズでした。

䜕が起こったのか知りたいず思いたす。

蚘事は定期的に補足および曎新されたす

前奏曲

通垞、セルラヌ通信モゞュヌルは、デヌタ送信、音声通話、SMS 送信などにのみ䜿甚されたす。これはすべお、倖郚制埡マむクロコントロヌラヌから送信される AT コマンドを通じお行われたす。ただし、倖郚からロヌドされたカスタム コヌドを実行できるようにするモゞュヌルのカテゎリがありたす。堎合によっおは、これによりデバむスの党䜓的な予算が倧幅に削枛され、よりシンプルな (そしお同等の予算の) マむクロコントロヌラヌをボヌドにむンストヌルしたり、完党に攟棄したりするこずができたす。 Android たたは Linux OS によっお制埡される LTE モゞュヌルずその匷力なリ゜ヌスの出珟により、䞀般的なプロセッサで利甚できるあらゆるタスクを解決できるようになりたした。この蚘事では、Linux OS によっお制埡される SIM7600E-H に぀いお説明したす。実行可胜アプリケヌションをダりンロヌドしお実行する方法を芋おいきたす。

倚くの点で、この資料は「SIM7600 Open Linux Development quide」ずいう文曞に基づいおいたすが、いく぀かの远加があり、たずロシア語版が圹に立ちたす。この蚘事は、モゞュヌルをマスタヌし始めたばかりの人がデモ アプリケヌションをダりンロヌドする方法を理解し、その埌の䜜業に必芁なスキルを提䟛するのに圹立ちたす。

SIM7600E-H に぀いお簡単に説明したす

SIM7600E-H は、Qualcomm の ARM Cortex-A7 1.3GHz プロセッサ䞊に構築されたモゞュヌルで、Linux オペレヌティング システム (カヌネル 3.18.20) を内蔵しおおり、Cat をサポヌトするペヌロッパ (ロシアを含む) 呚波数垯域 2G/3G/LTE で動䜜できたす。 .4 に準拠し、最倧ダりンロヌド速床 150Mbps、アップロヌド速床最倧 50Mbps を提䟛したす。豊富な呚蟺機噚、工業甚枩床範囲、内蔵 GPS/GLONASS ナビゲヌションの存圚により、M2M 分野における最新のモゞュラヌ ゜リュヌションのあらゆる芁件をカバヌしたす。

システム抂芁

SIM7600E-H モゞュヌルは、Linux オペレヌティング システム (カヌネル 3.18.20) に基づいおいたす。たた、ファむル システムは、ゞャヌナル ファむル システム UBIFS (Unsorted Block Image File System) に基づいお構築されたす。

このファむル システムの重芁な機胜は次のずおりです。

  • パヌティションを操䜜し、そのサむズを䜜成、削陀、たたは倉曎できたす。
  • メディア ボリュヌム党䜓にわたっお録音の調敎を保蚌したす。
  • Bad ブロックで動䜜したす。
  • 停電やその他の障害時のデヌタ損倱の可胜性を最小限に抑えたす。
  • ログを保管するこず。

取られた説明 故に、そのようなファむルシステムに぀いおのより詳现な説明もありたす。

それらの。このタむプのファむル システムは、モゞュヌルの過酷な動䜜条件や起こり埗る電源の問題に最適です。ただし、これは、䞍安定な電源状態がモ​​ゞュヌルの予想される動䜜モヌドであるこずを意味するものではなく、デバむスの実行可胜性がより高いこずを瀺しおいるだけです。

メモリ

メモリ領域の分散は次のように構成されたす。

SIM7600E-H モゞュヌルの䞀郚ずしおの OpenLinux

匷調すべき䞻な領域は次の XNUMX ぀です。

ubi0:rootfs – 読み取り専甚で、Linux カヌネル自䜓が含たれおいたす
ubi0:usrfs – 䞻にナヌザヌプログラムずデヌタストレヌゞに䜿甚されたす
ubi0:cahcefs – FOTA アップデヌト甚に予玄されおいたす。利甚可胜なスペヌスがアップデヌトをダりンロヌドするのに十分でない堎合、システムは未䜿甚のファむルを削陀し、スペヌスを解攟したす。ただし、セキュリティ䞊の理由から、ファむルをそこに配眮しないでください。

XNUMX ぀のセクションはすべお次のように配垃されたす。

ファむルシステム
サむズ
䞭叀
利甚できたす
䜿甚する
䞊に取り付けられたした

ubi0:rootfs
40.7M
36.2M
4.4M
芖聎者の%が
/

ubi0:usrfs
10.5M
360K
10.1M
3%
/デヌタ

ubi0:キャッシュ
50.3M
20K
47.7M
0%
/キャッシュ

利甚可胜な機胜

前述したように、このモゞュヌルは Qualcomm の Cortex A7 チップセット䞊に構築されおいたす。ナヌザヌプログラムを凊理し、プログラムの䞀郚をモゞュヌルにオフロヌドするこずでデバむスのメむンプロセッサをオフロヌドするためのこのような高性胜コアを提䟛しないのは間違いです。

ナヌザヌ プログラムでは、次のペリフェラル動䜜モヌドが利甚可胜になりたす。

ピン番号
名前
Sys GPIO 番号
デフォルトのアクション
機胜1
機胜2
プル
りェむクアップ割り蟌み

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カヌド
-
-
B-PD
-

22
SD_DATA0
-
SDカヌド
-
-
B-PD
-

23
SD_DATA1
-
SDカヌド
-
-
B-PD
-

24
SD_DATA2
-
SDカヌド
-
-
B-PD
-

25
SD_DATA3
-
SDカヌド
-
-
B-PD
-

26
SD_CLK
-
SDカヌド
-
-
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
GPIO3
GPIO_1020
MIFI_POWER_EN
GPIO
MIFI_POWER_EN
B-PU
-

34
GPIO6
GPIO_1023
MIFI_SLEEP_CLK
GPIO
MIFI_SLEEP_CLK
B-PD
-

46
ADC2
-
ADC
-
-
-
-

47
ADC1
-
ADC
-
-
B-PU
-

48
SD_DET
GPIO_26
GPIO
GPIO
SD_DET
B-PD
X

49
ステヌタス
GPIO_52
Status:
GPIO
Status:
B-PD
X

50
GPIO43
GPIO_36
MIFI_COEX
GPIO
MIFI_COEX
B-PD
-

52
GPIO41
GPIO_79
BT
GPIO
BT
B-PD
X

55
SCL
-
I2C_SCL
-
-
B-PD
-

56
SDA
-
I2C_SDA
-
-
B-PU
-

66
RTS
-
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
送信
-
UART2_Tx
-
-
B-PD
-

72
DTR
-
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
GPIO77
GPIO77
BT
GPIO
BT
B-PD
-

同意したす。このリストは印象的です。たた、呚蟺機噚の䞀郚はモゞュヌルをルヌタヌずしお動䜜させるために䜿甚されおいるこずに泚意しおください。それらの。このようなモゞュヌルに基づいお、Wi-Fi 経由でむンタヌネットを配信する小型ルヌタヌを䜜成できたす。ちなみに、SIM7600E-H-MIFIず呌ばれる既補の゜リュヌションがあり、半田付けされたSIM7600E-Hモゞュヌルずいく぀かのアンテナピンを備えたminiPCIEカヌドで、そのうちのXNUMX぀はWi-Fiアンテナです。ただし、これは別の蚘事で取り䞊げたす。

氎曜日曜日ではありたせん

SIMCom ワむダレス ゜リュヌション 開発者が Linux たたは Windows の最も䜿い慣れた開発環境を遞択する機䌚を提䟛したす。モゞュヌル䞊の XNUMX ぀の実行可胜アプリケヌションに぀いお話しおいる堎合は、Windows を遞択する方が高速か぀簡単です。耇雑なアプリケヌション アヌキテクチャずその埌のアップグレヌドが予想される堎合は、Linux を䜿甚するこずをお勧めしたす。たた、埌でモゞュヌルにロヌドするために実行可胜ファむルをコンパむルするには Linux も必芁ですが、コンパむルには仮想マシンで十分です。

必芁なものは無料でダりンロヌドできるものではありたせん。SDK はディストリビュヌタからリク゚ストできたす。

モゞュヌルを操䜜するためのナヌティリティのむンストヌル

今埌は、倚くのナヌザヌにずっお最も銎染みのある OS である Windows で䜜業しおいきたす。

その埌、モゞュヌルの操䜜をマスタヌするには、いく぀かの簡単な手順で必芁な゜フトりェアをむンストヌルする必芁がありたす。

  1. GNU / Linuxの
  2. Cygwin
  3. 運転者
  4. ADB

GNU/Linux のむンストヌル

アプリケヌションを構築するには、ARM-Linux 互換のコンパむラを䜿甚できたす。ここでは、次からダりンロヌドできる SourceryCodeBenchLiteARM GNU/Linuxtranslator を䜿甚したす。 リンク.

すべおのコンポヌネントが正しくむンストヌルされおいるこずを確認するために、むンストヌル プロセスのスクリヌンショットをいく぀か残しおおきたす。原則ずしお、むンストヌルに耇雑なこずは䜕もありたせん。

すべおのコンポヌネントが正しくむンストヌルされおいるこずを確認するために、むンストヌル プロセスのスクリヌンショットをいく぀か残しおおきたす。原則ずしお、むンストヌルに耇雑なこずは䜕もありたせん。

  1. ラむセンス契玄に同意したす
    SIM7600E-H モゞュヌルの䞀郚ずしおの OpenLinux
  2. むンストヌル先フォルダを指定する
    SIM7600E-H モゞュヌルの䞀郚ずしおの OpenLinux
  3. 必芁なコンポヌネントは倉曎せずに残したす
    SIM7600E-H モゞュヌルの䞀郚ずしおの OpenLinux
  4. そのたたにしおおきたす
    SIM7600E-H モゞュヌルの䞀郚ずしおの OpenLinux
  5. 「次ぞ」「むンストヌル」を数回繰り返すだけで、基本的にはそれだけです
    SIM7600E-H モゞュヌルの䞀郚ずしおの OpenLinux

Cygwinのむンストヌル

さらに、開発には、提䟛されおいるセットからのラむブラリずナヌティリティのセットが必芁になりたす。 Cygwin。ここではすべおが簡単です。Cygwin の珟圚のバヌゞョンは、プロゞェクトの公匏 Web サむトから無料でダりンロヌドできたす。この蚘事の執筆時点では、バヌゞョン 3.1.5 が利甚可胜であり、資料を準備するずきに䜿甚したした。

Cygwin のむンストヌルには耇雑なこずは䜕もありたせん。遞択する必芁があるのは、むンストヌラヌが必芁なファむルをダりンロヌドするミラヌず、ナヌティリティずラむブラリのセットだけでなく、利甚可胜なすべおのラむブラリを残し、そこから必芁なファむルをダりンロヌドするこずだけです。ナヌティリティが遞択されたした。

ドラむバヌのむンストヌル

モゞュヌルを PC に接続したら、ドラむバヌをむンストヌルする必芁がありたす。これらは販売代理店にリク゚ストできたす (掚奚)。自分でむンタヌネットを怜玢するこずはお勧めしたせん。デバむスの競合の原因を芋぀けるには、非垞に時間がかかる堎合がありたす。

SIM7600E-H モゞュヌルの䞀郚ずしおの OpenLinux

遞択したポヌトには次のものが衚瀺されたす。

Windows
Linux
説明

SimTech HS-USB 蚺断
USBシリアル
蚺断むンタヌフェヌス

SimTech HS-USB NMEA
USBシリアル
GPS NMEA むンタヌフェヌス

SimTech HS-USB ATポヌト
USBシリアル
ATポヌトむンタヌフェヌス

SimTech HS-USB モデム
USBシリアル
モデムポヌト むンタヌフェヌス

SimTech HS-USB オヌディオ
USBシリアル
USBオヌディオむンタヌフェヌス

SimTech HS-USB WWAN アダプタヌ
USBネット
NDIS WWAN むンタヌフェむス

AndroidコンポゞットADBむンタフェヌス
USB ADB
Android にデバッグポヌトを远加

お気づきかず思いたすが、スクリヌンショットのポヌトには USB ADB がありたせん。これは、モゞュヌルの ADB ポヌトがデフォルトで閉じられおおり、コマンド「AT+CUSBADB=1」を AT に送信しお有効にする必芁があるためです。モゞュヌルのポヌトを倉曎しお再起動したす (これはコマンド「AT+CRESET」で実行できたす)。

その結果、デバむス マネヌゞャヌで目的のむンタヌフェむスが埗られたす。

SIM7600E-H モゞュヌルの䞀郚ずしおの OpenLinux

ドラむバヌの説明は終わりたした。ADB に進みたしょう。

ADBのむンストヌル

公匏 Android 開発者 Web サむトにアクセスしたす リンク。かさばる Android Studio はダりンロヌドしたせん。必芁なのは、「Windows 甹 SDK プラットフォヌム ツヌルのダりンロヌド」リンクからダりンロヌドできるコマンド ラむンだけです。

SIM7600E-H モゞュヌルの䞀郚ずしおの OpenLinux

結果のアヌカむブをドラむブ C のルヌトにダりンロヌドしお解凍したす。

環境倉数

Cygwin をむンストヌルした埌、以䞋のスクリヌンショットに瀺すように、パス Cygwin/bin/ を開発環境倉数 (クラシック コントロヌル パネル → システム → システムの詳现蚭定 → 詳现 → 環境倉数 → システム倉数 → パス → 線集) に远加する必芁がありたす。

SIM7600E-H モゞュヌルの䞀郚ずしおの OpenLinux

同様に、ダりンロヌドしお解凍した ADB アヌカむブぞのパスをドラむブ C のルヌトに远加したす。

SIM7600E-H モゞュヌルの䞀郚ずしおの OpenLinux

「OK」を数回クリックし、コンピュヌタを再起動したす。

再起動埌、コマンド ラむン (Win+R → cmd) を開き、コマンド「adb version」を入力するこずで、ADB が正しく動䜜しおいるかどうかを簡単に確認できたす。次のような結果が埗られたす。

SIM7600E-H モゞュヌルの䞀郚ずしおの OpenLinux

モゞュヌルを PC に接続し (切断されおいる堎合)、「adb devices」コマンドを䜿甚しお ADB がそれを認識するかどうかを確認しおみたしょう。

SIM7600E-H モゞュヌルの䞀郚ずしおの OpenLinux

これでモゞュヌルぞの接続の構成が完了し、シェルを起動しおモゞュヌルを操䜜できるようになりたす。

SIM7600E-H モゞュヌルの䞀郚ずしおの OpenLinux

SDKの解凍ずコンパむル

シェルにアクセスしおモゞュヌルのコマンド ラむンの操䜜を開始できるようになったので、最初のアプリケヌションをコンパむルしおモゞュヌルにロヌドしおみたしょう。

ずお困りの方も倚いかもしれたせんなぜならこのモゞュヌルは Linux オペレヌティング システム䞊で実行されたす。Windows でコヌドをコンパむルする際の衝突を回避するには、ネむティブ環境である Linux でコンパむルするのが最善です。

Linux がなく、マシンに Linux をむンストヌルしたい堎合に、仮想マシンに Linux をむンストヌルする方法に぀いおは詳しく説明したせん。 VirtualBox を䜿甚し、Ubuntu バヌゞョン 20.04 (執筆時点の最新バヌゞョン) をむンストヌルし、その䞋でコンパむラヌ、SDK などの䜜業を開始したす。

Linux 環境に移動し、ディストリビュヌタから受け取ったアヌカむブを解凍しおみたしょう。

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

sim_open_sdk ディレクトリに移動し、環境を远加したす。

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 

同じフォルダヌ内に残り、そのフォルダヌ内で埌続のコマンドを実行したす。
libncurses5-dev ラむブラリがむンストヌルされおいない堎合は、むンストヌルしたす。

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

Python (どちらもむンストヌルされおいない堎合):

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

そしおgcc:

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

コンパむル:

次に、いく぀かのファむルをコンパむルする必芁がありたす。次のコマンドを順番に実行したす。

コンパむル䞭にカヌネル構成りィンドりが衚瀺された堎合は、「Exit」を遞択しおコン゜ヌルに戻るだけで、ここでカヌネルを構成する必芁はありたせん。

私たちは次のこずを行いたす:

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

ブヌトロヌダヌのコンパむル:

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

カヌネルをコンパむルしたす。

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

ルヌト ファむル システムをコンパむルしたす。

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

Linux ナヌザヌの堎合は、モゞュヌル ドラむバヌのコンパむルが重芁になりたす。

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

デモをコンパむルしたしょう。

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

その埌、いく぀かの新しいファむルが sim_open_sdk/output ディレクトリに衚瀺されたす。

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

ДеЌП

デモをモゞュヌルにロヌドしお、そこから䜕が埗られるかを芋おみたしょう。

ダりンロヌド

sim_open_sdk ディレクトリには、demo_app ファむルがありたす。それを取埗し、モゞュヌルが接続されおいる PC のドラむブ C のルヌトに転送したす。次に、Windows コマンド ラむン (Win+R -> cmd) を起動し、次のように入力したす。

C:>adb push C:demo_app /data/

コン゜ヌルには次のこずが衚瀺されたす。

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

これは、ファむルがモゞュヌルに正垞に送信されたこずを意味し、埌はそれを実行するだけです。ためらわないようにしたしょう。

私たちは次のこずを行いたす:

C:>adb shell

ダりンロヌドしたファむルの暩利を拡匵したす。

/ # cdhmod 777 /data/demo_app

そしお、次を実行したす。

/ # /data/demo_app

同じコン゜ヌルで、モゞュヌルは次のこずを通知したす。

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 >   

モゞュヌルの IMEI を確認しお、7 を入力し (コマンド モヌドに切り替え)、次に 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 >

このようにしお、モゞュヌルの IMEI が衚瀺されたす。

結論ずしお

モゞュヌルの䜿甚を開始する方法に぀いおの䞀般的なアむデアを埗るこずができれば幞いです。次の蚘事では、SIM7600E-H プラットフォヌムが提䟛する機胜ず、モゞュヌル内の独自のアプリケヌションをリモヌトで曎新する方法に぀いお詳しく説明したす。

コメントで質問しおください。たた、モゞュヌルの機胜のどの偎面を今埌の蚘事に反映する必芁があるかに぀いおも指摘しおください。

出所 habr.com

コメントを远加したす