Jeg har verdens mærkeligste fejl. Læs med, den er sjov Emnet er løst

Spørgsmål, som ikke kan besvares i andre hardware-fora, bør stilles her.
zob
Redaktør
Indlæg: 4430
Tilmeldt: 6. jan 2009, 22:01
Geografisk sted: København

Jeg har verdens mærkeligste fejl. Læs med, den er sjov  Emnet er løst

Indlægaf zob » 17. nov 2009, 09:59

Ok. Jeg regner ikke med at løse det her. Derfor ingen kommandoer. Jeg vil bare gerne fortælle hvad jeg kan. Det nærmer sig nemlig magi. Jeg mener det må være nyt fra 9.10, men måske har jeg haft det hele tiden uden at opdage det.

Sagen er at jeg kan slukke for højttalerne i mit digital-klaver med import-funktionen i f-spot!! Wtf?? Det er ikke bare noget der er sket en enkelt gang. Jeg kan reproducere det. Eller rettere, jeg kan ikke bruge import-funktionen i f-spot uden at miste lyden fra mit klaver (som jeg derefter må slukke og tænde).

Det er da ret langt ude. Ok. Ret skal være ret. Klaveret er tilsluttet computeren via usb (til MIDI-brug). Men jeg var ikke engang klar over at man kunne tænde og slukke for højttalerne over usb-kablet (det må vel være en eller anden form for MIDI-kommando).

Det er sket flere gange siden jeg installerede 9.10, at jeg pludselig ikke har lyd og har været nødt til at tænde og slukke klaveret(jeg bruger normalt klaverhøjttalerne til monitors). Men her har ijeg ikke lige fået det forbundet til en bestemt handling på computeren, men der er ret sikkert andre ting end f-spot der kan kontrollere min klaverhøjttalere. Fra nu af vil jeg være opmærksom.
Senest rettet af zob 24. jan 2010, 00:48, rettet i alt 1 gang.

AJenbo
Admin
Indlæg: 20860
Tilmeldt: 15. nov 2009, 15:04
IRC nickname: AJenbo
Geografisk sted: Vanløse, København

Re: Jeg har verdens mærkeligste fejl. Læs med, den er sjov.

Indlægaf AJenbo » 17. nov 2009, 20:18

Det er da helt klart noget du skal skrive en bug om.

zob
Redaktør
Indlæg: 4430
Tilmeldt: 6. jan 2009, 22:01
Geografisk sted: København

Re: Jeg har verdens mærkeligste fejl. Læs med, den er sjov.

Indlægaf zob » 18. nov 2009, 00:33

Ja, det har du ret i Ajenbo.
Men udover, at jeg dårligt ville vide hvor jeg skulle begynde at fejlfinde sådan et underligt problem, skal jeg i den kommende tid på en mindre turné og jeg kan ikke rigtig komme til at teste og svare på opfølgende spørgsmål. Så jeg vil i hvert fald vente til efter jul, når jeg kan bruge lidt mere tid med min stationære.

Men spøjst. Jeg har lige lavet et forsøg. Jeg kan slukke højttalerne i klaveret ved at tilslutte min mp3-afspiller (Zen micro), mit digital-kamera (Canon A470 - også uden at åbne f-spot). Der sker IKKE noget ved at tilslutte andre usb-enheder, eksterne drev, printer, bluetooth-modem, etc.
Noget kunne måske pege i retningen af noget med billeder, selvom min mp3-afspiller ikke kan behandle billeder som sådan, jeg ved faktisk ikke hvad forskellen er på et eksternt usb-drev og min mp3-afspiller. Desuden kan jeg, uden at have tilkoblet føromtalte problembørn, slukke højttalerne i mit klaver ved at åbne f-spot og trykke på importér (det sker i det øjeblik jeg trykker på importer). Jeg har desuden observeret at displayet på klaveret slukkes i samme forbindes (ikke lyset, men skrifter forsvinder).

Jeg er en simpel musiker og har for nylig prøvet at fejlfinde på noget ALSA med nogle alsa-developers på deres mailing-liste. De var såmænd venlige nok, flere af dem. Men der kommer et tidspunkt hvor det bliver så teknisk at det bare er sort. Så indtil videre vil jeg lade ingeniører om bug-reports. Jeg holder mig til diverse fora og common sense. Men efter jul måske alligevel.

