プログラムしたい小さなIoTデバイスがあります。 Macに接続すると、ifconfigの下に画面が表示され、アドレス192.168.225.1でSSHを接続できます。残念ながら、ファームウェアを再フラッシュする必要がありますが、ファームウェアのアップデートはLinuxでのみ機能します。
Linuxで他のIoTデバイスを有効にするプロセスは次のとおりです。
- 「デバイス」->「USB」->「USB設定」でUSBデバイスを有効にします。
- デバイスの接続
- デバイス - > USBとlsusbの下に表示されるデバイスを見る
- ifconfigにインターフェイスが表示され、SSH経由でデバイスに接続できます。
このプロセスは同様のIoTデバイスに適用され、そのデバイスにSSHを介して接続できます。このデバイスでは、マザーボードにSSH接続可能なインターフェイスが表示されないことを除いて、すべての手順が機能しました。私はシリアル通信に慣れていないので、私の質問は次のとおりです。
- この問題を研究するとどのような利点がありますか?
- このデータ接続を確立するために、オペレーティングシステムは実際に何をすべきですか?
- この問題を解決するには、どのような回避策を試すことができますか?
E:より多くの情報を追加してください!
私はシエラのマンゴーレッドWP76を使用しています。 SSH経由でWP75およびWP85モデルにアクセスできますが、Macを除いてWP76にはアクセスできません。 @Mark、VirtualBoxを実行するUbuntu 16.04を使用しています。
答え1
USBデバイス接続時の一般的なプロセス:デバイス取得列挙されたこれは、ホストがデバイスに関する情報、特にベンダー、デバイスID、およびデバイスクラスを知っていることを意味します。この情報に基づいて、カーネルは一致するドライバを検索してロードし、それを使用してデバイスを初期化します。ネットワーク型USBデバイスの場合、そのドライバはネットワークインターフェイスを生成します。その後、オペレーティングシステムは、カーネル外の管理者ポリシーに従ってネットワークインタフェースを初期化します。
このプロセス中に、カーネルはdmesg
端末を介してアクセスできる出力を生成します。ベンダーとデバイスIDはここで見ることができるだけでなく、すべてのUSBデバイスのリストを使用するときにも表示できますlsusb
。
したがって、Linux上のあいまいなハードウェアまたはカーネル関連の問題の最初のステップは、dmesg
問題のデバイスの出力を他のデバイスの出力と見て比較することです。出力内容がわからない場合は、問題のデバイスを接続した後に表示される追加の行で質問を編集してください。
これにより問題が解決した可能性があります。
すべてのIoTデバイスが類似しているわけではなく、すべてのIoTデバイスがUSBネットワークデバイスとして表示されるわけではありません。もう一つの一般的なオプションは、シリアルデバイスとしてマークすることです。 Linuxでは、tty
通常、名前に(テレタイプライター)が含まれます。つまり、入ることはできませんが、ssh
またはなどのシリアル通信プログラムを使用する必要があることをminicom
意味しますpicocom
。
USB関連の問題を解決するもう1つの重要なステップは、GoogleがサプライヤとデバイスID(それぞれ16進4桁)を形式0123:4567
で検索することですlsusb
。特定のデバイスで他の人も同様の問題に遭遇したことがわかります。
通常、ファームウェアアップデートの問題はその逆です。 USBデバイスはいくつかの独自のプロトコルを使用してファームウェアを更新し、Windows用のドライバ/ツールのみを使用できます。