# USB  Drucker

## pommespaula

Hi,

kann bin aus Kernel 2.6.8.1-gentoo-r2 umgestiegen und habe probleme mit dem usb. kann mir jemand vieleicht sagen usb-kernel module ich alles gebrauche und wo ich sie beim backen finde?

(ich denke dieses ist kein DUB, habe gesucht aber nix direktes der gleichen gefunden, nur auf bestimmte geräte spezialiesierte sachen).

Die meisten USB-Module finde ich ja eigentlich auch wieder, aber USB-Core kann ich nirgends entdecken.

DankeLast edited by pommespaula on Thu Sep 23, 2004 3:50 pm; edited 1 time in total

----------

## hecatomb

```
Device Drivers -> USB Support -> Support for Host-side USB
```

und in der .config sollte das dann so heißen:

```
CONFIG_USB=y (=m)
```

----------

## pommespaula

in welcher .config???? kernel*.config (hab gerade sowas gefunden)

----------

## pommespaula

bei mir steht:

CONFIG_USB=m in /etc/kernels/kernel-26.8-gentoo-r3 was wohl für Modul steht. welches Modul soll ich dann laden, einfach USB?

----------

## hecatomb

Von der Version her würde ich sagen, das ist die config von deinem "alten" kernel (kernel-2.6.8-gentoo-r3).

Wenn du nicht allzuviel an der Konfiguration herumgespielt hast funktioniert folgendes: Die config des aktuell laufenden Kernel ist in dem virtuellen Dateisystem /proc zu finden:

```
zgrep CONFIG_USB /proc/config.gz
```

Wenn es ein Modul ist sollte modprobe usbcore denke ich den Erfolg bringen. Du musst allerdings auch noch den richtigen Treiber (OHCI/UHCI/EHCI) für deinen controller im kernel (oder als modul) haben!

----------

## pommespaula

hi,

bekommes es einfach nicht hin habe jetzt folgende sachen fest in den Kernel gebacken.

hier die ausgabe von: zgrep CONFIG_USB /proc/config.gz

 *Quote:*   

> 
> 
> CONFIG_USB=y
> 
> CONFIG_USB_DEBUG=y
> ...

 

und lspci | grep USB liefert diese:

 *Quote:*   

> 
> 
> 0000:00:03.0 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 0f)
> 
> 0000:00:03.1 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 0f)
> ...

 

USB mein Drucker wird aber trotzdem nicht erkannt. (jedenfalls steht er nicht unter /dev/usb/), da gibt es seit dem Umstieg nur den Ordner 'hid' neu.

Oder werden die USB-devices beim 2.6 Kernel irgendwo anders registriert und ich hab einfach nur den flaschen Device?

Was mache ich denn nun falsch, ich will doch nur einmal ein voll funktionierdes System. BITTE!!!

----------

## hecatomb

Also dein Controller wir ja wohl schon erkannt, das ist doch schon was.

Mit USB-Druckern kenne ich mich nicht aus, aber da hilft bestimmt das weiter: http://www.gentoo.org/doc/de/printing-howto.xml

Du kannst vorher aber prinzipiell noch nachschauen ob der Drucker vom Kernel richtig erkannt wurde.

```
lsusb
```

Dort sollte er auf jeden Fall auftauchen.

Ein guter Weg bei USB nach Fehlern zu suchen ist meiner Meinung nach der:

- Gerät ausstecken

- Gerät einstecken

- dmesg ausführen

Ganz am Ende sollte dann zu sehen sein, ob das Gerät erkannt wurde oder ob eventuell Fehler dabei auftreten!

----------

## pommespaula

hi,

lsusb zeigt bei mir nix an bleibt nur hängen und dmesg zeigt auch nix von usb-drucker an.

----------

## hecatomb

lsusb hängt bei meinem USB-Telefon auch ab und zu, etwas Geduld!!

----------

## pommespaula

na gut werde mich in geduld üben, hab aber nicht viel hoffnung

----------