laoshi
Redaktør
Indlæg: 5515
Tilmeldt: 26. apr 2008, 20:52
IRC nickname: laoshi
Geografisk sted: Vejle

Re: Jeg har verdens mærkeligste fejl. Læs med, den er sjov.

Indlægaf laoshi » 18. nov 2009, 06:58

Så indtil videre vil jeg lade ingeniører om bug-reports.

det behøver du bestemt ikke gøre. Du kan sagtens rapportere en bug uden at være den som står med den opgave at få den fjernet.
Der er en vejledning til rapportering på denne side https://help.ubuntu.com/community/ReportingBugs#Filing%20bugs%20at%20Launchpad.net
Hvis det drejer sig om et program som du har til at køre, så kan du nøjes med at vælge Hjælp > Indrapporter et problem. Programmet apport indsamler så en række oplysninger, som du evt. kan gennemse inden afsendelse. Og ellers vælger du blot at sende rappporten og tilføjer dine oplysninger om, under hvilke omstændigheder du har mødt problemet. Det skal selvfølgelig helst være på engelsk, for at flest mulige kan deltage i fejlrettelsen.
"Von guten Mächten wunderbar geborgen
erwarten wir getrost was kommen mag.
Gott ist mit uns am Abend und am Morgen
Und ganz gewiss an jedem neuen Tag"

(Dietrich Bonhoeffer 1906-1945)

http://www.stromata.dk
https://wiki.ubuntu.com/FlemmingChristensen
https://launchpad.net/~laoshi

zob
Redaktør
Indlæg: 4430
Tilmeldt: 6. jan 2009, 22:01
Geografisk sted: København

Re: Jeg har verdens mærkeligste fejl. Læs med, den er sjov.

Indlægaf zob » 18. nov 2009, 14:11

Laoshi, du har ret i at hvis noget går ned, kan det være utrolig enkelt at rapportere en bug. Både fordi der er de automatiserede funktioner til indsamling af oplysniner som kan bruges når man skal rapportere. Og fordi man kan få utrolig meget hjælp ved at læse i /var/log og /home/user/.xsession-errors. Men når noget ikke går ned, når noget bare ikke virker (jeg ved godt at der kan være en sammenhæng) virker det mere uoverskueligt.
F.eks. med den LANGE fejlfinding jeg har været ude i med alsa-developers og pulseaudio-developers som skyder skylden på hinanden og så kan man ellers løbe spidsrod i mellem dem. Utroligt tidskrævende og i sidste ende, for mit vedkommende pga mine manglende kompetencer til at forstå deres sprog, uden resultat.
Det kan selvfølgelig være utroligt enkelt hvad der forårsager denne fejl, men mine uheldige erfaringer med at bruge alt for meget tid på ingenting, afholder mig fra at kaste mig ud i "officiel fejlfinding" med samme optimisme som tidligere. Og min intuition (for jeg har ikke andre kompetencer på dette felt) siger mig at et problem som dette ikke er hverken nemt at rapportere (da der ikke som sådan er nogen fejl) eller fejlfinde (da meget få mennesker vil kunne deltage pga af den meget unikke sammensætning af hardware). Det er jo sandsynligt at det kun forekommer med et digital-klaver af mærket Yamaha P-250 (da denne reagerer på en bestemt måde på bestemte midi-signaler - måske).
Men, som sagt, måske efter jul.

Det vigtigste er dog, at dette er en humoristisk bug, og det er i øvrigt den eneste grund til at jeg fortæller om den. Men den er sjov og underlig på samme måde hvis min kaffemaskine slukkede når jeg brugte min el-tandbørste...

laoshi
Redaktør
Indlæg: 5515
Tilmeldt: 26. apr 2008, 20:52
IRC nickname: laoshi
Geografisk sted: Vejle

Re: Jeg har verdens mærkeligste fejl. Læs med, den er sjov.

Indlægaf laoshi » 18. nov 2009, 14:15

