Skip to main content

Modul Kernel Loadable Linux How-To - 15.3. Pemacu SCSI

How to build a Linux loadable kernel module that Rickrolls people (April 2025)

How to build a Linux loadable kernel module that Rickrolls people (April 2025)

:

Anonim

15.3. Pemacu SCSI

Maklumat terperinci tentang pemacu SCSI ada dalam SCSI-2.4-HOWTO.

Fungsi SCSI Linux dilaksanakan dalam tiga lapisan, dan terdapat LKM untuk mereka semua.

Di tengah-tengah adalah pemacu tahap tengah atau teras SCSI. Ini terdiri daripada scsi_mod LKM. Ia melakukan semua perkara yang biasa di kalangan peranti SCSI tanpa mengira penyesuai SCSI yang anda gunakan dan jenis kelas peranti (cakera, pengimbas, pemacu CD-ROM, dan sebagainya).

Terdapat pemandu peringkat rendah untuk setiap jenis penyesuai SCSI - biasanya, pemandu yang berbeza untuk setiap jenama. Sebagai contoh, pemandu tingkat rendah untuk penyesuai Advansys (yang dibuat oleh syarikat yang kini Connect.com) dinamakan advansys . (Jika anda membandingkan ATA (aka IDE) dan peranti cakera SCSI, ini adalah perbezaan utama - ATA adalah mudah dan cukup standard bahawa satu pemandu berfungsi dengan semua penyesuai dari semua syarikat. SCSI kurang standard dan akibatnya anda harus mempunyai kurang keyakinan dalam mana-mana penyesuai tertentu yang serasi dengan sistem anda).

Pemandu peringkat tinggi hadir ke kernel yang lain antara muka yang sesuai dengan kelas peranti tertentu. Pemandu peringkat tinggi SCSI untuk peranti pita, st , sebagai contoh, mempunyai ioctls untuk mundur. Pemacu SCSI peringkat tinggi untuk pemacu CD-ROM, sr , tidak.

Perhatikan bahawa anda jarang memerlukan pemandu peringkat tinggi khusus untuk jenama peranti tertentu. Di peringkat ini, terdapat sedikit ruang bagi satu jenama untuk dibezakan dari yang lain.

Satu pemandu SCSI peringkat tinggi yang sepatutnya dinyatakan secara khusus sg . Pemandu ini, yang dikenali sebagai pemandu "SCSI generik", adalah lapisan yang nipis yang membentangkan perwakilan yang agak mentah dari pemacu peringkat pertengahan SCSI ke seluruh kernel. Program ruang pengguna yang beroperasi melalui pemacu generik SCSI (kerana mereka mengakses fail khas peranti yang bilangan utama adalah yang didaftarkan oleh sg (iaitu, 21)) mempunyai pemahaman terperinci mengenai protokol SCSI, sedangkan program ruang pengguna yang beroperasi melalui pemacu peringkat tinggi SCSI biasanya tidak mengetahui SCSI apa pun. SCSI-Programming-HOWTO mempunyai dokumentasi lengkap pemacu generik SCSI.

Urutan pelapisan modul SCSI memungkiri cara LKM bergantung kepada satu sama lain dan susunan di mana ia mesti dimuatkan. Anda sentiasa memuatkan pemandu peringkat pertengahan terlebih dahulu dan memunggahnya yang terakhir. Pemandu peringkat rendah dan peringkat tinggi boleh dimuatkan dan diturunkan dalam apa jua pesanan selepas itu, dan mereka menyambung diri dan mewujudkan pergantungan pada pemandu peringkat pertengahan di kedua-dua hujungnya. Jika anda tidak mempunyai set lengkap, anda akan mendapat ralat "peranti tidak dijumpai" apabila anda cuba mengakses peranti.

Kebanyakan pemandu (penyesuai) tahap rendah SCSI tidak mempunyai parameter LKM; mereka biasanya menggunakan autoprobe untuk tetapan kad. Jika kad anda menjawab beberapa alamat pelabuhan yang tidak konvensional, anda mesti mengikat pemacu ke dalam kernel asas dan menggunakan pilihan "baris perintah" kernel. Lihat BootPrompt-HOWTO. Atau anda boleh menaikkan Sumber dan menyusun semula.

Ramai pemacu peringkat rendah SCSI mempunyai dokumentasi di dalam pemandu / scsi direktori dalam pokok sumber Linux, dalam fail yang dipanggil BACA SAYA. *.

