(続:4)KNOPPIX + Wireless LAN

もう、こうなったら、徹底抗戦だ。
すでに、ndiswrapperのバージョンは、0.11に達しているが、KNOPPIXは、そう簡単にバージョンアップさせてくれない。現行の0.8でなんとかするしかない。


よく見ると、ndiswrapperというコマンドは、perlスクリプトだ。ということは、こいつを読んでやれば、何が必要かが理解できるはずだ。どうせ、どこかで、vender idとdevice idを取得して、モジュール本体に渡しているはずなので、そこを見つければよい。


さらに、loadndisdriver.cを見ていると、興味深いところを見つけた。
static int put_pci_device(int device, char *conf_file_name)
このなかに、put_deviceという変数があるが、これが、ioctl(device, NDIS_PUTDEVICE, &put_device)という形で、カーネルに引き渡されている。そして、この中に、vender idとdevice idが含まれるようだ。それは、次のデバッグ用出力行からわかる。
//printf("%04x:%04x:%04x:%04x\n", put_device.pci_vendor, put_device.pci_device, put_device.pci_subvendor, put_device.pci_subdevice);


つまり、ndiswrapperコマンドは、何らかの形で、vender idとdevice idを取得し、/etc/ndiswrapper 以下にコンフィグ情報を格納しているのだ。そして、loadndisdriverが、その情報を読み出して、カーネルに渡している。


あれ?
/etc/ndiswrapper が読めないとか何とか、エラーが出ていたな・・・