Seite 1 von 3

FAT formatierten USB-Stick in die CCU einbinden

Verfasst: 07.08.2012, 01:07
von Goglo
Nachdem mein letztes Thema "Temperaturlogger auf USB-Stick" ja mehr des Sticks als denn des Loggens wegen Echo hervorgerufen hat und auch meine dortige Anleitung sich auch eher an Fortgeschrittene wendet, habe ich mich noch mal hingesetzt:

USB-Stick einbinden in anwenderfreundlich:
1) USB-Stick mit FAT formatieren - das kann sowohl Mac als auch PC.
2) USB-Stick in einen der beiden USB-Ports der CCU stecken.
3) Angehängte Zusatzsoftware über die Systemsteuerung der CCU installieren.
4) nach einem Reboot (und auch nach allen folgenden) steht der Speicherplatz des Sticks unter /var/usbstick zur Verfügung
5) Die Gesamtkapazität, die prozentuale Belegung und das Verzeichnis wird in der Systemsteuerung bei Zusatzsoftware angezeigt.
6) Als zusätzliches Schmankerl kann da der Stick im laufenden Betrieb auch ausgeworfen und wieder eingebunden werden. Der Button "Neustart" erledigt das.

Für technisch interessierte: Die CCU bringt die Fähigkeit, einen FAT-formatierten USB-Stick einzubinden von Haus aus mit. Das kleine Stückchen "Zusatzsoftware" was hiermit installiert wird, ist ein shell-skript, welches den mount bzw. umount Befehl aufruft. Es heisst /usr/local/etc/config/rc.d/mount_usbfat und kann einfach so wieder gelöscht werden - nichts anderes tut auch der Uninstall-Knopf.

Es wird immer nur der erste eingesteckte USB-Stick eingebunden und auch nur die erste von eventuell mehreren Partitionen. (Für Insider also immer nur das, was über /dev/sda1 erreichbar ist)

Viel Spass damit!

Re: FAT formatierten USB-Stick in die CCU einbinden

Verfasst: 07.08.2012, 07:25
von Tobias78
Hallo Goglo,
vielen Dank für die Erstellung der Zusatzsoftware.
Ich habe diese so eben getestet:
- Zusatzsoftware lässt sich problemlos installieren
- Es wird beim Klick auf Neustart eine Erfolgsmeldung ausgegeben
- Die Größe usw. des Sticks wird nicht unter Zusatzsoftware angezeigt
- Der Stick wird in Homeputer unter Work-Files leider wie gehabt nicht angezeigt und kann auch nicht ohne abziehen und neu einstecken des gleichen eingebunden werden.
- Müsste der Ordner für Homeputer nicht "/var/datadisk/" lauten?
- Nach dem manuellen raus und reinstecken kommt nach drücken des Buttons "Neustart" die angehängte Fehlermeldung

Ich habe bereits zig Sticks durchprobiert und nun schon eine Weile den Stick an der CCU der die geringste Spannungsaufnahme hat. :cry:

Gruß, Tobias.

Re: FAT formatierten USB-Stick in die CCU einbinden

Verfasst: 07.08.2012, 08:44
von Goglo
Ich habe mal zwei Screenshots angehängt - einen mit eingesteckten *und* eingebundenem Stick und einen ohne. Fortwährendes Drücken von Neustart schaltet zwischen den beiden Zuständen immer hin- und her. Es ist nicht notwendig, den Stick auch immer wieder ab und an zu stecken.

Es scheint also noch ein Problem im Zusammenspiel mit homeputer zu geben. Da ich das nicht habe, wird die Fehlerbehebung ein wenig mühsam. Kann man in homeputer nicht irgendwie die USB-Unterstützung abschalten, aber trotzdem Dateien irgendwo auf der CCU speichern? Das wäre erst einmal der von mir präferierte Weg, um herauszufinden, ob mein Skript generell auch auf anderer Leute CCUs funktioniert... ;-)