15.3.1. scsi_mod: Pemandu peringkat pertengahan SCSI

Contoh:

modprobe scsi_mod

Tiada parameter modul.

15.3.2. sd_mod: Pemacu peringkat tinggi SCSI untuk peranti cakera

Contoh:

modprobe sd_mod

Tiada parameter modul.

15.3.3. st: Pemandu peringkat tinggi SCSI untuk peranti pita

Contoh:

modprobe st

Tiada parameter modul untuk LKM, tetapi jika anda mengikat modul ini ke dalam kernel asas, anda boleh lulus beberapa parameter melalui parameter boot Linux. Lihat BootPrompt-HOWTO.

15.3.4. sr_mod: Pemandu peringkat tinggi SCSI untuk pemacu CD-ROM

Contoh:

modprobe sr_mod

Tiada parameter modul.

15.3.5. sg: Pemandu peringkat tinggi SCSI untuk peranti SCSI generik

Lihat penjelasan pemandu peringkat tinggi khas ini di atas.

Contoh:

modprobe sg

Tiada parameter modul.

* Lesen

* Modul Kenaikan Modul Beban

parameter.

15.3.6. wd7000: Pemandu peringkat rendah SCSI untuk 7000FASST

Contoh:

modprobe wd7000

Tiada parameter modul untuk LKM, tetapi jika anda mengikat modul ini ke dalam kernel asas, anda boleh lulus beberapa parameter melalui parameter boot Linux. Lihat BootPrompt-HOWTO.

Pemandu ini menghidupkan kad dan memerlukan BIOS yang dipasang.

15.3.7. aha152x: Pemandu peringkat rendah SCSI untuk Adaptec AHA152X / 2825

Contoh:

modprobe aha152x

Tiada parameter modul untuk LKM, tetapi jika anda mengikat modul ini ke dalam kernel asas, anda boleh lulus beberapa parameter melalui parameter boot Linux. Lihat BootPrompt-HOWTO.

Pemandu ini menghidupkan kad dan memerlukan BIOS yang dipasang.

15.3.8. aha1542: Pemandu peringkat rendah SCSI untuk Adaptec AHA1542

Contoh:

modprobe aha1542

Tiada parameter modul untuk LKM, tetapi jika anda mengikat modul ini ke dalam kernel asas, anda boleh lulus beberapa parameter melalui parameter boot Linux. Lihat BootPrompt-HOWTO.

Pemandu ini mengosongkan kad pada 0x330 dan 0x334 sahaja.

15.3.9. aha1740: Pemandu peringkat rendah SCSI untuk Adaptec AHA1740 EISA

Contoh:

modprobe aha1740

Tiada parameter modul.

Pemandu ini menghidupkan kad.

15.3.10. aic7xxx: Pemandu peringkat rendah SCSI untuk Adaptec AHA274X / 284X / 294X

Contoh:

modprobe aic7xxx

Tiada parameter modul untuk LKM, tetapi jika anda mengikat modul ini ke dalam kernel asas, anda boleh lulus beberapa parameter melalui parameter boot Linux. Lihat BootPrompt-HOWTO.

Pemandu ini mengosongkan kad dan BIOS mesti diaktifkan.

15.3.11. advansys: SCSI tahap rendah untuk AdvanSys / Connect.com

Contoh:

modprobe advansys asc_iopflag = 1 asc_ioport = 0x110,0x330 asc_dbglvl = 1

Parameter Modul:

  • asc_iopflag
    • 1
    • membolehkan imbasan port
    • 0
    • matikan pengimbasan port
  • asc_ioport
  • Alamat pelabuhan I / O untuk mengimbas penyesuai Advansys SCSI
  • asc_dbglvl
  • tahap penyahpepijatan:
      • 0
    • Kesilapan sahaja
    • 1
    • Pengesanan tahap tinggi
    • 2-N
    • Pengesanan yang lebih baik

Jika anda mengikat pemacu ini ke dalam kernel asas, anda boleh lulus parameternya melalui parameter boot kernel. Lihat BootPrompt-HOWTO.

15.3.12. in2000: pemandu peringkat rendah SCSI untuk Sentiasa IN2000

Contoh:

modprobe in2000

Tiada parameter modul.

Pemandu ini menghidupkan kad. Tiada BIOS diperlukan.

