_ [unicon] 2.6.27 対応調査

やっと時間とれたので確認。パッチ自体は 2.6.26 から変えなくてもそのまま当たった。ただ、コンパイルに失敗。

  CC [M]  drivers/video/unicon/xl_keyhooks.o
drivers/video/unicon/xl_keyhooks.c: In function ‘Unicon_fnSendKey’:
drivers/video/unicon/xl_keyhooks.c:76: error: ‘struct tty_ldisc’ has no member named ‘receive_buf’
make[4]: *** [drivers/video/unicon/xl_keyhooks.o] エラー 1
make[3]: *** [drivers/video/unicon] エラー 2
make[2]: *** [drivers/video] エラー 2
make[1]: *** [drivers] エラー 2
make[1]: ディレクトリ `/usr/src/linux-2.6.27' から出ます
make: *** [debian/stamp/build/kernel] エラー 2

原因は Alan Cox: [PATCH 01/70] tty: Ldisc revampKernel v2.6.26-git7 /include/linux/tty_ldisc.h のようだ。構造体が変わってしまっている。ということで、Kernel v2.6.26-git7 /drivers/char/ip2/i2lib.c に倣って変更。

--- linux-2.6.27.UNICON/drivers/video/unicon/xl_keyhooks.c	2008-10-17 23:32:09.000000000 +0900
+++ linux-2.6.27.UNICON1/drivers/video/unicon/xl_keyhooks.c	2008-10-18 01:59:27.000000000 +0900
@@ -73,7 +73,7 @@
    if (tty == NULL) {
        return -1;
    }
-   tty->ldisc.receive_buf(tty, &ch, &mbz, 1);
+   tty->ldisc.ops->receive_buf(tty, &ch, &mbz, 1);
 #ifdef DEBUG
    printk ("will sending %c, 0x%x\n", ch, ch);
 #endif

これでコンパイルは通るようになったけど…。なんかきちんと動作してない?要調査。