Welche Module fuer USB? (gelöst)

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Benutzeravatar
Felix
Beiträge: 453
Registriert: 17.02.2003 10:26:57
Lizenz eigener Beiträge: MIT Lizenz

Welche Module fuer USB? (gelöst)

Beitrag von Felix » 03.10.2004 13:46:27

Hallo,

Ich arbeite mit Kernel 2.6.8. Ich kompiliere meine Kernel immer selbst und habe dabei auch keine Probleme. Nun habe ich aber einen USB Stick bekommen und mir eine USB Karte nachgeruestet und bei der Gelegenheit auch mal mein Druckerkabel von LPT auf USB umgestellt um etwas schneller drucken zu koennen. Welche Kernelmodule muss ich nun alles aktivieren um diese USB Geraete nutzen zu koennen?
Ein bisschen OffTopic sind dann noch die Fragen wie ich anschliessend den USB Stick mounte und mit welcher Software ich den Drucker (Cannon i560) am besten betreibe. Ich hatte mir die Freeware Version von Turboprint rausgesucht. Aber vielleicht sagt mir ja auch jemand wie sich der Drucker ganz einfach mit Cups oder dergleichen betreiben laesst. Also erstmal die Kernelpackete, das waere schon schick :). Vielen Dank schonmal fuer die Muehe.
Zuletzt geändert von Felix am 09.10.2004 14:56:04, insgesamt 1-mal geändert.

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22455
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von KBDCALLS » 03.10.2004 13:58:20

usb-storage
usbcore

ohci-hcd oder uhci-hcd oder ehci-hcd

und das scsi Grundsystem

Denn USB-Sticks werden als SCSI device behandetlt

mount /dev/sda1 /mnt

zum Beispieil

Benutzeravatar
Felix
Beiträge: 453
Registriert: 17.02.2003 10:26:57
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von Felix » 03.10.2004 14:16:52

Gut, danke :). Damit laeuft dann auch der Drucker, ja?

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22455
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von KBDCALLS » 03.10.2004 14:22:38

usblp für eine USB Printer. Aber ich würde sämtliche USBtreiber Kompilieren. Die Masse ist das ja nicht gerade.

Benutzeravatar
Felix
Beiträge: 453
Registriert: 17.02.2003 10:26:57
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von Felix » 04.10.2004 15:41:25

