ubuntuusers.de

usb-floppy lw will nicht

Status: Ungelöst | Ubuntu-Version: Ubuntu 10.04 (Lucid Lynx)
Antworten |

gruhlke

Avatar von gruhlke

Anmeldungsdatum:
10. Januar 2006

Beiträge: 44

Wohnort: Berlin

Hallo Gemeinde,

ich mus manchmal noch ein Floppy-Lw benutzen. An meinem Rehchner schliesse ich dieses Gerät per USB an. Der Rechner erkennt auch, dass ich ein LW angeschlossen habe. Im Nautilus erscheint ein Diskettensymbol. Soweit so schön. Leider kann ich aber die Diskette nicht lesen. Null Reaktion wenn ich auf das Symbol klicke. Als sudo/root kann ich die Diskette per mount einhängen. Mit pmount auch als "normaler" Benutzer. Nur umount kann nur sudo/root ...

Da ich den Rechner auch mit Novizen teile, will ich nicht jedem Adminstatus geben. Die sollen aber trotzdem das Floppy LW nutzen können.

Hat jemand eine Idee?

Gruß Gruhlke

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

Hallo,
ein bekanntes Problem. Artikel mit Lösungsmöglichkeiten. Bei einer ext. USB-Floppy könnte es Probleme mit der älteren udisks-Version geben, das habe ich nicht testen können. In diesem Fall auf das Skript ausweichen.

Als user:
pmount > einhängen
pumount > aushängen
(wird im Skript verwendet, wie ja leicht erkennbar ist)

gruhlke

(Themenstarter)
Avatar von gruhlke

Anmeldungsdatum:
10. Januar 2006

Beiträge: 44

Wohnort: Berlin

hey danke... probiere ich nachher gleich aus ☺

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

... die Laufwerksbezeichnung bei einem USB-Laufwerk dürfte auch sd* und nicht fd* lauten. Das muss im Skript dann natürlich angepasst werden.

gruhlke

(Themenstarter)
Avatar von gruhlke

Anmeldungsdatum:
10. Januar 2006

Beiträge: 44

Wohnort: Berlin

😉 wobei ich festgestellt habe dass sich "*" bei sd auch ändern kann, je nachdem ob der User das LW ordentlich ausgeworfen hat. Eigentlich müsste ich das "*" auch noch in dem Skript abfragen um auf der sicheren Seite zu sein.

Aber mit etwas Glück funktioniert ja die "ältere" Version von udisks ...

Gruß && Dank Gruhlke

gruhlke

(Themenstarter)
Avatar von gruhlke

Anmeldungsdatum:
10. Januar 2006

Beiträge: 44

Wohnort: Berlin

@elektronenblitz63 DickesDanke ☺

Das Downgrade von udisk hat leider kein brauchbares Ergebnis geliefert, daher musste auch ich Dein Skript benutzen. Habe mir erlaubt es um eine Zeile zu erweitern ☺ Vor die Zeile

pmount -w /dev/fd0 /media/Diskette

habe ich ein

notify-send -i $LOGO  "Diskette lesen" "... haben Sie Geduld :-)"

gesetzt...

Gruß Gruhlke

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

Habe mir erlaubt es um eine Zeile zu erweitern ...

Natürlich, das ist ausdrücklich erwünscht. ☺

Hier noch eine verbesserte Version. So kann man die Gerätebezeichnung und den Einhängepunkt durch eine Variable im Skript festlegen und muß nicht alle Befehlszeilen und Abfragen einzeln anpassen.

#!/bin/bash
### mount/unmount floppy
### Elektronenblitz63 - ubuntuusers.de 2010
### published under GPL V3

# Laufwerksbezeichnung
# erstes Diskettenlaufwerk fd0 
# USB-Laufwerke sd*, also z.B. sdb, sdc usw.
device=fd0

# Einhängepunkt
mountpoint=Diskette

# libnotify settings
TITLE="Diskettenlaufwerk"
WAIT="Lese Diskette. Einen Moment bitte ..."
MOUNT="Diskette eingebunden"
UNMOUNT="Diskette kann entfernt werden"
ERROR="keine Diskette im Laufwerk !"

# angezeigtes Logo/Icon
LOGO=/usr/share/icons/gnome/scalable/devices/media-floppy.svg

# Abfrage Status Diskette geladen
floppy_mount="`mount -l | egrep  -wo "/dev/"$device`"

# deaktiviert WLAN
if [ "$floppy_mount" = "/dev/"$device ]; then
  pumount /media/$mountpoint
   notify-send -i $LOGO  "$TITLE" "$UNMOUNT"
exit

