# udev-Regel für Cardreader gibt Kernel-Panik

## klemi

Hallo Gentoo-Freunde,

ich habe auf dem Ubuntu Rechner meiner Tochter Probleme den Cardreader von Trandend in Betrieb zu nehmen. Ein Memory Stick Pro Duo für ein Handy wil einfach nicht.

Ich habe folgende udev - Regel erstellt:

```
SUBSYSTEMS=="usb", KERNEL=="sd*", ATTRS{serial}=="058F412D8PB1",  NAME="%k", SYMLINK+="Cardreader" RUN+="/usr/local/bin/Cardreader.sh"
```

```
#!/bin/sh

mount /media/Cardreader

Cardreader.sh start

eject /media/Cardreader
```

und in der fstab:

```
# /etc/fstab: static file system information.

#

# <file system> <mount point>   <type>  <options>       <dump>  <pass>

proc            /proc           proc    defaults        0       0

# /dev/sda5

UUID=7141157b-76f2-4102-ba93-962ce4129e77 /               ext3    defaults,errors=remount-ro 0       1

# /dev/sda8

UUID=459E-BFD0  /daten-share    vfat    defaults,utf8,umask=007,gid=46 0       1

# /dev/sda7

UUID=b6624eec-144c-476e-bdf4-efe98507955a /home           ext3    defaults        0       2

# /dev/sda6

UUID=89b84280-10a5-4018-b0e0-4d797da3e62e /var            ext3    defaults        0       2

# /dev/sda9

UUID=a50172c8-88bf-4b20-a67e-8f3a3e457849 /video          ext3    defaults        0       2

# /dev/sda1

UUID=3B76DEF877C99BBF /windowsXP      ntfs    defaults,nls=utf8,umask=007,gid=46 0       1

# /dev/sda2

UUID=f15b859b-e377-492e-b062-610ffb7f4113 none            swap    sw              0       0

/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto     0       0

/dev/scd1       /media/cdrom1   udf,iso9660 user,noauto     0       0

/dev/fd0        /media/floppy0  auto    rw,user,noauto  0       0

#selbst eingefügt

dev/Cardreader /media/Cardreader auto sync,noauto,users,rw 0 0
```

wenn ich den Cardreader beim booten eingesteckt habe mit Speicherkarte kommt es nach folgenden Meldungen zu Kernerl-Panik:

 *Quote:*   

> kinit:name_to_dev_t (/dev/sda2)=sda2(8,2)
> 
> kinit:tryinto resume from /dev/sda
> 
> No resume image, doing normal boot...
> ...

 

und endet in Kernel panik

 *Quote:*   

> not syncing:Out of memnory no killable prozess

 

Dabei habe ich im Gentoo udev-wiki gelesen:

Die Variable KERNEL="sd?1" macht Probleme mit SATA-Festplatten. (Beispiel: 1. Festplatte /dev/sda1, 2. Festplatte /dev/sdb1) Speziell, wenn /boot auf sda1 oder sdb1 liegt.)

Anmerkung: Ich habe eine SATA II Festplatte eingebaut.

Was habe ich falsch gemacht?

Jemand eine Idee?

Danke!

Gruß an alle

Klemi

----------

## Polynomial-C

Hi,

gleich vorweg, ich kenne Ubuntu so gut wie gar nicht und habe auch keine Ahnung von den udev-Regeln, die bei Ubuntu verwendet werden, daher ist der folgende Tipp echt nur als Schuß ins Blaue zu verstehen:

So wie ich das sehe, ruft die udev-Regel das shellskript zu früh auf. Deine Regel wird nämlich schon aktiv, wenn dein Cardreader als /dev/sda erkannt wird und nicht erst, wenn die Partition /dev/sda1 darauf erkannt wird. Das heißt, daß /dev/sda dann den Symlink /dev/Cardreader erhält und das Skript dann versucht, /dev/sda anstatt /dev/sda1 nach /mnt/Cardreader zu mounten. Du mußt also 

