Beiträge von kasimodo

    Funzt aber noch immer!


    Code
    1. wget --no-check-certificate https://curl.haxx.se/ca/cacert.pem

    alternativ:

    Code
    1. curl --silent --location --remote-name --insecure https://curl.haxx.se/ca/cacert.pem

    siehe auch:

    https://github.com/Yannik/qnap-letsencrypt


    Hallo,


    schau dir als Alternative mal das Thema an:

    Wie Kernel modul fest installieren


    Bitte die beiden letzten Beiträge im Thema beachten!


    mfg Kasimodo


    ps: Beachte dass die anzulegenden Dateien den Zeilenumbruch für Unix haben! Das gilt auch für deine bisherige autorun.

    Zum Test füge mal folgende Zeile in deine bisherige autorun ein.

    echo `date` Start autorun.sh >> /var/log/autorun.log


    Mit cat /var/log/autorun.log siehst du nach dem Neustart vom NAS ob deine bisherige aurorun überhaupt gestartet wurde.


    Wenn nicht dann die oben benannte Alternative versuchen!

    Bei mir funktionieren beide Möglichkeiten.

    In dem qpkg.conf code von oben steht nichts von "start".

    Hallo,

    das ist so korrekt!

    Schau mal unter /etc/rcS.d nach - Dort liegen Symlinks zu denen beim Start vom NAS auszuführenden Programmen und diese werden mit der Option "start" ausgeführt. Die Symlinks, die mit einem "Q" am Anfang vom Namen, haben ihren Ursprung in der qpkg.conf und werden automatisch angelegt.


    gilt ebenso unter /etc/rcK.d für "stop"

    So beschreibst du deine Fehlermeldung:

    der vorgang endet mit einem Kernel panic " not syncing: No working init found."


    Also wird ja der Kernel schon mal über PXE geladen. Was nicht gefunden wird ist RootFs (bzw. die Rechte stimmen nicht) um den init vorgang fortzusetzen.


    Übertragt mal das aktuelle Rasbian lite Image auf eine SD-Karte.

    Richte dieses, wie in der Howto beschrieben ein und übertrage dann alles auf dein NAS in die richtigen Verzeichnisse unter pxeroot.

    Wie / womit hast du das Filesystem von der SD Karte bisher auf dein Nas übertragen?

    Ich schließe den Reader mit der SD-Karte dazu an das NAS an, mounte die SD-Karte und kopiere direkt unter Linux. Ein "copy" unter Windoof vom PC aus kann nicht funktionieren.

    nfsroot=192.168.115.180:/pxeroot/raspi/PiTest ist richtig!


    die "start.elf" kommt nicht in "pxeroot"


    Ist "0775e0b3" ein Symlink auf pxeroot/raspi/PiTest/boot ? - das sollte aber sein!



    Bitte zeig mal die Ausgabe von "ls -lsa" für "pxeroot/raspi/PiTest" und "pxeroot/raspi/PiTest/boot"

    Hallo,


    so wie es aussieht wird das rootfs auf der NFS Freigabe nicht gefunden. Verzeichnisstruktur überprüfen. Auf der Konsole mit dem Aufruf "exportfs" die NFS Freigabe (auch Zugriffrechte) überprüfen und mit der notwendigen Änderung in der "boot/cmdline.txt" vergleichen.

    DHCP und TFTP funzen ja bei dir schon mal.


    mfg kasimodo


    ps: Die Anpassung der "fstab" hast du auch gemacht?

    wie der xml syntax ist, dies kann ich dir nicht beantworten. vielleicht hilft google.


    ich habe mal für Freunde das Problem bei mehreren Smargo(cardreader) gelöst indem ich über udevd und einer Rules jeden reader mit einem festen devicelink versehen habe.


    Das sieht dann so aus - für dein Problem:

    Code
    1. SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="FTDEN97D", SYMLINK+="ttyFTDI0"
    2. SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="A600b30P", SYMLINK+="ttyFTDI1"
    3. SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="A600bexU", SYMLINK+="ttyFTDI2"
    4. SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="FTFMSA54", SYMLINK+="ttyFTDI3"
    5. SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="FTFMUW4A", SYMLINK+="ttyFTDI4"



    Alternativ müsste es so oder ähnlich auch über die XML Datei gehen.


    hier eine Kombination aus udev und xml:

    https://rolandtapken.de/blog/2…ices-libvirt-vms-update-1

    Würdest du mit diesem Eintrag für "source" weiterkommen?


    Code
    1. <source>
    2. <address bus='8' device='2'/>
    3. </source>

    Bus und device sind ja bekannt.


    Leider unterstützt mein altes NAS "Virtualization Station" nicht, sonst hätte ich es schon mal nachgestellt.

    Hallo,


    führe mal aus:


    lsusb -v|grep -i serial


    zur "vendor Id" und "produckt id" kannst du die iSerial als zusätzliche Unterscheidung nutzen.

    die Option "serial" ist in dem FTDI Chip mit implementiert.


    Entweder mittels udevd und rules - damit device links mit festen Namen anlegen

    oder eventuell geht es schon mit deinen XML Dateien.


    mfg kasimodo

    <grins> geht nicht - gibt es nicht! geht schwer - ist möglich!

    ich hab es ja auch gemacht!


    Die zweite Partition der SD Karte mounten und dann kopieren! Alles auf der Console machen (Putty)

    Dann kann ich das Zertifikat dort exportieren und in das QNAP importieren und fertig.


    Toll wäre es wenn man dies dann auch noch mit einem Script machen könnte. (vom NAS aus)


    Grüße

    Kasimodo


    ps: bei meiner alten Fritte kann ich über ein Script vom NAS aus Ports öffnen und schließen. Leider habe ich dies für die neuere Firmware nicht hin bekommen.

    Raspberry Pi - PXE Boot von Qnap NAS


    Vorbereitungen SD-Karte und Raspberry Pi


    Übertragt wie gewöhnlich das aktuelle Rasbian lite Image(oder ein anderes) auf eine SD-Karte.

    Tipp: Noch eine leere Datei "ssh" in der ersten Partition anlegen! -> aktiviert den Zugriff über ssh (Putty/Winscp)

    Bootet nun euren Pi und führt eine Grundkonfiguration mit raspi-config durch.


    Danach wechselt ihr auf das next-Release:


    Code
    1. sudo apt-get update; sudo apt-get install rpi-update
    2. sudo BRANCH=next rpi-update


    - ermitteln der Seriennummer und macadresse eures Pi:


    sudo cat /proc/cpuinfo|grep Serial

    Code
    1. pi@raspberrypi:~ $ sudo cat /proc/cpuinfo|grep Serial
    2. Serial : 00000000ccfc0bd9


    sudo cat /sys/class/net/eth0/address

    Code
    1. pi@raspberrypi:~ $ sudo cat /sys/class/net/eth0/address
    2. b8:27:eb:fc:0b:d9


    Beide Werte notieren!

    Sie werden zum einen in der dhcpd.conf und zum anderen in der Verzeichnisstruktur gebraucht!


    Für Raspberry Typ 3 :


    Anschließend fügt ihr mit dem nachfolgenden Befehl am Ende der Datei "/boot/config.txt" noch eine Zeile hinzu (program_usb_boot_mode=1) :


    echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt


    und startet danach den Pi neu!


    Nach erfolgtem Neustart könnt ihr die Zeile wieder aus der Datei entfernen. Führt nun zur Sicherheit folgenden Befehl aus:


    vcgencmd otp_dump | grep 17:


    Code
    1. pi@raspberrypi:~ $ vcgencmd otp_dump | grep 17:
    2. 17:3020000a


    Die Ausgabe sollte „17:3020000a“ entsprechen. Somit hat alles geklappt. Euer RasPi-Typ 3 ist nun auf dem next-Release und grundsätzlich Netzwerk Boot-fähig.


    Für alle andern Raspberry (außer Typ 3) :

    Diese benötigen für den PXE Boot eine mit FAT32 formatierte SD Karte auf der als einzige Datei die (aktuelle) bootcode.bin ist!


    Vorbereitung auf dem Qnap NAS


    Für mein Setup hatte ich mir folgende Bedingungen gesetzt:

    - keine zusätzlichen Pakete bzw. Apps / alles soll nur mit in der Firmware bereits vorhandenen Programme laufen

    - alle benötigten Konfigurationen und Dateien in einem Freigabeordner (auch NFS)

    - Möglichkeit der Aktualisierung der Raspi Software incl.Firmware (boot)



    1. Im Webinterface / ControlPanel

    Anlegen eines Freigabeordners (pxeroot) im Webinterface (Systemsteuerung/Rechte/Freigabeordner)

    Berechtigung für Freigabeordner bearbeiten / NFS-Hostzugriff /Zugriffrecht - Keine Beschränkung

    Wichtig! - Den DHCP Server und den TFTP Server NICHT im Webinterface aktiv setzen!!


    2. Verzeichnisstruktur in /share/pxeroot anlegen und Dateien erstellen bzw. kopieren


    Datei "bootcode.bin" wird von der SD Karte nach "pxeroot" kopiert.


    Verzeichnis "conf" enthält alle Konfigurationsdateinen und das Startscript (pxe.sh)


    pxe.sh

    Wichtig! - wenn ihr eine andere Verzeichnisstruktur wählt, dann die Variable "PXECONF" anpassen!

    Datei auf "ausführbar" setzen!


    dhcpd.conf (muss natürlich auf eure Umgebung angepasst werden)


    opentftpd.ini

    Wichtig! - wenn ihr eine andere Verzeichnisstruktur wählt, dann die Variable [HOME] anpassen!


    Jetzt kann DHCP und TFTP mit dem Script "pxe.sh" gestartet werden.


    /share/pxeroot/conf/pxe.sh start


    Der vollständige Path muss nur beim erstmaligen Start angegeben werden.

    Später reicht der Aufruf pxe.sh restart da ein Symlink "/bin/pxe.sh" angelegt wird.


    ob der DHCP Dienst läuft - ps -e|grep dhcpd

    ob der TFTPDienst läuft - ps -e|grep tftp



    Test TFTPDienst

    unter Linux auf dem NAS -  tftp -g -r bootcode.bin 127.0.0.1

    Code
    1. [~] # tftp -g -r bootcode.bin 127.0.0.1
    2. [~] # ls bootcode.bin
    3. bootcode.bin


    auf einem Windows Client - tftp 10.128.5.184 get bootcode.bin

    Code
    1. C:\Users\Administrator>tftp 10.128.5.184 get bootcode.bin
    2. Übertragung erfolgreich: 52116 Bytes in 1 Sekunde(n), 52116 Bytes/s


    Auch im TFTP Logfile unter "pxeroot/conf" sieht man ob ein Get File erfolgreich war!


    Zum jetzigen Zeitpunkt kann man schon mal seinen Pi über PXE starten.

    Wenn DHCP und TFTP fehlerfrei laufen, dann kann man die Seriennummer vom Pi in der "opentftpd.log" finden. Damit hat man dann gleich den richtigen Name für den Symlink aus Seriennummer!


    aus meinem Logfile die wichtige Zeile mit der Seriennummer(hier ^^^^) :

    Code
    1. Client 10.128.5.190:49153 /share/pxeroot/0e81e887/start.elf, No Such File/No Access
    2. . ^^^^^^^^


    Wenn beide Dienst fehlerfrei laufen dann realisiert man den Autostart der Dienste durch folgenden Eintrag am Ende der "/etc/config/qpkg.conf"


    PI Software kopieren und anpassen


    Das Verzeichnis "pxeroot/raspi" enthält für jeden Raspi bzw. Pi-Betriebssystem ein eigenes Unterverzeichnis. Dies ist gleichzeitig das NFS Root Verzeichnis

    Welches Verzeichnis zum Booten benutzt, dies wird über den jeweiligen Symlink (Seriennummer vom Raspi) in "pxeroot" bestimmt. Der Symlink "Seriennummer" in "pxeroot" verweist immer auf das Verzeichnis "boot" in dem Raspi Software Root Verzeichnis. ( siehe Verzeichnisstruktur oben im Beitrag)


    Das Linux Root Verzeichnis von der zweiten Partition auf der SD Karte wir in dieses Verzeichnis kopiert.

    Das Kernel Verzeichnis von der ersten Partition (Fat32) auf der SD Karte wird dann in das Unterverzeichnis "boot" kopiert!

    Achtung! - wer DietPi benutzt, der muss noch alle Dateien unter "boot/dietpi" auf "ausführbar" setzen!


    Jetzt sollte eure Verzeichnisstruktur so ähnlich aussehen:


    tree.jpg



    Anpassen der Datei "boot/cmdline.txt" :

    in dieser Datei root=/dev/mmcblk0p2 rootfstype=ext4 ersetzen durch

    nfsroot=10.128.5.184:/pxeroot/raspi/PiJuergen,tcp,v3 vers=3 rw ip=dhcp 

    (natürlich euren Verzeichnispath benutzen)


    Anpassen des Filesystem Table (etc/fstab)

    Da im Standard die Konfiguration der Datei fstab auf die SD-Karte für die root bzw. boot-Partition verweist, muss das natürlich auch noch geändert werden:

    Wichtig ist vor allem, dass ihr die Verweise auf die SD-Karte auskommentiert.


    Hier Beispiel Inhalt einer fstab (Auszug):

    Code
    1. proc /proc proc defaults 0 0
    2. #/dev/mmcblk0p1 /boot vfat defaults 0 2
    3. #/dev/mmcblk0p2 / ext4 defaults,noatime 0 1


    So, nun sollte euer Raspi über PXE starten und auch sein Filesystem finden!

    Vergesst nicht die SD Karte mit der "bootcode.bin" bei allen Raspi außer Version 3!



    Quelle u.a. : http://www.do-it-neat.com/open…berry-pi-pxe-boot-teil-1/


    Diskussion und Fragen hier:

    PXE für Raspberry