Ja, det virker lidt Monty Pythonsk....
"Von guten Mächten wunderbar geborgen
erwarten wir getrost was kommen mag.
Gott ist mit uns am Abend und am Morgen
Und ganz gewiss an jedem neuen Tag"

(Dietrich Bonhoeffer 1906-1945)

http://www.stromata.dk
https://wiki.ubuntu.com/FlemmingChristensen
https://launchpad.net/~laoshi

zob
Redaktør
Indlæg: 4430
Tilmeldt: 6. jan 2009, 22:01
Geografisk sted: København

Re: Jeg har verdens mærkeligste fejl. Læs med, den er sjov.

Indlægaf zob » 18. nov 2009, 22:52

Ok. Jeg kunne jo ikke holde fingrene helt væk. Måtte lige kikke i syslog, hvad der foregår med MIDI når jeg trykker importér i f-spot.

Hvis nogle skulle være interesserede var dette hvad der skete.
Først slukker og tænder jeg klaveret (med mine monitors) da lyden netop har været væk fordi jeg har tidligere har brugt importér-funktionen i f-spot. Det ser ud til at klaveret, forbundet via usb lægger sig på adresse 7 i et eller andet ehci_hcd.

Kode: Vælg alt

Nov 18 22:33:06 lars-desktop kernel: [29296.062960] usb 1-2.4: new full speed USB device using ehci_hcd and address 7
Nov 18 22:33:07 lars-desktop kernel: [29296.177679] usb 1-2.4: configuration #1 chosen from 1 choice

Venter knap 30 sek og trykker så importér. Så sker følgende (jeg har skåret en del i nogle linjer som var eksakte kopier og kun efterladt 6 linjer - der har vel været 40-50 stykker).

Kode: Vælg alt

Nov 18 22:33:31 lars-desktop kernel: [29320.659810] ALSA usbmidi.c:203: urb status -32
Nov 18 22:33:31 lars-desktop kernel: [29320.660555] ALSA usbmidi.c:203: urb status -32
Nov 18 22:33:31 lars-desktop kernel: [29320.661055] ALSA usbmidi.c:203: urb status -32
Nov 18 22:33:31 lars-desktop kernel: [29320.661555] ALSA usbmidi.c:203: urb status -32
Nov 18 22:33:31 lars-desktop kernel: [29320.662054] ALSA usbmidi.c:203: urb status -32
Nov 18 22:33:31 lars-desktop kernel: [29320.663554] ALSA usbmidi.c:203: urb status -32
Nov 18 22:33:31 lars-desktop kernel: [29320.666027] usb 1-2.4: USB disconnect, address 7


Måske mere forunderligt. Jeg gentager samme handling. Der sker det samme bortset fra at det hele nu foregår på adressen 1 nummer højere.

Kode: Vælg alt

Nov 18 22:41:39 lars-desktop kernel: [29808.322922] usb 1-2.4: new full speed USB device using ehci_hcd and address 8
Nov 18 22:41:39 lars-desktop kernel: [29808.434140] usb 1-2.4: configuration #1 chosen from 1 choice


Importér i f-spot:

Kode: Vælg alt

Nov 18 22:43:29 lars-desktop kernel: [29918.156586] ALSA usbmidi.c:203: urb status -32
Nov 18 22:43:29 lars-desktop kernel: [29918.163066] ALSA usbmidi.c:203: urb status -32
Nov 18 22:43:29 lars-desktop kernel: [29918.182683] ALSA usbmidi.c:203: urb status -32
Nov 18 22:43:29 lars-desktop kernel: [29918.202574] usb 1-2.4: USB disconnect, address 8


Det kan jeg forsætte med, eneste forskel er adressen +1.
Og, nå ja at sidste kan var der kun de 3 linjer og ikke 40-50. Men den slukkede jo alligevel.

Men alt i alt. Et eller andet med en adresse-konflikt, selv om jeg ikke forstår hvorfor f-spot absolut lige skal vælge den adressen klaveret har valgt. Der må jo være masser at tage af.

Nå hov. Prøvede det samme med min mp3-afspiller, der jo også (som f-spot) er blevet en slags fjernbetjening af mine højttalere.
Igen - tænder klaveret. Denne gang adresse 9.

Kode: Vælg alt

