Skip to main content

Linux ładowalny moduł jądra instrukcje - 15.3. Sterowniki SCSI

How to build a Linux loadable kernel module that Rickrolls people (Może 2025)

How to build a Linux loadable kernel module that Rickrolls people (Może 2025)

:

Anonim

15.3. Sterowniki SCSI

Szczegółowe informacje na temat sterowników SCSI znajdują się w SCSI-2.4-HOWTO.

Funkcja SCSI systemu Linux jest zaimplementowana w trzech warstwach i dla wszystkich istnieje LKM.

W środku znajduje się sterownik średniego poziomu lub rdzeń SCSI. Składa się z scsi_mod LKM. Robi to wszystko, co jest wspólne dla urządzeń SCSI, bez względu na to, jaki adapter SCSI używasz i jaka klasa urządzenia (dysk, skaner, napęd CD-ROM itp.) Jest.

Dla każdego rodzaju adaptera SCSI dostępny jest sterownik niskiego poziomu - zazwyczaj inny sterownik dla każdej marki. Na przykład nazwany został sterownik niskiego poziomu dla adapterów Advansys (utworzony przez firmę, która jest teraz Connect.com) advansys . (Jeśli porównujesz ATA (aka IDE) i dyski SCSI, to jest zasadnicza różnica - ATA jest prosta i wystarczająco standardowa, aby jeden sterownik działał ze wszystkimi adapterami ze wszystkich firm. SCSI jest mniej standardowe i dlatego powinieneś mieć mniejsze zaufanie do konkretnego adaptera, który jest całkowicie zgodny z twoim systemem).

Sterowniki wysokopoziomowe prezentują reszcie jądra interfejs odpowiedni dla pewnej klasy urządzeń. Sterownik wysokiego poziomu SCSI dla urządzeń taśmowych, ul na przykład ma ioctls do przewinięcia. Sterownik SCSI wysokiego poziomu dla napędów CD-ROM, sr , nie.

Zauważ, że rzadko potrzebujesz sterownika wysokiego poziomu określonego dla określonej marki urządzenia. Na tym poziomie niewiele jest miejsca na odróżnienie jednej marki od drugiej.

Jeden sterownik wysokiego poziomu SCSI, który zasługuje na szczególną uwagę sg . Ten sterownik, zwany sterownikiem "SCSI generic", jest dość cienką warstwą, która przedstawia raczej surową reprezentację sterownika średniego poziomu SCSI do reszty jądra. Programy przestrzeni użytkownika, które działają za pośrednictwem ogólnego sterownika SCSI (ponieważ uzyskują dostęp do plików specjalnych urządzenia, których głównym numerem jest ten zarejestrowany przez sg (do 21)) mają szczegółową wiedzę na temat protokołów SCSI, podczas gdy programy przestrzeni użytkownika, które działają za pośrednictwem innych sterowników SCSI wysokiego poziomu, zazwyczaj nie wiedzą nawet, czym jest SCSI. SCSI-Programming-HOWTO ma pełną dokumentację sterownika ogólnego SCSI.

Kolejność nakładania warstw modułów SCSI kłamie tak, jak LKM zależą od siebie nawzajem i kolejności, w jakiej muszą być załadowane. Zawsze najpierw ładujesz sterownik średniego poziomu i wyładowujesz go jako ostatni. Kierowcy niskiego i wysokiego poziomu mogą być ładowane i rozładowywane w dowolnej kolejności, po czym podpinają się i ustanawiają zależność od sterownika średniego poziomu na obu końcach. Jeśli nie masz pełnego zestawu, podczas próby uzyskania dostępu do urządzenia pojawi się błąd "Nie znaleziono urządzenia".

Większość sterowników SCSI niskiego poziomu (adapter) nie ma parametrów LKM; generalnie autoprobe dla ustawień karty. Jeśli twoja karta reaguje na niekonwencjonalny adres portu, musisz powiązać sterownik z jądrem podstawowym i użyć opcji "linii komend" jądra. Zobacz BootPrompt-HOWTO. Możesz też przekręcić Źródło i zrekompilować.

Wiele sterowników niskopoziomowych SCSI posiada dokumentację w języku sterowniki / scsi katalog w drzewie źródłowym Linux, w plikach o nazwie README. *.

15.3.1. scsi_mod: Sterownik SCSI średniego poziomu

Przykład:

modprobe scsi_mod

Brak parametrów modułu.