## pommespaula

so der Drucker wird erkannt wenn ich ihn am Start anstelle, jedoch möchte ich ihn auch gerne verwenden ohne den rechner jedes mal neu zustarten. 

Ich denek es liegt also nicht an den modulen wie ich erst angenommen habe sondern an dem Plug und Play Optionen. 

hat da jemand vieleicht eine Lösung?

----------

## hecatomb

Was ist das überhaupt genau für ein Drucker.

Möglicherweise findet sich mit der Angabe schneller eine Lösung  :Wink: 

----------

## pommespaula

ein Canon i550x, lief aber mit TurboPrint und Cups mit dem 2.4.7 Kernel(genkernel kompiliert) problemlos.

----------

## pommespaula

ist es denn nicht irgendwie möglich 'lp0' fest in /dev/usb/ zu behalten? sagen wir selbst wenn ich dne drucker abmache?

----------

## pommespaula

keiner eine idee? muss ich meinen 2.4.7??????

ich werde in der zwischenzeit kernel 2.6.7 ausprobieren??????????

----------

## ignatz

 *pommespaula wrote:*   

> so der Drucker wird erkannt wenn ich ihn am Start anstelle, jedoch möchte ich ihn auch gerne verwenden ohne den rechner jedes mal neu zustarten. 
> 
> Ich denek es liegt also nicht an den modulen wie ich erst angenommen habe sondern an dem Plug und Play Optionen. 
> 
> hat da jemand vieleicht eine Lösung?

 

emerge hotplug && rc-update add hotplug default

----------

## pommespaula

hotplug ist installiert und steht auch schon auf default. wird beim starten ja auch erkannt der drucker doch nicht wenn ich ihn im nachhinein anstelle.

und /etc/hotplug.conf restart funktioniert beim 2.6.7 kernel auch nicht merh!!!!!!!

----------

## hecatomb

Es ist sehr schwer dir zu helfen, wenn immer nur solche Aussagen wie das hier kommen:

 *Quote:*   

> und /etc/hotplug.conf restart funktioniert beim 2.6.7 kernel auch nicht merh!!!!!!!

 

Ist echt nicht böse gemeint! Aber etwas mehr Auskünfte (copy&paste der Fehlermeldungen, /var/log/messages, dmesg, ...) wären schon sehr hilfreich, im Hellsehen bin ich über den Einsteigerkurs noch nicht raus  :Wink: 

Wie gesagt, mit USB-Drucker hab ich noch nichts gemacht, aber wenn der mit dem 2.4.7 (? 2.4.27 ?) lief, dann denke ich solltest du den auch mit nem 2.6.x zum Laufen kriegen!

Bist du mal nach dem "Gentoo Printing HOWTO" vorgegangen? Was ist dabei rausgekommen.

Noch ein ganz anderer Tipp, boote doch mal knoppix (mit nem 2.6.x), damit hab ich schon alles zum Laufen gebracht! Wenn er da rennt, dann kannst sicher sein, dass es möglich ist ihn auch unter Gentoo richtig einzurichen.  :Smile: 

----------

## pommespaula

hi

sorry werde mich jetzt mal bemühen alles zusammen zutragen.

Hier nochmal den Stand der Dinge: der USB-Drucker wird nur erkann wenn ich ihn beim starten anstelle (also von hotplug vermutlich), jedoch fehlt der Drucker-Device, wenn ich ihn bei laufendem Betrieb anstelle.(vermutlich funktioniert plug && play für usb nicht richtig).

Nach dem Printig-Howto bin ich auch vorgegangen. Alle USB-Drucker relevanten Module sind fest in den Kernel eingebacken.

Hier mal alle Infos die ich zusammentragen konnte (Drucker wurde bei laufendem Betrieb angestellt, ist vermutlich wichtig bei dmesg  zu wissen):

Ausgabe von: tail /var/log/messages

 *Quote:*   