15.3.13. BusLogic: Pemandu peringkat rendah SCSI untuk BusLogic

Senarai kad BusLogic pemandu ini boleh memandu panjang. Baca fail pemandu / scsi / README.BusLogic di dalam pokok sumber Linux untuk mendapatkan jumlah gambar.

Contoh:

modprobe BusLogic

Tiada parameter modul.

Jika anda mengikat pemacu ini ke dalam kernel asas, anda boleh lulus parameternya melalui parameter boot kernel. Lihat BootPrompt-HOWTO.

15.3.14. dtc: Pemandu peringkat rendah SCSI untuk DTC3180 / 3280

Contoh:

modprobe dtc

Tiada parameter modul untuk LKM, tetapi jika anda mengikat modul ini ke dalam kernel asas, anda boleh lulus beberapa parameter melalui parameter boot Linux. Lihat BootPrompt-HOWTO.

Pemandu ini menghidupkan kad.

15.3.15. eata: pemandu rendah SCSI untuk EATA ISA / EISA

Pemandu ini mengendalikan DPT PM2011 / 021/012/022/122/322.

Contoh:

modprobe eata

Tiada parameter modul untuk LKM, tetapi jika anda mengikat modul ini ke dalam kernel asas, anda boleh lulus beberapa parameter melalui parameter boot Linux. Lihat BootPrompt-HOWTO.

15.3.16. eata_dma: Pemandu peringkat rendah SCSI untuk EATA-DMA

Pemandu ini mengendalikan DPT, NEC, AT & T, SNI, AST, Olivetti, dan Alphatronix.

Pemandu ini mengendalikan DPT Smartcache, Smartcache III dan SmartRAID.

Contoh:

modprobe eata_dma

Tiada parameter modul.

Autoprobe berfungsi dalam semua konfigurasi.

15.3.17. eata_pio: Pemandu peringkat rendah SCSI untuk EATA-PIO

Pemandu ini mengendalikan DPT lama PM2001, PM2012A.

Contoh:

modprobe eata_pio

Tiada parameter modul.

15.3.18. fdomain: Pemacu peringkat rendah SCSI untuk Masa Depan Domain 16xx

Contoh:

modprobe fdomain

Tiada parameter modul.

Pemandu ini mengosongkan kad dan memerlukan BIOS yang dipasang.

15.3.19. NCR5380: SCSI tahap rendah pemandu untuk NCR5380 / 53c400

Contoh:

modprobe NCR5380 ncr_irq = xx ncr_addr = xx ncr_dma = xx ncr_5380 = 1 ncr_53c400 = 1

untuk pelabuhan dipetakan lembaga NCR5380:

modprobe g_NCR5380 ncr_irq = 5 ncr_addr = 0x350 ncr_5380 = 1

untuk memori dipetakan lembaga NCR53C400 dengan gangguan yang dilumpuhkan:

modprobe g_NCR5380 ncr_irq = 255 ncr_addr = 0xc8000 ncr_53c400 = 1

Parameter:

  • ncr_irq
  • pemandu irq untuk perkhidmatan. 255 bermaksud tidak atau DMA mengganggu. 254 untuk autoprobe untuk baris IRQ jika ditindih pada baris arahan.
  • ncr_addr
  • alamat pelabuhan I / O atau memori memetakan alamat I / O, mengikut mana yang sesuai, bahawa pemandu hendak memandu
  • ncr_dma
  • saluran DMA yang digunakan pemandu
  • ncr_5380
  • 1 = ditubuhkan untuk lembaga NCR5380
  • ncr_53c400
  • 1 = ditubuhkan untuk lembaga NCR53C400

Jika anda mengikat pemacu ini ke dalam kernel asas, anda boleh lulus parameternya melalui parameter boot kernel. Lihat BootPrompt-HOWTO.

15.3.20. NCR53c406a: SCSI tahap rendah pemandu untuk NCR53c406a

Contoh:

modprobe NCR53c406a

Tiada parameter modul untuk LKM, tetapi jika anda mengikat modul ini ke dalam kernel asas, anda boleh lulus beberapa parameter melalui parameter boot Linux. Lihat BootPrompt-HOWTO.

15.3.21. 53c7,8xx.o: Pemandu peringkat rendah SCSI untuk NCR53c7,8xx

Contoh:

modprobe 53c7,8xx

