/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
"re-loade" usb-enhed?
Fra : Mads Lie Jensen


Dato : 11-12-05 09:49

Hej

Jeg har en pl2303 seriel-adapter sat i en usb-port på min server.
I gamle dage virkede den altid. Efter jeg har opgraderet til SuSE 10.0
virker den kun i 5-6 dage ad gangen. Herefter får jeg
segmentation-faults fra den.

Men hvis jeg så hiver usb-stikket ud og sætter i igen, så virker den
igen i nogle dage.

Desværre står min server i et mørkt klædeskab, så det er ikke lige så
nemt at komme ind og hive stikket ud og genindsætte når fejlen kommer.

Så kan man ikke via sin shell give en eller anden kommando som så at
sige simulerer at man har hevet stikket ud og sat i igen?

Jeg har kigget lidt på rmmod men det kan jeg ikke rigtig få til at
virke.

--
Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
-snart med hund: http://vedskovens.dk/d/hv/2005_olivia/051030/051030_d2.htm

Gartneriet - snart i ny indpakning: http://ny.gartneriet.dk

 
 
Kasper Dupont (11-12-2005)
Kommentar
Fra : Kasper Dupont


Dato : 11-12-05 12:07

Mads Lie Jensen wrote:
>
> Hej
>
> Jeg har en pl2303 seriel-adapter sat i en usb-port på min server.
> I gamle dage virkede den altid. Efter jeg har opgraderet til SuSE 10.0
> virker den kun i 5-6 dage ad gangen. Herefter får jeg
> segmentation-faults fra den.

Hvad mener du lige præcis med at du får segmentation
faults fra den? Snakker vi om en kernel oops?

>
> Men hvis jeg så hiver usb-stikket ud og sætter i igen, så virker den
> igen i nogle dage.

Hvis der er tale om en kernel oops, så er den rigtige
løsning at reboote maskinen. (Allerhelst med en ny
kerne, hvor fejlen er rettet).

Kig i loggen, der står sikkert en fejlmelding, som
kan give et fingerpeg hvor fejlen ligger.

--
Kasper Dupont
Note to self: Don't try to allocate
256000 pages with GFP_KERNEL on x86.

Mads Lie Jensen (11-12-2005)
Kommentar
Fra : Mads Lie Jensen


Dato : 11-12-05 21:54

On Sun, 11 Dec 2005 12:06:33 +0100, Kasper Dupont <kasperd@daimi.au.dk>
wrote:

>> Jeg har en pl2303 seriel-adapter sat i en usb-port på min server.
>> I gamle dage virkede den altid. Efter jeg har opgraderet til SuSE 10.0
>> virker den kun i 5-6 dage ad gangen. Herefter får jeg
>> segmentation-faults fra den.
>
>Hvad mener du lige præcis med at du får segmentation
>faults fra den? Snakker vi om en kernel oops?

server # fetch2300 /etc/open2300.conf
Segmantation fault
server#

Hvad er en kernel oops?

>> Men hvis jeg så hiver usb-stikket ud og sætter i igen, så virker den
>> igen i nogle dage.
>
>Hvis der er tale om en kernel oops, så er den rigtige
>løsning at reboote maskinen. (Allerhelst med en ny
>kerne, hvor fejlen er rettet).

Jeg har opdateret min kernel og rebootet - nu vil det så vise sig om det
hjælper.

>Kig i loggen, der står sikkert en fejlmelding, som
>kan give et fingerpeg hvor fejlen ligger.

Så vidt jeg kunne se, så var det driveren til min usb-seriel-adapter som
fejlede og ikke selve programmet (fetch2300). Men så snart jeg hev
stikket ud og satte i igen, så virkede den i nogle dage igen.

--
Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
-snart med hund: http://vedskovens.dk/d/hv/2005_olivia/051030/051030_d2.htm

Gartneriet - snart i ny indpakning: http://ny.gartneriet.dk

