Erstellt vor 4 Jahren

Zuletzt geändert vor 3 Jahren

#2572 assigned task

sync FreetzMount with official AVM firmware

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

Beschreibung

Check if it's necessary and if so backport all changes from AVM's 05.xx & 06.xx firmware series to FreetzMount

Anhänge (2)

avm-mount-scripts.tar.xz (17.5 KB) - hinzugefügt von er13 vor 4 Jahren.
20141111-avm-mount-scripts.tar.xz (19.5 KB) - hinzugefügt von er13 vor 4 Jahren.

Alle Anhänge herunterladen als: .zip

Änderungshistorie (40)

comment:1 Geändert vor 4 Jahren durch er13

  • Status von new nach assigned geändert
  • Verantwortlicher auf er13 gesetzt

comment:2 Geändert vor 4 Jahren durch er13

In 12507:

FreetzMount:

  • add support for the mount points naming scheme ${vendor}-${product}-${device_number}${partition_number} used by AVM as the default naming scheme since some time
  • refs #2499, refs #2572

comment:3 Geändert vor 4 Jahren durch er13

In 12519:

FreetzMount:

@all users using "Partition label"-scheme: please reconfigure FreetzMount after updating to/flashing this revision

comment:4 Geändert vor 4 Jahren durch er13

In 12526:

libmodmount/do_mount_locked:

  • update device map before notifying other components about changes (by PeterPawn)
  • AVM does it in the same order
  • refs #2499, refs #2572

comment:5 Geändert vor 4 Jahren durch er13

In 12527:

libmodmount:

  • increase readability a bit by adding empty lines
  • add/tweak comments
  • refs #2499, refs #2572

comment:6 Geändert vor 4 Jahren durch er13

In 12528:

libmodmount:

  • move "restore umask" out of if/else
  • refs #2499, refs #2572

comment:7 Geändert vor 4 Jahren durch er13

In 12529:

libmodmount / find_mnt_name:

  • eliminate 2nd parameter as it's unused
  • refs #2499, refs #2572

comment:8 Geändert vor 4 Jahren durch er13

In 12530:

libmodmount / find_mnt_name:

  • eliminate unused return code
  • refs #2499, refs #2572

comment:9 Geändert vor 4 Jahren durch er13

In 12531:

libmodmount / do_mount_locked:

  • eliminate unnecessary while-loop
  • refs #2499, refs #2572

comment:10 Geändert vor 4 Jahren durch er13

In 12532:

libmodmount / do_mount_locked:

  • increase readability a bit by avoiding long if/else-branches
  • refs #2499, refs #2572

comment:11 Geändert vor 4 Jahren durch er13

In 12533:

libmodmount / do_mount_locked:

Geändert vor 4 Jahren durch er13

comment:12 Geändert vor 4 Jahren durch er13

In 12540:

libmodmount:

  • replace old-style backquote substitution form with the new one
  • refs #2572

comment:13 Geändert vor 4 Jahren durch er13

In 12541:

libmodmount:

  • document some functions
  • refs #2572

comment:14 Geändert vor 4 Jahren durch er13

In 12542:

libmodmount:

  • remove unused variable
  • refs #2572

comment:15 Geändert vor 4 Jahren durch er13

In 12543:

libmodmount:

  • remove unnecessary comment
  • refs #2572

comment:16 Geändert vor 4 Jahren durch er13

In 12544:

libmodmount:

  • remove unused variables
  • refs #2572

comment:17 Geändert vor 4 Jahren durch er13

In 12545:

libmodmount:

  • rename check_parent (very bad name) to is_ctlmgr_parent_of_storage_unplug
  • optimize it a bit
  • refs #2572

comment:18 Geändert vor 4 Jahren durch er13

In 12546:

libmodmount:

  • fix typo in comment
  • refs #2572

comment:19 Geändert vor 4 Jahren durch er13

In 12547:

libmodmount:

  • mark is_ctlmgr_parent_of_storage_unplug & remove_swap as freetz internal
  • refs #2572

comment:20 Geändert vor 4 Jahren durch er13

In 12548:

libmodmount:

  • move is_ctlmgr_parent_of_storage_unplug & remove_swap closer to the storage_unplug - the only function they are referenced from
  • refs #2572

comment:21 Geändert vor 4 Jahren durch er13

In 12549:

libmodmount / do_mount_locked:

  • reduce scope of some variables
  • refs #2572

comment:22 Geändert vor 4 Jahren durch er13

In 12550:

libmodmount:

  • sync msgsend's with AVM code (by PeterPawn & me)
  • add some comments/empty lines in order to increase readability
  • refs #2572

comment:23 Geändert vor 4 Jahren durch er13

In 12551:

libmodmount / do_umount_locked:

  • eliminate 2nd parameter (derive it from the 1st one) - since 5.2x AVM passes just one parameter to it
  • refs #2572

comment:24 Geändert vor 4 Jahren durch er13

In 12552:

libmodmount / do_umount:

  • do not pass 2nd parameter as it's not used anymore, follow-uo of r12551
  • refs #2572

comment:25 Geändert vor 4 Jahren durch er13

In 12553:

FreetzMount-patch:

  • consider removed components while sending notifications
  • refs #2572

