GNU/Linux >> Belajar Linux >  >> Debian

Linux – Debian Tidak Mendeteksi Kartu Serial Pci Setelah Reboot?

Saya telah memasang kartu PCI dengan dua serial dan satu port paralel di atasnya. chipsetnya adalah MCS9865 . Saya mengunduh driver terbaru (V1.0.12) dari sini. Saya menjalankan make dan make install . sekarang dua port serial adalah /dev/ttyD0 dan /dev/ttyD1 . Saya telah mengujinya dengan picocom dan itu bekerja dengan sempurna. masalahnya adalah ketika saya me-reboot sistem tidak ada /dev/ttyD0 dan /dev/ttyD1 . Saya perlu melakukan make install lagi . Apakah ada solusi?

keluaran lspci -v menunjukkan ini:

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 menunjukkan ini:

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

Saya menjalankan debian 6.0.5 dengan paket terbaru.

Jawaban yang Diterima:

Cara kerjanya biasanya adalah:

  • Kode sumber modul berisi panggilan ke MODULE_DEVICE_TABLE makro untuk mendeklarasikan tabel pengidentifikasi perangkat yang didukung modul ini.
  • Dalam modul yang dikompilasi, alias disimpan sebagai nilai simbol yang disebut __mod_alias_NNN di mana NNN adalah bilangan bulat. Nilai mengkodekan identifikasi bus untuk perangkat, mis. pci:v00009710d00009865sv*sd*bc*sc*i* untuk perangkat PCI yang diidentifikasi sebagai vendor 0x9710, perangkat 0x9865.
    Mereka juga disimpan dengan nama __mod_pci_device_table untuk perangkat PCI, __mod_usb_device_table untuk perangkat USB, dll.
  • depmod program membuat pemetaan tabel alias __mod_alias_NNN nilai ke nama modul. Tabel ini disimpan dalam file modules.alias di root direktori modul kernel, mis. /lib/modules/2.6.32-5-amd64/modules.alias .
    Ini juga membuat file seperti modules.pcimap , modules.usbmap , …, yang digunakan oleh infrastruktur hotplug usang yang telah dimasukkan kembali ke modprobe.
  • Ketika kernel mendeteksi perangkat yang tidak memiliki driver, kernel mencoba memuat modul dengan memanggil program yang ditunjukkan oleh kernel.modprobe sysctl, yaitu /sbin/modprobe secara default. Kernel meneruskan argumen ke modprobe yang menunjukkan driver apa yang diminta. Untuk perangkat PCI, ini adalah nama seperti pci:v00009710d00009865sv*sd*bc*sc*i* .
  • modprobe mencari modul dengan nama yang diberikan. Jika menemukan modul dengan nama yang diminta (setelah mengikuti alias yang ditentukan dalam file konfigurasinya, yang menyertakan /etc/modprobe.d/*.conf dan /lib/modules/$(uname -r)/modules.alias ), itu memuat modul itu.
    modprobe tidak akan memuat modul yang telah masuk daftar hitam oleh blacklist direktif dalam file konfigurasinya.
Terkait:bash:kesalahan sintaksis di dekat token tak terduga `}'?

Jalankan lspci -n untuk melihat ID PCI perangkat Anda, dan periksa rantai di atas untuk melihat di mana terjadi kesalahan.

Terkadang driver bekerja untuk perangkat yang sangat mirip dengan perangkat yang dimaksudkan, tetapi memiliki id PCI yang berbeda. Dalam hal ini, kemungkinan driver akan berfungsi, tetapi tidak akan dimuat secara otomatis karena tidak mendeklarasikan id PCI untuk perangkat Anda. Anda dapat menambahkan alias secara manual di /etc/modprobe/my_aliases.conf .

Anda dapat memaksa modul untuk dimuat secara otomatis saat boot dengan menambahkan namanya ke /etc/modules .


Debian
  1. Linux Setuid Tidak Berfungsi?

  2. Linux – Udev Tidak Mengganti Nama Perangkat Ethernet Usb?

  3. Bios Tidak Mendeteksi SSD Setelah Reboot Dari Ubuntu 16.04 (dell Xps 15)?

  1. Logitech M515 Tidak Bekerja Setelah Upgrade Ke 12.04?

  2. Hp Android Tidak Muncul Di Lsusb Setelah Masuk Mode "download"!?

  3. Perangkat Linux tidak menunjukkan ruang disk yang benar setelah mengubah ukuran

  1. Linux – Mengapa Setuid Tidak Bekerja??

  2. Debian - antarmuka jaringan tidak berfungsi lagi setelah pembaruan / peningkatan

  3. PHP-FPM tidak dimulai secara otomatis setelah reboot