Der USB-Stick wird von meinem Skript an /var/usbstick eingebunden, homeputer mag das an einer anderen Stelle tun. Für Testzwecke habe ich mal eine Version des Skipts angehängt, die den Stick an /var/datadisk anbindet. Vielleicht hilft das ja schon ein bisschen, da homeputer dann schon denkt, es hätte den Stick schon eingebunden. Eine andere Schwierigkeit könnte sein, dass homeputer eine Art "automount" versucht - ist es richtig, dass normalerweise zum einbinden des USB-Sticks es ausreicht, diesen nur einzustecken? Dann müsste homeputer immer nachschauen, ob ein Stick da ist und den dann selbstständig mounten. Mein Skipt tut das nicht, hier muss explizit auf "Neustart" gedrückt werden. Aber ein Unmount per "Neustart" eines von homeputer erfolgreich gemounteten Sticks muss funktionieren.

Ich baue heute abend mal eine Version, die auch einen verfügbaren, nicht gemounteten USB-Stick anzeigt. Und ich versuche auch mal, die Meldungen der CCU zu beeinflussen, so dass nicht immer nur "Neustart ist erfolgreich" angezeigt wird.

Die Vermutung, dass es am Stick als solchem liegt, möchte ich erst einmal nicht untermauern wollen. Ich habe vier verschiedene ausprobiert und alle haben einwandfrei funktioniert.

Re: FAT formatierten USB-Stick in die CCU einbinden

Verfasst: 07.08.2012, 09:44
von Herbert_Testmann
Hallo

ich habe jetzt lange gesucht, aber zum Schluß doch gefunden, wie Homeputer den USB Stick einbindet.
Beim Start der Zusatzsoftware wird einfach ein Script gestartet und der Stick unter /var/dadadisk gemountet. Damit das funktioniert, muss nach dem Booten der Stick aber vom Linuxsystem schon mal als solcher erkannt worden sein. Sonst kann das mounten nicht funktionieren.
Evtl. kann mal jemand den Inhalt des Scriptes
/usr/local/homeputer/mountusbdrive
hier posten?

Über die Web Oberfläche kann unter dem Punkt "USB Stick einbinden" das Script manuell gestartet werden. Hilft aber auch nix, wenn der Stick in der CCU steckt und beim Booten nicht erkannt wurde.
Ich halte das mit dem raus / rein also weiterhin für ein CCU Problem, das Softwareseitig nicht zu lösen ist. :(

http://homematic-forum.de/forum/viewtop ... 823#p38823

----------------------------------
contronics-RK hat geschrieben:Hallo,

normalerweise muss der USB-Stick beim Starten automatisch eingebunden werden.
Das könnte theoretisch auch nachträglich über Makro gemacht werden mit der nicht dokumentierten Möglichkeit Linux-Programme aus Makros zu starten.
Weitere Infos dazu in diesem Beitrag:
http://homematic-forum.de/forum/viewtopic.php?f ... 800#p38800
So könnte der USB-Stick nachträglich über einen Programmaufruf in einem Makro eingebunden werden.
Dazu müsste folgendes Progarmm gestartet werden, dass normarlweise bei Starten der ExecEngine aufgerufen wird:

/usr/local/homeputer/mountusbdrive

Ist allerdings nicht getestet und ich bin nicht sicher ob es funktioniert, da wenn der Stick nicht automatisch eingebunden ist ja beim ersten Aufruf etwas schiefgelaufen ist.
Es wäre aber auch möglicch eigene Linux-Scripts zum Einbinden des Sticks zu benutzen.

Re: FAT formatierten USB-Stick in die CCU einbinden

Verfasst: 07.08.2012, 10:10
von EnergyStar
Bitte schön:
#!/bin/sh

if [ ! -e /mnt/homeputer/ ]; then
mkdir -p -m 777 /var/datadisk
fi

modprobe vfat
mount /dev/sda1 /var/datadisk
Gruß
EnergyStar

Re: FAT formatierten USB-Stick in die CCU einbinden

Verfasst: 07.08.2012, 10:34
von Goglo
Aha, da wird also einfach gemontet, ohne vorher nachzuschauen, ob der stick überhaupt da ist oder gar schon ein anderer den gemountet hat. Mein Skript ist da auch noch nicht perfekt, kümmert sich aber wenigstens nur um "seinen" mountpoint.

Um mal zu erklären, was da in der CCU passiert: Wird im laufenden Betrieb ein USB-Stick eingesteckt, wird vom Kernel ein special-file /dev/sda für den Stick und ein /dev/sda1 für die erste Partition erzeugt. (sda2, sda3,... für die weiteren, falls vorhanden) Damit ist der Stick da und muss noch gemounted werden. Das passiert dann per mount-befehl. Bei meinem Skript wird das beim booten der CCU erledigt und dann noch bei jedem zweiten Druck auf "neustart".
Bei homeputer wird das scheint's beim Start von homeputer gemacht. Das erklärt dann auch, warum bei Flori das nicht funktioniert hat: da hing der Stick schon an /var/usbstick und homeputer konnte den nicht mehr an /var/datadisk hängen.

Ich mach heute abend mal ein update, wo man die unterschiedlichen mount-Zustände des Sticks in der Systemsteuerung sehen kann. Dann kommen wir auch ohne telnet an des Pudels Kern :-)

