Zyxel Deutschland Forum - Herzlich Willkommen!

Für Support Anfragen nutzen Sie http://support.zyxel.eu oder als Fachhändler http://partner.zyxel.eu
Aktuelle Zeit: Donnerstag 14. Dezember 2017, 02:19

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]



 

Forumsregeln


Achtung: FFP ist eine Zusatzanwendung, für die ZyXEL keinen Support übernimmt!
Sämtliche Support Anfragen zu FFP Produkten werden nicht bearbeitet.
Bei Fragen zu FFP wenden Sie sich am besten in Englisch an unser Forum oder an http://forum.nas-central.org/viewforum.php?f=21



Ein neues Thema erstellen Auf das Thema antworten  [ 25 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Debian 8 Kernel für NAS540 selber bauen
BeitragVerfasst: Freitag 23. Dezember 2016, 23:23 
Offline
interessiertes Mitglied

Registriert: Montag 7. Dezember 2015, 22:58
Beiträge: 59
Anbei eine Anleitung und ein paar Skripte, um den Kernel für die NAS540 selber zu bauen.
Damit man kein spezielles SDK braucht, ist es am einfachsten, man bootet die NAS mit einem Debian 8 basierend auf den Skripten von 20161222 oder neuer:
http://www.zyxelforum.de/debian-8-auf-usb-stick-oder-sd-karte-p75872.html-sid=4f4c687c80f9fece8451e0ab93f4495f#p75872

Da beim bauen des Kernel viele kleine Dateien erstellt und viele Schreibzugriffe erforderlich sind, empfiehlt es sich, das auf einer Festplatte/einem RAID und nicht auf Stick oder Karte zu machen.
Wenn man openmedivault verwendet, muss man temporär das Ausführen von Skripten erlauben, z.B.:
Code:
sudo mount -o remount,exec /media/543210cb-1abc-4987-6543-210abcdef012
cd /media/543210cb-1abc-4987-6543-210abcdef012


Dann erstellt man einen leeren Ordner, packt die ZIP-Datei, lädt den Source Code und die Config herunter und installiert die nötigen Tools (gcc-4.8, make usw. von Debian):
Code:
mkdir linux-nas540
cd linux-nas540
unzip nas540-kernel-build.zip

wget -N https://br.unchti.me/linux-3.2.54.tar.xz
wget -N https://br.unchti.me/config
sudo ./build-deps.sh


Der Kernel ist nur für die NAS540, für die NAS520 reicht eine kleine Änderung:
Code:
sed -i s/'CONFIG_4BAY=y'/'# CONFIG_4BAY is not set'/g config
sed -i s/'nas540'/'nas520'/g build-linux.sh
Für andere Modelle habe ich keine Informationen.

Dann startet man das Bauen:
Code:
./build-linux.sh

Das Bauen des Kernel auf der NAS dauert ca. 80 min.
Am Ende hat man mehrere Debian-Pakete und eine ZIP-Datei.

Installation des Kernel in Debian:
Code:
./install-linux.sh

Bis hier spielt sich alles noch im Dateisystem ab, so dass die Änderungen nur auf dem Stick/der Karte landen.

:!: :!: :!: Ab hier wird es gefährlich, da ein Fehler die NAS dauerhaft am Booten hindern kann :!: :!: :!:

Es kann nicht schaden, wenn man ein passendes Kabel für den Zugriff auf die serielle Schnittstelle hat, siehe hier:
http://zyxel.nas-central.org/wiki/Serial_port_(NAS540)

Zum schreiben des Kernel und der Barebox-Skripte kann man folgendes Skript starten:
Code:
sudo bash flash-bb-env-and-kernel2.sh

Wie der Name schon verrät, wird nur der zweite Kernel überschrieben, der erste bleibt unverändert.
Die geschriebenen Boot-Skripte sind unter /boot/bareboxenv zu finden. In diesem Ordner gibt es auch eine Datei "config", diese sollte man nicht verändern, da hier hardwarespezifische Daten drin sind.
Ich habe da nur im Skript /boot/bareboxenv/bin/boot zwei Zeilen für die Kernel-Parameter eingefügt.
Wenn man nach dem Flashen doch noch nicht in den neuen Kernel booten möchte, kann man auch erstmal beim verbleibenden alten bleiben:
Code:
sudo /firmware/sbin/info_setenv next_bootfrom 1


Manchmal dauert das Booten ein bißchen länger, weil systemd einen filesystem check durchführt.
Wenn die NAS nicht bootet und man hat ein serielles Kabel angeschlossen, dann kann man sich von einem anderen Linux-System (das per USB angeschlossen ist) aus verbinden:
Code:
cu -s 115200 -l /dev/ttyUSB0

Dann kann man nach dem Einschalten das booten durch drücken einer Taste unterbrechen.
Ich habe die Barebox-Skripte so erweitert, das man durch einfaches eingeben von:
Code:
b1
...wieder mit dem alten Kernel booten kann.


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.


Nach oben
 Profil  
 
 
 Betreff des Beitrags: Re: Debian 8 Kernel für NAS540 selber bauen
BeitragVerfasst: Samstag 24. Dezember 2016, 00:05 
Offline
engagiertes Mitglied

Registriert: Dienstag 17. September 2013, 20:13
Beiträge: 315
Prima :zustimmen:
:dafuer: :respekt:


Nach oben
 Profil  
 
 
 Betreff des Beitrags: Re: Debian 8 Kernel für NAS540 selber bauen
BeitragVerfasst: Sonntag 8. Januar 2017, 20:50 
Offline
interessiertes Mitglied

Registriert: Montag 7. Dezember 2015, 22:58
Beiträge: 59
Update 20170108

Ab sofort kann man einen Kernel bauen, der weitestgehend dem von security.debian.org entspricht (aktuell 3.2.84-1).
Dazu lädt das Skript die Debian-Versionen 3.2.54 und die aktuelle 3.2.84 herunter,
vergleicht diese und wendet die daraus entstehenden Patches (linux-3.2.54-to-84*.patch) auf den Kernel von Comcerto/Zyxel an.
Die hardwarespezifischen Anpassungen bleiben dabei erhalten (diese kann man in linux-3.2.84-mspd-c2k.patch einsehen).
Falls es eine neuere Version gibt, kann man die vor dem bauen in der combine-env.sh eintragen.

Die Vorgehensweise ist wie oben, nur das man zwei zusätzliche Befehle ausführt:
Code:
rm -rf linux/
unzip nas540-kernel-build-20170108.zip

sudo ./build-deps.sh
bash combine-prep.sh
bash combine-linux.sh

Der Kernel ist für die NAS540, für die NAS520 reicht eine kleine Änderung:
Code:
sed -i s/'nas540'/'nas520'/g build-linux.sh

Dann startet man das Bauen:
Code:
./build-linux.sh


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.


Nach oben
 Profil  
 
 
 Betreff des Beitrags: Re: Debian 8 Kernel für NAS540 selber bauen
BeitragVerfasst: Mittwoch 11. Januar 2017, 22:08 
Offline
Mitglied

Registriert: Dienstag 6. Dezember 2016, 18:53
Beiträge: 27
Hallo scp,

kann das script auf für ein NSA542 benutzt werden ?? :denk:


Nach oben
 Profil  
 
 
 Betreff des Beitrags: Re: Debian 8 Kernel für NAS540 selber bauen
BeitragVerfasst: Samstag 14. Januar 2017, 13:22 
Offline
Mitglied

Registriert: Dienstag 6. Dezember 2016, 18:53
Beiträge: 27
Hallo zusammen,

ich habe zuerst versucht den Debian Kernel unter debian armhf jessie (lxc auf odroid XU4) zu bauen, weil es dort sicher schneller geht,
doch leider bricht der build Vorgang ab ...

Um reproduzierbare Ergebnisse zu erzeugen, habe ich dann mit dem hier im Forum verfügbaren tools debain von SD - Karte (scp) eine SD-Karte
für das NSA542 erzeugt, und bin mit dieser Umgebung incl. OpenMediaVault erst einmal happy... :winkwink:

Nun soll das NAS aber auch via bonding (round robin) + drbd einen Server online replizieren (online backup) und dafür brauche ich einen entsprechenden Kernel ...
Wenn ich jedoch versuche, auf einem, wie empfohlen, NAS gemounteten Directory (RAID 10, remount mit exec Attribut) dann habe ich, so wie ich das verstanden habe
die Sequenz:

1.) ./build-deps,sh
2.) bash combine-preps.sh
3.) bash combine-linux.sh
4.) ./build-linux.sh