15.3.2. sd_mod: Sterownik wysokiego poziomu SCSI dla urządzeń dyskowych

Przykład:

modprobe sd_mod

Brak parametrów modułu.

15.3.3. st: Sterownik wysokiego poziomu SCSI dla urządzeń taśmowych

Przykład:

modprobe st

Nie ma żadnych parametrów modułu dla LKM, ale jeśli zwiążesz ten moduł z jądrem podstawowym, możesz przekazać niektóre parametry za pomocą parametrów rozruchu Linux. Zobacz BootPrompt-HOWTO.

15.3.4. sr_mod: Sterownik wysokiego poziomu SCSI dla napędów CD-ROM

Przykład:

modprobe sr_mod

Brak parametrów modułu.

15.3.5. sg: Sterownik wysokiego poziomu SCSI dla ogólnych urządzeń SCSI

Zobacz wyjaśnienie powyższego specjalnego sterownika na wyższym poziomie.

Przykład:

modprobe sg

Brak parametrów modułu.

* Licencja

* Ładowalny moduł jądra How-To Index

parametry.

15.3.6. wd7000: Sterownik niskiego poziomu SCSI dla 7000FASST

Przykład:

modprobe wd7000

Nie ma żadnych parametrów modułu dla LKM, ale jeśli zwiążesz ten moduł z jądrem podstawowym, możesz przekazać niektóre parametry za pomocą parametrów rozruchu Linux. Zobacz BootPrompt-HOWTO.

Ten sterownik zatrzymuje się na karcie i wymaga zainstalowanego systemu BIOS.

15.3.7. aha152x: Sterownik niskiego poziomu SCSI dla Adaptec AHA152X / 2825

Przykład:

modprobe aha152x

Nie ma żadnych parametrów modułu dla LKM, ale jeśli zwiążesz ten moduł z jądrem podstawowym, możesz przekazać niektóre parametry za pomocą parametrów rozruchu Linux. Zobacz BootPrompt-HOWTO.

Ten sterownik zatrzymuje się na karcie i wymaga zainstalowanego systemu BIOS.

15.3.8. aha1542: Sterownik niskiego poziomu SCSI dla Adaptec AHA1542

Przykład:

modprobe aha1542

Nie ma żadnych parametrów modułu dla LKM, ale jeśli zwiążesz ten moduł z jądrem podstawowym, możesz przekazać niektóre parametry za pomocą parametrów rozruchu Linux. Zobacz BootPrompt-HOWTO.

Ten sterownik dokonuje autoodkrywania karty tylko pod 0x330 i 0x334.

15.3.9. aha1740: Sterownik niskiego poziomu SCSI dla Adaptec AHA1740 EISA

Przykład:

modprobe aha1740

Brak parametrów modułu.

Ten sterownik automatycznie włącza kartę.

15.3.10. aic7xxx: Sterownik niskiego poziomu SCSI dla Adaptec AHA274X / 284X / 294X

Przykład:

modprobe aic7xxx

Nie ma żadnych parametrów modułu dla LKM, ale jeśli zwiążesz ten moduł z jądrem podstawowym, możesz przekazać niektóre parametry za pomocą parametrów rozruchu Linux. Zobacz BootPrompt-HOWTO.

Ten sterownik automatycznie włącza kartę i system BIOS musi być włączony.

15.3.11. advansys: Sterownik niskiego poziomu SCSI dla AdvanSys / Connect.com

Przykład:

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

Parametry modułu:

  • asc_iopflag
    • 1
    • włącz skanowanie portów
    • 0
    • wyłącz skanowanie portów
  • asc_port
  • Adresy portu I / O do skanowania adapterów Advansys SCSI
  • asc_dbglvl
  • poziom debugowania:
      • 0
    • Tylko błędy
    • 1
    • Śledzenie na wysokim poziomie
    • 2-N
    • Dokładne śledzenie

Jeśli zwiążesz ten sterownik z jądrem podstawowym, możesz przekazać do niego parametry za pośrednictwem parametrów rozruchu jądra. Zobacz BootPrompt-HOWTO.

15.3.12. in2000: Sterownik niskiego poziomu SCSI dla Always IN2000

Przykład:

modprobe in2000

Brak parametrów modułu.

Ten sterownik automatycznie włącza kartę. Nie jest wymagany BIOS.

15.3.13. BusLogic: Sterownik niskiego poziomu SCSI dla BusLogic

