From 6b17e19ad8560151f399afb7b10ea44315865f69 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Tue, 16 May 2023 10:48:28 +0200 Subject: [PATCH 1/5] libbsd: fix compilation with musl 1.2.4 musl 1.2.4 deprecated legacy "LFS64" ("large file support") interfaces so just having _GNU_SOURCE defined is not enough anymore. _LARGEFILE64_SOURCE has to be defined in the source, or CFLAGS can be used to pass -D_LARGEFILE64_SOURCE to allow to keep using LFS64 definitions. Fixes: fff878c5bcda ("toolchain/musl: update to 1.2.4") Signed-off-by: Robert Marko --- package/libs/libbsd/Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/package/libs/libbsd/Makefile b/package/libs/libbsd/Makefile index 92c7054e3b..1872e3ce30 100644 --- a/package/libs/libbsd/Makefile +++ b/package/libs/libbsd/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libbsd PKG_VERSION:=0.11.7 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=https://libbsd.freedesktop.org/releases @@ -29,6 +29,8 @@ define Package/libbsd/description This library provides useful functions commonly found on BSD systems, and lacking on others like GNU systems, thus making it easier to port projects with strong BSD origins, without needing to embed the same code over and over again on each project. endef +TARGET_CFLAGS += -D_LARGEFILE64_SOURCE + define Build/InstallDev $(INSTALL_DIR) $(1)/usr/lib $(INSTALL_DIR) $(1)/usr/lib/pkgconfig From 95577e7bd108b5c70e5c757ce5b73545e068b8d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20K=C4=99pie=C5=84?= Date: Tue, 18 Apr 2023 15:48:41 +0200 Subject: [PATCH 2/5] ath79: add support for MikroTik RB951Ui-2HnD MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit MikroTik RB951Ui-2HnD is a wireless SOHO router that was previously supported by the ar71xx target, see commit d19b868b12 ("ar71xx: Add support for MikroTik RB951Ui-2HnD"). Specifications -------------- - SoC: Atheros AR9344 (600 MHz) - RAM: 128 MB (2x 64 MB) - Storage: 128 MB NAND flash (various manufacturers) - Ethernet: Atheros AR8229 switch, 5x 10/100 Mbit/s - 1x PoE in (port 1, 8-30 V input) - 1x PoE out (port 5, 500 mA output) - Wireless: Atheros AR9340 (802.11b/g/n) - USB: 2.0 (1A) - 9x LED: - 1x power (green, not configurable) - 1x user (green) - 5x FE ports (green) - 1x wireless (green) - 1x PoE out (red) - 1x button (restart) See https://mikrotik.com/product/RB951Ui-2HnD for more details. Flashing -------- TFTP boot initramfs image and then perform sysupgrade. Follow common MikroTik procedures at https://openwrt.org/toh/mikrotik/common. Signed-off-by: Michał Kępień --- ...ar9344_mikrotik_routerboard-951ui-2hnd.dts | 153 ++++++++++++++++++ target/linux/ath79/image/mikrotik.mk | 9 ++ .../mikrotik/base-files/etc/board.d/01_leds | 1 + .../base-files/etc/board.d/02_network | 1 + .../etc/hotplug.d/firmware/10-ath9k-eeprom | 3 + .../base-files/lib/upgrade/platform.sh | 1 + 6 files changed, 168 insertions(+) create mode 100644 target/linux/ath79/dts/ar9344_mikrotik_routerboard-951ui-2hnd.dts diff --git a/target/linux/ath79/dts/ar9344_mikrotik_routerboard-951ui-2hnd.dts b/target/linux/ath79/dts/ar9344_mikrotik_routerboard-951ui-2hnd.dts new file mode 100644 index 0000000000..3d59a30f11 --- /dev/null +++ b/target/linux/ath79/dts/ar9344_mikrotik_routerboard-951ui-2hnd.dts @@ -0,0 +1,153 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "ar9344_mikrotik_routerboard.dtsi" + +/ { + compatible = "mikrotik,routerboard-951ui-2hnd", "qca,ar9344"; + model = "Mikrotik RouterBOARD 951Ui-2HnD"; + + /delete-node/ leds; + + leds { + compatible = "gpio-leds"; + + led_user: user { + label = "green:user"; + gpios = <&gpio 3 GPIO_ACTIVE_LOW>; + }; + + port1 { + label = "green:port1"; + gpios = <&gpio 13 GPIO_ACTIVE_LOW>; + }; + + port2 { + label = "green:port2"; + gpios = <&gpio 12 GPIO_ACTIVE_LOW>; + }; + + port3 { + label = "green:port3"; + gpios = <&gpio 4 GPIO_ACTIVE_LOW>; + }; + + port4 { + label = "green:port4"; + gpios = <&gpio 21 GPIO_ACTIVE_LOW>; + }; + + port5 { + label = "green:port5"; + gpios = <&gpio 16 GPIO_ACTIVE_LOW>; + }; + }; + + gpio-export { + compatible = "gpio-export"; + + gpio_poe_power { + gpio-export,name = "rb951ui2hnd:power:poe"; + gpio-export,output = <1>; + gpios = <&gpio 2 GPIO_ACTIVE_HIGH>; + }; + + gpio_usb_power { + gpio-export,name = "rb951ui2hnd:power:usb"; + gpio-export,output = <1>; + gpios = <&gpio 20 GPIO_ACTIVE_HIGH>; + }; + }; +}; + +&gpio { + nand_power { + gpio-hog; + gpios = <14 GPIO_ACTIVE_LOW>; + output-high; + }; +}; + +&nand { + status = "okay"; + + nand-ecc-mode = "soft"; + qca,nand-swap-dma; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "booter"; + reg = <0x0000000 0x0040000>; + read-only; + }; + + partition@40000 { + label = "kernel"; + reg = <0x0040000 0x03c0000>; + }; + + partition@400000 { + label = "ubi"; + reg = <0x0400000 0x7c00000>; + }; + }; +}; + +&spi { + status = "okay"; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <25000000>; + + partitions { + compatible = "mikrotik,routerboot-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "routerboot"; + reg = <0x0 0x0>; + read-only; + }; + + hard_config: hard_config { + read-only; + }; + + bios { + size = <0x1000>; + read-only; + }; + + soft_config { + }; + }; + }; +}; + +ð0 { + phy-handle = <&swphy4>; + + /delete-node/ gmac-config; +}; + +ð1 { + compatible = "qca,ar9340-eth", "syscon"; +}; + +&wmac { + qca,led-pin = /bits/ 8 <11>; +}; + +&usb { + status = "okay"; +}; + +&usb_phy { + status = "okay"; +}; diff --git a/target/linux/ath79/image/mikrotik.mk b/target/linux/ath79/image/mikrotik.mk index fb0035fb65..3f65b35c8c 100644 --- a/target/linux/ath79/image/mikrotik.mk +++ b/target/linux/ath79/image/mikrotik.mk @@ -48,6 +48,15 @@ define Device/mikrotik_routerboard-922uags-5hpacd endef TARGET_DEVICES += mikrotik_routerboard-922uags-5hpacd +define Device/mikrotik_routerboard-951ui-2hnd + $(Device/mikrotik_nand) + SOC := ar9344 + DEVICE_MODEL := RouterBOARD 951Ui-2HnD + DEVICE_PACKAGES += kmod-usb-ohci kmod-usb2 + SUPPORTED_DEVICES += rb-951ui-2hnd +endef +TARGET_DEVICES += mikrotik_routerboard-951ui-2hnd + define Device/mikrotik_routerboard-951ui-2nd $(Device/mikrotik_nor) SOC := qca9531 diff --git a/target/linux/ath79/mikrotik/base-files/etc/board.d/01_leds b/target/linux/ath79/mikrotik/base-files/etc/board.d/01_leds index 4c1b98fff2..31346ebdf5 100644 --- a/target/linux/ath79/mikrotik/base-files/etc/board.d/01_leds +++ b/target/linux/ath79/mikrotik/base-files/etc/board.d/01_leds @@ -16,6 +16,7 @@ mikrotik,routerboard-lhg-5nd) ucidef_set_led_rssi "rssimediumhigh" "rssimediumhigh" "green:rssimediumhigh" "wlan0" "60" "100" ucidef_set_led_rssi "rssihigh" "rssihigh" "green:rssihigh" "wlan0" "80" "100" ;; +mikrotik,routerboard-951ui-2hnd|\ mikrotik,routerboard-951ui-2nd|\ mikrotik,routerboard-952ui-5ac2nd) ucidef_set_led_netdev "port1" "port1" "green:port1" "eth1" diff --git a/target/linux/ath79/mikrotik/base-files/etc/board.d/02_network b/target/linux/ath79/mikrotik/base-files/etc/board.d/02_network index da63347c3c..aba811fb2d 100644 --- a/target/linux/ath79/mikrotik/base-files/etc/board.d/02_network +++ b/target/linux/ath79/mikrotik/base-files/etc/board.d/02_network @@ -25,6 +25,7 @@ ath79_setup_interfaces() mikrotik,routerboard-wapr-2nd) ucidef_set_interface_lan "eth0" ;; + mikrotik,routerboard-951ui-2hnd|\ mikrotik,routerboard-951ui-2nd|\ mikrotik,routerboard-952ui-5ac2nd) ucidef_set_interface_wan "eth1" diff --git a/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom index e0bf1e47ef..b23bd05bcd 100644 --- a/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom +++ b/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom @@ -46,6 +46,9 @@ case "$FIRMWARE" in mikrotik,routerboard-962uigs-5hact2hnt) caldata_mikrotik_ath9k 0x1000 0x440 $(macaddr_add "$mac_base" 7) ;; + mikrotik,routerboard-951ui-2hnd) + caldata_mikrotik_ath9k 0x1000 0x440 $(macaddr_add "$mac_base" +11) + ;; *) caldata_die "board $board is not supported yet" ;; diff --git a/target/linux/ath79/mikrotik/base-files/lib/upgrade/platform.sh b/target/linux/ath79/mikrotik/base-files/lib/upgrade/platform.sh index 93a9c3a855..cefbc5d334 100644 --- a/target/linux/ath79/mikrotik/base-files/lib/upgrade/platform.sh +++ b/target/linux/ath79/mikrotik/base-files/lib/upgrade/platform.sh @@ -33,6 +33,7 @@ platform_do_upgrade() { mikrotik,routerboard-912uag-2hpnd|\ mikrotik,routerboard-921gs-5hpacd-15s|\ mikrotik,routerboard-922uags-5hpacd|\ + mikrotik,routerboard-951ui-2hnd|\ mikrotik,routerboard-sxt-5nd-r2) platform_do_upgrade_mikrotik_nand "$1" ;; From 8f455f7c5e0c1fe7c8c2297a2fa4b2a6c7d6c91e Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 16 May 2023 19:03:29 +0800 Subject: [PATCH 3/5] f2fs-tools: fix compilation with musl 1.2.4 musl 1.2.4 deprecated legacy "LFS64" ("large file support") interfaces and autotools failed to check the lseek64 function. Force enable ac_cv_func_lseek64 to workaround it. Signed-off-by: Tianling Shen --- package/utils/f2fs-tools/Makefile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/package/utils/f2fs-tools/Makefile b/package/utils/f2fs-tools/Makefile index 99d402af6c..c4e3720dd8 100644 --- a/package/utils/f2fs-tools/Makefile +++ b/package/utils/f2fs-tools/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=f2fs-tools PKG_VERSION:=1.15.0 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git/snapshot/ @@ -111,6 +111,10 @@ endif CONFIGURE_VARS += \ ac_cv_file__git=no +ifneq ($(CONFIG_USE_MUSL),) + CONFIGURE_VARS += ac_cv_func_lseek64=yes +endif + define Package/libf2fs/install $(INSTALL_DIR) $(1)/usr/lib $(CP) \ From 466be0612aaed4034e15095b9fc63ce4cd99b87a Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 16 May 2023 15:49:08 +0800 Subject: [PATCH 4/5] e2fsprogs: fix compilation with musl 1.2.4 musl 1.2.4 deprecated legacy "LFS64" ("large file support") interfaces and autotools failed to check the lseek64 function. Force enable ac_cv_func_lseek64 to workaround it. Signed-off-by: Tianling Shen --- package/utils/e2fsprogs/Makefile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/package/utils/e2fsprogs/Makefile b/package/utils/e2fsprogs/Makefile index 9437947ab6..42c2971529 100644 --- a/package/utils/e2fsprogs/Makefile +++ b/package/utils/e2fsprogs/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=e2fsprogs PKG_VERSION:=1.47.0 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@KERNEL/linux/kernel/people/tytso/e2fsprogs/v$(PKG_VERSION)/ @@ -156,6 +156,10 @@ CONFIGURE_ARGS += \ --disable-rpath \ --disable-fuse2fs +ifneq ($(CONFIG_USE_MUSL),) + CONFIGURE_VARS += ac_cv_func_lseek64=yes +endif + define Build/Prepare $(call Build/Prepare/Default) $(CP) $(SCRIPT_DIR)/config.{guess,sub} $(PKG_BUILD_DIR)/config/ From abec62a5426821c38ac287d21601b8eb237a1246 Mon Sep 17 00:00:00 2001 From: Nick Hainke Date: Tue, 16 May 2023 20:07:38 +0200 Subject: [PATCH 5/5] mdadm: fix compilation with musl 1.2.4 _LARGEFILE64_SOURCE has to be defined in the source, or CFLAGS can be used to pass -D_LARGEFILE64_SOURCE to allow to keep using LFS64 definitions. Fixes error in the form of: restripe.c: In function 'restore_stripes': restripe.c:758:43: error: 'off64_t' undeclared (first use in this function); did you mean 'off_t'? 758 | (off64_t)read_offset) { | ^~~~~~~ | off_t restripe.c:758:43: note: each undeclared identifier is reported only once for each function it appears in restripe.c:758:51: error: expected ')' before 'read_offset' 758 | (off64_t)read_offset) { | ^~~~~~~~~~~ | ) restripe.c:757:36: note: to match this '(' 757 | if (lseek64(source, read_offset, 0) != | ^ make[3]: *** [Makefile:193: restripe.o] Error 1 Fixes: fff878c5bcda ("toolchain/musl: update to 1.2.4") Signed-off-by: Nick Hainke --- package/utils/mdadm/Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package/utils/mdadm/Makefile b/package/utils/mdadm/Makefile index 1828a88972..8070003394 100644 --- a/package/utils/mdadm/Makefile +++ b/package/utils/mdadm/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=mdadm PKG_VERSION:=4.2 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@KERNEL/linux/utils/raid/mdadm @@ -49,7 +49,8 @@ TARGET_CFLAGS += \ -DMAP_DIR='\"/var/run/mdadm\"' \ -DMDMON_DIR='\"/var/run/mdadm\"' \ -DFAILED_SLOTS_DIR='\"/var/run/mdadm/failed-slots\"' \ - -DNO_LIBUDEV + -DNO_LIBUDEV \ + -D_LARGEFILE64_SOURCE TARGET_CXFLAGS = -DNO_LIBUDEV