Kent Friis (11-12-2005)
Kommentar
Fra : Kent Friis


Dato : 11-12-05 22:12

Den Sun, 11 Dec 2005 21:53:55 +0100 skrev Mads Lie Jensen:
> On Sun, 11 Dec 2005 12:06:33 +0100, Kasper Dupont <kasperd@daimi.au.dk>
> wrote:
>
>>> Jeg har en pl2303 seriel-adapter sat i en usb-port på min server.
>>> I gamle dage virkede den altid. Efter jeg har opgraderet til SuSE 10.0
>>> virker den kun i 5-6 dage ad gangen. Herefter får jeg
>>> segmentation-faults fra den.
>>
>>Hvad mener du lige præcis med at du får segmentation
>>faults fra den? Snakker vi om en kernel oops?
>
> server # fetch2300 /etc/open2300.conf
> Segmantation fault
> server#
>
> Hvad er en kernel oops?

Kernel (driver)-modstykket til segmentation fault.

>>Kig i loggen, der står sikkert en fejlmelding, som
>>kan give et fingerpeg hvor fejlen ligger.
>
> Så vidt jeg kunne se, så var det driveren til min usb-seriel-adapter som
> fejlede og ikke selve programmet (fetch2300). Men så snart jeg hev
> stikket ud og satte i igen, så virkede den i nogle dage igen.

Segmentation fault tyder på programmet.

Mvh
Kent
--
Hard work may pay off in the long run, but laziness pays off right now.

Kasper Dupont (12-12-2005)
Kommentar
Fra : Kasper Dupont


Dato : 12-12-05 22:08

Kent Friis wrote:
>
> Den Sun, 11 Dec 2005 21:53:55 +0100 skrev Mads Lie Jensen:
> > On Sun, 11 Dec 2005 12:06:33 +0100, Kasper Dupont <kasperd@daimi.au.dk>
> > wrote:
> >
> > server # fetch2300 /etc/open2300.conf
> > Segmantation fault
> > server#

Hvorfor laver den ikke et core dump?
Har du slået core dumps fra?
Er det en kernel oops?
Eller er der en tredje årsag?

> >>Kig i loggen, der står sikkert en fejlmelding, som
> >>kan give et fingerpeg hvor fejlen ligger.
> >
> > Så vidt jeg kunne se, så var det driveren til min usb-seriel-adapter som
> > fejlede og ikke selve programmet (fetch2300).

Uddyb. Hvad står der i loggen?

> > Men så snart jeg hev
> > stikket ud og satte i igen, så virkede den i nogle dage igen.

Tilsyneladende. Men du kan ikke vide dig helt sikker.

>
> Segmentation fault tyder på programmet.

Ikke nødvendigvis. En kernel oops terminerer også tråden
med en SIGSEGV (uden core dump).

Jeg vil sige, at kernel oops lyder som den mest sandsynlige
forklaring. Vi skal bare se beskeden i loggen for at finde
ud af lidt mere.

--
Kasper Dupont
Note to self: Don't try to allocate
256000 pages with GFP_KERNEL on x86.

Mads Lie Jensen (13-12-2005)
Kommentar
Fra : Mads Lie Jensen


Dato : 13-12-05 07:07

On 11 Dec 2005 21:12:06 GMT, Kent Friis <nospam@nospam.invalid> wrote:

>>>Hvad mener du lige præcis med at du får segmentation
>>>faults fra den? Snakker vi om en kernel oops?
>>
>> server # fetch2300 /etc/open2300.conf
>> Segmantation fault
>> server#
>>
>> Hvad er en kernel oops?
>
>Kernel (driver)-modstykket til segmentation fault.

Ok.

>>>Kig i loggen, der står sikkert en fejlmelding, som
>>>kan give et fingerpeg hvor fejlen ligger.
>>
>> Så vidt jeg kunne se, så var det driveren til min usb-seriel-adapter som
>> fejlede og ikke selve programmet (fetch2300). Men så snart jeg hev
>> stikket ud og satte i igen, så virkede den i nogle dage igen.
>
>Segmentation fault tyder på programmet.

