[Berlin-wireless] Patches für Hedy 1.0.5 und Raspberry Pi binaries
Sven Roederer
freifunk at it-solutions.geroedel.de
Sa Mär 28 01:26:31 CET 2020
# firmware-1.0.x$ git status
On branch v1.0.5
nothing to commit, working tree clean
# firmware-1.0.x$ git log -1
commit 7d4a8801d7b8c4c446935ba4b5ade2ff8e17da5f (HEAD -> v1.0.5, tag: v1.0.5, SAm0815/Hedy-1.0.x, my_routers, Hedy-1.0.x)
Author: Sven Roederer <freifunk at it-solutions.geroedel.de>
Date: Thu Mar 12 22:26:37 2020 +0100
release settings for Hedy-1.0.5
# firmware-1.0.x$ rm -rf openwrt/build_dir/target-arm_arm1176jzf-s+vfp_musl-1.1.16_eabi
# firmware-1.0.x$ make V=s TARGET=brcm2708-bcm2708 prepare
# firmware-1.0.x$ cd openwrt
# firmware-1.0.x/openwrt$ make V=s
# firmware-1.0.x/openwrt$ git status
HEAD detached at beaa2ecc10
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: include/kernel-version.mk
modified: package/base-files/files/etc/banner
modified: package/base-files/files/etc/openwrt_release
modified: package/network/config/netifd/Makefile
modified: package/network/services/hostapd/files/hostapd.sh
modified: target/imagebuilder/files/Makefile
deleted: target/linux/ar71xx/patches-4.4/403-mtd_fix_cfi_cmdset_0002_status_check.patch
modified: target/linux/generic/patches-4.4/902-debloat_proc.patch
modified: target/linux/ramips/base-files/etc/board.d/02_network
modified: target/linux/ramips/base-files/lib/ramips.sh
modified: target/linux/ramips/base-files/lib/upgrade/platform.sh
modified: target/linux/ramips/image/mt7621.mk
modified: target/linux/ramips/mt7621/config-4.4
modified: target/linux/x86/config-4.4
Untracked files:
(use "git add <file>..." to include in what will be committed)
.pc/
package/kernel/mac80211/patches/940-freifunk-berlin-rt2x00_allow_adhoc_and_ap.patch
package/libs/mbedtls/patches/201-accept-rsa-1024.patch
patches
target/linux/ramips/base-files/etc/board.d/03_gpio_switches
target/linux/ramips/dts/UBNT-ERX-SFP.dts
target/linux/ramips/mt7620/profiles/nexx.mk
no changes added to commit (use "git add" and/or "git commit -a")
# firmware-1.0.x/openwrt$ make V=s
make[1]: Entering directory '/mnt/local/btrfs/build/freifunk/ffberlin/firmware-1.0.x/openwrt'
make[2]: Entering directory '/mnt/local/btrfs/build/freifunk/ffberlin/firmware-1.0.x/openwrt'
make[3]: Entering directory '/mnt/local/btrfs/build/freifunk/ffberlin/firmware-1.0.x/openwrt/target/linux'
make[4]: Entering directory '/mnt/local/btrfs/build/freifunk/ffberlin/firmware-1.0.x/openwrt/target/linux/brcm2708'
rm -rf /mnt/local/btrfs/build/freifunk/ffberlin/firmware-1.0.x/openwrt/build_dir/target-arm_arm1176jzf-s+vfp_musl-1.1.16_eabi/linux-brcm2708_bcm2708
mkdir -p /mnt/local/btrfs/build/freifunk/ffberlin/firmware-1.0.x/openwrt/build_dir/target-arm_arm1176jzf-s+vfp_musl-1.1.16_eabi/linux-brcm2708_bcm2708
xzcat /mnt/local/btrfs/build/freifunk/ffberlin/firmware-1.0.x/openwrt/dl/linux-4.4.205.tar.xz | tar -C
/mnt/local/btrfs/build/freifunk/ffberlin/firmware-1.0.x/openwrt/build_dir/target-arm_arm1176jzf-s+vfp_musl-1.1.16_eabi/linux-brcm2708_bcm2708 -xf -
...
...
...
Applying /mnt/local/btrfs/build/freifunk/ffberlin/firmware-1.0.x/openwrt/target/linux/brcm2708/patches-4.4/0079-Improve-__copy_to_user-and-__copy_from_user-performa.patch using plaintext:
patching file arch/arm/include/asm/string.h
patching file arch/arm/include/asm/uaccess.h
Hunk #1 succeeded at 534 (offset 41 lines).
patching file arch/arm/lib/Makefile
patching file arch/arm/lib/arm-mem.h
patching file arch/arm/lib/copy_from_user.S
Hunk #1 FAILED at 89.
1 out of 1 hunk FAILED -- saving rejects to file arch/arm/lib/copy_from_user.S.rej
patching file arch/arm/lib/exports_rpi.c
patching file arch/arm/lib/memcmp_rpi.S
patching file arch/arm/lib/memcpy_rpi.S
patching file arch/arm/lib/memcpymove.h
patching file arch/arm/lib/memmove_rpi.S
patching file arch/arm/lib/memset_rpi.S
patching file arch/arm/lib/uaccess_with_memcpy.c
Patch failed! Please fix /mnt/local/btrfs/build/freifunk/ffberlin/firmware-1.0.x/openwrt/target/linux/brcm2708/patches-4.4/0079-Improve-__copy_to_user-and-__copy_from_user-performa.patch!
make[4]: *** [Makefile:36:
/mnt/local/btrfs/build/freifunk/ffberlin/firmware-1.0.x/openwrt/build_dir/target-arm_arm1176jzf-s+vfp_musl-1.1.16_eabi/linux-brcm2708_bcm2708/linux-4.4.205/.prepared_2aa2a15403752469a3c249c70b2cd89c]
Error 1
make[4]: Leaving directory '/mnt/local/btrfs/build/freifunk/ffberlin/firmware-1.0.x/openwrt/target/linux/brcm2708'
make[3]: *** [Makefile:13: compile] Error 2
# firmware-1.0.x/openwrt$ cd target/linux/brcm2708/patches-4.4/
# firmware-1.0.x/openwrt$ wget http://lernekultur.de/ffbf/0061-Improve-__copy_to_user-and-__copy_from_user-performa.patch
# firmware-1.0.x/openwrt$ wget http://lernekultur.de/ffbf/0589-Update-vfpmodule.c.patch
--> das file gibt's schon und wget speichert als "0589-Update-vfpmodule.c.patch.1"
# firmware-1.0.x/openwrt$ cd ../../../..
# firmware-1.0.x/openwrt$ make V=s
make[1]: Entering directory '/mnt/local/btrfs/build/freifunk/ffberlin/firmware-1.0.x/openwrt'
make[2]: Entering directory '/mnt/local/btrfs/build/freifunk/ffberlin/firmware-1.0.x/openwrt'
make[3]: Entering directory '/mnt/local/btrfs/build/freifunk/ffberlin/firmware-1.0.x/openwrt/target/linux'
make[4]: Entering directory '/mnt/local/btrfs/build/freifunk/ffberlin/firmware-1.0.x/openwrt/target/linux/brcm2708'
rm -rf /mnt/local/btrfs/build/freifunk/ffberlin/firmware-1.0.x/openwrt/build_dir/target-arm_arm1176jzf-s+vfp_musl-1.1.16_eabi/linux-brcm2708_bcm2708
mkdir -p /mnt/local/btrfs/build/freifunk/ffberlin/firmware-1.0.x/openwrt/build_dir/target-arm_arm1176jzf-s+vfp_musl-1.1.16_eabi/linux-brcm2708_bcm2708
xzcat /mnt/local/btrfs/build/freifunk/ffberlin/firmware-1.0.x/openwrt/dl/linux-4.4.205.tar.xz | tar -C
/mnt/local/btrfs/build/freifunk/ffberlin/firmware-1.0.x/openwrt/build_dir/target-arm_arm1176jzf-s+vfp_musl-1.1.16_eabi/linux-brcm2708_bcm2708 -xf -
...
...
...
Applying /mnt/local/btrfs/build/freifunk/ffberlin/firmware-1.0.x/openwrt/target/linux/brcm2708/patches-4.4/0061-Improve-__copy_to_user-and-__copy_from_user-performa.patch using plaintext:
patching file arch/arm/include/asm/string.h
Hunk #1 succeeded at 38 with fuzz 2 (offset -1 lines).
patching file arch/arm/include/asm/uaccess.h
Hunk #1 succeeded at 534 with fuzz 2 (offset 20 lines).
patching file arch/arm/lib/Makefile
Hunk #1 FAILED at 7.
Hunk #2 succeeded at 18 (offset -1 lines).
1 out of 2 hunks FAILED -- saving rejects to file arch/arm/lib/Makefile.rej
patching file arch/arm/lib/arm-mem.h
patching file arch/arm/lib/copy_from_user.S
patching file arch/arm/lib/exports_rpi.c
patching file arch/arm/lib/memcmp_rpi.S
patching file arch/arm/lib/memcpy_rpi.S
patching file arch/arm/lib/memcpymove.h
patching file arch/arm/lib/memmove_rpi.S
patching file arch/arm/lib/memset_rpi.S
patching file arch/arm/lib/uaccess_with_memcpy.c
Hunk #2 succeeded at 93 (offset 1 line).
Hunk #3 succeeded at 183 (offset 1 line).
Hunk #4 succeeded at 244 (offset 1 line).
patching file arch/arm/mach-bcm/Kconfig
Hunk #1 succeeded at 135 with fuzz 2 (offset -52 lines).
Patch failed! Please fix /mnt/local/btrfs/build/freifunk/ffberlin/firmware-1.0.x/openwrt/target/linux/brcm2708/patches-4.4/0061-Improve-__copy_to_user-and-__copy_from_user-performa.patch!
make[4]: *** [Makefile:36:
/mnt/local/btrfs/build/freifunk/ffberlin/firmware-1.0.x/openwrt/build_dir/target-arm_arm1176jzf-s+vfp_musl-1.1.16_eabi/linux-brcm2708_bcm2708/linux-4.4.205/.prepared_fcde37ac7b8a8f4a5a08976d48d5bded]
Error 1
make[4]: Leaving directory '/mnt/local/btrfs/build/freifunk/ffberlin/firmware-1.0.x/openwrt/target/linux/brcm2708'
make[3]: *** [Makefile:13: compile] Error 2
-----------------------
Bei dem ersten build gibt's probleme beim Anwenden von Patch
"0079-Improve-__copy_to_user-and-__copy_from_user-performa.patch". Dann
hab ich deine beiden Patche eingespielt und den build aus OpenWrt neu
gestartet. Dabei werden die original-kernel-sourcen wieder entpackt und
alle patche erneut angewendet. Diesmal habe ich dann scho Probleme beim
neuen Patch "0061-Improve-__copy_to_user-and-__copy_from_user-performa.patch",
der ja schon vor dem bisher probelmatischen Patch "0079" angewendet wird.
Also wird auf meiner Seite nicht wirklich besser ...
gruss Sven
P.S. Da deine Lösung den vereinzelt auftretenden WiFi-fehler nicht anrührt,
ist ja eh der konsens, wieder auf den letzten offiziellen OpenWrt-Kernel zu
wechseln. Dadurch sollte sich das Problem ja von alleine erledigen.
Am 27.03.20 um 14:20 schrieb Stefan W.:
> Hallo Sven!
>
>> Die genannte CONFIG-option und patches kommen erst bei linux-kernel 4.9.x ins OpenWrt[...]
>
> Diese Frage kann ich Dir natürlich auch nicht einfach beantworten. Die Option wird tatsächlich verlangt, und da die meisten sicherlich mit mehreren Prozessen kompilieren sollte es vorher in der config-4.4 gesetzt sein, da sonst der build fehlschlägt.
>
>> deckt sich der Fehler, den du siehst mit dem von Torsten[...]
>
> Nein, das ist denke ich eine andere Baustelle. Die beiden geänderten Patches von mir sorgen dafür, das Hedy 1.0.5 für das Target brcm2708 kompilierbar ist.
>
>> Ich hab deinen Patch mal anstatt[...]
>
> Ich kann Dir die Schritte aufzählen, wie der Build mit den geänderten Patches erfolgreich durchläuft:
>
> - firmware klonen, git branch "Hedy-1.0.x", revision v1.0.5
> - erstes make TARGET=brcm2708-bcm2708 -j33
> - nach dem ersten Fehlschlag im Verzeichnis firmware/openwrt/target/linux/brcm2708
> die beiden Dateien im Verzeichnis patches-4.4 mit denen aus aus [0] und [1] ersetzen
> - in den Verzeichnissen bcm2708, bcm2709, bcm2710 in die Datei config-4.4
> CONFIG_HARDEN_BRANCH_PREDICTOR=y
> einfügen.
> - zweites make TARGET=brcm2708-bcm2708 -j33
>
> Viele Grüße!
>
> - Stefan
>
>
> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
> On Thursday, 26. March 2020 08:34, Sven Roederer <freifunk at it-solutions.geroedel.de> wrote:
>
>> Hallo Stefan,
>>
>> Am 22.03.20 um 09:43 schrieb Stefan W.:
>>
>>> Hallo zusammen!
>>> Leider funktioniert Hedy 1.0.5 auch für die Raspberry Pi Targets nicht korrekt. Da ich zwischen Kinderbetreuung und Familie bei Laune halten ein paar Minuten Zeit fand, habe ich mich kurz hinsetzen
>>> können um die entstandenen Fehler zu finden.
>>
>> deckt sich der Fehler, den du siehst mit dem von Torsten berichtetem
>> (https://github.com/freifunk-berlin/firmware/pull/749#issuecomment-572493593)?
>>
>>> Wollt ihr mit der Option -j mit mehreren Prozessen kompilieren, dann noch in der entsprechenden config-4.4 folgendes hinzufügen:
>>> CONFIG_HARDEN_BRANCH_PREDICTOR=y
>>> Sonst werdet ihr in den Requester zurückgeworfen, den ihr natürlich auch beantworten könnt, wenn ihr mit nur einem Prozess kompiliert, also -j auf 1 setzt.
>>
>>> [0] http://lernekultur.de/ffbf/0061-Improve-__copy_to_user-and-__copy_from_user-performa.patch http://lernekultur.de/ffbf/0061-Improve-__copy_to_user-and-__copy_from_user-performa.patch
>>> [1] http://lernekultur.de/ffbf/0589-Update-vfpmodule.c.patch http://lernekultur.de/ffbf/0589-Update-vfpmodule.c.patch
>>
>> Die genannte CONFIG-option und patches kommen erst bei linux-kernel 4.9.x
>> ins OpenWrt. Daher wundert es mich etwas, dass du die beim Pi schon für
>> linux-4.4.x benötigst.
>>
>> https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=dfbf836a52e451f98e90dcf567c107062e2d7048
>>
>> GRuss Sven
>>
>> Berlin mailing list
>> Berlin at berlin.freifunk.net
>> http://lists.berlin.freifunk.net/cgi-bin/mailman/listinfo/berlin
>> Diese Mailingliste besitzt ein ffentlich einsehbares Archiv
>
>
> _______________________________________________
> Berlin mailing list
> Berlin at berlin.freifunk.net
> http://lists.berlin.freifunk.net/cgi-bin/mailman/listinfo/berlin
> Diese Mailingliste besitzt ein ffentlich einsehbares Archiv
>
Mehr Informationen über die Mailingliste Berlin