Kernel habsch neu gebaut. Leider geht beides noch nicht. Hab mal Knoppix reingeschoben und mit lsmod geguckt was ich vielleicht vergessen hab. Naja, hatte das mit dem USB Storage ueberlesen :D sorry. Werd das gleich mal nachbacken. Der Drucker wird aber noch nichmal unter Knoppix erkannt :/. Ich muss nachher mal schaun wie das unter Windoof aussieht. Vielleicht isses ja nen allgemeines Problem von meinem USB Anschluss oder so.
Aber mal noch ne andere Frage. Ich habe seit kernel 2.6.5 das Problem das ich nachdem ich einmal mit entpackten sourcen nen Kernel gebaut habe mit diesen Sourcen nicht nochmal kompilieren kann. Er ueberspringt dann immer das Kompilieren und baut mir gleich meine .deb. Ich habs auch schon mit make clean versucht (braucht man doch eigentlich nichtmehr seit Kernel 2.6.0. Hat aber auch nix gebracht. Was mach ich falsch?

Benutzeravatar
Felix
Beiträge: 453
Registriert: 17.02.2003 10:26:57
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von Felix » 04.10.2004 17:04:56

Soooo. Habe nun auch usb_storage einkompiliert. Den USB und den SCSI Kram hab ich komplett als module gemacht. Aber irgendwie funzt das immernoch nich. Ich muss auch die Module uhci_hcd und usb_storage mit modprobe einbinden. Von allein will da noch nix. Trotzdem kann ich das ding net mounten:

Code: Alles auswählen

tiffi:/# mount /mnt/USBStick/
mount: /dev/sda1 is not a valid block device
tiffi:/# vi /etc/fstab 
tiffi:/# mount /mnt/USBStick/
mount: special device /dev/sda0 does not exist
In der fstab hatte ich im ersten Versuch:

Code: Alles auswählen

/dev/sda1       /mnt/USBStick   vfat    uid=felix,umask=077     0       0
und im 2. Versuch:

Code: Alles auswählen

/dev/sda0       /mnt/USBStick   vfat    uid=felix,umask=077     0       0

Beides will wie man sieht nicht so recht. Unter Knoppix wurde das Ding problemlos ueber /dev/sda1 gemountet. Ich habe eben mal Windoof gestartet, dort funktionieren sowohl USB Drucker als auch USB Stick problemlos. den USB Stick habe ich da gleich mal fat formatiert. Hat aber nix geaendert.

Benutzeravatar
QT
Beiträge: 1372
Registriert: 22.07.2004 21:08:02
Wohnort: localhost

Beitrag von QT » 04.10.2004 17:16:13

Hast Du Support fuer SCSI Festplatten in Deinem Kernel? Als solche wird Dein Stick (und auch andere usb_storage Geraete) behandelt. Das wurde in diesem Thread auch schon erwaehnt. Leider sagst Du dazu nichts. Die Fehlermeldung beim mount Versuch von /dev/sda1 deutet aber daraufhin, dass Du keine SCSI Unterstuetzung hast.

Benutzeravatar
Felix
Beiträge: 453
Registriert: 17.02.2003 10:26:57
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von Felix » 04.10.2004 17:39:40

Ich hab scsi_mod und sd_mod als Module kompiliert. Hier mal mein lsmod:

Code: Alles auswählen

tiffi:/usr/src/kernel-source-2.6.8# lsmod
Module                  Size  Used by
uhci_hcd               30576  0 
usb_storage            27872  0 
sd_mod                 16512  0 
scsi_mod               73208  2 usb_storage,sd_mod
usbcore                74048  2 uhci_hcd,usb_storage
af_packet              13960  2 
nls_iso8859_1           3712  1 
nls_cp437               5344  2 
apm                    19376  0 
tiffi:/usr/src/kernel-source-2.6.8#

Benutzeravatar
QT
Beiträge: 1372
Registriert: 22.07.2004 21:08:02
Wohnort: localhost

Beitrag von QT » 04.10.2004 17:45:51

Hmm, dann sollte Dein Kernel aber auch eine neue SCSI Platte melden. Steht denn was entsprechendes im Syslog bzw. kommt bei 'dmesg' als Ausgabe? Falls ja, mounte mal dieses Geraet.

Benutzeravatar
Felix
Beiträge: 453
Registriert: 17.02.2003 10:26:57
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von Felix » 04.10.2004 18:00:09

dmesg bringt mir ganz am ende folgendes:

Code: Alles auswählen

SCSI subsystem initialized
Initializing USB Mass Storage driver...
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
USB Universal Host Controller Interface driver v2.2
PCI: No IRQ known for interrupt pin C of device 0000:00:04.2. Probably buggy MP table.
uhci_hcd 0000:00:04.2: Found HC with no IRQ.  Check BIOS/PCI 0000:00:04.2 setup!
Ich muss dazu sagen das ich saemtliche USB Module per hand mit modprobe gestartet habe. Also die Meldungen kamen daraufhin denk ich mal. Ach halt, usbcore musste ich nich manuell einbinden. Das war schon nach dem hochfahren.

Benutzeravatar
QT
Beiträge: 1372
Registriert: 22.07.2004 21:08:02
Wohnort: localhost

Beitrag von QT » 04.10.2004 18:05:50

Ok, nochmal etwas langsamer :-)

Normalerweise laed hotplug alle noetigen Module, wenn Du den Stick einsteckst. Wenn Du natuerlich das sd_mod Modul vorher laedst, kann es noch keine Platte finden und dann kann es auch gut sein, dass es nicht geht, wenn Du den Stick einsteckst. Entlade doch mal alle Module in diesem Bereich (sd_mod, scsi_mod, usb_storage) und dann stecke einfach Deinen Stick ein und schau dann nochmal mit "dmesg" und "lsmod" nach (auch im syslog mal schauen), ob dann eine Platte gemeldet wird......

Benutzeravatar
Felix
Beiträge: 453
Registriert: 17.02.2003 10:26:57
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von Felix » 04.10.2004 18:36:18

:oops: hotplug 8O daaaaaas erklaert natuerlich einiges. *raeusper* das haette ich mir ja wirklich selbst zusammen reimen koennen. Ich werde die hotplug unterstuetzung gleich mal einkompilieren :D.

Benutzeravatar
Felix
Beiträge: 453
Registriert: 17.02.2003 10:26:57
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von Felix » 04.10.2004 20:36:37