comment:26 Antwort: Geändert vor 4 Jahren durch er13

do_mount_locked TODOs:

  • SquashFS Support nachziehen
  • checken, ob alle ErrorCodes, die AVM behandelt, auch von Freetz behandelt werden.
  • umask 0 wird wahrscheinlich nur für den mount-Befehl selbst benötigt und soll daher auch dahin wandern, i.e. statt
    save umask
    set umask
    some other code
    mount $params
    more other code
    restore umask
    
    sollte der Code so ausschauen: (umask 0; mount $params).
  • verstehen und ggf. nur dokumentieren, warum Freetz nur irgendwelche rc.script'e aufruft statt *_control (re)config wie es AVM macht.

do_umount_locked TODOs:

  • trotz eines deutlich anderen Ablaufs als bei AVM sollten die Benachrichtigungen meiner Ansicht nach in etwa denen von AVM entsprechen, dies sollte jedoch noch für alle Aufruf-Kontexte von do_umount_locked geprüft werden.
  • "update devmap"-Code ist anders, AVM fügt beim Entfernen #removed bzw. seit neuestem (die letzten Labors für die Nicht-Top-Boxen) sogar #removing-Einträge hinzu. In libupnpdevusb.so finden sich dann Referenzen auf diese #removed-Einträge (nur auf die #removed, nicht auf die #removing). Den Sinn davon habe ich noch nicht verstanden. In Erwartung sollte dies eigentlich nicht notwendig sein, denn die meisten msgsend's enthalten den entfernten MountPoint als Parameter. Unter Verdacht steht msgsend upnpdevd update_usb_infos, könnte sein, dass dieser sich dieser Einträge in der devmap bedient.

comment:27 Geändert vor 4 Jahren durch er13

In 12556:

busybox:

  • ensure DESKTOP option is not selectable in Freetz menuconfig
  • refs #2572

comment:28 Geändert vor 4 Jahren durch er13

In 12557:

libmodmount:

  • simplify is_ctlmgr_parent_of_storage_unplug
  • refs #2572

comment:29 Geändert vor 4 Jahren durch er13

In 12558:

libmodmount:

  • fix comment typo
  • refs #2572

comment:30 als Antwort auf: ↑ 26 Geändert vor 4 Jahren durch ralf

Replying to er13:

  • umask 0 wird wahrscheinlich nur für den mount-Befehl selbst benötigt.

Gibt es ein Dateisystem, bei dem umask für den mount Befehl von Bedeutung ist? Im Moment scheint umask eher für die Erstellung von $DEVMAP von Bedeutung zu sein.

comment:31 Geändert vor 4 Jahren durch er13

Folgender Kommentar findet sich im Code von AVM:

# run mount with umask 0 so everyone is allowed to rwx everywhere

Würde mich über alle Kommentare freuen, die beim richtigen Interpretieren von diesem helfen würden ;-)

comment:32 Geändert vor 4 Jahren durch ralf

Beim Mount eines Unix Dateisystems kommen die Zugriffsrechte aus dem Dateisystem selbst.

Beim Mount eines fat Dateisystems wird der aktuelle Wert von umask verwendet, aber nur, wenn nicht fmask/dmask/umask bei den Mount Optionen angegeben wird. Im AVM Skript wird aber fmask und dmask verwendet. Bei NTFS wird kein fmask/dmask übergeben, aber der Default bei ntfs-3g ist 0 und nicht der umask Wert, also macht es keinen Unterschied.

Meine Vermutung ist, dass jemand bei AVM das irgendwann mal eingefügt hat, bevor sie fmask/dmask entdeckt haben, und sich seither keiner traut, es zu entfernen.

comment:33 Geändert vor 4 Jahren durch er13

In 12564:

libmodmount / do_umount_locked:

  • notify AVM components that a partition is being unmounted much earlier, this is NOT exactly the same what AVM does, but much closer to it as before (thanks to PeterPawn for pointing it out)
  • refs #2572

Geändert vor 4 Jahren durch er13

comment:34 Geändert vor 3 Jahren durch er13

In 13012:

FreetzMount:

  • remove workaround added in r12487, it's not necessary anymore - please update your configurations accordingly - the 1st character of the mount point won't be upper-cased anymore
  • refs #2499, refs #2572

comment:35 Geändert vor 3 Jahren durch er13

In 13015:

FreetzMount:

comment:36 Geändert vor 3 Jahren durch er13

In 13019:

FreetzMount:

  • fix unmount in Freetz web-if doesn't work (since (!) 05.5x) - work-in-progress (i.e. this is not the final solution)
  • refs #2572, refs #2626

comment:37 Geändert vor 3 Jahren durch er13

In 13023:

FreetzMount:

  • in 6.25 AVM has once again changed the format of DEVMAP, instead of /proc/bus/usb/001/002=/dev/sda1:mount-point-name it is now 001/002=/dev/sda1:mount-point-name - so instead of /proc/bus/usb/001/002 just 001/002 is now passed all over the code - do adjust our replacement of do_mount_locked accordingly
  • refs #2572, fixes #2712

comment:38 Geändert vor 3 Jahren durch er13

  • Verantwortlicher er13 gelöscht
Hinweis: Hilfe zur Verwendung von Tickets finden Sie in TracTickets.