Den skriver det her i loggen:

Dec 13 06:50:01 server kernel: EFLAGS: 00010246 (2.6.13-15.7-default)
Dec 13 06:50:01 server kernel: EIP is at serial_ioctl+0x18/0xb0
[usbserial]
Dec 13 06:50:01 server kernel: eax: ce6ca000 ebx: 00000000 ecx:
00005402 edx
: dd0fdb00
Dec 13 06:50:01 server kernel: esi: 00000000 edi: 00005402 ebp:
dd0fdb00 esp
: cd463f40
Dec 13 06:50:01 server kernel: ds: 007b es: 007b ss: 0068
Dec 13 06:50:01 server kernel: Process mysql2300 (pid: 13695,
threadinfo=cd462000
task=d3d630a0)
Dec 13 06:50:01 server kernel: Stack: e0d33770 00005402 ce6ca000
dd0fdb00 c023b31c
bfaf2918 bfaf2918 ce6ca000
Dec 13 06:50:01 server kernel: df3e5804 c023b210 dd0fdb00
bfaf2918 cd462000
c0169a9e bfaf2918 dd0fdb00
Dec 13 06:50:01 server kernel: 00000004 c0169baf fffffff7
fffffff7 fffffff7
dd0fdb00 bfaf2918 cd462000
Dec 13 06:50:01 server kernel: Call Trace:
Dec 13 06:50:01 server kernel: [<e0d33770>] serial_ioctl+0x0/0xb0
[usbserial]
Dec 13 06:50:01 server kernel: [<c023b31c>] tty_ioctl+0x10c/0x510
Dec 13 06:50:01 server kernel: [<c023b210>] tty_ioctl+0x0/0x510
Dec 13 06:50:01 server kernel: [<c0169a9e>] do_ioctl+0x4e/0x60
Dec 13 06:50:01 server kernel: [<c0169baf>] vfs_ioctl+0x4f/0x1c0
Dec 13 06:50:01 server kernel: [<c0169d57>] sys_ioctl+0x37/0x70
Dec 13 06:50:01 server kernel: [<c0102d79>] syscall_call+0x7/0xb
Dec 13 06:50:01 server kernel: Code: 62 d3 e0 68 95 60 d3 e0 e8 e6 90 3e
df 83 c4
10 eb 92 90 55 57 56 8b 35 04 9c d3 e0 53 89 d5 89 cf 8b 98 7c 09 00 00
85 f6 75 4
8 <8b> 8b 88 00 00 00 85 c9 75 14 8b 15 04 9c d3 e0 b8 ed ff ff ff

--
Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
-snart med hund: http://vedskovens.dk/d/hv/2005_olivia/051030/051030_d2.htm

Gartneriet - snart i ny indpakning: http://ny.gartneriet.dk

Kasper Dupont (13-12-2005)
Kommentar
Fra : Kasper Dupont


Dato : 13-12-05 11:50

Mads Lie Jensen wrote:
>
> Den skriver det her i loggen:
>
> Dec 13 06:50:01 server kernel: EFLAGS: 00010246 (2.6.13-15.7-default)
> Dec 13 06:50:01 server kernel: EIP is at serial_ioctl+0x18/0xb0
> [usbserial]

Det er en oops, men der mangler noget af fejlmedelelsen.

Jeg kiggede lidt på sourcen til den pågældende funktion:
http://lxr.linux.no/source/drivers/usb/serial/usb-serial.c#L651

Fejlen ligger i starten af funktionen, så det er nok enten
tty eller port, der ikke er gyldig. Jeg ville indsætte et
par linier til at udskrive de to pointere lige før de bliver
brugt.

--
Kasper Dupont
Note to self: Don't try to allocate
256000 pages with GFP_KERNEL on x86.

Mads Lie Jensen (14-12-2005)
Kommentar
Fra : Mads Lie Jensen