Lista kart BusLogic obsługiwanych przez ten sterownik jest długa. Czytaj plik drivers / scsi / README.BusLogic w drzewie źródeł Linux, aby uzyskać pełny obraz.

Przykład:

modprobe BusLogic

Brak parametrów modułu.

Jeśli zwiążesz ten sterownik z jądrem podstawowym, możesz przekazać do niego parametry za pośrednictwem parametrów rozruchu jądra. Zobacz BootPrompt-HOWTO.

15.3.14. dtc: Sterownik niskiego poziomu SCSI dla DTC3180 / 3280

Przykład:

modprobe dtc

Nie ma żadnych parametrów modułu dla LKM, ale jeśli zwiążesz ten moduł z jądrem podstawowym, możesz przekazać niektóre parametry za pomocą parametrów rozruchu Linux. Zobacz BootPrompt-HOWTO.

Ten sterownik automatycznie włącza kartę.

15.3.15. eata: Sterownik niskiego poziomu SCSI dla EATA ISA / EISA

Ten sterownik obsługuje DPT PM2011 / 021/012/022/122/322.

Przykład:

modprobe eata

Nie ma żadnych parametrów modułu dla LKM, ale jeśli zwiążesz ten moduł z jądrem podstawowym, możesz przekazać niektóre parametry za pomocą parametrów rozruchu Linux. Zobacz BootPrompt-HOWTO.

15.3.16. eata_dma: Sterownik niskiego poziomu SCSI dla EATA-DMA

Ten sterownik obsługuje DPT, NEC, AT & T, SNI, AST, Olivetti i Alphatronix.

Ten sterownik obsługuje DPT Smartcache, Smartcache III i SmartRAID.

Przykład:

modprobe eata_dma

Brak parametrów modułu.

Autoprobe działa we wszystkich konfiguracjach.

15.3.17. eata_pio: Sterownik niskiego poziomu SCSI dla EATA-PIO

Ten sterownik obsługuje stare DPT PM2001, PM2012A.

Przykład:

modprobe eata_pio

Brak parametrów modułu.

15.3.18. fdomain: sterownik niskiego poziomu SCSI dla Future Domain 16xx

Przykład:

modprobe fdomain

Brak parametrów modułu.

Ten sterownik dokonuje autoodkrywania karty i wymaga zainstalowanego systemu BIOS.

15.3.19. NCR5380: Sterownik niskiego poziomu SCSI dla NCR5380 / 53c400

Przykład:

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

dla portu NCR5380 mapowanego na port:

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

dla karty NCR53C400 odwzorowanej w pamięci z wyłączonymi przerwaniami:

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

Parametry:

  • ncr_irq
  • irq, który kierowca ma obsługiwać. 255 oznacza brak lub przerwanie DMA. 254 do autoprobe dla linii IRQ, jeśli zostanie nadpisana w linii poleceń.
  • ncr_addr
  • adres portu I / O lub odwzorowany w pamięci adres I / O, zależnie od tego, który z nich jest odpowiedni, jaki sterownik ma prowadzić
  • ncr_dma
  • kanał DMA, którego ma używać sterownik
  • ncr_5380
  • 1 = konfiguracja dla płyty NCR5380
  • ncr_53c400
  • 1 = konfiguracja dla płyty NCR53C400

Jeśli zwiążesz ten sterownik z jądrem podstawowym, możesz przekazać do niego parametry za pośrednictwem parametrów rozruchu jądra. Zobacz BootPrompt-HOWTO.

15.3.20. NCR53c406a: Sterownik niskiego poziomu SCSI dla NCR53c406a

Przykład:

modprobe NCR53c406a

Nie ma żadnych parametrów modułu dla LKM, ale jeśli zwiążesz ten moduł z jądrem podstawowym, możesz przekazać niektóre parametry za pomocą parametrów rozruchu Linux. Zobacz BootPrompt-HOWTO.

15.3.21. 53c7,8xx.o: Sterownik niskiego poziomu SCSI dla NCR53c7,8xx

Przykład:

modprobe 53c7,8xx

Nie ma żadnych parametrów modułu dla LKM, ale jeśli zwiążesz ten moduł z jądrem podstawowym, możesz przekazać niektóre parametry za pomocą parametrów rozruchu Linux. Zobacz BootPrompt-HOWTO.

Ten sterownik dokonuje autoodkrywania karty i wymaga zainstalowanego systemu BIOS.

