私は次の内容を読んだ。シリアルコンソール。私はAndroid携帯電話を持っていて、私のコンピュータからシリアル出力を読みたいとしましょう。問題なく携帯電話用カーネルをコンパイルできます。
記事で/dev/ttyUSB0のようなものを見ました。自分のコンピュータでコンソールを表示するには、デバイスのドライバを直接作成する必要がありますか?
答え1
私はAndroid携帯電話を持っていて、私のコンピュータからシリアル出力を読みたいとしましょう。
これを行うには、携帯電話にシリアルハードウェアをサポートするカーネルドライバが必要です(探す可能性がほとんどない場合、または携帯電話を開いてマザーボードにワイヤをはんだ付けする必要があります)。または
記事で/dev/ttyUSB0のようなものを見ました。
カーネルはUSBポートをホストモードに設定し、USBシリアルデバイスをクライアントとして接続する必要があります。 (その後、そのデバイスのシリアルポートを別のシリアルポートに接続する必要があります)。
コンソールはコンピュータに表示されますか?
netconsoleを使用するなど、より簡単な方法があります(この場合はネットワーク用のUSBを設定する必要があります)。
答え2
USB経由でAndroidデバイスのコンソールにアクセスするための3つのオプションがあります。 USB-OTG、USB-Cデュアルロールポート、USB 3.xホスト間通信。
USB-OTG は、USB-C と USB 3.x の使用により、ほとんど冗長で廃止された仕様です。しかし、一部のAndroidシステムではまだ人気があるようです。技術的には、USB-OTGはUSB micro-ABポートを使用する必要がありますが、多くのAndroidデバイスメーカーがこの部分の規格に違反し、micro-BポートでUSB-OTGをサポートしているようです。このアプローチは、Android携帯電話/タブレット/すべてのデバイスに電力を供給する「アクセサリ充電アダプタ」を使用でき、標準USB周辺機器に接続できる標準USB-Aポートを提供するため、広く使用されています。 USBシリアルアダプタなどの標準のUSB周辺機器は、コンソールデバッグポートを提供します。デバイスのマニュアルには、AndroidデバイスがUSB-OTGをサポートしているかどうかを指定する必要があります。
USB-Cデュアルロールポートは、ポートがホストモードまたはペリフェラルモードで動作できることを意味します。 USB-Cが搭載されたすべてのAndroid携帯にはデュアルロールポートがあると思います。コンピュータへの物理的な接続は簡単です。すべてのUSB-C-USB-CケーブルまたはUSB-A-USB-Cケーブルが機能します。 Androidデバイスがコンピュータにシリアルデバイスとして表示されるには、正しいドライバと設定が必要です。自分で試したことはありませんが、インターネットで検索してみると、次のような内容が目立ちました。https://android.googlesource.com/kernel/msm/+/android-7.1.0_r0.2/drivers/usb/gadget/function/u_serial.c 読者がそれをどのように機能させるかについての詳細を見つけることができるように、練習用に残しておきます。
USB 3.xはホスト間通信を可能にします。この機能はしばらくLinuxでサポートされていました。私は自分でやったことはありませんが、可能であることを知っています。リンクを再提供し、どのように機能するかについていくつかのヒントを提供し、詳細については読者に任せます。https://docs.kernel.org/driver-api/usb/usb3-debug-port.html
注:USBホスト - ホストオプションを使用している場合は、使用されるケーブルの種類に注意してください。 USB 3.x仕様に準拠していないUSB-A-USB-Aケーブルがたくさんあります。互換ケーブルはVbusを接続せず、USB 2.0 D + / D-ラインも未接続のままにします。同様に混乱はUSB-A-USB-Aケーブルです。このケーブルには、ケーブルを連続して接続された2つのシリアルまたはネットワークアダプタのように見せる電子機器が含まれています。技術的には、これはUSBケーブルではなくUSBデバイスです。 Androidシリアルコンソールを別のコンピュータに接続するのに役立ちますが、ホスト間USB 3.xデバッグケーブルとは異なる設定が必要です。正しいタイプのケーブルを使用しているかどうかはどうすればわかりますか?これは複雑で説明に時間がかかり、この質問の範囲外であるため、個別に議論する価値があります。
これにはUSBシリアルコンソールの使用が含まれますが、他のオプションもあります。 DisplayPortを使用して、Bluetooth仮想シリアルポート(内蔵Bluetoothを使用するかUSB経由で追加)、ネットワークコンソール(内蔵Wi-Fi、USB-Wi-Fiアダプタ、またはUSB-イーサネットアダプタ経由)から選択します。 USB-Cドッキングステーション、コンソールなどのためのUSB-Aポートです。
おそらく答えよりも多くの質問が残っているかもしれないことに気づきました。ここでは、各方法の仕組みを説明するためのスペースが限られており、最初の質問はこれが可能かどうかです。はい、可能です。可能な方法のいくつかのオプションを提供しました。どのように機能させるかは別の質問です。