Tiada parameter modul untuk LKM, tetapi jika anda mengikat modul ini ke dalam kernel asas, anda boleh lulus beberapa parameter melalui parameter boot Linux. Lihat BootPrompt-HOWTO.

Pemandu ini mengosongkan kad dan memerlukan BIOS yang dipasang.

15.3.22. ncr53c8xx: Pemandu tahap rendah SCSI untuk keluarga PCI-SCS NCR538xx

Contoh:

modprobe ncr53c8xx

Tiada parameter modul.

15.3.23. ppa: pemandu SCSI peringkat rendah untuk pemacu ZIP port selari IOMEGA

Lihat fail pemandu / scsi / README.ppa di dalam pokok sumber Linux untuk butirannya.

Contoh:

modprobe ppa ppa_base = 0x378 ppa_nybble = 1

Parameter:

  • ppa_base
  • Alamat asas port I / O PPA. Default 0x378.
  • ppa_speed_high
  • Kelewatan digunakan dalam pemindahan data, dalam mikrodetik. Lalai adalah 1.
  • ppa_speed_low
  • Kelewatan digunakan di lain-lain
  • operasi, dalam mikrosecond. Lalai adalah 6.
  • ppa_nybble
  • 1 = Gunakan mod 4-bit. 0 = tidak. Lalai adalah 0.

15.3.24. pas16: Pemandu peringkat rendah SCSI untuk PAS16

Contoh:

modprobe pas16

Tiada parameter modul untuk LKM, tetapi jika anda mengikat modul ini ke dalam kernel asas, anda boleh lulus beberapa parameter melalui parameter boot Linux. Lihat BootPrompt-HOWTO.

Pemandu ini menghidupkan kad. Tiada BIOS diperlukan.

15.3.25. qlogicfas: Pemandu peringkat rendah SCSI untuk Qlogic FAS

Contoh:

modprobe qlogicfas

Tiada parameter modul untuk LKM, tetapi jika anda mengikat modul ini ke dalam kernel asas, anda boleh lulus beberapa parameter melalui parameter boot Linux. Lihat BootPrompt-HOWTO.

15.3.26. qlogicisp: Pemandu peringkat rendah SCSI untuk Qlogic ISP

Contoh:

modprobe qlogicisp

Tiada parameter modul untuk LKM, tetapi jika anda mengikat modul ini ke dalam kernel asas, anda boleh lulus beberapa parameter melalui parameter boot Linux. Lihat BootPrompt-HOWTO.

Memerlukan firmware.

15.3.27. seagate: SCSI tahap rendah untuk Seagate, Domain Masa Depan

Pemandu ini adalah untuk Seagate ST-02 dan Future Domain TMC-8xx.

Contoh:

modprobe seagate

Tiada parameter modul untuk LKM, tetapi jika anda mengikat modul ini ke dalam kernel asas, anda boleh lulus beberapa parameter melalui parameter boot Linux. Lihat BootPrompt-HOWTO.

Autoprob ini pemandu untuk alamat sahaja. IRQ ditetapkan pada 5. Pemandu memerlukan BIOS yang dipasang.

15.3.28. t128: Pemandu peringkat rendah SCSI untuk Trantor T128 / T128F / T228

Contoh:

modprobe t128

Tiada parameter modul untuk LKM, tetapi jika anda mengikat modul ini ke dalam kernel asas, anda boleh lulus beberapa parameter melalui parameter boot Linux. Lihat BootPrompt-HOWTO.

Pemandu ini menghidupkan kad. Pemandu memerlukan BIOS yang dipasang.

15.3.29. u14-34f: Pemandu peringkat rendah SCSI untuk UltraStor 14F / 34F

Contoh:

modprobe u14-34f

Tiada parameter modul untuk LKM, tetapi jika anda mengikat modul ini ke dalam kernel asas, anda boleh lulus beberapa parameter melalui parameter boot Linux. Lihat BootPrompt-HOWTO.

Pemandu ini menghidupkan kad, tetapi tidak port 0x310. Tiada BIOS diperlukan.

15.3.30. ultrastor: pemandu SCSI peringkat rendah untuk UltraStor

Contoh:

modprobe ultrastor

Tiada parameter modul untuk LKM, tetapi jika anda mengikat modul ini ke dalam kernel asas, anda boleh lulus beberapa parameter melalui parameter boot Linux. Lihat BootPrompt-HOWTO.