Re: FAT formatierten USB-Stick in die CCU einbinden

Verfasst: 07.08.2012, 11:20
von Herbert_Testmann
Meine Linux Kenntnisse sind leider sehr bescheiden :(
Kann man ein physikalisches Device mehrfach mounten? Oder kommt ein Fehler beim zweiten Versuch?

Ich glaube der ursächliche Fehler ist, dass die CCU beim booten gar kein sda bzw sda1 erzeugt. Erst beim Neustecken des USB Stick im laufenden Betrieb.

Also müsste jemand, bei dem der Fehler auftritt nach dem booten mal per telnet nachsehen. Meine CCU hat diesen Fehler ja (leider) nicht mehr.


... unterwegs getippelt mit Tapatalk HD

Re: FAT formatierten USB-Stick in die CCU einbinden

Verfasst: 07.08.2012, 12:10
von Goglo
Nein, ein pysikalisches Device kann man nur ein einziges Mal mounten. Das ist wohl auch der Grund für den Fehler. Der zweite Versuch wird mit einem "Device busy" quittiert.

/dev/sda1 wird immer dann angelegt, wenn ein Stick eingesteckt ist. Natürlich auch - aber nicht ausschließlich - zur Bootzeit. Und um den telnet zu vermeiden, erweitere ich ich mein Skript mal so, dass es vier Anzeigen hat:

- kein Stick verfügbar (/dev/sda1 nicht vorhanden)
- Stick eingesteckt (also /dev/sda1 existiert)
- Stick am im Skript vorgesehenen Ort eingebunden
- Stick woanders eingebunden

Im ersten und letzten Fall ist der Knopf "Neustart" nicht verfügbar. Wenn der Stick eingebunden ist, wird zusätzlich noch das Verzeichnis und die Kapazität angezeigt. Vor dem Abziehen des Sticks sollte immer erst das Dateisystem geschlossen und ausgehängt werden. Windows und Mac zeigen aus gutem Grund immer Warnungen vor Datenverlust an.

Re: FAT formatierten USB-Stick in die CCU einbinden

Verfasst: 07.08.2012, 13:08
von uwe111
Hallo Herbert,

ich will mich ja nur ungern einmischen.... ;)
Herbert_Testmann hat geschrieben: Kann man ein physikalisches Device mehrfach mounten? Oder kommt ein Fehler beim zweiten Versuch?
Ja, aber nicht auf den gleichen „mount point“. Nur dann gibt's einen Fehler.

Viele Grüße,

Uwe.

Re: FAT formatierten USB-Stick in die CCU einbinden

Verfasst: 07.08.2012, 14:38
von Herbert_Testmann
uwe111 hat geschrieben:Hallo Herbert,

ich will mich ja nur ungern einmischen.... ;)
Herbert_Testmann hat geschrieben: Kann man ein physikalisches Device mehrfach mounten? Oder kommt ein Fehler beim zweiten Versuch?
Ja, aber nicht auf den gleichen „mount point“. Nur dann gibt's einen Fehler.

Viele Grüße,

Uwe.
Ok
Also kann Goglo den Stick mounten, auch wenn es schon nach /var/datadisk. Gemountet ist oder umgekehrt.
Ich bin ja immer noch der Meinung, die eigentliche Ursache ist, das /sda1 gar nicht vorhanden ist.

Heute abend lesen wir dann evtl. mehr.



... unterwegs getippelt mit Tapatalk HD