RaQ550 Strongbolt +BlueOnyx化が(ほぼ)完了したのだが
もうひとつの懸案が「シリアルポート増設」
RaQ550のPCIスロットにシリアルカードを挿してシリアルポートを増やしたい。
USBで増やすっていう手もあるけれど、USBは安定運用を考えると今ひとつ。
用意したのは4ポートシリアル増設カード
16550A互換ってことで汎用性高い(はず)
スロット1個で4ポート増やせるのもRaQ向け
現カーネルではPCIカードの認識はされるけど、使えないっていう状況。
実はRaQ550にB.O.入れたのも、この辺りを何とかしたかったからなんだけど
B.O. CentOS5.5 にしたからってカーネルが変わるわけじゃないって
後から気づいた
dmesg シリアルポートが登録できないって
Serial: 8250/16550 driver $Revision: 1.90 $ 2 ports, IRQ sharing disabled
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
PCI: Found IRQ 11 for device 0000:01:08.0
Couldn’t register serial port 0000:01:08.0: -28
loop: loaded (max 8 devices)
ls /dev/ttyS* デバイが使えない
/dev/ttyS0 /dev/ttyS1
lspci PCIカードは見えてるんだけどね
01:08.0 Serial controller: NetMos Technology PCI 9845 Multi-I/O Controller (rev 01) (prog-if 02 [16550])
Subsystem: LSI Logic / Symbios Logic 0P4S (4 port 16550A serial card)
Flags: medium devsel, IRQ 11
I/O ports at fcf8 [size=8]
I/O ports at fcf0 [size=8]
I/O ports at fce8 [size=8]
I/O ports at fce0 [size=8]
I/O ports at fcd8 [size=8]
I/O ports at fcc0 [size=16]
増設したシリアルポートが使えないのはカーネルパラメーターでuartポートの数を標準搭載の2に制限してるから…って解るまでにどんだけかかったか(泣)
パラメータを変更した上でkernelをコンパイルし直さないといけない。
Strongbolt開発元のOS Officeはソース公開に消極的
社名のOSってOpen Sourceってことじゃないみたい
かろうじて前バージョンのkernelソースがダウンロード可能となっているので
これを使うことにする。
ちなみにネタ元はこちら
手順
カーネルソースダウンロード
カーネルパラメータ設定変更
make menuconfig
Device Drivers > Character Dvices > Serial drivers
Maximum number of 8250/16550 serial ports 2 から 32 へ増やした
Number of 8250/16550 serial ports to register at runtime 2 から 6 へ増やした
リコン
make vmlinux
make modules
インストール
make modules_install
cp /boot/vmlinux.bz2 /boot/vmlinux-`uname -r`.bz2 chmod 0644 /boot/vmlinux-`uname -r`.bz2
bzip2 -4 vmlinux cp vmlinux.bz2 /boot再起動
無事に認識され使えるようになりました。
Serial: 8250/16550 driver $Revision: 1.90 $ 6 ports, IRQ sharing disabled
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
PCI: Found IRQ 11 for device 0000:01:08.0
0000:01:08.0: ttyS4 at I/O 0xfcf8 (irq = 11) is a 16550A
0000:01:08.0: ttyS5 at I/O 0xfcf0 (irq = 11) is a 16550A
0000:01:08.0: ttyS2 at I/O 0xfce8 (irq = 11) is a 16550A
0000:01:08.0: ttyS3 at I/O 0xfce0 (irq = 11) is a 16550A
loop: loaded (max 8 devices)ls /dev/ttyS*
/dev/ttyS0 /dev/ttyS1 /dev/ttyS2 /dev/ttyS3 /dev/ttyS4 /dev/ttyS5めでたし・めでたし