Jippy :) es funktioniert. Leider aber noch nicht ganz 100%ig so wie ich will. Also folgendes: nach dem Booten sind bei mir sd_mod, scsi_mod und usbcore als Module geladen. Hotplug hab ich fest einkompiliert. Der SCSI Kram ist schon geladen weil ich nen onBoard SCSI Controler habe. Den aber garnicht benutze, er sich im BIOS aber auch nicht 100%ig abstellen laesst. Nungut. Ich habe mal mit rmmod den SCSI kram rausgenommen und dann den USB Stick reingepackt. Passiert genausowenig wie vorher was. Nun habe ich aber mal folgendes gemacht:

Code: Alles auswählen

tiffi:/usr/src/kernel-source-2.6.8# modprobe ohci_hcd
tiffi:/usr/src/kernel-source-2.6.8# modprobe usb_storage
tiffi:/usr/src/kernel-source-2.6.8# modprobe scsi_mod
tiffi:/usr/src/kernel-source-2.6.8# modprobe sd_mod
tiffi:/usr/src/kernel-source-2.6.8# mount /mnt/USBStick/
tiffi:/usr/src/kernel-source-2.6.8# lsmod
Module                  Size  Used by
sd_mod                 16512  2 
usb_storage            27872  1 
scsi_mod               73208  2 sd_mod,usb_storage
ohci_hcd               19652  0 
usbcore                74560  2 usb_storage,ohci_hcd
af_packet              13960  2 
nls_iso8859_1           3712  2 
nls_cp437               5344  3 
apm                    19376  0 
tiffi:/usr/src/kernel-source-2.6.8# 
Super, der USBStick liess sich einwandfrei auf sda1 mounten. Soweit so gut. Aber wie bekomme ich das hin das er das auch von selbst schafft ohne das ich alle Module von Hand reinnehmen muss?

Benutzeravatar
QT
Beiträge: 1372
Registriert: 22.07.2004 21:08:02
Wohnort: localhost

Beitrag von QT » 04.10.2004 20:49:57

Cool, dass es geht! Um das Problem dauerhaft zu lösen, gibts IMO verschiedene Ansätze, je nachdem, wie die Treiber derzeit konfiguriert sind (sprich modul oder im kernel). Für Deine SCSI Karte könntest Du zB jeglichen Support im Kernel deaktivieren oder als Modul bauen und in die Blacklist von Hotplug eintragen. Bei Treibern fest im Kernel könnten auch entsprechende Bootoptionen helfen, um ein Gerät zu deaktivieren.

Im Falle von Modulen solltest Du /etc/modules entrümpeln bzw. in /etc/hotplug/blacklist eintragen. Auch definierte aliase in /etc/modprobe.d/ könnten dafür sorgen, dass der SCSI Kram vorher geladen. Also auch hier mal reinsehen....

Benutzeravatar
Felix
Beiträge: 453
Registriert: 17.02.2003 10:26:57
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von Felix » 04.10.2004 21:05:42