> 
> 
> Sep 24 10:00:00 tux CRON[7516]: (root) CMD (rm -f /var/spool/cron/lastrun/cron.hourly)
> 
> Sep 24 10:10:00 tux CRON[7538]: (root) CMD (test -x /usr/sbin/run-crons && /usr/sbin/run-crons )
> ...

 

nach dme printing howto, sollte etwa folgendes hier stehen:

 *Quote:*   

> 
> 
> hub.c: USB new device connect on bus2/2, assigned device number 2
> 
> printer.c: usblp0: USB bidirectional printer dev 2 if 0 alt 1 proto 2 vid 0x03F0 pid 0x1104
> ...

 

Ausgabe von dmesg:

 *Quote:*   

> 
> 
> r 2.1.15 [Flags: R/O].
> 
> udf: registering filesystem
> ...

 

So ich hoffe das reicht. sorry, dass ich mich vorher nicht gleich so geäußert habe.

----------

## Anarcho

Also ich habe mit meinem USB Drucker unterm 2.6er Kernel keine Problem, aber meiner ist auch immer an.

Ich würde vielleicht mal versuchen USB_Printer als modul zu kompilieren. Das kann schonmal helfen.

Hotplug müsste das dann laden, wenn der drucker im betrieb angemacht wird.

----------

## pommespaula

werde ich auch mal ausprobieren, jedoch scheint der usb printer garnicht registriert zu werden wenn er im betrieb angemacht wird.

aber ich probiere es aus und melde mich dann nochmal! Danke

----------

## hecatomb

Wenn du den Drucker einsteckst, anmachst und dann erst bootest wird er erkannt, richtig? Funktioniert er dann auch so wie er soll?

Wenn ja, dann scheint mir da nur ein Problem mit dem hotplugging zu sein.

Ist hotplug im kernel an?

```
# zgrep CONFIG_HOTPLUG /proc/config.gz
```

Dann sollte im /proc auch der Pfad für das binary zu finden sein, dass ausgeführt wird (wenn du z.B. deinen Drucker einsteckst):

```
# cat /proc/sys/kernel/hotplug

/sbin/hotplug
```

Vielleicht hilft es auch etwas das userland tools für hotpug nocheinmal neu zu emergen!

----------

## pommespaula

Wenn ich USB_Printer als Modul einbaue, wird deer drucker nicht einmal mehr beim Start erkannt!!!!

hot plug ist im kernel an. und der pfad /sbin/hotplug ist auch zu finden.

/sbin/hotplug liefert dann folgendes:

 *Quote:*   

> 
> 
> Usage: /etc/hotplug.d/default/default.hotplug AgentName [AgentArguments]
> 
> AgentName values on this system:  dasd firmware ieee1394 input net pci scsi tape usb
> ...

 

Welches Userland Tool???????

----------

## Anarcho

Dann scheint es wohl definitiv am hotplug zu liegen. 

Hast du denn auch mal versucht das Modul manuell mit modprobe zu starten? dann sollte dmesg was anzeigen.

----------

## hecatomb

/sbin/hotplug wir vom kernel aufgerufen, da musst du selbst nichts machen. Der Kernel gibt dann z.B. usb als Parameter mit!

Das hotplugging besteht zum einen aus dem Teil im Kernel (hast du mit reinkompiliert) und zum anderen aus 'userland' tools. Das sind einfach nur ganz normale Programme.

http://packages.gentoo.org/search/?sstring=hotplug

Sind die "überhaupt" installiert? Wenn nicht emergen und sonst mal runterhauen und neu emergen!

Wird das Modul (wenn du den usb-printer-support nicht fest mit reinkompilierst) überhaupt geladen (lsmod)?

----------

## pommespaula

nein es werden nur folgende dinge geladen:

 *Quote:*   

> 
> 
> Module                  Size  Used by
> 
> ohci1394               29572  0
> ...

 

----------

## pommespaula

hab nun auch alle hotplug sachen neu installiert:

hotplug (war vorher bereits - gleich version)

hotplug-base (war vorher bereits - gleich version)

