Erstellt vor 5 Monaten

Geschlossen vor 5 Monaten

#2909 closed defect (fixed)

Fehler in udev-mount-sd mit Festplatten >4TB

Erstellt von: f_666 Verantwortlicher: er13
Priorität: low Meilenstein: freetz-next
Komponente: avm Version: devel
Stichworte: Beobachter:
Product Id: Firmware Version:

Beschreibung

Ich habe eine Festplatte mit knapp 5TB an meiner Fritzbox. Es gibt in der Funktion poll_scsi_device() aus der udev-mount-sd diese Konstruktion:

local NOT_EMPTY=0
for SD_SIZE in $(cat $SYSFS/$SCSI_DEVICE_PATH/../../../../../*/*/*/scsi_device/*/device/block/*/size); do
if [ $SD_SIZE -gt 0 ]; then
NOT_EMPTY=1
break
fi
done
...
if [ $NOT_EMPTY -gt 0 ]; then     #hier ist das Problem, auch in der original AVM Firmware
echo "${UDEVICE}=#failed" >> ${DEVMAP}
eventadd 142 $USBDEV
else
echo "${UDEVICE}=#empty" >> ${DEVMAP}
eventadd 137 $USBDEV
fi

Je nach dem, ob die Festplatte eine Kapazität größer 0 hat, werden unterschiedliche Fehlermeldungen in das Protokoll geschrieben.

Problematisch ist diese Abfrage if [ $SD_SIZE -gt 0 ];, wenn nämlich SD_SIZE > 232 ist, verweigert sich die Busybox: sh: 5000000000: out of range.

Mögliche Lösungen:
Entweder man übersetzt die BusyBox mit FREETZ_BUSYBOX_FEATURE_TEST_64, dann passts.
Alternativ könnte man diese Vergleiche (kommt mehrfach in der udev-mount-sd vor) so umbauen, dass ein Stringvergleich benutzt wird, z.B. if [ x$SD_SIZE != x0 ];.
An dieser Stelle sind die Auswirkungen nicht gravierend, an den beiden anderen Stellen weiter unten wird das Verhalten beim Einbinden von Laufwerken schon mehr beeinflusst.

Änderungshistorie (1)

comment:1 Geändert vor 5 Monaten durch er13

  • Lösung auf fixed gesetzt
  • Status von new nach closed geändert
  • Verantwortlicher auf er13 gesetzt

In 14260:

busybox:

  • make support for 64-bit arithmetic mandatory
  • closes #2909
Hinweis: Hilfe zur Verwendung von Tickets finden Sie in TracTickets.