else
 notify-send -i $LOGO "$TITLE" "$WAIT"
  pmount -w /dev/$device /media/$mountpoint
 fi

floppy_mount="`mount -l | egrep  -wo "/dev/"$device`"

if [ "$floppy_mount" = "/dev/"$device ]; then
   notify-send -i $LOGO "$TITLE" "$MOUNT"
 else
    notify-send -i $LOGO "$TITLE" "$ERROR"
 fi
 exit

gruhlke

(Themenstarter)
Avatar von gruhlke

Anmeldungsdatum:
10. Januar 2006

Beiträge: 44

Wohnort: Berlin

☺ So ist es natürlich schöner –- Schade nur, dass ich noch nicht herausgefunden habe, wie man dass wieder "automatisieren" kann. Bei 8.04 hat das alles so schön funktioniert. Lucid bekommt ja mit, dass ein Disketten-LW eingesteckt wurde... Da muss es doch eine Möglichkeit geben. Überhaupt scheint mir, hat Lucid Probleme mit USB Wechselmedien. USB-Platten die FAT formatiert sind mag es auch nicht. Lesen geht noch, aber schreiben... Als trage man die Bits einzeln auf(in) den Bus.

Gruß Gruhlke

gruhlke

(Themenstarter)
Avatar von gruhlke

Anmeldungsdatum:
10. Januar 2006

Beiträge: 44

Wohnort: Berlin

... da fällt mir noch etwas ein: pmount ist ein schönes Beispiel dafür!

Wie bekommt es pmount hin, dass es ein LW ohne "root Rechte" mounten kann. Oder zB.: Ich habe einen Wlan Stick, der trägt sich selber ein und initialsiert sich als Network Device. Als User kann ich Devices nur als Root initialisieren. Ich hab darüber bis dato noch nichts gefunden... Hat jemand mal nen Tipp, wo ich darüber etwas lesen kann?

Gruß Gruhlke

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

Hallo,
pmount erlaubt es allen Benutzern die sich in der Gruppe plugdev befinden Laufwerke einzubinden. Weitere Informationen dazu in /user/share/doc/pmount und in Benutzer und Gruppen.

Grundsätzlich steuert das udev, auch bei Netzwerkkarten/Sticks. Die erkannte Konfiguration wird in der /etc/udev/rules.d/70-persistent-net.rules abgelegt.

Feuerblitz2

Anmeldungsdatum:
21. Juli 2010

Beiträge: 15

Hi bei mir Normales Floppy hat das Ändern eines wertes in der Datei /lib/udev/rules.d/80-udisks.rules bei Zeile 175:

von

# PC floppy drives
#
KERNEL=="fd*", ENV{ID_DRIVE_FLOPPY}="1"

nach

# PC floppy drives
#
KERNEL=="fd*", ENV{ID_DRIVE_FLOPPY}="0"

dazu geführt das das Floppy wieder ganz normal funktioniert.

MFG Feuerblitz2

maxp.

Anmeldungsdatum:
23. Februar 2011

Beiträge: 1

Hallo zusammen,

ich zähle mich noch zu den Linux-Frischlingen und hatte lange nach einer Möglichkeit gesucht, mein internes USB-Diskettenlaufwerk (Dell Latitude D630) unter Linux Mint komfortabel nutzen zu können. Mit dem Script funktioniert es endlich!

Heute stand ich allerdings vor dem Problem, dass mein Diskettenlaufwerk nicht wie üblich "sdb", sondern "sde" war. Daraufhin versuchte ich, es im Terminal per UUID zu mounten und es funktioniert.

1
pmount /dev/disk/by-uuid/2C20-10F4 /media/Diskette

Wie kann ich dies aber in das Script integrieren? Mein Script sieht momentan folgendermaßen aus:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/bin/bash
### mount/unmount floppy
### Elektronenblitz63 - ubuntuusers.de 2010
### published under GPL V3

# Laufwerksbezeichnung
# erstes Diskettenlaufwerk fd0 
# USB-Laufwerke sd*, also z.B. sdb, sdc usw.
device=disk/by-uuid/2C20-10F4

# Einhängepunkt
mountpoint=Diskette

# libnotify settings
TITLE="Diskettenlaufwerk"
WAIT="Lese Diskette. Einen Moment bitte ..."
MOUNT="Diskette eingebunden"
UNMOUNT="Diskette kann entfernt werden"
ERROR="keine Diskette im Laufwerk !"

# angezeigtes Logo/Icon
LOGO=/usr/share/icons/gnome/48x48/devices/media-floppy.png

# Abfrage Status Diskette geladen
floppy_mount="`mount -l | egrep  -wo "/dev/"$device`"

