[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-devel:06122] Re: IDEA - PCI devices auto-detection
吉山です。
I received from Kaz.Sasayama@xxxxxxxxxxxxxxx on 11 20 , 1998.
> やはり最も「めんどくせえ」のは、データベースの作成でしょうか。
> 暇があったら取り組んでみたいテーマではありますが、経営が軌道
> にのらないうちは手を付けられるような状態にないですね。:-(
> 学生諸氏の活動に期待、といったところでしょうか。
まあ、学生に期待しなくてもある程度の楽は出来ます。というのも、データ
ベースが Linux カーネルソースにあるからです。
/usr/src/linux/include/linux/pci.h には、PCI ベンダと PCI デバイスに
関するデータベースがあります。これをカードの ID と対比させるとカードま
たはカード上のチップの種類が分かります。このデータをそっくりそのまま生
かせば、データベースは出来上がったようなものです。
ちなみに、2.0 系では cat /proc/pci でこの情報が表示できましたが、プ
ログラム側から使うのは難儀でした。2.1 系では /proc/bus/pci/device にそ
のまま PCI カードの ID が出るので、こちらを使うと楽できます。
---
#define PCI_VENDOR_ID_S3 0x5333
#define PCI_DEVICE_ID_S3_PLATO_PXS 0x0551
#define PCI_DEVICE_ID_S3_TRIO 0x8811
#define PCI_DEVICE_ID_S3_AURORA64VP 0x8812
#define PCI_DEVICE_ID_S3_TRIO64UVP 0x8814
#define PCI_DEVICE_ID_S3_ViRGE_VX 0x883d
#define PCI_DEVICE_ID_S3_868 0x8880
#define PCI_DEVICE_ID_S3_928 0x88b0
#define PCI_DEVICE_ID_S3_864_1 0x88c0
#define PCI_DEVICE_ID_S3_864_2 0x88c1
#define PCI_DEVICE_ID_S3_964_1 0x88d0
#define PCI_DEVICE_ID_S3_964_2 0x88d1
#define PCI_DEVICE_ID_S3_968 0x88f0
#define PCI_DEVICE_ID_S3_TRIO64V2 0x8901
#define PCI_DEVICE_ID_S3_PLATO_PXG 0x8902
#define PCI_DEVICE_ID_S3_ViRGE 0x5631
#define PCI_DEVICE_ID_S3_ViRGE_DXGX 0x8a01
#define PCI_DEVICE_ID_S3_ViRGE_GX2 0x8a10
#define PCI_DEVICE_ID_S3_ViRGE_MX 0x8c01
#define PCI_DEVICE_ID_S3_ViRGE_MXP 0x8c02
#define PCI_DEVICE_ID_S3_ViRGE_MXPMV 0x8c03
#define PCI_DEVICE_ID_S3_SONICVIBES 0xca00
--- /usr/src/linux/include/linux/pci.h
例えば、X サーバを1項目、カードベンダを2項目、カードを3項目にする
とすれば、
xserver-s3 5333 0551,8811,8812,8814,883d,8880,88b0,88c0,88c1,88d0,88d1,88f0,8901,8902,
xserver-s3v 5333 5631,8a01,8a10,8c01,8c02,8c03
という具合になります。Prolog のような上からのマッチングというルールを
付けると、
xserver-s3v 5333 5631,8a01,8a10,8c01,8c02,8c03
xserver-s3 5333 *
でもいいかもしれません。マルチベンダデバイスの場合はルールの記述にもう
1工夫必要となるでしょう。
勿論、カーネルローダブルモジュールでも同様の事が出来ます。
ISA デバイスの場合は…こりゃちょっと案がありません。
isapnptools が使えるかも知れませんが、お世話になったことがないので。
> まあSCSIは難しいとしても、NICぐらいなら結構メリットがあるんじゃない
> でしょうか。最近はPCIのものが主流になっているし。
PCI NE2000 のドライバはどこがヘボイのか、私のマシンではちゃんと動い
てくれません。しょうがないので ISA 版のドライバで動かしていますが…。
---
Name: 吉山あきら Akira Yoshiyama
E-mail: yosshy@debian.or.jp (runlevel1@xxxxxxxxxxxxxxxxx)
URL: http://jedi.seg.kobe-u.ac.jp/~yosshy/linux.html