Hae? Das hab ich jetzt nicht verstanden. Ich bin da etwas langsam. Der SCSI und der USB Kram is bei mir alles als Module kompiliert sonst hab ich fast ausschliesslich alles im Kernel fest drin (gefaellt mir ja auch besser, aber der USB Stick wird ja nicht so oft am PC sein. Ich vermute nur das der SCSI Kram schon nach dem Booten drin is, weil ich son SCSI Controller onBoard habe. In meiner /etc/modules steht nur:

Code: Alles auswählen

apm smp=1 power_off=1
:D da kann ich nix aufraeumen glaub ich. Sooo, kannst du mir jetzt nochmal etwas langsamer erklaeren was ich nun machen soll?

Benutzeravatar
QT
Beiträge: 1372
Registriert: 22.07.2004 21:08:02
Wohnort: localhost

Beitrag von QT » 04.10.2004 21:16:33

Ich vermute, dass der hotplug Dienst, der beim Booten gestartet wird, die Treiber für die onboard SCSI Karte läd. Trag doch mal den Treiber (welcher ist es denn?) dieser Karte in /etc/hotplug/blacklist ein.

Interessant wären halt auch die relevanten Passagen eines Bootlog, dass man sehen kann, wann SCSI geladen wird. Schau mal in /var/log/boot nach.

Benutzeravatar
Felix
Beiträge: 453
Registriert: 17.02.2003 10:26:57
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von Felix » 04.10.2004 21:53:00

Also ne /var/log/boot gibbet bei mir nich 8O . Mit dem SCSI Treibern sieht es wie folgt aus: Beim Booten wird das Module scsi_mod und sd_mod mitgeladen. Warum, is mir raetselhaft. Nen anderer Treiber wird fuer meinen Controller nicht geladen. Ich habe auch keine anderen SCSI Module mitkompiliert. Weder als Modul noch fest in den Kernel. dmesg spuckt nach dem booten folgendes aus:

Code: Alles auswählen

SCSI subsystem initialized
eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
NET: Registered protocol family 17
usbcore: registered new driver hub
Das wars. Wenn ich den Kram per Hand (wie vorhin beschrieben) einbinde sieht das so aus:

Code: Alles auswählen

ohci_hcd: 2004 Feb 02 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI)
ohci_hcd: block sizes: ed 64 td 64
ohci_hcd 0000:00:0c.0: OPTi Inc. 82C861
ohci_hcd 0000:00:0c.0: irq 11, pci mem e2940000
ohci_hcd 0000:00:0c.0: new USB bus registered, assigned bus number 1
ohci_hcd 0000:00:0c.0: WARNING: OPTi workarounds unavailable
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
usb 1-1: new full speed USB device using address 2
usb 1-2: new full speed USB device using address 3
SCSI subsystem initialized
Initializing USB Mass Storage driver...
scsi0 : SCSI emulation for USB Mass Storage devices
  Vendor: Samsung   Model: Mighty Drive      Rev: PMAP
  Type:   Direct-Access                      ANSI SCSI revision: 02
USB Mass Storage device found at 2
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
SCSI device sda: 502784 512-byte hdwr sectors (257 MB)
sda: assuming Write Enabled
sda: assuming drive cache: write through
 sda: sda1
Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0
usbcore: deregistering driver usb-storage
Wenn ich jetz die SCSI Module in die blacklist eintrage, kann hotplug dann ueberhaupt den SCSI starten wenn in den USB Stick reinstecke? Dann nochwas :oops: Bitte nich schuempfen, aber ich brauch doch sicher noch das Debianpacket hotplug oder? Nich nur den Support im Kernel. Ich werd gleich mal apt-getten.

Achja, ich war inzwischen fleissig und hab mal den usblp genauso mit moprobe eingebunden. Und siehe da meinem Drucker liess sich eine Testseite entlocken :). Also auf dem richtigen Weg scheine ich zu sein :). Vielen Dank schonmal bis hierhin.

Benutzeravatar
Felix
Beiträge: 453
Registriert: 17.02.2003 10:26:57
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von Felix » 04.10.2004 22:21:00

Ok, hab grad mal den Rechner komplett neu gestartet. Vorher habe ich noch die Debianpackete hotplug und usb_utils installiert. Folgender Stand der Dinge: Nach dem Hochfahern war jetzt scsi_mod und sd_mod aktiv. usbcore und der restliche USBKram fehlten. Wenn ich per hand usbcore, ohci_hcd und usb_storage einbinde kann ich als root den USB Stick mounten. Mit dem Drucker ist es genauso. Ich muss das entsprechende Modul immernoch per Hand laden.

Benutzeravatar
Felix
Beiträge: 453
Registriert: 17.02.2003 10:26:57
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von Felix » 08.10.2004 17:56:46

Ich habe mich nach kurzer Pause heute wieder mit dem Problem beschaeftigt. Ich habe die Sache auf folgende Ursache zurueckfuehren koennen:

Code: Alles auswählen

tiffi:/usr/src/kernel-source-2.6.8# /etc/init.d/hotplug start
Kernel hotplug support not enabled.
Das ist aber relativ merkwuerdig, denn ich habe den Support im Kernel aktiviert.
Hier mal die eintraege in meiner KernelConfig:

Code: Alles auswählen

CONFIG_HOTPLUG=y

CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_OBSOLETE_MODPARM=y
CONFIG_KMOD=y
Das sollte doch alles sein was Hotplug benoetigt oder? Kann mir da jemand weiterhelfen.

Benutzeravatar
QT
Beiträge: 1372
Registriert: 22.07.2004 21:08:02
Wohnort: localhost

Beitrag von QT » 08.10.2004 20:08:21