Dato : 14-12-05 08:49

On Tue, 13 Dec 2005 11:50:27 +0100, Kasper Dupont <kasperd@daimi.au.dk>
wrote:

>> Den skriver det her i loggen:
>>
>> Dec 13 06:50:01 server kernel: EFLAGS: 00010246 (2.6.13-15.7-default)
>> Dec 13 06:50:01 server kernel: EIP is at serial_ioctl+0x18/0xb0
>> [usbserial]
>
>Det er en oops, men der mangler noget af fejlmedelelsen.

Du har ret, her er det hele (håber jeg):
Dec 11 09:42:10 server kernel: Unable to handle kernel NULL pointer
dereference at
virtual address 00000088
Dec 11 09:42:10 server kernel: printing eip:
Dec 11 09:42:10 server kernel: e0e0b788
Dec 11 09:42:10 server kernel: *pde = 00000000
Dec 11 09:42:10 server kernel: Oops: 0000 [#585]
Dec 11 09:42:10 server kernel: Modules linked in: lp parport_pc parport
pl2303 usb
serial edd joydev sg st sr_mod ppp_generic slhc ipt_MASQUERADE
ipt_REDIRECT ipt_ma
rk ipt_TCPMSS ipt_LOG ipt_limit ipt_MARK button battery ac af_packet
ip6t_REJECT i
pt_REJECT ipt_state iptable_mangle iptable_nat iptable_filter
ip6table_mangle ip_c
onntrack ip_tables ip6table_filter ip6_tables ipv6 ide_cd cdrom via686a
i2c_sensor
i2c_viapro i2c_core 8139cp generic uhci_hcd via_agp agpgart usbcore
pci_hotplug 8
139too 3c59x mii reiserfs dm_mod raid5 xor fan thermal processor
pdc202xx_new via8
2cxxx sd_mod scsi_mod ide_disk ide_core
Dec 11 09:42:10 server kernel: CPU: 0
Dec 11 09:42:10 server kernel: EIP: 0060:[<e0e0b788>] Not tainted
VLI
Dec 11 09:42:10 server kernel: EFLAGS: 00010246 (2.6.13-15-default)
Dec 11 09:42:10 server kernel: EIP is at serial_ioctl+0x18/0xb0
[usbserial]
Dec 11 09:42:10 server kernel: eax: de1c7000 ebx: 00000000 ecx:
00005402 edx
: dafd1100
Dec 11 09:42:10 server kernel: esi: 00000000 edi: 00005402 ebp:
dafd1100 esp
: df2a5f40
Dec 11 09:42:10 server kernel: ds: 007b es: 007b ss: 0068
Dec 11 09:42:10 server kernel: Process fetch2300 (pid: 12200,
threadinfo=df2a4000
task=c4383080)
Dec 11 09:42:10 server kernel: Stack: e0e0b770 00005402 de1c7000
dafd1100 c023b15c
bfd812c8 bfd812c8 de1c7000
Dec 11 09:42:10 server kernel: dec11544 c023b050 dafd1100
bfd812c8 df2a4000
c016995e bfd812c8 dafd1100
Dec 11 09:42:10 server kernel: 00000004 c0169a6f fffffff7
fffffff7 fffffff7
dafd1100 bfd812c8 df2a4000
Dec 11 09:42:10 server kernel: Call Trace:
Dec 11 09:42:10 server kernel: [<e0e0b770>] serial_ioctl+0x0/0xb0
[usbserial]
Dec 11 09:42:10 server kernel: [<c023b15c>] tty_ioctl+0x10c/0x510
Dec 11 09:42:10 server kernel: [<c023b050>] tty_ioctl+0x0/0x510
Dec 11 09:42:10 server kernel: [<c016995e>] do_ioctl+0x4e/0x60
Dec 11 09:42:10 server kernel: [<c0169a6f>] vfs_ioctl+0x4f/0x1c0
Dec 11 09:42:10 server kernel: [<c0169c17>] sys_ioctl+0x37/0x70
Dec 11 09:42:10 server kernel: [<c0102d79>] syscall_call+0x7/0xb
Dec 11 09:42:10 server kernel: Code: e2 e0 e0 68 95 e0 e0 e0 e8 e6 10 31
df 83 c4
10 eb 92 90 55 57 56 8b 35 04 1c e1 e0 53 89 d5 89 cf 8b 98 7c 09 00 00
85 f6 75 4
8 <8b> 8b 88 00 00 00 85 c9 75 14 8b 15 04 1c e1 e0 b8 ed ff ff ff

(Ja, det er en oops

>Jeg kiggede lidt på sourcen til den pågældende funktion:
>http://lxr.linux.no/source/drivers/usb/serial/usb-serial.c#L651
>
>Fejlen ligger i starten af funktionen, så det er nok enten
>tty eller port, der ikke er gyldig. Jeg ville indsætte et
>par linier til at udskrive de to pointere lige før de bliver
>brugt.

Hvordan kan du se at det er i starten af funktionen at fejlen er?

Jeg har ikke nok begreb om C til at jeg kan begynde at ændre i koden for
at fejlfinde - havde jeg haft mere tid ville det være sjovt, men tid er
en knap resource :-/

--
Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
-snart med hund: http://vedskovens.dk/d/hv/2005_olivia/051030/051030_d2.htm

Gartneriet - snart i ny indpakning: http://ny.gartneriet.dk

Kasper Dupont (14-12-2005)
Kommentar
Fra : Kasper Dupont


Dato : 14-12-05 17:43

Mads Lie Jensen wrote:
>
> Hvordan kan du se at det er i starten af funktionen at fejlen er?

+0x18/0xb0 betyder at EIP er 24 bytes inde i funktionen
som er 176 bytes lang.

>
> Jeg har ikke nok begreb om C til at jeg kan begynde at ændre i koden for
> at fejlfinde - havde jeg haft mere tid ville det være sjovt, men tid er
> en knap resource :-/

Prøv den her patch (overhovedet ikke testet):
http://www.daimi.au.dk/~kasperd/linux_kernel/serial_ioctl-debug.patch

--
Kasper Dupont
Note to self: Don't try to allocate
256000 pages with GFP_KERNEL on x86.

Kent Friis (13-12-2005)
Kommentar
Fra : Kent Friis


Dato : 13-12-05 17:32

Den Tue, 13 Dec 2005 07:07:13 +0100 skrev Mads Lie Jensen:
> On 11 Dec 2005 21:12:06 GMT, Kent Friis <nospam@nospam.invalid> wrote:
>
>>>>Hvad mener du lige præcis med at du får segmentation
>>>>faults fra den? Snakker vi om en kernel oops?
>>>
>>> server # fetch2300 /etc/open2300.conf
>>> Segmantation fault
>>> server#
>>>
>>> Hvad er en kernel oops?
>>
>>Kernel (driver)-modstykket til segmentation fault.
>
> Ok.
>
>>>>Kig i loggen, der står sikkert en fejlmelding, som
>>>>kan give et fingerpeg hvor fejlen ligger.
>>>
>>> Så vidt jeg kunne se, så var det driveren til min usb-seriel-adapter som
>>> fejlede og ikke selve programmet (fetch2300). Men så snart jeg hev
>>> stikket ud og satte i igen, så virkede den i nogle dage igen.
>>
>>Segmentation fault tyder på programmet.
>
> Den skriver det her i loggen:
>
> Dec 13 06:50:01 server kernel: EFLAGS: 00010246 (2.6.13-15.7-default)
> Dec 13 06:50:01 server kernel: EIP is at serial_ioctl+0x18/0xb0

Orøv at kigge et par linier højere oppe, om ikke der står "Oops"

Mvh
Kent
--
Hard work may pay off in the long run, but laziness pays off right now.

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408928
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste