[linux] Re: Unpluggen van USB laat linux crashen

Huub Reuver h_reuver op mantell.xs4all.nl
Do Sep 21 20:15:13 CEST 2006


On Thu, Sep 21, 2006 at 08:59:57AM +0200, Ulrich Gr??n wrote:
> Hola,
> 
> is dat bij iemand bekend? Wanneer ik een USB-geluidskaart (M-Audio) unplug 
> (zodat die na 'replug' gebruikt kan worden voor vmware) loopt een deel van 
> het systeem vast.
> Wat vast loopt is alleen het toetsenbord, de rest (bijv. muis, interne 
> geluidskaart, etc.) blijft gewoon doordraaien. Met SysRq lukt het soms nog 
> wel om de boel enigzins af te sluiten. 
> Mij verbaast dat dit gebeurt bij iets als een USB-geluidskaart, temeer een 
> geluidskaart niet zo belangrijk is als bijv. grafische kaart en USB toch 
> juist unplugged zou moeten kunnen worden uit een lopend systeem. . .

Je kunt ook uitstappen uit een auto door een deur open te doen en
uit te stappen. Het is misschien handiger de auto eerst stil te zetten.

Wat jij moet hebben is een sounddriver in usermode (= niet in de kernel).

> Na herstart waren volgende meldingen in mijn /var/log/messages voorhanden: 
> (vaak alleen eerste 5 meldingen, maar ik geloof dat ik in dit geval 
> <alt><sysrq><8> gaf, vandaar)
> 
> Sep 20 22:52:14 dzjembee kernel: usb 3-1: USB disconnect, address 2
> Sep 20 22:53:51 dzjembee kernel: usb 3-1: new full speed USB device using 
> uhci_hcd and address 3
> Sep 20 22:53:51 dzjembee kernel: ALSA sound/core/init.c:106: cannot find the 
> slot for index 1 (range 0-1)
> Sep 20 22:53:51 dzjembee kernel: ALSA sound/usb/usbaudio.c:3063: cannot create 
> card instance 0
> Sep 20 22:53:51 dzjembee kernel: snd-usb-audio: probe of 3-1:1.0 failed with 
> error -5

OK, deur is open met normale snelheid...

Probeer voor het uitpluggen eerst eens de soundmodule te rmmod-en.
Even uit de manpage:
       rmmod -- simple program to remove a module from the Linux Kernel
       rmmod [-f]  [-w]  [-s]  [-v]  [modulename]

       -f --force
                 This  option  can  be  extremely  dangerous: it has no effect
                 unless CONFIG_MODULE_FORCE_UNLOAD was set when the kernel was
                 compiled.  With this option, you can remove modules which are
                 being used, or which are not designed to be removed, or  have
                 been marked as unsafe (see lsmod(8)).

Het probleem is dus om een module uit een draaiende kernel te halen vraagt
om problemen in de kernel. 

Dit is al link als de hardware nog beschikbaar is. Als de hardware verdwenen
is kun je rekenen op een time-out of als je pech hebt een crash.

Als je dan ook nog reverse-engineered hardware hebt heb je waarschijnlijk 
een crash. In jouw geval in elk geval een timeout en daarna een coredump.

> Sep 20 23:00:01 dzjembee hald[7872]: Timed out waiting for hotplug event 1405. 
> Rebasing to 1415
..
> Sep 20 23:00:05 dzjembee kernel: Modules linked in: Win4Lin mki_adapter 
> ... snd_usb_audio snd_usb_lib usbcore snd_rawmidi snd_seq_device 
> snd_intel8x0 snd_ac97_codec snd_pcm snd_timer snd soundcore snd_page_alloc 
> piix

Volgens mij is zelfs onder Windows de normale volgorde een device uit te
schakelen en dan uit het systeem te halen.

Dien vriendelijk een verzoek in bij de mensen die de module onderhouden.
Verwacht niet al te snel een werkende oplossing.

Met vriendelijke groet,
Huub Reuver




More information about the Linux mailing list