Posts by kungel

    dazu 2 Fragen:


    - welches Betriebssystem benutzt du? Bei Rasbian ist die bash in /bin und nicht in /usr/bin.


    - sudo funktioniert bei dir ohne Passwort?


    Vielleicht den cron-job als root anlegen, dann ist sudo nicht notwendig



    Edit:
    Noch eine Frage:


    Ist dies der Eintrag in der crontab?
    Die Zeile mit der bash ist dort ungewöhnlich.


    Noch ein Edit, weil noch eine Frage:


    In den beiden Scripten verwendest rufst du Programme mit oder ohne Pfad auf?
    Zur Sicherheit dort auch Pfade verwenden - beliebte Fehlerquelle bei Scripten, die über cron aufgerufen werden.

    Ich habe mal in der ->HILFE<- von gparted nachgelesen. Da steht ein schöner Hinweis drin, was du falsch gemacht hast.
    Man darf nicht den Partitionstyp MSDOS nehmen!


    Ansonsten: bei gparted Partition rechts anklicken, dann löschen.
    Die Partition darf natürlich nicht eingebunden sein.


    Auch für parted gibt es was Interessantes:


    Code
    man parted



    Die Partition dann mit ext4 formatieren. Dann kann man zwar die Platte nicht ohne Weiteres an einen MS-Windows-Rechner anschließen, das Dateisystem ist für den RPi aber besser, weil schneller und Ressourcen schonender als mit ntfs formatiert. Dateigrößen über 4 GB sind mit ext4 kein Problem.


    Und dass der RPi in der Lage ist, seine 100 Mbit/s zu liefern, halte ich für ein Gerücht. Bitte mal die Klagen in diesem Forum lesen.
    Wenn du halbe Fast-Ethernet Geschwindigkeit erreichst, sei glücklich.



    bonne chance

    sicher.


    Das Ganze einfach mal löschen und von vorn anfangen, z.B. mit parted oder auch gparted - nicht mit fdisk!


    Und dann nur eine Partitionstabelle für die Platte anlegen.
    Anschließend dann die Partition.

    Da geb ich dem jar recht.


    Aber solche Sachen machen ja viele hier und des Menschen Wille ist sein Königreich.
    Daher:


    Die 2 GB ist eine Grenzgröße, die durch die veraltete Partitionierung über MBR definiert ist. Größere Platten werden heutzutage via GPT partitioniert.
    Die Platte muss daher erstmal entsprechend konvertiert werden.
    Sollte eigentlich mit parted zu machen sein oder hier eine Anleitung mit MS WIn 7 oder 8.

    Sorry, aber bei grub4dos kann ich dir nicht weiterhelfen.
    MS-DOS, nee, da lad ich mir doch was Vernünftiges :no_sad:
    Aber mit "grub4dos PXE" habe ich bei Google genug Infos.


    Der Rest ist einfacher.
    Egal ob mit grub, grub2, lilo oder pxe gebootet, die notwendigen Informationen müssen vorliegen.


    Also bei Linux zunächst der Ort und der Name des Betriebssytemkerns.
    Im Beispiel ist es suse/boot/vmlinuz
    Schau ich in das Verzeichnis /boot steht da z.B.:


    OpenSuse 13.1

    Code
    lrwxrwxrwx  1 root root       24 25. Nov 14:12 vmlinuz -> vmlinuz-3.11.6-4-desktop
    -rw-r--r--  1 root root  5210216  1. Nov 19:33 vmlinuz-3.11.6-4-desktop


    Debian 7.1

    Code
    -rw-r--r--  1 root root  2835648  Sep 20 05:46 vmlinuz-3.2.0-4-amd64


    Im 1. Fall ist vmlinuz also ein Link auf den Kernel, im 2. Fall muss man den vollen Namen einsetzen oder einen Link setzen.


    Der Kernel kann "nur" die Grundfunktion des Betriebssystems. Entsprechend der verwendeten Hardware müssen noch weitere Module (z.B. Treiber) geladen werden.
    Dies kann man nun einzeln - oder in einer Datei zusammen gefasst machen. Dies ist die initrd.
    Diese wird bei der Installation gebildet, kann man auch selbst machen, ist aber eine eigene Geschichte.


    Da wir über Netzwerk booten wollen, brauchen wir sehr früh eine Netzwerkadresse. Mit ip=dhcp hoffen wir, dass wir eine erhalten.
    Die ganz harte Tour ist:
    ip=192.168.3.22:192.168.3.20:192.168.3.1:255.255.255.0:fokus:eth0:none:192.168.3.1


    Dann muss gesagt werden, wo ist die Wurzel des Dateisystems, was wird nach / gemountet?
    Dies ist hier ein über einen nfs-Server freigegebenes Verzeichnis.


    Es gibt noch eine ganze Menge weiterer Parameter, die man mitgeben kann. Beispiele sind über den Link von framp zu finden.


    Über Netzwerk booten ist ein spannendes Thema, kann aber beliebig komplex sein.

    Eigentlich ist auf der heise-Seite alles beschrieben.
    Für neue Einträge kann man analog vorgehen.


    Also:
    die Datei /etc/dnsmasq.d/desinfect erweitern. Z.B. so:


    Code
    port=0
    log-dhcp
    enable-tftp
    tftp-root=/srv/tftp
    dhcp-range=192.168.3.0,proxy
    pxe-prompt="Taste F8 zeigt Auswahl",10
    pxe-service=X86PC,"OpenSuse",fokus/pxelinux
    pxe-service=X86PC,"Mit Desinfec't starten",ct/pxelinux
    pxe-service=X86PC,"Starten von Festplatte",0



    Ein neues Verzeichnis anlegen, in meinem Beispiel also /srv/tftp/fokus.
    Dort sieht es so aus:


    Code
    lrwxrwxrwx 1 root root   30 27. Apr 2013  pxelinux.0 -> /usr/share/syslinux/pxelinux.0                                     
    drwxr-xr-x 2 root root 4096 21. Nov 16:00 pxelinux.cfg                                                                     
    lrwxrwxrwx 1 root root   16 21. Nov 13:17 suse -> /iso/suse13.1-32


    Die Datei /srv/tftp/fokus/pxelinux.cfg/default dann so :

    Code
    LABEL opensuse13.1
    
    
            MENU LABEL OpenSuse
            DEFAULT suse/boot/i386/loader/linux initrd=suse/boot/i386/loader/initrd ip=dhcp


    In diesem Beispiel wird eine Installation-DVD von OpenSuse gestartet, die als ISO-Datei auf dem Server liegt und in das Verzeichnis /iso/suse13.1-32 gemountet ist.


    Mit einem Eintrag wie:


    Code
    DEFAULT suse/boot/vmlinuz netboot=nfs root=/dev/nfs ip=dhcp nfsroot=192.168.3.20:/mnt/nexus/suse12.2-remote initrd=suse/boot/initrd


    läßt sich ein Linux starten.


    Natürlich passen die Pfade nur mit meinem Beispiel und müssen angepasst werden. Die LABELs kann man beliebig setzen.

    Ein gut gemachtes Tutorial.


    Dennoch möchte ich ein großes ABER anmelden.


    RDP ist ein proprietäres Netzwerkprotokoll von Microsoft, dass auf Betriebssystemen wie Unix, Linux und MacOS nachträglich installieren werden muss.
    Es gibt aber für diese Betriebssysteme bereits ein Netzwerkprotokoll, dass Ähnliches und noch mehr leistet.
    Und es ist (fast) immer im Spiel: Sobald ein Desktop angezeigt wird, wird es verwendet, nämlich X.
    - egal ob KDE oder Gnome oder dessen Derivate oder ... -


    Ein großer Vorteil ist, dass ein Unix-Rechner mit einem beliebigen anderen X-Server auf einen anderen Rechner kommunizieren kann.


    Deutlicher:
    Ein Pi mit Rasbian und LXDE soll den Desktop auf einen Linux-Rechner mit Gnome oder KDE anzeigen.


    Was passiert mit RDP:


    Der Pi startet einen X-Server.
    Er startet den LXDE-Desktop.
    Er sendet den Desktop-Inhalt mit RDP zum Zielrechner.
    Der Zielrechner startet einen X-Server.
    Er setzt das RDP-Protokoll auf X um.
    Er leitet die Ausgabe zu seinen X-Server.
    Der X-Server zeigt den Desktop des Pi an.


    Was passiert mit X:


    Der Pi sendet mit X den Desktop zum Zielrechner.
    Der Zielrechner startet einen X-Server
    Der X-Server nimmt die Daten des Pi an und stellt den Desktop dar.


    Was ist wohl eleganter?


    Nicht nur das! Der Pi braucht den Desktop nicht erstellen (rendern): der Zielrechner macht das.
    Der X-Server des Pi und sein Desktop müssen nicht laufen - er bleibt im Textmodus.
    Gerade für headless laufende Rechner doch eindeutig ein Vorteil.


    Das RDP-Protokoll braucht man erst, wenn Microsoft ins Spiel kommt.
    Habe ich nur Linux-/MacOS-/Unix- oder gar VMS-Rechner, ist es überflüssig.


    Aber bitte nicht falsch verstehen.
    Das hat nichts mit der Qualität des Tutorials zu tun!


    Die Verwendung von X ist hier im Forum beschrieben.

    Ich hatte noch nicht die Zeit, mich mit dem Problem zu beschäftigen. Sorry


    Die Konfiguration läuft eigentlich über das eine Verzeichnis.
    Ich gehe mal davon aus, dass du hostname etc. korrekt angepasst hast. Genauso wie die Datei passwd.client.
    Das sollte es eigentlich sein.


    Bei deiner Konfiguration fällt mir auf, dass du


    Code
    dc_eximconfig_configtype='internet'


    in der Konfiguration stehen hast.


    Das soll so sein? Alle drei Pis sollen Emails empfangen? Für die selbe Domäne? Gleichzeitig? Geht das?
    Also ich weiß das nicht, ich habe das noch nicht ausprobiert.


    Kannst ja auch mal

    Code
    dc_eximconfig_configtype='satellite'


    ausprobieren. Das reicht, um Emails zu verschicken.

    Mit dem mount-Befehl kann man auch bereits eingebundene Verzeichnisse neu oder auf einen zweiten mounting-point setzen.


    erster Versuch:


    Code
    mount -n -o remount,rw /


    zweiter Versuch:


    Code
    mount -n -o remount,rw /dev/mmcblk0p2 /


    hierbei kann /dev/mmcblk0p2 bei dir anders aussehen - ich habe hier Rasbian auf einer SD mit zwei Partitionen



    dritter Versuch:


    Code
    mount -n -o remount,rw /etc /mnt


    Die Datei fstab ist dann über /mnt zu erreichen.



    vierter Versuch.


    SD in einen anderes Linux-Rechner einstecken und fstab korrigieren.

    Ob man jetzt auf eine Datenbank zugreift oder auf eine Datei - was davon erzeugt wohl mehr I/O Zugriffe oder verursacht mehr Last :huh:


    Was da mehr Last erzeugt, ist doch eindeutig.


    Es soll eine Mail versendet werden, die Datei wird auf alle Fälle erzeugt - also Gleichstand.


    Das Betriebssystem kann sehr effizient nachschauen, ob eine neue Datei existiert.



    Wie sieht der Datenbankzugriff aus?


    Auf wenn er nur lesend ist, passiert da eine Menge - ist ja auch ein Datenbank-Management-System.


    Nach Annahme des SQL-Befehls wird zunächst die where-Bedingung analysiert:
    Wieviele Tabellen sind betroffen?
    Wie sind sie verknüpft?
    Sind die abgefragten Felder Teil eines Index?
    Wenn nicht, gibt es Sekundär-Indices?


    Dann wird der Select analysiert:
    Welche Tabellen sind betroffen?
    Kann ich die Information aus dem Index lesen?
    Oder muss ich die Tabellen komplett lesen?


    Ist diese Auswertung fertig, erstellt das DBMS einen Zugriffsplan.


    Dann schaut das DBMS nach, darf ich jetzt lesen oder gibt noch schreibende Zugriffe (Locks) auf die angeforderten Tabellen.


    Wenn ja, meldet es ihre Ansprüche an, das es lesen will und wartet auf das Ende der Locks.


    Dann greift es auf Index und Tabellen zu. Hierbei braucht es Unterstützung vom Betriebssystem, das sind jetzt ja Dateien.


    Sie kann jetzt entweder schnell (über Index) oder langsam (kein Index vorhanden) die Daten lesen.
    Wenn es die Information aus verschiedenen Tabellen holen musste, müssen diese zu Datensätzen zusammengeführt werden.


    Und erst dann kann es das Ergebnis ausliefern.


    Moderne DBMS verteilen diese Aufgaben auf verschiedene Threads. Habe ich eine Maschine mit mehreren Kernen oder gar ein Multiprozessor-Rechner und reichlich Arbeitsspeicher, geht dies durchaus fix - nur das Warten auf das Ende der Locks stört vielleicht.


    Wie sieht es hier beim Pi aus:
    Kann er mehrere threads parallel bearbeiten? Nein - nur nacheinander.
    Kann er die Abarbeitung optimieren? Nein - kann nur in-order
    Hat er viel Arbeitsspeicher ?


    Bei meinem Vorschlag gibt es keinen zusätzlichen Zugriff - die Datei ist Teil der Transaktion, die von außen ausgelöst wurde und eh stattfindet.



    Wie reden hier aber über ein System, das wahrscheinlich nur wenig genutzt wird. Da mag das ja egal sein, der Pi wird das schon schaffen.


    Aber unter Last möchte ich diese Lösung nicht erleben.

    Auch wenn schon eine Lösung gefunden wurde und kurz vor der Vollendung steht, erlaube ich mir trotzdem einen anderen Vorschlag zu machen.


    An der Lösung stören mich die vielen Datenbankzugriffe. Der maximale Vorschlag war alle 0,5 Sekunden. Das sind 172800 Zugriffe am Tag, 63 Millionen im Jahr.
    Auch jede Minute wäre mir für den Pi zu viel. Seine Ressourcen sollten sparsam eingesetzt werden.


    Mein Vorschlag ist einen Trigger zu erstellen, der eine Textdatei erzeugt und in ein Verzeichnis ablegt. Per Cronjob wird dann nachgeschaut, ob dort eine Datei existiert. Die wird dann per Mail verschickt wird oder was weiß ich.
    Für die Überprüfung findet somit überhaupt kein Datenbankzugriff statt und sie wird mit Abschluss der Transaktion erzeugt. Zeitnäher geht es nicht.


    Die Syntax ist hier.


    Die Aufgabenstellung hatten schon viele, daher kann man auch [url=http://forums.mysql.com/read.php?99,33635,170562#msg-170562]Beispiele[/url] finden.

    Also dass das HDMI-DVI-Kabel keinen Rückkanal hat, möchte ich mal anzweifeln.


    Es ist zwar kein Pi, sondern ein normaler PC mit zwei angeschlossenen Monitoren, den ich gerade vor den Augen habe.
    Die Monitore sind einmal über DVI-DVI und einmal mit HDMI-DVI angeschlossen.
    Für beide Monitore zeigt mir KDE die richtigen Auflösungen an. Bei anderen Distribution werden auch die korrekten Monitor-Namen angezeigt.



    Vielleicht kann der Beamer das nicht oder DDC ist ausgeschaltet.

    Versuch es doch mal hiermit:


    Nach dem Einloggen (nicht als root) auf der Konsole eingeben:



    Code
    xinit vlc



    Vorausgesetzt vlc ist installiert und ohne Pfad aufrufbar. Notfalls mit Pfad.


    Mit F11 kommst du in den Vollbildmodus.
    Beenden über das Menü.



    Viel Spaß


    Als edit wollte ich gerade Blödsinn erzählen, hatte aber nur den Kopfhörer nicht richtig eingesteckt :blush:

    Sorry, hatte es nicht auf dem Pi getestet. Bei anderen Distributionen braucht man auch die Codex.



    Ich habe es bei mir mit mp3- bzw Videodateien zum Laufen bekommen. War ein Stück Arbeit. Es gibt zwar hier eine Dokumentation.
    Da wird aber keine Rücksicht auf uns Laien genommen.
    Auch beim Googeln muss man aufpassen, da viele Beschreibungen sich auf alte Versionen beziehen, die nur noch zum Teil gültig sind.


    Für den Anfang ist es vielleicht günstiger, erst mal eine Datei zu streamen.


    Code
    vlc /pfad/datei.mp3 --sout '#standard{access=http,mux=raw,select=audio,numseq=10}' --sout-keep



    Baustelle ist der Ersatz für /pfad/datei.mp3.
    Das will ich bei mir auch noch einrichten, habe es aber zeitlich noch nicht geschafft.


    Eine weitere Baustelle verbirgt hinter "mux=raw"
    Bei dem mp3-Beispiel ist es einfach: so wie es reinkommt, so geht es wieder raus.
    Man kann da auch "mux=ts" nehmen, dann wird es in einen Container "gemuxt". Da hier aber kein Video dabei ist unnötig.


    Was für den Line-Eingang hier notwendig ist, ob der Pi das Eingangsignal erst noch umwandeln muss etc, weiß ich (noch) nicht.


    Kommst mit der Frage etwas zu früh, ich wollte das Ganze, wenn es fertig ist, in ein Tutorial packen.
    Da gibt es noch eine Reihe von anderen Sachen, z.B. die synchrone Ausgabe auf mehreren Rechnern.


    Wenn Du ein Stück weiter bist, berichte bitte. Bin sehr daran interessiert.

    Die beiden Zeilen mit IFS bedeuten newline, kann man auch anders, ist aber piep-egal wie man es schreibt.



    grep liefert einen Fehler zurück, wenn nichts gefunden wird.
    Einfach mal ausprobieren!


    Also nichts falsch. also bei mir