シリアルコンソールを再起動すると、シリアルデバイス名が安定します。

シリアルコンソールを再起動すると、シリアルデバイス名が安定します。

私は2つの内蔵シリアルポートと8つの追加のシリアルポートを追加するPCIボードを備えた組み込みLinuxシステムを持っています。

カーネルは、ポート番号がインターリーブされるようにデバイスを列挙します(例:からdmesg)。

[    5.964467] 0000:03:00.0: ttyS4 at MMIO 0xd0600000 (irq = 105, base_baud = 7812500) is a XR17V35X
[    5.964934] 0000:03:00.0: ttyS5 at MMIO 0xd0600400 (irq = 105, base_baud = 7812500) is a XR17V35X
[    5.965213] 0000:03:00.0: ttyS6 at MMIO 0xd0600800 (irq = 105, base_baud = 7812500) is a XR17V35X
[    5.965519] 0000:03:00.0: ttyS7 at MMIO 0xd0600c00 (irq = 105, base_baud = 7812500) is a XR17V35X
[    5.965879] 0000:03:00.0: ttyS8 at MMIO 0xd0601000 (irq = 105, base_baud = 7812500) is a XR17V35X
[    5.966755] 0000:00:1e.3: ttyS9 at MMIO 0xd091c000 (irq = 18, base_baud = 2764800) is a 16550A
[    5.967123] 0000:03:00.0: ttyS10 at MMIO 0xd0601400 (irq = 105, base_baud = 7812500) is a XR17V35X
[    5.967411] 0000:03:00.0: ttyS11 at MMIO 0xd0601800 (irq = 105, base_baud = 7812500) is a XR17V35X
[    5.967705] 0000:03:00.0: ttyS12 at MMIO 0xd0601c00 (irq = 105, base_baud = 7812500) is a XR17V35X
[    5.976690] 0000:00:1e.4: ttyS13 at MMIO 0xd091a000 (irq = 19, base_baud = 2764800) is a 16550A

ここで、組み込みポートにはとttyS9名前が割り当てられttyS13、拡張ポートにはとttyS4-8名前が割り当てられますttyS10-12。次に再起動すると、割り当てが異なります。

ポート名が混在しているため、カーネルコマンドラインオプションconsole=ttyS4,115200またはgetty

udevカーネルコマンドラインでは機能しますgettyが、カーネルコマンドラインでは機能しない安定したシンボリックリンクを作成するためのルールを作成できます。

console=uart,mmio32,0xd091c000,115200システムの起動時にカーネル出力が得られないようで、LinuxコマンドラインでMMIOアドレスを試してみました。

これらの識別子を安定させる方法は?

ベストアンサー1

よくわかりませんが、まだ試していない場合は、カーネルのbiosdevname = 0 | 1パラメータを変更してみてはいかがでしょうか?

その値は通常、GRUB2-mkconfigをPCで実行する前にGRUB_CMDLINE_LINUXで変更されます。もちろん、この部分は組み込み状況によって異なります。

おすすめ記事