15.3.22. ncr53c8xx: Sterownik niskiego poziomu SCSI dla rodziny PCI-SCS NCR538xx

Przykład:

modprobe ncr53c8xx

Brak parametrów modułu.

15.3.23. ppa: sterownik SCSI niskiego poziomu dla napędu portu równoległego IOMEGA

Zobacz plik drivers / scsi / README.ppa w drzewie źródłowym Linuksa po szczegóły.

Przykład:

modprobe ppa ppa_base = 0x378 ppa_nybble = 1

Parametry:

  • ppa_base
  • Podstawowy adres portu we / wy PPA. Domyślnie 0x378.
  • ppa_speed_high
  • Opóźnienie używane w przesyłaniu danych w mikrosekundach. Domyślna wartość to 1.
  • ppa_speed_low
  • Opóźnienie używane w innych
  • operacje w mikrosekundach. Domyślna wartość to 6.
  • ppa_nybble
  • 1 = Użyj trybu 4-bitowego. 0 = nie rób tego. Domyślna wartość to 0.

15.3.24. pas16: Sterownik niskiego poziomu SCSI dla PAS16

Przykład:

modprobe pas16

Nie ma żadnych parametrów modułu dla LKM, ale jeśli zwiążesz ten moduł z jądrem podstawowym, możesz przekazać niektóre parametry za pomocą parametrów rozruchu Linux. Zobacz BootPrompt-HOWTO.

Ten sterownik automatycznie włącza kartę. Nie jest wymagany BIOS.

15.3.25. qlogicfas: sterownik niskiego poziomu SCSI dla Qlogic FAS

Przykład:

modprobe qlogicfas

Nie ma żadnych parametrów modułu dla LKM, ale jeśli zwiążesz ten moduł z jądrem podstawowym, możesz przekazać niektóre parametry za pomocą parametrów rozruchu Linux. Zobacz BootPrompt-HOWTO.

15.3.26. qlogicisp: Sterownik niskiego poziomu SCSI dla Qlogic ISP

Przykład:

modprobe qlogicisp

Nie ma żadnych parametrów modułu dla LKM, ale jeśli zwiążesz ten moduł z jądrem podstawowym, możesz przekazać niektóre parametry za pomocą parametrów rozruchu Linux. Zobacz BootPrompt-HOWTO.

Wymaga oprogramowania układowego.

15.3.27. seagate: Sterownik niskiego poziomu SCSI dla Seagate, Future Domain

Ten sterownik jest przeznaczony dla Seagate ST-02 i Future Domain TMC-8xx.

Przykład:

modprobe seagate

Nie ma żadnych parametrów modułu dla LKM, ale jeśli zwiążesz ten moduł z jądrem podstawowym, możesz przekazać niektóre parametry za pomocą parametrów rozruchu Linux. Zobacz BootPrompt-HOWTO.

Ten sterownik dokonuje autoprogramowania tylko dla adresu. IRQ jest ustawiony na 5. Sterownik wymaga zainstalowanego systemu BIOS.

15.3.28. t128: Sterownik niskiego poziomu SCSI dla Trantora T128 / T128F / T228

Przykład:

modprobe t128

Nie ma żadnych parametrów modułu dla LKM, ale jeśli zwiążesz ten moduł z jądrem podstawowym, możesz przekazać niektóre parametry za pomocą parametrów rozruchu Linux. Zobacz BootPrompt-HOWTO.

Ten sterownik automatycznie włącza kartę. Sterownik wymaga zainstalowanego systemu BIOS.

15.3.29. u14-34f: Sterownik niskiego poziomu SCSI dla UltraStor 14F / 34F

Przykład:

modprobe u14-34f

Nie ma żadnych parametrów modułu dla LKM, ale jeśli zwiążesz ten moduł z jądrem podstawowym, możesz przekazać niektóre parametry za pomocą parametrów rozruchu Linux. Zobacz BootPrompt-HOWTO.

Ten sterownik dokonuje autoodkrywania karty, ale nie port 0x310. Nie jest wymagany BIOS.

15.3.30. ultrastor: niskopoziomowy sterownik SCSI dla UltraStor

Przykład:

modprobe ultrastor

Nie ma żadnych parametrów modułu dla LKM, ale jeśli zwiążesz ten moduł z jądrem podstawowym, możesz przekazać niektóre parametry za pomocą parametrów rozruchu Linux. Zobacz BootPrompt-HOWTO.