pcihpview (gabs vorher nicht sollte aber nix mit usb -drucker zu tun haben)

usbmidi (gabs vorher nich sollte aber nix mit usb-drucker zu tun haben)

Nun weiß ich wirklich nix mehr, außer back to the roots (oder vieleicht versuche ich mal einen genkernel)!!!!!

Ach noch etwas: kann mir jamand sagen wie ich hotplug manuell ausführe, frühere ging es mit /etc/conf.d/hotplug restart. mit dem neuen kernel hat sich das anscheined geändert!!!

----------

## hecatomb

```
# /etc/init.d/hotplug restart
```

Sollte das wohl sein!?!  :Wink:  Kommt da ein Fehler? Wenn ja welcher?

Lass mich raten, du hast hotplug nicht beim Starten eingetragen.

```
# rc-update add hotplug default
```

----------

## pommespaula

klar steht schon immer auf default!!!!!!!!!!!!! So einfach wirds leider nicht!!!

----------

## pommespaula

so jetzt raffe ich nix mehr, mitlerweile funtzt der drucker auch nicht mehr wenn ich ihn beim start an habe:

/etc/init.d/hotplug restart liefert mitlerweile folgendes (ist auf jednefall neu):

 *Quote:*   

> 
> 
> * Stopping input hotplugging...                                          [ ok ]
> 
>  * Stopping pci hotplugging...                                            [ ok ]
> ...

 Last edited by pommespaula on Thu Sep 30, 2004 3:56 pm; edited 1 time in total

----------

## hecatomb

Hmm also das sieht nicht schön aus. Scheint mir zweimal die Ausgabe von set zu sein.

Habe mal die Scripte etwas durchgeschaut. In der Datei /etc/hotplug/usb.agent in der Funktion 'usb_map_modules' scheint mir der Fehler aufzutreten.

Diese liest (soweit ich das sehe) die /lib/modules/<kernel-version>/modules.usbmap aus.

Möglich, dass bei dem vielen Kernel installieren dort drin etwas durcheinander geraten ist. Mein Tipp ist IMMER wenn man den kernel mit der selben Version nocheinmal kompiliert vor dem Installieren der Module die alten komplett zu zu löschen (rm -rf /lib/modules/<kernel-version> && make modules_install)! Die werden zwar überschrieben, aber wenn du z.B. ein Modul aus der config nimmst bleibt das dort im Verzeichnis liegen und kann dann später Probleme machen!

Mehr fällt mir zu dem Output im Moment nicht ein!  :Wink: 

----------

## pommespaula

hey und wie siehts aus? reicht es wenn ich alle kernels mit samt allen modulen(so wie du es beschrieben hast) entferne. oder muss gar eine neuinstalltion des Systems herhalten?

----------

## hecatomb

Ich denke das System ist soweit noch intakt, also würde ich erst mal nur den Kernel nochmal komplett neu installieren.

Als erstes entscheidest du dich für eine Version. Ich benutze in der ganzen Beschreibung jetzt einfach mal 'linux-2.6.8.1'!

Deinen "Wunschkernel" emergest du oder lädst ihn dir von kernel.org oder wie auch immer.

Dann das ganze in /usr/src installieren oder entpacken (geschieht beim emergen automatisch)

Um auch den richtigen Source zu benutzen solltest du nun den Link anpassen.

```
ls -l /usr/src
```

'linux' sollte ein Link sein und auf eines der Verzeichnisse zeigen.

```
rm /usr/src/linux

ln -s linux-2.6.8.1 /usr/src/linux
```