# Diskette aushängen
if [ "$floppy_mount" = "/dev/"$device ]; then
  pumount /media/$mountpoint
   notify-send -i $LOGO  "$TITLE" "$UNMOUNT"
exit

else
 notify-send -i $LOGO "$TITLE" "$WAIT"
  pmount --sync --noatime --type vfat --read-write /dev/$device /media/$mountpoint
 fi

floppy_mount="`mount -l | egrep  -wo "/dev/"$device`"

if [ "$floppy_mount" = "/dev/"$device ]; then
   notify-send -i $LOGO "$TITLE" "$MOUNT"
 else
    notify-send -i $LOGO "$TITLE" "$ERROR"
 fi
 exit

Damit funktioniert zwar das einmalige Einhängen, aber Aushängen nicht.

Hat jemand eine Idee, wie man das Script auf UUID umstellen kann?

Gruss Maik

march Team-Icon

Avatar von march

Anmeldungsdatum:
12. Juni 2005

Beiträge: 17369

Wohnort: /home/noise

Praktisch wäre eine Identifizierung des Geräts - entweder per lsusb oder UUID um device= automatisch zu ermitteln.

Bin nicht so der Skriptexperte - aber die Ermittlung könnte ggf. so ablaufen:

1
2
3
4
5
6
7
if lsusb | grep "${ID}" > /dev/null 2>&1
	then
	notify-send -i $LOGO "$TITLE" "$FOO"
	else
	clear
	notify-send -i $LOGO "$TITLE" "$BAR"
fi

ID gefunden → Einhängepunkt ermittelt. Ausgabe an notify und Datenträger einbinden.

Edit: Per udev (Abschnitt „Automatischer-Start-eines-Skripts“) könnte das Skript gestartet werden.

Für den Einsatz mit udisks muss man nur die folgenden Zeilen im Skript von elektronenblitz63 ändern:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# deaktiviert WLAN
if [ "$floppy_mount" = "/dev/"$device ]; then
  udisks --umount /media/$mountpoint
   notify-send -i $LOGO  "$TITLE" "$UNMOUNT"
exit

else
 notify-send -i $LOGO "$TITLE" "$WAIT"
  udisks --mount /dev/$device /media/$mountpoint
 fi

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

Hallo,
hier das angepasste Skript mit aut. Erkennung der UUID zum testen. Funktioniert bei mir nicht richtig, da Konflikt mit der ja bereits korrekt funktionierenden Autoerkennung des USB-Laufwerks. Die UUID-Erkennung ist aber ok.

#!/bin/bash
### mount/unmount floppy
### Elektronenblitz63 - ubuntuusers.de 2010
### published under GPL V3

# Laufwerksbezeichnung
# erstes Diskettenlaufwerk fd0 
# USB-Laufwerke sd*, also z.B. sdb, sdc usw.
# device=fd0

# Autoerkennung USB-Laufwerk über die UUID
uuid="`ls -Al /dev/disk/by-uuid | awk {'print $8'}`"
 fdiscuuid="`echo $uuid  | egrep -o '....-.... '`" 
  device=disk/by-uuid/$fdiscuuid

# Einhängepunkt
mountpoint=Diskette

# libnotify settings
TITLE="Diskettenlaufwerk"
WAIT="Lese Diskette. Einen Moment bitte ..."
MOUNT="Diskette eingebunden"
UNMOUNT="Diskette kann entfernt werden"
ERROR="keine Diskette im Laufwerk !"

# angezeigtes Logo/Icon
LOGO=/usr/share/icons/gnome/scalable/devices/media-floppy.svg

# Abfrage Status Diskette geladen
floppy_mount="`mount -l | egrep  -wo "/dev/"$device`"

if [ "$floppy_mount" = "/dev/"$device ]; then
  pumount /media/$mountpoint
   notify-send -i $LOGO  "$TITLE" "$UNMOUNT"
exit

else
 notify-send -i $LOGO "$TITLE" "$WAIT"
  pmount -w /dev/$device /media/$mountpoint
 fi

floppy_mount="`mount -l | egrep  -wo "/dev/"$device`"

if [ "$floppy_mount" = "/dev/"$device ]; then
   notify-send -i $LOGO "$TITLE" "$MOUNT"
 else
    notify-send -i $LOGO "$TITLE" "$ERROR"
 fi
 exit

march Team-Icon

Avatar von march

Anmeldungsdatum:
12. Juni 2005

Beiträge: 17369

Wohnort: /home/noise

Danke. 👍

Ich teste es Montag direkt aus. ☺

Antworten |