2つのシリアルポートと1つのパラレルポートを備えたPCIカードをインストールしました。チップセットはMCS9865
。ここから最新のドライバー(V1.0.12)をダウンロードしました。 make
を実行しました およびmake install
。これで、2つのシリアルポートは/dev/ttyD0
になります。 および/dev/ttyD1
。 picocom
でテストしました そしてそれは完全に機能しています。問題は、システムを再起動したときに/dev/ttyD0
がないことです。 および/dev/ttyD1
。別のmake install
を実行する必要があります 。解決策はありますか?
lspci -v
の出力 これを示しています:
03:01.0 Serial controller: NetMos Technology PCI 9865 Multi-I/O Controller (prog-if 02 [16550])
Subsystem: Device a000:1000
Flags: bus master, medium devsel, latency 32, IRQ 19
I/O ports at df00 [size=8]
Memory at fbeff000 (32-bit, non-prefetchable) [size=4K]
Memory at fbefe000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [48] Power Management version 2
Kernel driver in use: mcs9865-serial
03:01.1 Serial controller: NetMos Technology PCI 9865 Multi-I/O Controller (prog-if 02 [16550])
Subsystem: Device a000:1000
Flags: bus master, medium devsel, latency 32, IRQ 18
I/O ports at de00 [size=8]
Memory at fbefd000 (32-bit, non-prefetchable) [size=4K]
Memory at fbefc000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [48] Power Management version 2
Kernel driver in use: mcs9865-serial
03:01.2 Parallel controller: NetMos Technology PCI 9865 Multi-I/O Controller (prog-if 03 [IEEE1284])
Subsystem: Device a000:2000
Flags: bus master, medium devsel, latency 32, IRQ 7
I/O ports at dd00 [size=8]
I/O ports at dc00 [size=8]
Memory at fbefb000 (32-bit, non-prefetchable) [size=4K]
Memory at fbefa000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [48] Power Management version 2
make install
これを示しています:
cp mcs9865.ko mcs9865-isa.ko /lib/modules/2.6.32-5-amd64/kernel/drivers/serial/
depmod -A
chmod +x mcs9865
cp mcs9865 /etc/init.d/
ln -s /etc/init.d/mcs9865 /etc/rcS.d/S99mcs9865 || true
ln: creating symbolic link `/etc/rcS.d/S99mcs9865': File exists
modprobe mcs9865
modprobe mcs9865-isa
ほとんどのアップデートパッケージでdebian6.0.5を実行しています。
承認された回答:
これが通常機能する方法は次のとおりです。
- モジュールのソースコードには、
MODULE_DEVICE_TABLE
への呼び出しが含まれています このモジュールがサポートするデバイス識別子のテーブルを宣言するマクロ。 - コンパイルされたモジュールでは、エイリアスは
__mod_alias_NNN
と呼ばれるシンボルの値として保存されます。 ここで、NNNは整数です。値は、デバイスのバスIDをエンコードします。pci:v00009710d00009865sv*sd*bc*sc*i*
ベンダー0x9710、デバイス0x9865として識別されるPCIデバイスの場合。
これらは__mod_pci_device_table
という名前でも保存されます。 PCIデバイスの場合、__mod_usb_device_table
USBデバイスなどの場合 -
depmod
プログラムは、エイリアステーブルマッピングを作成します__mod_alias_NNN
モジュール名の値。このテーブルは、ファイルmodules.alias
に保存されます。 カーネルモジュールディレクトリのルートにあります。例:/lib/modules/2.6.32-5-amd64/modules.alias
。
modules.pcimap
のようなファイルも作成します 、modules.usbmap
、…、modprobeに組み込まれた廃止されたホットプラグインフラストラクチャによって使用されます。 - カーネルは、ドライバーが存在しないデバイスを検出すると、
kernel.modprobe
で示されるプログラムを呼び出してモジュールを読み込もうとします。/sbin/modprobe
であるsysctl デフォルトでは。カーネルは引数をmodprobe
に渡します これは、どのドライバーが要求されているかを示します。 PCIデバイスの場合、これはpci:v00009710d00009865sv*sd*bc*sc*i*
のような名前です。 。 -
modprobe
指定された名前のモジュールを検索します。要求された名前のモジュールが見つかった場合(/etc/modprobe.d/*.conf
を含む構成ファイルで定義されたエイリアスをたどった後) および/lib/modules/$(uname -r)/modules.alias
)、そのモジュールをロードします。
modprobe
blacklist
によってブラックリストに登録されたモジュールは読み込まれません 構成ファイルのディレクティブ。
lspci -n
を実行します デバイスのPCIIDを確認し、上のチェーンをチェックして、どこで問題が発生したかを確認します。
ドライバーは、対象のデバイスと非常によく似ているが、PCIIDが異なるデバイスで動作する場合があります。その場合、ドライバーは機能する可能性がありますが、デバイスのPCI IDが宣言されていないため、自動的に読み込まれません。 /etc/modprobe/my_aliases.conf
でエイリアスを手動で追加できます 。
モジュールの名前を/etc/modules
に追加することで、起動時にモジュールを強制的に自動的にロードできます。 。
Debian –システムクラッシュ– Syslogの奇妙な文字?
Debian – Apt-getを介してアップグレードされたOpenssl、 `opensslバージョン`は以前のバージョンを表示していますか?