USB ドングル、GSM IC は、設定と動作の制御に「AT」コマンドを使用します。このようなコマンドには、電源の制御、SMS の送信、LTE、GPRS、または 3G 経由でのインターネット接続、デバイスのリセット、通話の受信などの機能があります。また、このようなデバイスを制御する唯一の方法は「AT」コマンドを使用することです。
「AT」コマンド標準には約10~15の汎用コマンドがあり、一部のデバイスにはインターネットへの接続を可能にするコマンドセットが追加されています。以下は、そのようなアクションのいくつかです。
- SSL または非 SSL サーバーへの接続を確立します。
- 接続がアクティブになると、サーバーのポートにデータを送信します。
- 接続を閉じます。
1 つの AT コマンドが上記のタスクの 1 つに対応していると思います (間違っていたら訂正してください)。
私は、AT コマンドを介して PC のインターネット ニーズを解釈して対応できる、GNU/Linux システム用の C 言語のドライバーを作成することに興味があります。このソフトウェアは、PC が自分自身を、おそらくイーサネット接続のような「出口」として「認識」できるようにする必要があります。これは、ほとんどのドングル ソフトウェアが行うことです。通常、ドングルには高速で動作する 2 つの COM ポートがあります。1 つの COM ポートは USB ドングルのデフォルト ソフトウェアによって制御され、もう 1 つはデータの送受信に使用されます。
このドライバ ソフトウェアを使用して、「偽の」イーサネット接続を開発する方法、または PC に出口を「認識」させる方法を教えていただけるとありがたいです。ドライバ ソフトウェアは、データを送受信するために GSM IC または USB ドングルを「駆動」する必要があります。このプロジェクトは教育目的であるため、バイナリ ソフトウェアをインストールしてドングルを動作させることには興味がありません。
また、これに似たオープンソース プロジェクトに共感してくれる人がいれば、とてもありがたいです。
答え1
ハードウェア側: GSMハードウェアとの通信
AT コマンドを使用して Web サーバーに接続するために「SIM900 GPRS モジュール」を使用している人が何人かいるようです。これは、探しているものに十分近いでしょうか?
- 「FTP HTTP AT コマンド ユーザー ガイド」
- 「SIM900GSM Arduino ライブラリ」
- 「Arduino フォーラム: AT コマンドを使用した POST HTTP」
- 「GPRS を使用して Web サーバーにデータを更新するための POST HTTP コマンド」
- 「Sim900 AT コマンド + HTTP Get リクエスト」
- 「HTTP 機能の AT コマンド」
編集:
アプリケーション側: 通常の、変更されていないLinuxアプリケーションと通信する
Firefox アプリケーション自体に変更を加えずに、Linux コンピュータ上の Firefox などのソフトウェアを、PC がインターネットへの標準イーサネット ケーブルに接続されているかのように正常に動作させたいとお考えのようですね。
したがって、ソフトウェアは、アプリケーション側では他の Ethernet または WiFi デバイス ドライバーと「似ている」デバイス ドライバーである必要がありますが、ハードウェア側では、USB またはその他のシリアル ポートを介してデータを GSM/GPRS ハードウェアにルーティングする必要があります。
標準のイーサネット デバイス ドライバーまたは Wi-Fi デバイス ドライバーをフォークし、特定のイーサネット カード ハードウェアと通信するセクションを、特定の GSM/GPRS ハードウェアと通信するセクションに置き換えることはできますか?
Linux デバイス ドライバーの作成については、書籍が何冊も書かれるほどですし、実際に書かれてきました。また、多くの Linux デバイス ドライバーはオープン ソース ソフトウェアです。
- アレッサンドロ・ルビーニとジョナサン・コーベット。Linux デバイス ドライバー、第 2 版。第 14 章: ネットワーク ドライバーそしてLinux デバイス ドライバー、第 3 版。第 17 章: ネットワーク ドライバー。
- Linux カーネル – ネットワーク デバイス ドライバー プログラミング
- バスカラン。ネットワーク デバイス ドライバーの作成 - パート 1
- モハン・ラル・ジャンギル。Linux 用のネットワーク デバイス ドライバーの作成。
- デバイス ドライバーの概要 - パート 2 - イーサネット ドライバー
- P. ラガヴァン、アモル・ラド、スリラム・ニーラカンダン。組み込みLinuxシステムの設計と開発セクション 5.2: イーサネット ドライバー。
- StackOverflow: デバイス ドライバーの作成はどのように始めればよいでしょうか?
- eLinux: デバイス ドライバー
特定のアプリケーションでは、通常のユーザー空間プログラムを書いてセットアップする方が簡単かもしれません。タップFirefox やその他のアプリケーションからユーザー空間プログラムにパケットを配信するための仮想ネットワーク カーネル デバイス。
このようなデバイスドライバの作成に関する質問については、これらのデバイスドライバはすべてのLinuxシステム(Ubuntuだけでなく)で同じように機能するため、次のような関連性の高いサイトでより良い回答が得られる可能性があります。https://unix.stackexchange.com/、https://serverfault.com/、https://softwareengineering.stackexchange.com/、https://networkengineering.stackexchange.com/など