Nov 18 22:46:48 lars-desktop kernel: [30117.322940] usb 1-2.4: new full speed USB device using ehci_hcd and address 9
Nov 18 22:46:48 lars-desktop kernel: [30117.434383] usb 1-2.4: configuration #1 chosen from 1 choice


Herefter tilslutter jeg mp3-afspiller, som tilsyneladende vælger adresse 10.

Kode: Vælg alt

Nov 18 22:47:17 lars-desktop kernel: [30146.505061] usb 1-2.3: new high speed USB device using ehci_hcd and address 10
Nov 18 22:47:17 lars-desktop kernel: [30146.615404] usb 1-2.3: configuration #1 chosen from 1 choice
Nov 18 22:47:17 lars-desktop kernel: [30146.874793] ALSA usbmidi.c:203: urb status -32
Nov 18 22:47:17 lars-desktop kernel: [30146.875765] ALSA usbmidi.c:203: urb status -32
Nov 18 22:47:17 lars-desktop kernel: [30146.876264] ALSA usbmidi.c:203: urb status -32
Nov 18 22:47:17 lars-desktop kernel: [30146.877147] ALSA usbmidi.c:203: urb status -32
...

Det ender dog skidt alligevel, da den vælger at jorde kanal 9 på trods af at den havde fået egen adresse (10).

Kode: Vælg alt

Nov 18 22:47:17 lars-desktop kernel: [30147.031764] ALSA usbmidi.c:203: urb status -32
Nov 18 22:47:17 lars-desktop kernel: [30147.031893] usb 1-2.4: USB disconnect, address 9


Ak ja. Det er så hvad jeg har af data i øjeblikket.

zob
Redaktør
Indlæg: 4430
Tilmeldt: 6. jan 2009, 22:01
Geografisk sted: København

Re: Jeg har verdens mærkeligste fejl. Læs med, den er sjov.

Indlægaf zob » 18. nov 2009, 23:15

Lidt mere info.
Jeg har flyttet klaveret til usb direkte i computeren. Det ændrer ikke noget i praksis. Højttalerne i klaveret slukkes stadig f.eks. når jeg trykker importér i f-spot. Der er dog noget nyt. Der er dukket en ny linje op i syslog.
Her først tænde klaver - de første 2 linjer (nu hedder det ochi_hcd), så tilslutte mp3-afspiller - resten af linjerne.

Kode: Vælg alt

Nov 18 23:01:21 lars-desktop kernel: [30990.472543] usb 3-3: new full speed USB device using ohci_hcd and address 2
Nov 18 23:01:21 lars-desktop kernel: [30990.699225] usb 3-3: configuration #1 chosen from 1 choice
Nov 18 23:01:37 lars-desktop kernel: [31006.402912] usb 1-2.3: new high speed USB device using ehci_hcd and address 12
Nov 18 23:01:37 lars-desktop kernel: [31006.515633] usb 1-2.3: configuration #1 chosen from 1 choice
Nov 18 23:01:37 lars-desktop kernel: [31006.670078] usb 3-3: USB disconnect, address 2
Nov 18 23:01:37 lars-desktop kernel: [31006.683228] usb 3-3: usbfs: USBDEVFS_CONTROL failed cmd gvfs-gphoto2-vo rqt 128 rq 6 len 1000 ret -108

Så samme forløb med f-spot.

Kode: Vælg alt

Nov 18 23:06:29 lars-desktop kernel: [31298.153154] usb 3-3: new full speed USB device using ohci_hcd and address 3
Nov 18 23:06:29 lars-desktop kernel: [31298.400805] usb 3-3: configuration #1 chosen from 1 choice
Nov 18 23:08:01 lars-desktop kernel: [31390.388308] usb 3-3: USB disconnect, address 3
Nov 18 23:08:01 lars-desktop kernel: [31390.390561] usb 3-3: usbfs: USBDEVFS_CONTROL failed cmd f-spot rqt 128 rq 6 len 1000 ret -108


Det nye efter jeg har flyttet klaver fra hub til pc er den manglende linje om ALSA usb, men til gengæld er der en ny linje om USBDEVFS_CONTROL failed.

