Vine Linux 4.2 を Thinkpad iSeries 1200 1161-91J にインストールしました。 が、 16bit PCMCIA Ethernet カード、 IO DATA ETX-PCM を認識しません。
#/sbin/pccardctl ls
Socket 0 Bridge: [yenta_cardbus] (bus ID: 0000:00:03.0)
Socket 0 Device 0: [-- no driver --] (bus ID: 0.0)
Linux Kernel 2.6 から、 PCMCIA デバイスの扱いが変わっているそうで。
Linux Kernel 2.6 PCMCIA
Linux Kernel 2.6 PCMCIA - HOWTO
Linux Kernel 2.6 PCMCIA: cardmgr to pcmciautils HowTo
カーネル・ソース・ツリーを色々探してみると、ドライバ・ソース・コードの device table というものに、 PCMCIA カードの情報を入力すれば良い、とわかりました。
Matching of PCMCIA devices to drivers is done using one or more of the
following criteria:
ネット上で色々検索した結果から、 IO DATA ETX-PCM のドライバは、 axnet_cs という名前になることがわかりました。現時点で最新と思われる、 Linux Kernel 2.6.27.8 の /drivers/net/pcmcia/axnet_cs.c を覗いてみますと。
static struct pcmcia_device_id axnet_ids[] = {
PCMCIA_PFC_DEVICE_MANF_CARD(0, 0x016c, 0x0081),
PCMCIA_DEVICE_MANF_CARD(0x018a, 0x0301),
PCMCIA_DEVICE_MANF_CARD(0x026f, 0x0301),
...
PCMCIA_DEVICE_PROD_ID12("IO DATA", "ETXPCM", 0x547e66dc, 0x233adac2),
...
PCMCIA_DEVICE_NULL,
};
MODULE_DEVICE_TABLE(pcmcia, axnet_ids);
最新カーネルには、 IO DATA ETX-PCM は、既に含まれているみたいですね。
Vine Linux 4.2 のカーネル・ソース 2.6.16 を覗いてみると、確かにこのテーブル・エントリはありません。この部分を、 Vine Linux 4.2 のカーネル・ソースに追加して、カーネル再構築を行ないました。
無事認識されるようになりました。
#/sbin/pccardctl ls
Socket 0 Bridge: [yenta_cardbus] (bus ID: 0000:00:03.0)
Socket 0 Device 0: [axnet_cs] (bus ID: 0.0)
最近のコメント