Ok dann kann es auch schon losgehen (# bezeichnen Kommentare):

```
# mal alles aufräumen:

cd /usr/src/linux

make mrproper

# Laufende Kernelconfig reinkopieren:

zcat /proc/config.gz > .config

# Den Kernel nach dieser .config konfigurieren:

make oldconfig

# Falls nötig, kannst du noch selbst etwas ändern:

(make menuconfig)

# Kernel kompilieren

make

# Die "alten" Module löschen

# (wenn das Verzeichnis nicht existiert

# war wohl noch nie diese Version des

# Kernels installiert. Kannst dir also

# das löschen in dem Fall sparen ;-)):

rm -rf /lib/modules/linux-2.6.8.1

# die neuen Module installieren

make modules_install

# /boot mounten :!:

mount /boot

# Kernel kopieren

cp arch/i386/boot/bzImage /boot/kernel-2.6.8.1

# System.map kopieren (wird von manchen tools benötigt)

cp System.map /boot/System.map-2.6.8.1

# .config kopieren (damit hat man die config zum Kernel immer bei der Hand)

cp .config /boot/config-2.6.8.1
```

Nun noch in der grub.conf einen neuen Eintrag erstellen um den Kernel testen zu können (zur Sicherheit den alten mal noch nicht rausschmeißen).

```
umount /boot

reboot
```

Dann mal beobachten was "Starting hotplugging" so sagt und dann /etc/init.d/hotplug restart testen.

p.s. Könntest du den riesigen Post etwas in der Breite stutzen? Das Scrollen nach rechts ist ziemlich ungeschickt!

----------

## pommespaula

hab jetzt mein system neu gemacht. hat die situation aber nicht wirklich verbessert. 

nach ausprobieren an den kernel einstellungen habe ich herausgefunden, dass usb selbst läuft wenn ich nur ohci_hcd aktiviere. wenn ich jedoch auch usb2 (ehci_hcd) und den usb drucker (usblp) lade stürzt er ab.

ansonsten erkennt er brav meinen usb scanner und usb card reader.

Kann das am Kernel selbst liegen (Bug?). Nutzt vieleicht sonst noch jemand ein SiS Motherboard mit Kernel 2.6.8-gentoo-r3 (oder irgend eine ander 2.6 Version, scheinen alle abzuschwirren)

Danke

----------

## zielscheibe

Mit dem USB habe ich noch keine Probleme gesehen, man muß nat. die Kerneldoku lesen (USB-UHCI-->WTF?).

Alle USB-Einstellungen modular:

```

modprobe usbcore

modprobe ohci-hcd

modprobe ehci-hcd

modprobe usbhid

```

erst danach das Druckermodul bzw. andere USB Hardware laden!

----------

## pommespaula

werde deine reihenfolge mal ausprobieren. Danke

was meinste damit:

man muß nat. die Kerneldoku lesen (USB-UHCI-->WTF?

----------

## pommespaula

hab die dokus gefunden. Danke 

mein englisch ist zwar sehr begerenzt werdem ich aber durchbeißen demnächst. jetzt packe ich erstmal die modul reihenfolge von dir in die /etc/modules.autoload.d/kernel-2.6 und schaue was passiert!!!

----------

## pommespaula

soweit schon mal danke zielscheibe. daa bin ich schon einen ganzes stück wieder weiter.

Jedoch bleiben noch zwei Probleme: 

1) Der Drucker wird nur von hotplug erkannt wenn der rechner neugestartet wird.

2)Hotplug stürzt beim beenden ab. Bei Stoopping USB hotplug stürzt er ab und wird nicht richtig heruntergefahren, was nicht gut fürs Dateisystem ist. Wäre dem nicht so ließé sich das 1. Problem ja schon mit einem /etc/init.d/hotplug restart lösen!

----------

## zielscheibe

Wenn du möchtest das dir geholfen werden kann, poste unbedingt sinnvolle Syslogs.

Mein Vorschlag zur Fehlersuche:

Drucker ausschalten.

USB Module laden (usb-core, ohci-hcd, ehci-hcd, usb-hid kein  usblp )--> Output von "lsusb" und "lsmod" posten!

Drucker einschalten (ohne restart von hotplug!).

Output von "lsusb" posten (nur die Differenz)!

Output von "lsmod" posten (nur die Differenz)!

Output von "dmesg" posten (die letzten ~10 Zeilen)!

----------