zob
Redaktør
Indlæg: 4430
Tilmeldt: 6. jan 2009, 22:01
Geografisk sted: København

Re: Jeg har verdens mærkeligste fejl. Læs med, den er sjov.

Indlægaf zob » 23. jan 2010, 23:24

Dette problem lader til at blive løst med den nye kerne i version 10.04. Jeg har i hvert fald testet med alpha2 versionen af 10.04 med kernel 2.6.32-11 og kan ikke genskabe problemet. Tak for hjælpen lars_t_h!

lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

USB debugging

Indlægaf lath » 24. jan 2010, 04:28

Jeg kommer lige med mere information. Det er meget teknisk, så hvis du ikke er interesseret i at vide mere, så skal du ikke læse videre.

Først lidt datahistorie i forhold til indlæggets titel.
bug betyder som bekendt et insekt på engelsk, og fejl i programmer i de første computere skyldes at et insekt godt kunne lide varmen fra en triode. Der er højspænding på sådan en triode, så insektet blev naturligvis lyngrillet, når den lavede kortslutninger, hvilket ændrede computerens måde at virke på, fordi insektets forbrændte exo-skelet er kul, og kul er en ganske udemærket elektrisk leder. Det er så senere blev til et synonym for en fejl i software.

Iøvrigt kan jeg lige nævne at jeg er lars_t_h på IRC.

(a)
Nov 18 23:01:37 lars-desktop kernel: [31006.683228] usb 3-3: usbfs: USBDEVFS_CONTROL failed cmd gvfs-gphoto2-vo rqt 128 rq 6 len 1000 ret -108


kommer fra kernens USB Core subsystem:
drivers/usb/core/devio.c:814
(b)
devio.c -- User space communication with USB devices.

This file implements the usbfs/x/y files, where x is the bus number and y the device number.

It allows user space programs/"drivers" to communicate directly with USB devices without intervening kernel driver.


http://lxr.free-electrons.com/source/drivers/usb/core/devio.c#L814, som er i bunden af
(c)

Kode: Vælg alt

752 static int proc_control(struct dev_state *ps, void __user *arg)

funktionen:
(d)

Kode: Vælg alt

813         if (i < 0 && i != -EPIPE) {
814                 dev_printk(KERN_DEBUG, &dev->dev, "usbfs: USBDEVFS_CONTROL "
815                            "failed cmd %s rqt %u rq %u len %u ret %d\n",
816                            current->comm, ctrl.bRequestType, ctrl.bRequest,
817                            ctrl.wLength, i);
818         }
819         return i;
820 }

Sammenligner man citatet (a) med koden i (d) kan man se at i=-108, hvilet er årsagen til at linien printes til loggen da i (som er -108) er mindre end 0.

Sådan et negativt tal er altid en fejlkode, men for lige at bevise den påstand, så læs videre i (e) og (f) herunder.


