Debianは私のttyS0を認識しません/コンソールリダイレクトは機能しません

Debianは私のttyS0を認識しません/コンソールリダイレクトは機能しません

私はfitlet2を持っています(https://fit-iot.com/web/products/fitlet2/)にはシリアルポートがあります。 BIOSで「シリアルポートコンソールリダイレクト」を有効にした後、マイコンピュータの画面(screen /dev/ttyUSB0 115200)を使用してfitlet2のシリアルポートに接続し、BIOSにアクセスできます。

また、GRUBブートローダへのシリアルアクセス権もあります。さまざまなGRUBブートローダへのシリアルアクセス(debian / ubuntuインストーラ、debianインストール)が、システムがロードされるたびに使用しているシリアルポートにアクセスできなくなります。

システムGRUBでコンソールリダイレクトを有効にするために、この記事に従ってブートパラメータを編集してみました。https://www.cyberciti.biz/faq/howto-setup-serial-console-on-debian-linux/。すぐに私は私のttyS0が正しく動作しないことに気づきました。物理シリアルインターフェイスのデバッグを開始したときにそれを機能させる方法が見つかりませんでした。

Seterialは次のことを伝えます。

/dev/ttyS0, UART: 16550A,  Port: 0x0000, IRQ: 4
/dev/ttyS1, UART: 16550A,  Port: 0x0000, IRQ: 5
/dev/ttyS2, UART: 16550A,  Port: 0x0000, IRQ: 7
/dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3

dmesg | grep tty:

[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-4.9.0-8-amd64 root=/dev/mapper/pen--01--vg-root ro console=ttyS0,115200n8 console=tty0,115200n8
[    0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-4.9.0-8-amd64 root=/dev/mapper/pen--01--vg-root ro console=ttyS0,115200n8 console=tty0,115200n8
[    0.000000] console [tty0] enabled
[    0.000000] console [ttyS0] enabled
[   49.308213] console [ttyS0] disabled
[   49.312635] dw-apb-uart.0: ttyS0 at MMIO 0x81424000 (irq = 4, base_baud = 115200) is a 16550A
[   49.407713] usb 1-8.2: Qualcomm USB modem converter now attached to ttyUSB0
[   49.410489] usb 1-8.2: Qualcomm USB modem converter now attached to ttyUSB1
[   49.411349] usb 1-8.2: Qualcomm USB modem converter now attached to ttyUSB2
[   53.577143] console [ttyS0] enabled
[   54.744793] dw-apb-uart.1: ttyS1 at MMIO 0x81422000 (irq = 5, base_baud = 115200) is a 16550A
[   54.755771] dw-apb-uart.2: ttyS2 at MMIO 0x81420000 (irq = 7, base_baud = 115200) is a 16550A
[  115.902885] ttyS2 - failed to request DMA

ttyS0が無効になって再び有効になるのはなぜですか?どのように有効にするか、正しく使用できますか?

シリアルポートからログインシェルを取得するには?私は何を見逃していますか?

ベストアンサー1

すぐに私は私のttyS0が正しく動作しないことに気づきました。物理シリアルインターフェイスのデバッグを開始したときにそれを機能させる方法が見つかりませんでした。

私の場合、Atom E3950 CPUを使用するfitlet2でターミナルS2デバイス背面のシリアルポートに対応するデバイスノードです。console=ttyS2,115200一般的なカーネルコマンドラインオプションを使用してコンソールとして使用できました。現在、Debian安定カーネル(4.19.152-1)と不安定カーネル(5.9.11-1)を使用してテストしています。

ttyS2 - failed to request DMA安定版を使用してもこのメッセージが表示されますが、それでも機能します。

マイコンピュータには次のものがあります。

# cat /proc/tty/driver/serial                                         
serinfo:1.0 driver revision:                                                    
0: uart:16550A mmio:0x7FFFF0E000 irq:4 tx:0 rx:0                                
1: uart:16550A mmio:0x7FFFF0C000 irq:5 tx:0 rx:0 CTS                            
2: uart:16550A mmio:0x480000000 irq:6 tx:1067 rx:38 RTS|CTS|DTR                 
3: uart:16550A mmio:0x7FFFF0A000 irq:7 tx:0 rx:0 CTS

いくら試しても、grubにデフォルトでシリアルポートを使用させることはできません。前述のように、ファームウェアでシリアルコンソールリダイレクトを有効にすると、シリアルポートを介してgrubインターフェイスにアクセスできますが、これはシリアルポートを駆動するファームウェアエージェントを介して行われると思います。このモードでは、グラブを設定すればterminal consoleシリアルポートに出力するのに十分です。とにかくうまくいきます。

おすすめ記事