ausgeführt, und leider scheinen mindestens die firmware - files *.elf unter /lib/firmware/ zu fehlen ?? Wo bekomme ich die her ??
Code:
....

creating staging_dir ...
cp: der Aufruf von stat für „/lib/firmware/pmu.elf“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
cp: der Aufruf von stat für „/lib/firmware/*_c2000*.elf“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
cp: der Aufruf von stat für „/lib/firmware/util_c2000_revA0.elf“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
... 
  CC [M]  fs/xfs/xfs_qm.o
  CC [M]  fs/xfs/xfs_quotaops.o
  CC [M]  fs/xfs/xfs_qm_stats.o
  CC [M]  fs/xfs/xfs_rtalloc.o
  CC [M]  fs/xfs/xfs_acl.o
  CC [M]  fs/xfs/xfs_stats.o
  CC [M]  fs/xfs/xfs_sysctl.o
  LD [M]  fs/xfs/xfs.o
  LD      fs/built-in.o
Makefile:130: recipe for target 'sub-make' failed
make[3]: *** [sub-make] Error 2
Makefile:26: recipe for target 'all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory '/media/cd03ddd3-7a52-48fe-840a-2164d71a56fb/nas_build/kernel/linux/debian/build/build_armhf_none_nas540'
debian/rules.real:162: recipe for target 'debian/stamps/build_armhf_none_nas540_plain' failed
make[1]: *** [debian/stamps/build_armhf_none_nas540_plain] Error 2
make[1]: Leaving directory '/media/cd03ddd3-7a52-48fe-840a-2164d71a56fb/nas_build/kernel/linux'
debian/rules.gen:74: recipe for target 'binary-arch_armhf_none_nas540_real' failed
make: *** [binary-arch_armhf_none_nas540_real] Error 2
linux-image-3.2.84-1-nas540-armhf.zip
        zip warning: name not matched: linux-*_3.2.84-1_*.deb
updating: flash-bb-env-and-kernel2.sh (deflated 51%)
updating: install-linux.sh (deflated 30%)
updating: nas540-barebox-boot.tar.gz (deflated 0%)

real    68m23.777s
user    116m9.610s
sys     7m32.840s


dann baut der Kernel gefühlt unendlich lange, und bricht dann mit obigen Fehler ab.
Gibt es hierzu Tips / Hilfen ??
Wenn es an dem Fehlen von Dateien liegt, so wäre es schön entsprechend im script zu prüfen, ob denn alle zu Bau notwendigen Dateien verfügbar sind oder nicht..


Nach oben
 Profil  
 
 
 Betreff des Beitrags: Re: Debian 8 Kernel für NAS540 selber bauen
BeitragVerfasst: Samstag 14. Januar 2017, 19:50 
Offline
Experte

Registriert: Dienstag 19. Mai 2015, 09:25
Beiträge: 658
Wohnort: Germany / Cologne
Bitte das System normal bauen *ohne* Änderungen.
Dann in das Kernelverzeichnis absteigen.
Code:
make menuconfig

Optionen ändern z.B. DRDB
Code:
make M=drivers/block/drbd


Bonding sollte schon die krude Netzwerkkarte in Hardware können.
Obwohl Netzwerkkarte ist es ja nicht ein Netzwerkprozessor, mit DPI.

_________________
Linux Kernel Developer
Lots of stuff attached to serial console
https://github.com/ulli-kroll


Nach oben
 Profil  
 
 
 Betreff des Beitrags: Re: Debian 8 Kernel für NAS540 selber bauen
BeitragVerfasst: Sonntag 15. Januar 2017, 15:52 
Offline
Mitglied

Registriert: Dienstag 6. Dezember 2016, 18:53
Beiträge: 27
Code:
Bitte das System normal bauen *ohne* Änderungen.
Dann in das Kernelverzeichnis absteigen.
make menuconfig
Optionen ändern z.B. DRDB

Der "normale" Bauvorgang klappt bei mir schon nicht :( , drbd wollte ich so wie beschrieben dann erst im folgenden Umsetzen ...


Nach oben
 Profil  
 
 
 Betreff des Beitrags: Re: Debian 8 Kernel für NAS540 selber bauen
BeitragVerfasst: Sonntag 15. Januar 2017, 19:01 
Offline
Experte

Registriert: Dienstag 19. Mai 2015, 09:25
Beiträge: 658
Wohnort: Germany / Cologne
Die drei Dateien kommen von der original Firmware.

Ich weiss leider nicht wie genau das Script das neue RootFS aufbaut um den Compiler anzuwerfen ...

Schau mal deinem SD Karten Verzeichnis rein aka /media/*
siehe im ersten Post wo der
Code:
mount -o remount

gemacht wird.
Sind da Verzeichnissse wie proc, sys ggf. in den Unterverzeichsniz debootstrap (wenn das Stimmt)
ggf. liegt da noch ein lib/firmware rum ...

Da kommen die drei fehlenden Dateien rein.

Was ich auc vermute es wird erst ein Cimpile RootFS mit debbootstrap gebaut um dorzt nacher den ganzen Kram von Zyxel hineinzukopieren. Da wurde halt was vergessen.

_________________
Linux Kernel Developer
Lots of stuff attached to serial console
https://github.com/ulli-kroll


Nach oben
 Profil  
 
 
 Betreff des Beitrags: Re: Debian 8 Kernel für NAS540 selber bauen
BeitragVerfasst: Montag 16. Januar 2017, 13:18 
Offline
Mitglied

Registriert: Dienstag 6. Dezember 2016, 18:53
Beiträge: 27
ElektromAn hat geschrieben:
Sind da Verzeichnissse wie proc, sys ggf. in den Unterverzeichsniz debootstrap (wenn das Stimmt)
ggf. liegt da noch ein lib/firmware rum ...
Da kommen die drei fehlenden Dateien rein.
Was ich auch vermute es wird erst ein Compile RootFS mit debbootstrap gebaut um dorzt nacher den ganzen Kram von Zyxel hineinzukopieren. Da wurde halt was vergessen.

Nun ich habe quasi alles geprüft, und sogar die geladenen Firmware - Files selbst ausgepackt (mit den scripts die das SD-Card Image bauen) =>
Die benötigten Dateien sind dort nirgendwo zu finden ?? :(
Kann mir bitte einmal jemand die notwendigen Dateien zukommen lassen ?? Ich baue dann weiter, und gebe Info darüber, ob es dann auch auf dem NSA542
klappt.. (Dann erst mein benötigtes drbd einbauen...)
=> So gibt es dann eine reproduzierbare Möglichkeit den Kernel zu bauen, und vermeidet ggf. zahlreiche Rückfragen ....


Nach oben
 Profil  
 
 
 Betreff des Beitrags: Re: Debian 8 Kernel für NAS540 selber bauen
BeitragVerfasst: Montag 16. Januar 2017, 20:21 
Offline
Experte

Registriert: Dienstag 19. Mai 2015, 09:25
Beiträge: 658
Wohnort: Germany / Cologne
bo911 hat geschrieben:
Die benötigten Dateien sind dort nirgendwo zu finden ?? :(

Doch bevor du das Script ausführst
Frisch gebootetes NAS540
Code:
/ # ls /lib/firmware/ -l
-rwxr-xr-x    1 root     root         52632 Oct  5 09:29 class_c2000.elf
-rw-r--r--    1 root     root         75806 Oct  5 09:29 pmu.elf
-rwxr-xr-x    1 root     root         11516 Oct  5 09:29 tmu_c2000.elf
-rwxr-xr-x    1 root     root         46504 Oct  5 09:29 util_c2000.elf
-rwxr-xr-x    1 root     root         45904 Oct  5 09:29 util_c2000_revA0.elf
/ # uname  -a
Linux NAS540 3.2.54 #1 SMP Wed Oct 5 16:16:08 CST 2016 armv7l GNU/Linux
/ #

Die brauchst du sonst kommst du per Netz nicht drauf

Wenn du wissen willst wo deine chroot Umgebung auf der SD-Karte aufgabaut wird/wurde
Code:
find -type d -name proc

_________________
Linux Kernel Developer
Lots of stuff attached to serial console
https://github.com/ulli-kroll


Nach oben
 Profil  
 
 
 Betreff des Beitrags: Re: Debian 8 Kernel für NAS540 selber bauen
BeitragVerfasst: Dienstag 17. Januar 2017, 01:00 
Offline
Mitglied

Registriert: Dienstag 6. Dezember 2016, 18:53
Beiträge: 27
ElektromAn hat geschrieben:
Code:
/ # ls /lib/firmware/ -l
-rwxr-xr-x    1 root     root         52632 Oct  5 09:29 class_c2000.elf
-rw-r--r--    1 root     root         75806 Oct  5 09:29 pmu.elf
-rwxr-xr-x    1 root     root         11516 Oct  5 09:29 tmu_c2000.elf
-rwxr-xr-x    1 root     root         46504 Oct  5 09:29 util_c2000.elf
-rwxr-xr-x    1 root     root         45904 Oct  5 09:29 util_c2000_revA0.elf
Also bei mir sind in /lib/firmware keine *.elf Dateien, sondern unter /oldroot/lib/firmware, :D
Danke für den Tip ....
Jetzt erst einmal Kernel bauen (drbd schien schon aktiviert zu sein ...) und dann hoffentlich success ...


Nach oben
 Profil  
 
 
 Betreff des Beitrags: Re: Debian 8 Kernel für NAS540 selber bauen
BeitragVerfasst: Dienstag 17. Januar 2017, 11:50 
Offline
Experte

Registriert: Dienstag 19. Mai 2015, 09:25
Beiträge: 658
Wohnort: Germany / Cologne
Hast du eine serielle Schnittstelle / Kabel ?

_________________
Linux Kernel Developer
Lots of stuff attached to serial console
https://github.com/ulli-kroll


Nach oben
 Profil  
 
 
 Betreff des Beitrags: Re: Debian 8 Kernel für NAS540 selber bauen
BeitragVerfasst: Dienstag 17. Januar 2017, 16:14 
Offline
Mitglied

Registriert: Dienstag 6. Dezember 2016, 18:53
Beiträge: 27
ElektromAn hat geschrieben:
Hast du eine serielle Schnittstelle / Kabel ?

ja, ich habe aus diversen ARM - Basteleien ein Serial - Kabel (TTL) auf USB ...
Das Bauen hat dann gestern Abend / Nacht noch geklappt, dann wie install.sh script den neuen Kernel geflashed =>
nicht geht mehr :( , von außen startet das NAS noch, also alle Platten fahren hoch, und nach wenigen Sekunden reboot ...

Info:
der neue Kernel wird gebootet, jedoch wird dort root=/dev/sda2 übergeben, jedoch ist die SD-Card nicht /dev/sda, sondern
wird bei booten quasi gleichzeitig mit den eingebauten Festplatten (4 Stück sind verbaut, ...) also manchmal als /dev/sdb,
aber auch als /dev/sdc, weil zuvor 2-HDD's erkannt wurden detektiert, scheinbar alles am USB - Port ...
Ich denke, wenn der Kernel das unterstützt, dass wir hier auf UUID= ausweichen sollten, weil dann hoffentlich das eigentliche
device egal sein sollte ... Jetzt weiß ich leider nicht, ob der 3.2 Kernel schon UUID's als Bootparameter für root kann oder nicht ??
Hat jemand noch eine gute Idee ?, vor allem kann ich in der boot Umgebung die Strings einfach einmal zu ausprobieren ändern ??


Nach oben
 Profil  
 
 
 Betreff des Beitrags: Re: Debian 8 Kernel für NAS540 selber bauen
BeitragVerfasst: Dienstag 17. Januar 2017, 18:03 
Offline
Experte

Registriert: Dienstag 19. Mai 2015, 09:25
Beiträge: 658
Wohnort: Germany / Cologne
bo911 hat geschrieben:
nicht geht mehr :( , von außen startet das NAS noch, also alle Platten fahren hoch, und nach wenigen Sekunden reboot ...

;-)
Wenn man ein Setup wo alles an der seriellen hängt ...

bo911 hat geschrieben:

Info:
der neue Kernel wird gebootet, jedoch wird dort root=/dev/sda2 übergeben, jedoch ist die SD-Card nicht /dev/sda, sondern
wird bei booten quasi gleichzeitig mit den eingebauten Festplatten (4 Stück sind verbaut, ...) also manchmal als /dev/sdb,
aber auch als /dev/sdc, weil zuvor 2-HDD's erkannt wurden detektiert, scheinbar alles am USB - Port ...
Ich denke, wenn der Kernel das unterstützt, dass wir hier auf UUID= ausweichen sollten, weil dann hoffentlich das eigentliche
device egal sein sollte ... Jetzt weiß ich leider nicht, ob der 3.2 Kernel schon UUID's als Bootparameter für root kann oder nicht ??
Hat jemand noch eine gute Idee ?, vor allem kann ich in der boot Umgebung die Strings einfach einmal zu ausprobieren ändern ??

Code:
root=UUID=xxxx

ist der Kernelparameter

Der Bootloader und deren Config ist auf einem separaten SPI Flash ~1MB oder so, wenn ich das noch in Erinnerung habe .

Zum Booten selber wenn du ein TFTP Boot machst, also nicht per Flash hat dir nach einiger Zeit der Watchdog auf die Füße und star6ted das System neu, wenn er nicht vorher gestartet wird.
Im Flash Fall ist es auch so, aber da dreht du dich im Kreis ...

_________________
Linux Kernel Developer
Lots of stuff attached to serial console
https://github.com/ulli-kroll


Nach oben
 Profil  
 
 
 Betreff des Beitrags: Re: Debian 8 Kernel für NAS540 selber bauen
BeitragVerfasst: Dienstag 17. Januar 2017, 18:31 
Offline
Mitglied

Registriert: Dienstag 6. Dezember 2016, 18:53
Beiträge: 27
Hallo,

ich habe aktuell die serial console dran, und kann entsprechend mittels b1 die debian von SD-Karte starten ....
Nun dachte ich, ich baue einmal UUID=XXX in /boot/barebox/bin/b0 als root ein, und mitels flash-bb-env-and-kernel2.sh
das ganze dann in das SPI-Flash, doch leider überträgt flash-bb-env-and-kernel2.sh scheinbar nicht b0 in das SPI-ENV...

Kann mir jemand sagen, wie ich den für das b0 - relevante barebox env editieren und entsprechend speichern kann ??


Nach oben
 Profil  
 
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 25 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder: Majestic-12 [Bot], Yahoo [Bot]


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de


Impressum


Hubwagen  - Hubtisch  - Hochhubwagen  - günstige Hubwagen  - Hubwagen  - Hubtisch  - Scherenhubtische  - günstige Kehrmaschinen