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_tableUSBデバイスなどの場合 -
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)、そのモジュールをロードします。
modprobeblacklistによってブラックリストに登録されたモジュールは読み込まれません 構成ファイルのディレクティブ。
lspci -nを実行します デバイスのPCIIDを確認し、上のチェーンをチェックして、どこで問題が発生したかを確認します。
ドライバーは、対象のデバイスと非常によく似ているが、PCIIDが異なるデバイスで動作する場合があります。その場合、ドライバーは機能する可能性がありますが、デバイスのPCI IDが宣言されていないため、自動的に読み込まれません。 /etc/modprobe/my_aliases.confでエイリアスを手動で追加できます 。
モジュールの名前を/etc/modulesに追加することで、起動時にモジュールを強制的に自動的にロードできます。 。
Debian –システムクラッシュ– Syslogの奇妙な文字?
Debian – Apt-getを介してアップグレードされたOpenssl、 `opensslバージョン`は以前のバージョンを表示していますか?