Und welche KernelConfig hast Du da durchsucht? Also ich meine welche Datei genau oder wo kommt die Info her? Die Config des momentan laufenden Kernel gibt es entweder in /boot/config-`uname -r` oder in /proc/config.gz, wenn man den entsprechenden Support (CONFIG_IKCONFIG_PROC=y glaub) im Kernel hat.

Benutzeravatar
Felix
Beiträge: 453
Registriert: 17.02.2003 10:26:57
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von Felix » 08.10.2004 21:04:58

Ich hab die Config durchsucht die bei mir unter /boot/config... liegt und da hab ich selbstverstaendlich die genommen die zu der Kernelversion passt die ich kompiliert habe. Bin mir ziehmlich sicher das das die Config von meinem laufenden Kernel ist. Habe zur Kontrolle eben trotzdem mal mit: /boot/config-`uname -r` geschaut. Und kann nur bestaetgen das die Optionen da alle aktiviert sind. Deswegen ja meine grosse Verwunderung zu der Systemmeldung.

Benutzeravatar
Felix
Beiträge: 453
Registriert: 17.02.2003 10:26:57
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von Felix » 09.10.2004 12:06:30

Ich hab mir mal das Script /etc/init.d/hotplug angeschaut. Das prueft als erstes ob /proc/sys/kernel/hotplug vorhanden ist. Das ist es bei mir nicht. Obwohl ich den Kernel doch mit Hotplug kompiliert habe. Hat denn niemand ne Idee was das sein koennte?

Benutzeravatar
Felix
Beiträge: 453
Registriert: 17.02.2003 10:26:57
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von Felix » 09.10.2004 14:54:10

Soooooohoooo, da ich ein sehr sturer Mensch bin und nicht so schnell aufgebe habe ich mal meinen Kernel nochmal neu kompiliert und siehe da, nun geht auch das Hotplug. Warum das vorher nicht ging weiss der Teufel. Ich habe das eindeutig schon vorher in der Config gehabt. Nungut. Hotplug tut jetzt seinen Dienst einwandfrei. Ich habe allerdings diesmal usbcore und ohci_hcd (also die beiden dinger fuer meinen USBController) nicht als Module sondern fest in den Kernel kompiliert. Schalte ich nun den Drucker an, wird sofort usblp nachgeladen und wenn ich den Stick einstecke wird usb_storage und der scsi Kram nachgeladen. Alles genau wies sein soll :). Kann den USB Stick jetzt wunderbar mounten und werde mir nun in Ruhe den Drucker richtig einrichten. Vielen Dank nochmal an die riesen Hilfe, ohne euch wuerde ich da jetzt noch einige Stunden dran verbringen. Vielleicht hilft der Thread ja auch jemand anderem weiter. Is ja so ziehmlich alles dabei was man beachten koennte wenn man nen USB Stick zum laufen bekommen will :D.

Benutzeravatar
QT
Beiträge: 1372
Registriert: 22.07.2004 21:08:02
Wohnort: localhost

Beitrag von QT » 09.10.2004 16:17:31

Hey, prima Felix. Schön, dass es nun endlich läuft und auch dass Du hartnäckig bist :-)
Felix hat geschrieben:Ich habe allerdings diesmal usbcore und ohci_hcd (also die beiden dinger fuer meinen USBController) nicht als Module sondern fest in den Kernel kompiliert.
Persönlich halte das für keine gute Idee, aber das ist natürlich jedem seine persönliche Sache. Solltest Du aber jemals mit zB suspend2disk oder sonstigen Suspend-Geschichten (Thema ACPI zB) liebäugeln, dann machen sich fest einkompilierte USB und eventuell auch IEEE1394 Treiber schlecht, denn das sind i.A. meist die Problemkandidaten dabei. Solange das mit dem Hotplug funktioniert, solltest Du also auch getrost Module nehmen können. Kannste ja beim nächsten Kernelupdate mal probieren, eilt ja nicht ;-)

Benutzeravatar
Felix
Beiträge: 453
Registriert: 17.02.2003 10:26:57
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von Felix » 09.10.2004 19:03:42

Danke fuer den Hinweiss :). Auf meinem Desktop benutze ich sicherlich kein ACPI, aber fuer mein Laptop das jetzt auch USB Unterstuetzung bekommen soll, ist das natuerlich ein sehr wichtiger Hinweiss.

Antworten