私のLinuxシステムにはUSBポートがありますが、RS-232ポートはありません。 USBケーブルをLinuxシステムに接続し、USBケーブルのもう一方の端をWindows 11を実行し、PuTTYを搭載したマイPCに接続できるようにしたいです。
一方の端にFTDI USBケーブルがあり、もう一方の端に単純なUSBコネクタしかない場合は、必要なケーブルを作成できます。 RS0-232コネクタの代わりにUSBコネクタを使用し、FTDI TX <> RX USBコネクタ、FTDI RX <> TX USBコネクタ、もちろん共通GNDも使用しました。 FTDIチップが処理できる内容に応じて、3.3Vまたは5Vの信号伝送を保証する必要があります。ヌルモデムなどの物理的なケーブル接続に関係なく、これは問題です。本当の質問はソフトウェア構成です。
特定のUSBポートに対してgettyセッションを確立するようにLinuxシステムをどのように設定しますか?私がこれを見つけることができると仮定すると、議論のために/ dev / ttyUSB0ですか?
Linuxシステムはsystemdに基づいているので理解しています。 UDEVルール/スクリプトを使用してターミナルセッションを確立することはできません。これは、寿命が長い子プロセスまたは孫プロセスであるためです。
私はこのターミナルセッションがシステムコンソールを実際に模倣していないことを知っていて大丈夫です。システムの起動後にセッションを希望します。
この問題を解決するには長い時間がかかることがわかります。ご了承いただきありがとうございます。私が本当に助けが必要なのは、Linuxシステムのソフトウェア構成です。
答え1
私が理解したのは、USBポートからシリアルコンソールポートを作成することです。
まず、これらのケーブルを作成するには2つのトランスデューサが必要です。各コンピュータのUSBポートにはUSB-UARTコンバータが装備され、コンバータは1つのRXから別のTXに連続して接続する必要があります。可能な接地ループを取り除くには、接地を互いに接続しますが、ガルバニック絶縁(光カプラ対、各方向に1つのTX→RX)を使用することをお勧めします。最後に、USB - USBヌルモデムケーブル、両端がコンピュータに接続されている場合はシリアルポートのように見え、両端が接続されると、これらのシリアルポートは標準のヌルモデムケーブルで接続されているように見えます。
次に、このUSBシリアルポートでsystemd gettyサービスを実行する必要があります。 Linuxコンピュータにケーブルを接続し続けることができる場合は、単にサービスを有効にすることができますserial-getty@ttyUSB0
。
systemctl enable [email protected]
起動後にシステムの接続と切断を可能にするには、USBシリアルデバイスが接続されているときにサービスが開始およびプルされると、サービスがシャットダウンするようにsystemdとudevを一緒に実行するように設定する必要があります。アウト。
これを行うには、デバイスを有効にする必要があります。頼るサービスについて。環境変数をudev
使用してSYSTEMD_WANTS
依存関係を動的に追加するルールを追加します。
ACTION=="add", SUBSYSTEM=="tty", KERNEL=="ttyUSB*", ENV{SYSTEMD_WANTS}+="serial-getty@%k.service"
このルールは/etc/udev/rules.d/99-ttyUSB.rules
「%k
カーネルデバイス名の取得」を意味しますttyUSB0
。
udev ツールを使用して、どの udev ルールフィルタが最も便利であるかを確認します。このフィルタは非常に広く、USBシリアルのように見えるすべてのデバイスの代わりにgettyを実行できます。実際には2つのttyUSBとして現れるモデムですが!たとえば、次のようになります。ここ詳しくはこちらをご覧ください。ガイドライン。
これで、私のDebianシステムでは次に記録されます/var/log/daemon.log
。
(plugged)
Dec 6 16:31:39 uc-s4m75657 systemd[1]: Started Serial Getty on ttyUSB0.
Dec 6 16:31:41 uc-s4m75657 ModemManager[632]: <info> [base-manager] couldn't check support for device '/sys/devices/pci0000:00/0000:00:14.0/usb2/2-7': not supported by any plugin
(unplugged)
Dec 6 16:32:27 uc-s4m75657 systemd[1]: [email protected]: Succeeded.
Dec 6 16:32:27 uc-s4m75657 systemd[1]: Stopped Serial Getty on ttyUSB0.
もちろん現れて消えるのには/bin/login
過程がある。ttyUSB0
また、見ることができますこの回答。
同期に許可される可能性のあるシリアルレートのセットを制限する必要がある場合は、オーバーレイファイルを使用してこれを実行できます。実行して次を追加します。systemctl edit [email protected]
[Service]
ExecStart=-/sbin/agetty 115200 %I $TERM
または、使用したい速度に関係なく、USBシリアルアダプタがそれをサポートしていることを確認してください。