```
KERNEL=="sd?1"
```

 angeben. Daß es dann nicht zu Verwechslung mit deinen Festplatten kommt, dafür hast du schon mit den restlichen Abfragen gesorgt 

```
SUBSYSTEMS=="usb", ATTRS{serial}=="058F412D8PB1",
```

Gerade das ATTRS{serial} ist ja mehr als eindeutig und sollte verhindern, daß eine Festplatte diese Regel auslöst.

Du könntest auch mal testweise das 

```
NAME="%k",
```

aus der Regel entfernen und die Zuweisung des echten devicenodes den default udev-Regeln von Ubuntu überlassen. Damit das Funktioniert, muß deine Regel dann allerdings nach den default Regeln eingelesen werden. Das sollte eventuelle Probleme mit /dev/sd* umgehen. Da udev weiß, welches Gerät bereits ein devicenode hat, läßt es den Symlink auch brav an die richtige Stelle verweisen.

Grüße

Poly-C

P.S.: Der Link in deinem Post verweist ins Nirvana...

----------

## klemi

Danke Polynomial-C,

der Cardreader wird auch jetzt eingebunden , doch das Script kann den Cardreder nicht aushängen kommt die Fehlermeldung, das die Einstellungen nicht der fstab entsprechen.

Ich habe der udev-Regel jetzt noch die Gruppe users zugefügt

```
BUS=="usb", KERNEL=="sd?1", ATTRS{serial}=="058F412D8PB1",  NAME="%k", SYMLINK+="Cardreader", RUN+="/usr/local/bin/usbCardreader.sh", GROUP="users"
```

Wenn ich dann im Nautilus Datenträger aushängen auswähle scheint sich eine "Endlosschleife" aufzubauen, wo das Script immer wieder gestartet wird.

Woran könnte das noch liegen? Das muß doch möglich sein, das das Vorhaben einwandfrei funktioniert.

Danke für Rückmeldungen

Klemi

----------

## Polynomial-C

Hmm...

ist das Skript nur für das Einbinden des Cardreaders zuständig? Kannst du das Skript mal hier reinschreiben?

Versuche mal noch 

```
ACTION=="add"
```

 zu deiner udev-Regel hinzuzufügen, dann wird das Skript nur aufgerufen, wenn du den Cardreader an den PC anschließt.

----------

## klemi

Hi,

ich habe das aktuelle Script nur umbenant in usbCardreader.sh:

 *Quote:*   

> klemens@pc-klemens:/usr/local/bin$ ls -la
> 
> insgesamt 100
> 
> drwxr-xr-x  2 root root  4096 2007-10-26 20:19 .
> ...

 

```
#!/bin/sh

mount /media/Cardreader

usbCardreader.sh start

eject /media/Cardreader
```

GRuß

Klemi[/list]

----------

## klemi

Vielleicht fällt jeand eine bessere Regel ein nach folgenden Ausgaben:

dmesg ergibt:

 *Quote:*   

> Initializing USB Mass Storage driver...
> 
> [ 1055.980569] scsi10 : SCSI emulation for USB Mass Storage devices
> 
> [ 1055.980611] usbcore: registered new interface driver usb-storage
> ...

 

ausgabe lsusb:

 *Quote:*   

> Bus 003 Device 019: ID 058f:6377 Alcor Micro Corp. 
> 
> Device Descriptor:
> 
>   bLength                18
> ...

 

oder über udevinfo

 *Quote:*   

> Udevinfo starts with the device specified by the devpath and then
> 
> walks up the chain of parent devices. It prints for every device
> 
> found, all possible attributes in the udev rules key format.
> ...

 

Gruß

Klemi

----------

## klemi

keiner mehr eine Idee?

Wie siehts mit dem cript von pmount aus hier?

http://gentoo-wiki.com/UDEV_Overview

Es funktioniert das von mir installierte Script überhaupt nicht. 

Gruß##Klemi

----------

