Vine Linux 4.2, Thinkpad iSeries 1200 1161-91J, IO DATA ETX-PCM
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 デバイスの扱いが変わっているそうで。
カーネル・ソース・ツリーを色々探してみると、ドライバ・ソース・コードの device table というものに、 PCMCIA カードの情報を入力すれば良い、とわかりました。
Matching of PCMCIA devices to drivers is done using one or more of the following criteria:
- manufactor ID
- card ID
- product ID strings and hashes of these strings
- function ID
- device function (actual and pseudo)
You should use the helpers in include/pcmcia/device_id.h for generating the struct pcmcia_device_id[] entries which match devices to drivers.
ネット上で色々検索した結果から、 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 のカーネル・ソースに追加して、カーネル再構築を行ないました。1
無事認識されるようになりました。
#/sbin/pccardctl ls Socket 0 Bridge: [yenta_cardbus] (bus ID: 0000:00:03.0) Socket 0 Device 0: [axnet_cs] (bus ID: 0.0)
| 固定リンク
この記事へのコメントは終了しました。
コメント