.titleBar { margin-bottom: 5px!important; }

[Problem] Freetz unter Windows 10 Subsystem

Dieses Thema im Forum "Freetz" wurde erstellt von esel08, 19 Nov. 2017.

  1. esel08

    esel08 Neuer User

    Registriert seit:
    9 Juli 2008
    Beiträge:
    29
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Hallo ihr Profis ;)


    Ist es möglich freetz-trunk unter Windows 10 den WSL laufen zu lassen.

    Bekomme beim starten Fehler :

    root@DESKTOP-6RMRO44:/opt/freetz-trunk# make menuconfig
    Makefile:90: *** Running makefile as root is prohibited! Please build Freetz as normal user. Stop.

    Lege ich einen normalen user an bekomme ich andere Fehler :

    Geht es überhaupt ??


    Danke euch

    Jens :rolleyes:
     
  2. koyaanisqatsi

    koyaanisqatsi IPPF-Urgestein

    Registriert seit:
    24 Jan. 2013
    Beiträge:
    10,577
    Zustimmungen:
    115
    Punkte für Erfolge:
    63
    Moin

    Normalerweise ist der User "freetz" ( /home/freetz ) dafür zuständig.
    ...weiss aber aus dem Kopf nicht, welche Gruppe(n) und Rechte der (bspw. für sudo) haben muss.
    Aber auf keinen Fall ist es: root
     
  3. esel08

    esel08 Neuer User

    Registriert seit:
    9 Juli 2008
    Beiträge:
    29
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    @koyaanisqatsi

    Das dachte ihr mir auch deshalb habe ich einen anderen user angelegt.
    Welche Gruppe und Rechte er haben muss weis ich leider net !!
     
  4. PeterPawn

    PeterPawn IPPF-Urgestein

    Registriert seit:
    10 Mai 2006
    Beiträge:
    11,073
    Zustimmungen:
    526
    Punkte für Erfolge:
    113
    Beruf:
    IT-Freelancer
    Ort:
    Berlin
    #4 PeterPawn, 19 Nov. 2017
    Zuletzt bearbeitet: 19 Nov. 2017
    esel08 gefällt das.
  5. Shirocco88

    Shirocco88 Mitglied

    Registriert seit:
    4 Jan. 2016
    Beiträge:
    683
    Zustimmungen:
    36
    Punkte für Erfolge:
    28
    #5 Shirocco88, 19 Nov. 2017
    Zuletzt bearbeitet: 19 Nov. 2017
    Micha0815 und esel08 gefällt das.
  6. DHU

    DHU Neuer User

    Registriert seit:
    20 Jan. 2007
    Beiträge:
    69
    Zustimmungen:
    4
    Punkte für Erfolge:
    8
    #6 DHU, 18 Mai 2018
    Zuletzt bearbeitet: 18 Mai 2018
    Hallo Allerseits,

    und es geht doch, man kann sogar Freetz vollständig unter Windows bauen, bei kleinen Anpassungen an Freetz und dem Windows 10 - Windows-Subsystem für Linux (WSL).

    Was man machen muss, bitte beachten, dass die sudo Befehle alle auf einer Zeile sind und hier nur auf meheren dargestellt werden:
    1. Aktivierung des WSL, welches ein optionales Windows Feature darstellt, gibt man folgenden Befehl in der PowerShell mit Administrator-Rechten ein:
      Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
    2. Herunterladen des der Ubuntu 18.04 App und Windows 10 1803 aus dem Windows Store - MSN Account ist nicht nötig
    3. Starten der Ubuntu 18.04 App und normalen User einrichten, da die Freetz Buildumgebung nicht als root funktioniert
    4. Updaten der besteheenden Installation und installieren der für Freetz benötigen Packete
      sudo apt update
      sudo apt upgrade

      sudo apt-get -y install nfoview imagemagick subversion gcc g++ bzip2 binutils automake patch autoconf libtool pkg-config make libncurses5-dev zlib1g-dev flex bison patch texinfo tofrodos gettext jam pkg-config ecj fastjar perl libstring-crc32-perl ruby gawk python libusb-dev unzip intltool libglib2.0-dev xz-utils git libtool-bin libreadline-dev libacl1-dev libcap-dev libc6 libc6-dev libc6-dev-i386
    5. Linux Umgebung anpassen
      umask 0022
      sudo ln -s /proc/mounts /etc/mtab
    6. Freetz-Branch clonen, der auf dem offiziellen Freetz basiert, aber auch ein paar Compiler Umgebungspatche enthält.
      git clone https://github.com/dirk-dhu/freetz.git freetz-devel
    7. Im Menu-Config die benötigten Packages selektieren, aber auch unbedingt in Toolchain Options --> Build own toolchain einstellen, da WSL nur x64 Binaries von Hause unterstützt und die precompiled toolchains nur 32-Bit ist, aber vorher muss noch Level of user competence auf Expert gestellt werden
      make menuconfig
      make

    8. Wenn man die precompiled toolchain benutzen will, müssen noch ein paar Packete installiert werden und die 32-Bit Binaries emuliert werden, dazu folgenden Befehle eingeben
      sudo dpkg --add-architecture i386
      sudo apt-get update
      sudo apt-get install g++-multilib libncurses5:i386 libc6:i386 libgcc1:i386 gcc-4.8-base:i386 libstdc++5:i386 libstdc++6:i386 lib32z1 lib32ncurses5 lib32ncursesw5 lib32ncursesw5-dev
    9. Emulator installieren und starten
      sudo apt install qemu-user-static
      sudo update-binfmts --install i386 /usr/bin/qemu-i386-static --magic '\x7fELF\x01\x01\x01\x03\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x03\x00\x01\x00\x00\x00' --mask '\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xf8\xff\xff\xff\xff\xff\xff\xff'
    10. Jetzt kann man ganz normal, aber langsamer :) mit make menuconfig und make alles bauen
    11. Nach dem Neustart der ubuntu App muss der Emulator falls er verwendet wird neugstartet werden
      sudo service binfmt-support start
    Welche Fehler wurden beseitig und wie:
    1. fakeroot Build Problem beheben und Umstellung des IPC von sysv auf tcp
      Fehlermeldung:
      checking whether we are cross compiling... configure: error: in `/home/dirk/freetz-devel/source/host-tools/fakeroot-1.22/build/biarch'
      configure: error: cannot run C compiled programs.
      If you meant to cross compile, use `--host'.
      See `config.log' for more details
      tools/make/fakeroot/fakeroot.mk:51: recipe for target '/home/dirk/freetz-devel/source/host-tools/fakeroot-1.22/build/biarch/.configured' failed

      make: *** [/home/dirk/freetz-devel/source/host-tools/fakeroot-1.22/build/biarch/.configured] Error 1
      Patch:
      diff --git a/tools/make/fakeroot/fakeroot.mk b/tools/make/fakeroot/fakeroot.mk
      index 6675044..3e5b950 100644
      --- a/tools/make/fakeroot/fakeroot.mk
      +++ b/tools/make/fakeroot/fakeroot.mk
      @@ -39,6 +39,7 @@ $(FAKEROOT_MAINARCH_DIR)/.configured: $(FAKEROOT_DIR)/.unpacked
      ../../configure \
      --prefix=$(FAKEROOT_DESTDIR) \
      --enable-shared \
      + $(if $(findstring Microsoft,$(shell uname -r)),--with-ipc=tcp,) \
      $(DISABLE_NLS) \
      );
      touch $@
      @@ -54,6 +55,8 @@ $(FAKEROOT_BIARCH_DIR)/.configured: $(FAKEROOT_DIR)/.unpacked
      ../../configure \
      --prefix=$(FAKEROOT_DESTDIR) \
      --enable-shared \
      + $(if $(findstring Microsoft,$(shell uname -r)),--with-ipc=tcp,) \
      + $(if $(findstring Microsoft,$(shell uname -r)),--host=$(shell uname -m),) \
      $(DISABLE_NLS) \
      );
      touch $@

      siehe auch Commit "NATIVE COMPILER: add target compiler and target tools as m4, automake ..." von https://github.com/dirk-dhu/freetz
    2. mount/umout Probleme während des Image bauens mit fwmod
      Fehlermeldung:
      ERROR: creation of ext2 image failed
      ./build/modified/filesystem.log -> ext2fs_check_if_mount: Can't check if filesystem is mounted due to missing mtab file

      Lösung:
      sudo ln -s /proc/mounts /etc/mtab
    3. Erkennen, dass die precompiled toolchain 32 bit Binaries enthält und die durch WSL nicht direkt unterstützt werden
      Fehlermeldung:
      toolchain/build/mips_gcc-4.8.5/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-gcc: cannot execute binary file: Exec format error
      Lösung:
      Qemu Emulator benutzen
    4. Sporadische Speicher Probleme fork Library-Call klappt nicht -> Ubuntu App neustarten und weitermachen
    Ich hoffe ich habe nichts vergessen, und viel Spaß noch.

    Gruß, Dirk
     
    Micha0815 und SinusX gefällt das.
  7. PeterPawn

    PeterPawn IPPF-Urgestein

    Registriert seit:
    10 Mai 2006
    Beiträge:
    11,073
    Zustimmungen:
    526
    Punkte für Erfolge:
    113
    Beruf:
    IT-Freelancer
    Ort:
    Berlin
    #7 PeterPawn, 18 Mai 2018
    Zuletzt bearbeitet: 18 Mai 2018
    Es gibt ja inzwischen auch noch ein paar mehr Distributionen, die im WSL lauffähig sind ... bis hin zu einem Kali Linux (aber auch openSUSE Leap 42 oder SLES) - die das WSL selbst wurde massiv erweitert in ihren seinen Fähigkeiten. Seit dem 1709-Update kann man auch (ohne am Insider-Programm teilzunehmen, da ging das schon seit Juni 2017) die Distribution seiner Wahl einfach aus dem Store installieren (wenn es sie dort gibt).

    Wobei die Performance immer noch nicht wirklich gut ist, auch wenn sie deutlich besser geworden ist gegenüber früheren Versionen.

    Wenn ich denselben Branch (frisch) auschecke und das einmal unter "Git for Windows" (das basiert auf MinGW) und einmal unter der Bash in der Canonical-App mache (alles auf demselben Host), dann sind das schon deutliche Unterschiede - es werden halt viele Dateien "behandelt" und die I/O-Performance spielt eine wichtige Rolle (wie auch beim Freetz-Build an sich):
    Code:
    peh@Bragi MINGW64 ~/Documents/GitHub
    $ time git clone git@github.com:PeterPawn/freetz.git
    Cloning into 'freetz'...
    remote: Counting objects: 139259, done.
    remote: Total 139259 (delta 0), reused 0 (delta 0), pack-reused 139258
    Receiving objects: 100% (139259/139259), 35.11 MiB | 5.56 MiB/s, done.
    Resolving deltas: 100% (92726/92726), done.
    Checking out files: 100% (5544/5544), done.
    
    real    0m33.558s
    user    0m0.000s
    sys     0m0.015s
    
    peh@Bragi MINGW64 ~/Documents/GitHub
    
    Code:
    peh@Bragi:/tmp$ time git clone git@github.com:PeterPawn/freetz.git freetz_w10
    Cloning into 'freetz_w10'...
    remote: Counting objects: 139259, done.
    remote: Total 139259 (delta 0), reused 0 (delta 0), pack-reused 139258
    Receiving objects: 100% (139259/139259), 35.11 MiB | 5.56 MiB/s, done.
    Resolving deltas: 100% (92726/92726), done.
    Checking connectivity... done.
    Checking out files: 100% (5544/5544), done.
    
    real    0m59.821s
    user    0m6.313s
    sys     0m21.094s
    peh@Bragi:/tmp$
    
    Man sieht auch ziemlich deutlich (im Falle der Canonical-App), wo die Zeit am Ende bleibt ... 21 Sekunden im System sind schon eine ganze Menge.

    Wer das also nicht nur als Freizeitbeschäftigung betreibt (wo ihm die Dauer dann auch egal ist) und zusätzlich über die passende Hardware (SLAT wird benötigt) und die richtige Windows-Lizenz verfügt (die W10-Home-Edition kann kein Hyper-V), der fährt in den allermeisten Fällen immer noch besser, wenn er die Freetz-VM unter Hyper-V laufen läßt.

    Oder auch gleich (der Service ist immerhin auch in den ersten 12 Monaten kostenlos) eine Azure-VM dafür verwendet, das schont die lokalen Ressourcen zusätzlich oder ist eine Alternative, wenn das eigene System die Voraussetzungen für Hyper-V nicht erfüllt. Daß man dabei dann das Signieren eines eigenen Images immer noch lokal machen sollte (das geht dann auch in einer WSL-App wieder fix), wenn man das überhaupt verwendet, versteht sich wieder von selbst. Ein privater Schlüssel hat in einem VHD-Image in der MS-Cloud nichts verloren (und auch bei keinem anderen Cloud-Service) - und wenn es nur der für das Signieren der FRITZ!Box-Firmware ist.

    Leider ist das Freetz-Linux-Image von cinereous auch schon etwas in die Jahre gekommen ... vermutlich kommt man sogar besser weg, wenn man nicht mit diesem beginnt (ist m.W. noch eine LTS-Version von Precise Pangolin (12.04), die auch seit mehr als einem Jahr keine Updates mehr kriegt), sondern gleich mit einer 16.04-LTS startet oder - wenn man tatsächlich eher auf 64-Bit setzen will, wobei das der Cloud egal ist - eben mit einem "Bionic Beaver" von Ubuntu (das werden die meisten sicherlich bevorzugen, obwohl auch andere Distros gut geeignet sind), wo es die 32-Bit-Versionen gar nicht mehr gibt.
     
  8. DHU

    DHU Neuer User

    Registriert seit:
    20 Jan. 2007
    Beiträge:
    69
    Zustimmungen:
    4
    Punkte für Erfolge:
    8
    Ich habe mal auf dem gleichen Rechner mit einer einfachen Konfig unter WSL und dann in einer VM mit dem Microsoft Hypervisor Freetz mit Toolchain gebaut:

    WSL:
    packing images/7490_06.93-freetz-devel-14683.de_20180527-233443.image
    image file size: 29.6 MB
    done.

    FINISHED
    1651.84user 2256.20system 1:09:05elapsed 94%CPU (0avgtext+0avgdata 624748maxresident)k
    0inputs+0outputs (0major+185822234minor)pagefaults 0swaps
    dirk@HOME:~/freetz-devel$ uname -a
    Linux HOME 4.4.0-17134-Microsoft #81-Microsoft Sun May 20 01:14:00 PST 2018 x86_64 x86_64 x86_64 GNU/Linux

    VM unter Microsoft Hypervisor:
    packing images/7490_06.93-freetz-devel-14683.de_20180528-001553.image
    image file size: 28.6 MB
    done.

    FINISHED
    1306.10user 92.42system 21:07.42elapsed 110%CPU (0avgtext+0avgdata 325728maxresident)k
    2052416inputs+2345528outputs (5495major+89508025minor)pagefaults 0swaps
    dirk@home-ubuntu:~/fritz/freetz-devel$ uname -a
    Linux home-ubuntu 4.4.0-112-generic #135-Ubuntu SMP Fri Jan 19 11:48:14 UTC 2018 i686 i686 i686 GNU/Linux

    Ergebnis WSL unter Win10 kann man benutzen, ist aber noch 3x langsamer als eine VM.
     
  9. MrFritzBoxCable

    MrFritzBoxCable Neuer User

    Registriert seit:
    29 Mai 2018
    Beiträge:
    23
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    @DHU funktioniert super bis zu dem fakeroot patch ... da sagt er:
    diff: unrecognized option '--git'
    Woran kann das liegen? Sorry - kenn mich nicht so aus mit Linux /diff/git...
    Danke!
     
  10. DHU

    DHU Neuer User

    Registriert seit:
    20 Jan. 2007
    Beiträge:
    69
    Zustimmungen:
    4
    Punkte für Erfolge:
    8
    Hi,
    na ja das was Du da anwenden wolltest ist der patch selber den Du in eine Datei fakeroot.diff speichern musst und entweder mit
    git apply fakeroot.diff oder patch -p1 < fakeroot.diff anwenden musst
    aber eigentlich ist der patch schon in meinem Branch drin.
    Viel Spaß noch!
     
  11. superblond

    superblond Neuer User

    Registriert seit:
    6 März 2013
    Beiträge:
    5
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    [QUOTE="DHU, post: 2281593, member: 127876"...
    git apply fakeroot.diff oder patch -p1 < fakeroot.diff anwenden musst
    aber eigentlich ist der patch schon in meinem Branch drin.
    Viel Spaß noch![/QUOTE]

    Hi & herzlichen Dank für das ausführliche How-to!

    Ich habe den w.o.g. trunk gecloned und entsprechend "build own tollchain" gesetzt.
    Alles läuft langsam aber smooth und ohne Fehler, bis zum Ende dieser bekannte Fehlerfall auftritt:
    Code:
    Compressed configuration written to .config.compressed.
    It is equivalent to .config, but contains only non-default user selections.
    fakeroot, while creating message channels: Function not implemented
    This may be due to a lack of SYSV IPC support.
    fakeroot: error while starting the `faked' daemon.
    Makefile:309: recipe for target 'firmware-nocompile' failed
    make: *** [firmware-nocompile] Error 1
    
    Frage:
    Kannst du mir bitte den link zum fakeroot patch nennen?
    Ich möchte diesen manuell nach installieren und dann noch einmal schauen.

    Danke & Grüße
    SB
     
  12. Shirocco88

    Shirocco88 Mitglied

    Registriert seit:
    4 Jan. 2016
    Beiträge:
    683
    Zustimmungen:
    36
    Punkte für Erfolge:
    28
    hast Du den fakeroot Patch von @DHU aus #6 schon getestet ?
     
  13. superblond

    superblond Neuer User

    Registriert seit:
    6 März 2013
    Beiträge:
    5
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    #13 superblond, 11 Aug. 2018
    Zuletzt von einem Moderator bearbeitet: 12 Aug. 2018
    Hi,
    ja, versucht zu starten; nein hat nicht funktioniert, da
    das cmd diff das Argument/Option --git nicht kennt.
    Es folgt der Abrruch, bzw. ein Error.

    ### Zusammenführung Doppelpost by stoney ###

    ich versuche hier ein Image für eine FritzBox 7590 zu erstellen...
    Da könnte wohl ein Problem sein!?
     
  14. PeterPawn

    PeterPawn IPPF-Urgestein

    Registriert seit:
    10 Mai 2006
    Beiträge:
    11,073
    Zustimmungen:
    526
    Punkte für Erfolge:
    113
    Beruf:
    IT-Freelancer
    Ort:
    Berlin
    #14 PeterPawn, 11 Aug. 2018
    Zuletzt bearbeitet: 11 Aug. 2018
    @superblond:
    Warum solltest Du auch versuchen, das "diff"-Kommando aufzurufen?

    Der Patch ist ja bereits die Ausgabe dieses Kommandos.

    Abgesehen davon sollte er in einem frischen Checkout schon enthalten sein: https://github.com/dirk-dhu/freetz/blob/master/tools/make/fakeroot/fakeroot.mk#L42

    ... und damit ist es eher angebracht, mit einem eigenen "uname -r" mal nachzusehen, ob da tatsächlich auch "Microsoft" im "kernel release"-Wert steht. Vielleicht hat sich das ja bei einem neueren Kernel geändert oder es ist kein Ubuntu oder, oder, oder.

    PS: Wenn Du hier tatsächlich eine 7590 meinst, bist Du total falsch. Das ist nämlich kein Puma6-Gerät.
     
  15. DHU

    DHU Neuer User

    Registriert seit:
    20 Jan. 2007
    Beiträge:
    69
    Zustimmungen:
    4
    Punkte für Erfolge:
    8
    @superblond:
    Bitte führe folgendens Kommando in Deinem Freetz checkout Verzeichnis aus:
    grep Microsoft tools/make/fakeroot/fakeroot.mk; uname -r; uname -a
    dann können wir Dir weiterhelfen, denn der Patch sollte ja schon da sein, aber funktioniert nicht.

    Gruß
     
  16. PeterPawn

    PeterPawn IPPF-Urgestein

    Registriert seit:
    10 Mai 2006
    Beiträge:
    11,073
    Zustimmungen:
    526
    Punkte für Erfolge:
    113
    Beruf:
    IT-Freelancer
    Ort:
    Berlin
    Ich quote mich mal selbst und halte fest, daß hier am Ende ich durcheinandergekommen bin ... das ist hier ja gar nicht der Puma6-Thread, wo es um den Fork von @f666 geht.

    Sorry ... dann ist das natürlich Unfug, was ich da hinsichtlich Puma6-Boxen schrieb.
     
  17. Whoopie

    Whoopie Aktives Mitglied

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    813
    Zustimmungen:
    4
    Punkte für Erfolge:
    18
    @DHU: Könntest Du einen Patch gemäß den Vorgaben (siehe http://freetz.org/ticket/2854#comment:8) erstellen, damit wir es in Freetz aufnehmen können? Den Patch am besten in dem o.a. Ticket anhängen.

    Vielen Dank im Voraus!
    Gruß
    Whoopie