Fejlkoden kommer fra drivers/usb/core/messages.c:155
(http://lxr.free-electrons.com/source/drivers/usb/core/message.c#L155)
Om funktionen
(e)

Kode: Vælg alt

int usb_control_msg(struct usb_device *dev, unsigned int pipe, __u8 request, __u8 requesttype, __u16 value, __u16 index, void *data,  __u16 size, int timeout)

fortælles der:
(f)

Kode: Vælg alt

105  * usb_control_msg - Builds a control urb, sends it off and waits for completion
.
.
.
119  * This function sends a simple control message to a specified endpoint and
120  * waits for the message to complete, or timeout.
121  *
122  * If successful, it returns the number of bytes transferred, otherwise a
123  * negative error number.

og vi fik et negativt tal.

I
(g)
include/asm-generic/ernno.h:85
finder vi:

Kode: Vælg alt

#define   ESHUTDOWN   108   /* Cannot send after transport endpoint shutdown */



I bogen
(h)
"Linux Device drivers", 3rd Edition fra O'Reilly på side 340 står om den fejl: (i)
Bemærk at bogen også kommer også som fri download PDF'er: http://lwn.net/Kernel/LDD3/. De PDFér kan limes sammen til en stor PDF (bog) med lidt LaTeX kode. Side 340 i bogen findes i kapitel 13: "USB Drivers": http://lwn.net/images/pdf/LDD3/ch13.pdf på side 340 (Sidenummerering i den PDF starter på side 327).

(i)
There was a servere error with the USB host controller driver; it has now been disabled, or the device was disconnected from the system, and the urb was submitted after the device was removed. It can only occur if the configuaration was changed for the device, while the urb was submitted to the device.


Det passer meget godt med data fra zobs syslog:
(j)
Nov 18 22:33:31 lars-desktop kernel: [29320.659810] ALSA usbmidi.c:203: urb status -32
Nov 18 22:33:31 lars-desktop kernel: [29320.660555] ALSA usbmidi.c:203: urb status -32
Nov 18 22:33:31 lars-desktop kernel: [29320.661055] ALSA usbmidi.c:203: urb status -32
Nov 18 22:33:31 lars-desktop kernel: [29320.661555] ALSA usbmidi.c:203: urb status -32
Nov 18 22:33:31 lars-desktop kernel: [29320.662054] ALSA usbmidi.c:203: urb status -32
Nov 18 22:33:31 lars-desktop kernel: [29320.663554] ALSA usbmidi.c:203: urb status -32
Nov 18 22:33:31 lars-desktop kernel: [29320.666027] usb 1-2.4: USB disconnect, address 7

USB Core subsystemet smed zobs digital-klaver ud af systemet - og så er der selvfølgelig ingen lyd, da den ikke er der - set fra USB Core subsystemet.

Iøvrigt så betyder -32: -EPIPE, som man kan finde i include/asm-generic/ernno-base.h:53

Kode: Vælg alt

#define   EPIPE      32   /* Broken pipe */

som betyder
også side 340 i (h)
The endpoint is now stalled. If the endpoint involved is not a control end-point (zobs problem vedrører noget der er et control endpoint), this error can be cleared through a call to the function usb_clear_halt


Så der var en fejl i Linux's USB Core subsystem ganske som jeg gættede på i #ubuntu-dk kanalen på IRC. Den fejl er så rettet i en nyere version af Linux kernen, da zob ikke kan reproducere den fejl med den nyere kerne (fra Ubuntu 10.04 "Lucid Lynx" LTS Alfa2.)

Mere generelt om Linux kernen her: http://free-electrons.com/doc/linux-kernel-intro.pdf og her http://free-electrons.com/doc/linux-kernel-intro.odp
Masser af Linux kerne relateret dokumentation her: http://free-electrons.com/docs/

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags

zob
Redaktør
Indlæg: 4430
Tilmeldt: 6. jan 2009, 22:01
Geografisk sted: København

Re: [LØST]Jeg har verdens mærkeligste fejl. Læs med, den er sjov

Indlægaf zob » 24. jan 2010, 18:46

Meget interessant, og meget svært.

Der er en lille misforståelse, ikke at det betyder noget, men:

Kode: Vælg alt

USB Core subsystemet smed zobs digital-klaver ud af systemet - og så er der selvfølgelig ingen lyd, da den ikke er der - set fra USB Core subsystemet.

er faktisk ikke så oplagt som det måske lyder. Jeg mener, det er ingen selvfølge i hvert fald.

Grunden er at jeg sagtens kan få lyd ud af klaveret uden af have usb-kablet tilsluttet overhovedet, da den ikke bliver ført gennem usb (som udelukkende er midi-signaler). Lyden er blot tilsluttet fra line-out på computerens lydkort til line-in på klaveret med almindelige jack-jack kabler, så det har sådan set ikke noget med usb eller MIDI at gøre. Men det forunderlige ligger så i, at når USB CORE subsystemet smider mit digital-klaver ud af systemet, så er der en eller anden funktion i klaveret der slukker for højttalerne (man kan ligefrem høre et relæ klikke når det sker). Dette kan åbenbart også kontrolleres over MIDI. Jeg ved i hvert fald at man kan vælge at slukke for højttalerne fra klaverets eget menu-system i LCD'en. Så der må være noget der. Men det er nu lige meget. Det vigtigste er at det ser ud til at være rettet i nyere kerner.

Tilbage til "Overordnet hardware"

Hvem er online

Brugere der læser dette forum: [Bot] og 0 gæster