Posts by flautzmaus

    Nachdem ich lange auf der falschen Spur unterwegs war, hab ich das Problem gelöst!!!


    Die Spur der symlinks bei Apache war nur teilweise korrekt, da ja symlinks klappen, wenn sie nicht im tmpfs liegen.


    Das Problem scheint zu sein, dass ein tmpfs, das über fstab gemounted ist, immer root der owner ist.

    Selbst wenn alle Schreibrechte vergeben sind, klappt das bei mir nicht.

    Die Lösung war, in einem start-skript, das einmalig bei Starten des Systems als root läuft, den owner anzupassen.

    Code
    chown ich:users /var/www/html/foto/tmp

    hab nun nach "Apache follows symlinks" gekuugelt und einiges gefunden und ausprobiert, aber nachdem der Versuch mit

    Code
    Options +FollowSymLinks

    das System zum Absturz bringt hab ich keine Lust mehr, bin frustriert und gehe erstmal schlafen!!!


    Falls ich das über symlinks nicht gelöst bekomme, versuche ich ggf. mal, ob ich über php das Kontrollbild ausgeben kann...

    Hier die Ausgaben !


    Dabei fällt mir auf, dass /var/www/html/foto/tmp eine Größe von 0 hat.

    Das liegt wohl daran, dass mein Kontrollbild keine Kopie, sondern ein Link auf das letzte Bild ist.

    (das Kontrollbild wird von raspistill mittels Parameter -l generiert)


    Wenn ich ein Bild nach /var/www/html/foto/tmp kopiere, kann ich das auch tatsächlich über Apache lesen.


    Demnach ist das Problem, dass Apache keine Links im tmpfs ausgeben mag?

    Hallo,


    einen Raspberry-Zero betreibe ich, um Zeitraffer-Filme zu erstellen (Wolken, Schiffe und so'n Zeugs ...).


    Damit ich während der Aufnahme bereits kontrollieren kann, speichert mein Skript eine Kopie vom letzten Bild auch immer unter

    /var/www/html/foto/tmp/pic.jpg

    Das klappt soweit prima, ich da mittels Samba oder Apache drauf zugreifen.


    Da sich das Kontrollbild bei jedem Foto ändert und ich meine SD-Karte etwas schonen möchte,

    bin ich auf die Idee gekommen, das Verzeichnis /var/www/html/foto/tmp/ in der fstab als tmpfs zu mounten.

    Da klappt auch soweit. Unter Samba kann ich da immer die aktuelle Datei finden.

    Leider mag Apache das nicht, beim Zugriff auf das tmp-Verzeichnis kommt die Meldung "You don't have permission to access this resource",

    obwohl dieses Verzeichnis die gleichen Rechte hat wie wenn tmpfs nicht aktiv ist.


    Woran scheitert es, dass Samba klappt, Apache aber Probleme hat?


    (Apache hat den großen Vorteil, dass das Bild sofort abgerufen werden kann, Samba hat da bis zu 30s Verzögerung...)

    Als Test kann man das Skript verzögert starten um zu sehen ob das funktioniert. Alternativ das Skript in der autostart Datei, oder über eine Desktop-Datei (autostart) ausführen.

    Habs schon probiert. In dem Skript selber hab ich schon 5s Verzögerung drin bevor der VLC startet, hat aber nix geändert.


    Was meinst Du mit "autostart Datei, oder über eine Desktop-Datei (autostart)" ?

    (ist mein erstes Projekt mit einem Raspberry mit Desktop, sonst fummle ich mir mit Headless-Raspberrys alles in der SSH-Kommandozeile zurecht ...

    Und auch hier versuche ich mein Glück mit Putty / SSH und will den Desktop eigentlich nur für VLC nutzen)

    Hallo,

    ich habe hier einen Raspi 4 laufen, den ich als Mediacenter laufen lassen möchte.


    Dazu habe ich ein kleines Script geschrieben, welches den VLC via Kommandozeile so startet, dass er auf Kommandos vom http lauert und diese dann ausführt.

    Code
    export DISPLAY=:0
    /usr/bin/cvlc --no-video-title-show -f --intf=http --http-password="passwort"

    Das klappt soweit ganz gut. Von einem PC / Handy oder einem zweiten Raspi kann ich den VLC nun remote steuern.

    Leider klappt es nur bedingt, wenn ich dieses Script aus der crontab starte

    Code
    @reboot         po    /usr/bin/bash /var/www/html/init.sh > /dev/null

    Das Fernsteuern klappt dabei prinzipiell, das Bild kommt, aber leider kein Ton.

    Wenn ich den vlc kille und das Skrip wieder manuell ausführe, klappt wieder alles,

    aber es soll ja automatisch starten.


    Was fehlt dem Script, wenn es via crontab läuft?

    Im error log findet sich tatsächlich die Meldung "VCHI initialization failed".


    Daraufhin hab ich wie ober vorgeschlagen dem "www-data" die Gruppe "video" zugeordnet. Leider ohne Erfolg.

    Hab auch dann auch mal die Gruppe "users" probiert, ebenfalls ohne Erfolg.

    Zur Beruhigung: Inzwischen hab ich die Gruppenberechtigung wieder zurückgesetzt..


    Es gibt ja z.B. Bots, die versuchen eine SSH-Verbindung mit pi als User und raspberry als Passwort aufzubauen.

    Das ist praktisch, wenn die ganzen Nutzer das Passwort nicht ändern und der User pi auch root-Rechte bekommen kann.

    Mein RPi ist aus dem Internet nicht erreichbar.

    Dennoch ist es bei der Installation eines neuen RPi meine erste Aktion, einen frischen Adminuser mit sicherem Passwort einzurichten und den User "pi" zu löschen.

    Daher traue ich mich auch ein paar unsaubere Aktionen mit Gruppenrechten, aber ich möchte ja gerne lernen, wie es besser geht.

    Vielen Dank für die schnellen Antworten.


    Ich hab ja schon beinahe vermutet, dass Rechte das Problem sein werden,

    mir war nur bis grad nicht kar, dass es Befehle gibt mit unterschiedichen Rechten.


    Gibt es da eine Möglichkeit, diese erforderlichen Gruppenmitgliedschaften abzurufen?

    Ich möchte ja noch weitere Daten mit weiteren Kommandos abfragen.

    Moin,

    ich versuche via PHP div. Daten auszugeben.

    Mittels PHP -> "shell_exec()" starte ich verschiede Kommandos und möchte das Ergebnis im HTML sehen.
    Bei vielen Kommandos klappt dies problemlos, bei einigen erhalte ich keine Antwort.
    Hier ein kleines Beispiel:

    PHP
    1.
    <?php
    echo shell_exec("vcgencmd measure_temp");
    ?>
    <br><br>
    2.
    <?php
    echo shell_exec("uptime --since");
    ?>

    Mit dem Browser sehe ich dann:

    1.

    2. 2022-02-06 15:22:20

    D.h. das "vcgencmd" liefert keine Rückgabe, das "uptime" dagegen schon.


    in einer Shell erhalte ich dagegen vom "vcgencmd measure_temp"

    "temp=37.0'C"


    Hab keine Idee mehr, was ich da falsch mache.

    Irgendwelche Ideen, w ich weiter suchen kann?

    Hallo,

    ich stehe vor einem kleinen Problem, das ich trotz Tante Google aktuell nicht gelöst bekomme.

    Mein PI Zero verbindet sich idR. mit meinem Router via integriertem WIFI.

    Wenn ich allerdings mit dem PI unterwegs bin, ist der Router nicht vorhanden, dann möchte ich gerne den PI ZERO als AP ansprechen können.


    Ganz toll wäre es, wenn der PI Zero sich am Router anmeldet und parallel dazu als AP verfügbar wäre.

    Aber nach einigen Meldungen im WWW scheint dies wohl mit der Hardware den PI ZERO problematisch zu sein.

    Daher könnte ich mir eine Lösung vorstellen, bei der der PI zunächst versucht, sich am Router anzumelden.

    Wenn dies innerhab eines Timeouts nicht klappt, wechselt er in den AP Modus.


    Gibt es dazu Ideen, wie dies umgesetzt werden könnte?

    Hallo,

    ich habe CUPS auf meinem Raspi eingerichtet. Da hängen über USB zwei Lexmark-Drucker dran, ein E350DN und ein E360.


    Im Prinzip läuft das, aber meist hab ich das Problem, dass nur wenige Seiten gedruckt werden, danach hängt der Drucker.

    Bei weiteren Druckjobs zeigt das LCD im Drucker "belegt" an, gelegentlich sehe ich eine kurze Meldung "Puffer löschen" o.ä., anschließend ist der Drucker wieder empfangsbereit,

    er druckt aber nichts mehr. CUPS zeigt den Druckjob als abgearbeitet an.

    Die einzige Möglichkeit, den Drucker wieder zu reaktivieren ist, den Drucker lurz aus- und wieder einzuschalten. Danach kann ich meist wieder einige Seiten drucken.

    Das Verhalten ist bei beiden Druckern gleich.


    Bei div. Windows-PCs, die darauf drucken, sind unterschiedliche Treiber für die Lexmark-Drucker eingerichtet. Aber auch, wenn ich ein PDF direkt vom Raspi drucke, das Verhalten ist immer gleich.

    Die Windows-Testseite genauso wie die CUPS-Testseite werden immer einwandfrei gedruckt.


    Irgendwelche Ideen zur Fehlersuche?


    Ist übrigens ein Raspberri 3B. Ist es denkbar, dass CUPS mit dem RAM nicht auskommt?


    Ich glaub es eigentlich nicht wirklich, aber kann es an meinem low-cost USB-Hub liegen?

    So, nachdem ich einen zweiten Pi Zero ausprobiert und auch eine andere SD-Karte getestet hab, mit allen Kombinationen,

    hat sich immer das gleiche Verhalten gezeigt: Die grüne LED blinkt ein wirres Blinkmuster und kommt nicht zur Ruhe.

    Aber ca. alle 20s scheint sich das Blinkmuster zu wiederholen. Das sieht irgendwie nach einer endlosen Bootschleife aus.


    Diese Bootschleife hat mich irgendwie auf die Fehlerquelle gebracht.

    Den Fehler hab ich nun gefunden, der ist so unglaublich aber wahr.


    Zur Erläuterung des Fehlers muss ich etwas ausholen...

    Ich versorge den PI Zero mit einem kleinen Steckernetzteil 5V 2A. Das Teil ist recht hochwertig und hat gleich zwei USB-Ladebuchsen.

    An der einen Buchse hängt der Raspberry, an der anderen wird gelegentlich ein Handy geladen. Es sind aber immer beide USB-Kabel im Ladegerät gesteckt.

    Beide Kabel haben am freien Ende einen Mikro-USB-Stecker.

    Als mein Problem begann, habe ich offensichtlich die Kabel vertauscht, so dass ich seitdem den PI Zero mit dem Handy-Kabel betrieben habe.

    Ich hab nun die Kabel wieder getauscht, seitdem laufen beide PI Zero, ganz egal mit welcher SD-Karte !!!


    Offensichtlich hat das Handy-Kabel einen leichten Defekt, ist vielleicht etwas hochohmiger geworden, was dazu führt, dass am Raspberry die

    Versorgungsspannung einbricht, wenn er z.B. WiFi aktiviert, etwas mehr Strom benötigt, und dadurch einen Reset ausführt.

    Zum Handy-Laden reicht das Kabel wohl grade aus, für die sensible Spannungsversorgung des PI Zero aber offensichtlich nicht !!!


    Was lerne ich daraus?

    - Eine gute Spannungsversorgung ist extrm wichtig.

    - USB-Mikro-Kabel sind eine denkbar schlechte Idee für die Spannungsversorgung sensibler Elektronik

    - demnächst werden meine Raspberries ausschließlich nur über fest gelötete Kabel versorgt

    - Die Spannungsversorgung sämtlicher Raspberries wird ein wenig modifiziert und auf ca. 5.25V angehoben.

    Hallo,


    vor kurzem hab ich einen Pi Zero W installiert.


    Die headless Installation hab ich nach Anleitung ohne Probleme hinbekommen, das Teil hat sich nach kurzer Zeit an meiner Fritzbox angemeldet

    und über SSH konnte ich zugreifen und weitere SW installieren.


    Aus Versehen hab ich mal den USB-Stecker nicht in die Buchse für die Spannungsversorgung, sondern in die USB-OTG gesteckt.

    Die grüne LED hat angefangen zu blinken, aber ich konnte nicht über WLAN auf den PI zugreifen.

    Ich hab sofort den Stecker wieder in die richtige Buchse gesteckt, aber seitdem kann ich nicht mehr zugreifen.


    Inzwischen hab ich mehrfach die SD-Karte neu geflasht, aber ich kriege keinen Kontakt mehr zum Raspberry PI Zero.

    So erhärtet sich der Verdacht, dass ich durch das falsche Stecken den Pi zerstört habe.


    Ist dieses Phänomen bekannt? Gibt es Chancen, das Teil zu retten?

    Hi,

    vielen Dank für den interessanten Artikel.


    Mein Raspberry erstellt ebenfalls mitten in der Nacht seine Backups.


    Dazu gehört auch ein Komplettbackup vom SD-Karten-Image.

    Als Backup nutze ich Subversion, welches von Haus aus incremental arbeitet.

    Da meine SD-Karte im Wesentlichen nur das System, aber keine User-Daten trägt, sind die täglichen Änderungen minimal.

    So ist auch das gesamte Archiv verhältnismäßig gering, dennoch kann ich auf die täglichen Backups der letzten zwei Jahre zurückgreifen.


    Aber da ich das Image archiviere, werden tatsächlich auch gelöschte Bereiche archiviert. Diesen Gedanken hatte ich noch gar nicht...

    Da gefällt mir die Idee, alles was gelöscht ist, mit Nullen zu überschreiben. Diese Idee werde ich dankenswerterweise übernehmen.


    Aber um die SD-Karte zu schonen, ist meine spontane Idee, zuerst ein Image der SD-Karte auf meine HDD zu kopieren,

    das Image dann zu mounten, und dann dieses Image mit Nullen aufzufüllen. Das beschäftigt dann nur die HDD, der Schreiboperationen egal sind.


    Inzwischen bin ich begeistert von Subversion als Backup. Subversion bietet aufgrund der incrementellen Speicherung den Charm,

    über einen langen Zeitraum jeden Zustand wieder herstellen zu können.

    Das Erstbackup ist sicherlich nicht so speichersparend wie ZIP, das Speichern sämtlicher täglichen Zip-Dateien würde dagegen

    ein Vielaches des Speicherplatzes benötigen.

    Named pipes hab ich mal versucht, leider landet die wieder entweder mit einem lokalen Pfad auf der SD-Karte oder mit einem absoluten Pfad in dem krptischen apache-Verzeichnis im /tmp/.

    Damit ist mir leider noch nicht geholfen.




    ... Wer ist "ich", und welchen Gruppen gehört der jeweils beteiligte User an ?

    Laut /etc/mtab hat jeder User sein eigenes tmpfs. ...

    So wie ich das sehe, hat bei mir jeder User unterhalb vom /tmp sein eigenes tmpfs,, dennoch gibt es das /tmp, in dem jeder rumwerkeln kann,

    sofern er nicht auf geschützte fremde Date stößt...

    Mein Script hat ja mittels /tmp/<datei> Zugriff auf die datei, und jeder andere auch, dem ich die Rechte einräume.

    Nur von Apache / PHP hab ich gar nicht die Möglichkeit auf diesen absoluten Pfad zuzugreifen.



    wie wäre es mit einem entsprechenden Link von /www/xx nach irgendwo ?

    Habs versucht. Habe im /tmp ein Verzeichnis "apache" mit Rechten für alle eingerichtet und einen Link darauf als /var/www/html/tmp

    Von meinen PHP kann ich in allen lokalen Pfaden unterhalb von /var/www/html Dateien erzeugen, aber nicht im Link /var/www/html/tmp.

    Hallo,

    nachdem ich inzwischen das Hochladen von Dateien beherrsche, möchte ich (Linux Einsteiger) die nächste Herausforderung meistern.


    Beim Start des Raspberry starte ich ebenfalls ein bash-Skript, welches jede Sekunde aufwacht und ein wenig Schickschnack macht.

    Ums genau zu sagen, das Script schaut sich jede Sekunde an, ob in irgendeiner Druckerqeue ein Druckjob angekommen ist, und aktiviert

    gegebenenfalls über einen GPIO ein Relais, welches die Steckdose für meine Drucker unter Spannung setzt.

    Dieses Skript läuft im Zusammenspiel mit CUPS einwandfrei.


    Für eine Erweiterung der Funktion soll dieses Skript nun auch über eine kleine Webseite vom Apache via PHP gesteuert werden.

    Dazu benötige ich einen Datenaustausch zwischen meinem Script und dem PHP / Apache.

    Mein erster Gedanke war, dass das PHP in meiner Ramdisk unter /tmp/ eine Datei anlegt, die von meinem Skript ausgelesen wird.

    Da fangen meine Probleme an.


    Wenn ich unter PHP im Verzeichnis /var/www/html/ eine Datei mit einem lokalen Pfad erzeuge, klappt das.

    Ich möchte aber nicht die Datei auf der SD-Karte liegen haben, sonder in der Ramdisk unter /tmp/, da ich die SD-Karte größtenteils schreibgeschützt betreiben möchte.

    Wenn mein PHP eine Datei aber unter einem absoluten Pfad, z.B. in /tmp/ ablegen will, wird dies offensichtlich vom Apache umgebogen in

    /tmp/systemd-private-2ab69e9d15e24bb2aafd46ad67cc0a1e-apache2.service-aBMKes/tmp/<Dateiname>

    Offensichtlich kapselt Apache den Webzugriff auf das Filesystem.

    Auf dieses Verzeichnis hat aber mein Skript keinen Zugriff, vor allem fürchte ich, dass sich dieser Pfad auch mit jeder Sitzung ändert.


    Daher meine Fragen:

    - wie kann ich unter Apache / PHP auf einen absoluten Pfad außerhalb von /var/www/html zugreifen?

    ODER

    - gibt es einen anderen einfachen Mechnismus für den Datenaustausch, den ich als Linux-Newbie hinkriege? (Mailboxing, Semaphoren etc...)??