Re: [OpenWrt-Devel] hostapd fails to link at current master
Hi, May I know any update on it? I am facing same problem too. Thanks a lot. Best regards, Yangbo Lu > -Original Message- > From: openwrt-devel On Behalf > Of Alexander 'lynxis' Couzens > Sent: Wednesday, February 26, 2020 9:06 AM > To: Arne Kappen > Cc: openwrt-devel@lists.openwrt.org; Felix Fietkau > Subject: Re: [OpenWrt-Devel] hostapd fails to link at current master > > Hi Arne, > > > I'm getting the following liker errors trying to build hostapd-full or > > wpad-full fpr x86_64 at the current master, and tag 19.07.1: > > > > The last error also appears at tag 18.06.7. > > thanks for your bug report. > > I've looked into it. It seems a Makefile dependency problem. I've done > a quick dirty hack to fix it. It builds now. You can find in my staging > tree under the branch hostapd. > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.ope > nwrt.org%2F%3Fp%3Dopenwrt%2Fstaging%2Flynxis.git%3Ba%3Dshortlog%3B > h%3Drefs%2Fheads%2Fhostapddata=02%7C01%7Cyangbo.lu%40nxp.co > m%7C00c47579014049a000af08d7ba582e89%7C686ea1d3bc2b4c6fa92cd99 > c5c301635%7C0%7C0%7C637182760209261732sdata=jV1uVj%2BBE8 > %2BC5OIDyfomTc1JHWwje3K8wFswhkP8lhc%3Dreserved=0 > > But it needs further work to check what's the best way to fix it. > > Best, > lynxis > -- > Alexander Couzens > > mail: lyn...@fe80.eu > jabber: lyn...@fe80.eu > gpg: 390D CF78 8BF9 AA50 4F8F F1E2 C29E 9DA6 A0DF 8604 ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
[OpenWrt-Devel] [PATCH 1/2] kernel: add package linkstation-poweroff driver
Some Buffalo LinkStations perform the power off operation depending on the state of an output pin (LED) at the ethernet PHY. This package adds the driver for implementing this function. The driver is required by the Buffalo LinkStation LS421DE (mvebu target). Without it, the board reamains forever halted if a power off command is executed, unless the PSU is disconnected and connected again. Signed-off-by: Daniel González Cabanelas --- package/kernel/linkstation-pwr/Makefile | 53 package/kernel/linkstation-pwr/src/Kconfig| 9 ++ package/kernel/linkstation-pwr/src/Makefile | 1 + .../src/linkstation-poweroff.c| 119 ++ 4 files changed, 182 insertions(+) create mode 100644 package/kernel/linkstation-pwr/Makefile create mode 100644 package/kernel/linkstation-pwr/src/Kconfig create mode 100644 package/kernel/linkstation-pwr/src/Makefile create mode 100644 package/kernel/linkstation-pwr/src/linkstation-poweroff.c diff --git a/package/kernel/linkstation-pwr/Makefile b/package/kernel/linkstation-pwr/Makefile new file mode 100644 index 00..f19616c307 --- /dev/null +++ b/package/kernel/linkstation-pwr/Makefile @@ -0,0 +1,53 @@ +# +# Copyright (C) 2020 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk +include $(INCLUDE_DIR)/kernel.mk + +PKG_NAME:=linkstation-poweroff +PKG_RELEASE:=1 + +PKG_LICENSE:=GPL-2.0 + +include $(INCLUDE_DIR)/package.mk + +define KernelPackage/linkstation-poweroff + SUBMENU:=Other modules + DEPENDS:=@TARGET_mvebu + KCONFIG:= + TITLE:=Buffalo LinkStation power off driver + FILES:=$(PKG_BUILD_DIR)/linkstation-poweroff.ko + AUTOLOAD:=$(call AutoLoad,31,linkstation-poweroff,1) +endef + +define KernelPackage/linkstation-poweroff/description + Some Buffalo LinkStations use a LED output at the ethernet phy + to inform the board that a power off operation must be performed + after restarting. This driver sets the LED to the proper state + before restarting or powering off. +endef + +EXTRA_KCONFIG:= \ + CONFIG_POWER_RESET_LINKSTATION=m + +EXTRA_CFLAGS:= \ + $(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=m,%,$(filter %=m,$(EXTRA_KCONFIG \ + $(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=y,%,$(filter %=y,$(EXTRA_KCONFIG + +MAKE_OPTS:= \ + $(KERNEL_MAKE_FLAGS) \ + M="$(PKG_BUILD_DIR)" \ + EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \ + $(EXTRA_KCONFIG) + +define Build/Compile + $(MAKE) -C "$(LINUX_DIR)" \ + $(MAKE_OPTS) \ + modules +endef + +$(eval $(call KernelPackage,linkstation-poweroff)) diff --git a/package/kernel/linkstation-pwr/src/Kconfig b/package/kernel/linkstation-pwr/src/Kconfig new file mode 100644 index 00..06ed75838c --- /dev/null +++ b/package/kernel/linkstation-pwr/src/Kconfig @@ -0,0 +1,9 @@ +config POWER_RESET_LINKSTATION + tristate "Buffalo LinkStation power-off driver" + depends on ARCH_MVEBU || COMPILE_TEST + depends on OF_MDIO && PHYLIB + help + Some Buffalo LinkStations use a LED output at the ethernet PHY + to inform the board that a power off operation must be performed + after restarting. This driver sets the LED to the proper state + for restarting or powering off. diff --git a/package/kernel/linkstation-pwr/src/Makefile b/package/kernel/linkstation-pwr/src/Makefile new file mode 100644 index 00..36a7093403 --- /dev/null +++ b/package/kernel/linkstation-pwr/src/Makefile @@ -0,0 +1 @@ +obj-${CONFIG_POWER_RESET_LINKSTATION} += linkstation-poweroff.o diff --git a/package/kernel/linkstation-pwr/src/linkstation-poweroff.c b/package/kernel/linkstation-pwr/src/linkstation-poweroff.c new file mode 100644 index 00..3a6500209f --- /dev/null +++ b/package/kernel/linkstation-pwr/src/linkstation-poweroff.c @@ -0,0 +1,119 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * LinkStation power off restart driver + * Copyright (C) 2020 Daniel González Cabanelas + * + */ + +#include +#include +#include +#include +#include +#include +#include + +#define MII_MARVELL_LED_PAGE 3 +#define MII_PHY_LED_CTRL 16 + +#define LED2_OFF (0x8 << 8) +#define LED2_ON(0x9 << 8) +#define LEDMASKGENMASK(11,8) + +static struct phy_device *phydev; + +static void mvphy_reg_led(u16 data) +{ + int rc; + rc = phy_modify_paged(phydev, MII_MARVELL_LED_PAGE, + MII_PHY_LED_CTRL, LEDMASK, data); + if (rc < 0) + dev_err(>mdio.dev, + "LED2 write register failed, %d\n", rc); +} + +static int linkstation_reboot_notifier(struct notifier_block *nb, + unsigned long action, void *unused) +{ + if (action == SYS_RESTART) + mvphy_reg_led(LED2_ON); + + return NOTIFY_DONE; +} + +static struct
[OpenWrt-Devel] [PATCH 2/2] mvebu: LS421DE: add linkstation-poweroff module
The Buffalo LinkStation LS421DE has the power off function broken Fix it by including the linkstation-poweroff module to the image creation and adding it to the device tree file. Signed-off-by: Daniel González Cabanelas --- .../arm/boot/dts/armada-370-buffalo-ls421de.dts | 17 - .../arm/boot/dts/armada-370-buffalo-ls421de.dts | 17 - target/linux/mvebu/image/cortexa9.mk| 5 +++-- 3 files changed, 19 insertions(+), 20 deletions(-) diff --git a/target/linux/mvebu/files-4.19/arch/arm/boot/dts/armada-370-buffalo-ls421de.dts b/target/linux/mvebu/files-4.19/arch/arm/boot/dts/armada-370-buffalo-ls421de.dts index 6b8a964ab3..212c05c15b 100644 --- a/target/linux/mvebu/files-4.19/arch/arm/boot/dts/armada-370-buffalo-ls421de.dts +++ b/target/linux/mvebu/files-4.19/arch/arm/boot/dts/armada-370-buffalo-ls421de.dts @@ -172,10 +172,9 @@ }; }; - /* FIXME: this driver needs to be aware of the LED2 eth phy use, - which must be set to off state before shutting down the machine */ restart_poweroff { - compatible = "restart-poweroff"; + compatible = "linkstation,power-off"; + phy-handle,led = <>; }; }; @@ -183,8 +182,8 @@ pinctrl-0 = <_rgmii_pins>; pinctrl-names = "default"; status = "okay"; - phy = <>; - phy-mode = "rgmii-id"; + phy-handle = <>; + phy-connection-type = "rgmii-id"; }; { @@ -201,11 +200,11 @@ pinctrl-0 = <_pins>; pinctrl-names = "default"; - phy0: ethernet-phy@0 { /* Marvell 88E1518 */ + ethphy0: ethernet-phy@0 { /* Marvell 88E1518 */ reg = <0>; - /* LED2 is used to inform uBoot if the power-switch was slided - to the "off" position, and then power off the machine. - Page 0x3, Register 0x10, bit 8: + /* LED2 is used to inform, after restarting, if the power-switch + was slided to the "off" position, and then power off the machine. + Page 0x3, Register 0x10, bits 8-11: 0x800: LED2 off, power off the machine 0x900: LED2 on, boot the machine */ marvell,reg-init = <0x3 0x10 0x1 0x1991>, /* LED Function */ diff --git a/target/linux/mvebu/files-5.4/arch/arm/boot/dts/armada-370-buffalo-ls421de.dts b/target/linux/mvebu/files-5.4/arch/arm/boot/dts/armada-370-buffalo-ls421de.dts index 6b8a964ab3..212c05c15b 100644 --- a/target/linux/mvebu/files-5.4/arch/arm/boot/dts/armada-370-buffalo-ls421de.dts +++ b/target/linux/mvebu/files-5.4/arch/arm/boot/dts/armada-370-buffalo-ls421de.dts @@ -172,10 +172,9 @@ }; }; - /* FIXME: this driver needs to be aware of the LED2 eth phy use, - which must be set to off state before shutting down the machine */ restart_poweroff { - compatible = "restart-poweroff"; + compatible = "linkstation,power-off"; + phy-handle,led = <>; }; }; @@ -183,8 +182,8 @@ pinctrl-0 = <_rgmii_pins>; pinctrl-names = "default"; status = "okay"; - phy = <>; - phy-mode = "rgmii-id"; + phy-handle = <>; + phy-connection-type = "rgmii-id"; }; { @@ -201,11 +200,11 @@ pinctrl-0 = <_pins>; pinctrl-names = "default"; - phy0: ethernet-phy@0 { /* Marvell 88E1518 */ + ethphy0: ethernet-phy@0 { /* Marvell 88E1518 */ reg = <0>; - /* LED2 is used to inform uBoot if the power-switch was slided - to the "off" position, and then power off the machine. - Page 0x3, Register 0x10, bit 8: + /* LED2 is used to inform, after restarting, if the power-switch + was slided to the "off" position, and then power off the machine. + Page 0x3, Register 0x10, bits 8-11: 0x800: LED2 off, power off the machine 0x900: LED2 on, boot the machine */ marvell,reg-init = <0x3 0x10 0x1 0x1991>, /* LED Function */ diff --git a/target/linux/mvebu/image/cortexa9.mk b/target/linux/mvebu/image/cortexa9.mk index 4ab6f4a7e8..77be07801d 100644 --- a/target/linux/mvebu/image/cortexa9.mk +++ b/target/linux/mvebu/image/cortexa9.mk @@ -17,8 +17,9 @@ define Device/buffalo_ls421de KERNEL_INITRAMFS := kernel-bin | append-dtb | uImage none DEVICE_DTS := armada-370-buffalo-ls421de DEVICE_PACKAGES := \ -kmod-rtc-rs5c372a kmod-hwmon-gpiofan kmod-usb3 kmod-md-raid0 \ -kmod-md-raid1 kmod-md-mod kmod-fs-xfs mkf2fs e2fsprogs partx-utils +kmod-rtc-rs5c372a kmod-hwmon-gpiofan kmod-linkstation-poweroff \ +kmod-usb3 kmod-md-raid0 kmod-md-raid1 kmod-md-mod kmod-fs-xfs \ +mkf2fs e2fsprogs partx-utils endef TARGET_DEVICES += buffalo_ls421de -- 2.26.2
Re: [OpenWrt-Devel] [PATCH 0/3] mac80211: Update to version 5.7-rc2
On 4/22/20 7:33 PM, Felix Fietkau wrote: > On 2020-04-21 23:22, Hauke Mehrtens wrote: >> This updates mac80211 in OpenWrt to version 5.7-rc2. >> This update contains ath11k and many other ieee80211ax updates. >> ath11k only works on the ipq807x devices. >> >> I tried to start a discussion how we want to go forward with the >> wireless subsystem we ship in the next OpenWrt release: >> https://lists.infradead.org/pipermail/openwrt-devel/2020-March/022198.html >> >> I would prefer if we apply this to master and then continuously update >> to match more recent kernel versions till we are at an LTS kernel >> version. I assume that the kernel 5.9 or 5.10 will be the next LTS >> version. Using a normal kernel release as a base will make providing >> (security) updates much harder. >> >> You can also find these patches in my staging tree: >> https://git.openwrt.org/?p=openwrt/staging/hauke.git;a=shortlog;h=refs/heads/mac80211-5.6 >> >> Please test this and report any regressions you see compared to the >> version currently shipped in OpenWrt master. > I tested this and found that the debugfs phy rate control settings > directory was not in the right place. It is supposed to be in > /sys/kernel/debug/ieee80211/phy0/rc but it somehow ended up in > /sys/kernel/debug/rc instead. Thanks for reporting Felix, This commit broke it: https://git.kernel.org/linus/52e04b4ce5d03775b6a78f3ed1097480faacc9fd You can revert it, then it works again. I reported this upstream: https://marc.info/?l=linux-wireless=158758952226370=2 Hauke ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
[OpenWrt-Devel] [RFC 0/3] PoC for per-image package sets
These patches can also be found in a branch here: https://github.com/bmork/openwrt/tree/image-packagesets Dumping this as-is for discussion. Not sure I'm capable of, or will have time to, finish it. But I am hoping it is a useful start if someone else wants to give it a try. If not, then I guess it isn't a useful enough feature after all. The state of this is sort-of working for me, but definitely not complete and working for all different build scenarios. I have not tested IB or PER_TARGET_ROOTFS builds. legacy-devices haven't been updated at all and are therefore broken. etc. To recap the use case: I have a device where the vendor tftp server limits the size of the initial OpenWrt image we can upload. An initramfs image is preferrable due to the ability to boot from either of the dual partitions. For this reason I wanted to build an initramfs with a limited set of packages, without having to reduce the default device packages for the other images. I have noticed that this use case is not unique. We have for example Build/ubnt-erx-factory-image in mt7621.mk, attempting to build an initramfs based image which will fit within $(KERNEL_SIZE), which is a tiny 3MB. This is obviously futile and there is therefore no such image on downloads.openwrt.org. You can build one yourself by carefully removing packages, but it would be nice if we could let the buildbots produce one too. Anyway, look at the code and see if my ideas can be used. I'll admit that I'm no make Guru... The first patch simplifies the current initramfs process, and avoids copying the special initramfs /init into the shared TARGET_DIR. It still makes a copy of the file to be able to set the timestamp though. I believe this patch is useful by itself, and I don't think it breaks anything. Not mcuh at least :-) The second patch tries to abuse the per-target rootfs code for doing per-image roofs. The default package set can be adjusted by adding packages to an IMAGE_PACKAGES/ variable. Or more useful: Packages can be removed by prefixing them with a '-'. As usual, you'll need to resolve dependencies manually if other packackes depend on the ones you want to remove. The third patch is the yuckiest one. It delays the kernel part of the initramfs building until we have some idea about images, devices and packages. It then uses the same per-image rootfs source directory scheme as input for the kernel. I'm not proud of how this curretly looks. But I had to stop here. Bjørn Mork (3): kernel-defaults: refactor initramfs build build: implement per-image package sets build: per-image package set for initramfs include/image.mk | 33 include/kernel-build.mk| 1 - include/kernel-defaults.mk | 77 ++ 3 files changed, 53 insertions(+), 58 deletions(-) -- 2.20.1 ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
[OpenWrt-Devel] [RFC 1/3] kernel-defaults: refactor initramfs build
Simplyfying the code. Avoids temporary modification of kernel .config and target rootfs. Signed-off-by: Bjørn Mork --- include/kernel-defaults.mk | 75 ++ 1 file changed, 27 insertions(+), 48 deletions(-) diff --git a/include/kernel-defaults.mk b/include/kernel-defaults.mk index db93a53d71e4..f442106ecbcb 100644 --- a/include/kernel-defaults.mk +++ b/include/kernel-defaults.mk @@ -49,45 +49,6 @@ else endef endif -ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y) - ifeq ($(strip $(CONFIG_EXTERNAL_CPIO)),"") -define Kernel/SetInitramfs/PreConfigure - grep -v -e INITRAMFS -e CONFIG_RD_ -e CONFIG_BLK_DEV_INITRD $(LINUX_DIR)/.config.old > $(LINUX_DIR)/.config - echo 'CONFIG_BLK_DEV_INITRD=y' >> $(LINUX_DIR)/.config - echo 'CONFIG_INITRAMFS_SOURCE="$(strip $(TARGET_DIR) $(INITRAMFS_EXTRA_FILES))"' >> $(LINUX_DIR)/.config -endef - else -define Kernel/SetInitramfs/PreConfigure - grep -v INITRAMFS $(LINUX_DIR)/.config.old > $(LINUX_DIR)/.config - echo 'CONFIG_INITRAMFS_SOURCE="$(call qstrip,$(CONFIG_EXTERNAL_CPIO))"' >> $(LINUX_DIR)/.config -endef - endif - - define Kernel/SetInitramfs - rm -f $(LINUX_DIR)/.config.prev - mv $(LINUX_DIR)/.config $(LINUX_DIR)/.config.old - $(call Kernel/SetInitramfs/PreConfigure) - echo 'CONFIG_INITRAMFS_ROOT_UID=$(shell id -u)' >> $(LINUX_DIR)/.config - echo 'CONFIG_INITRAMFS_ROOT_GID=$(shell id -g)' >> $(LINUX_DIR)/.config - echo "$(if $(CONFIG_TARGET_INITRAMFS_FORCE),CONFIG_INITRAMFS_FORCE=y,# CONFIG_INITRAMFS_FORCE is not set)" >> $(LINUX_DIR)/.config - echo "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_NONE),CONFIG_INITRAMFS_COMPRESSION_NONE=y,# CONFIG_INITRAMFS_COMPRESSION_NONE is not set)" >> $(LINUX_DIR)/.config - echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_GZIP),CONFIG_INITRAMFS_COMPRESSION_GZIP=y\nCONFIG_RD_GZIP=y,# CONFIG_INITRAMFS_COMPRESSION_GZIP is not set\n# CONFIG_RD_GZIP is not set)" >> $(LINUX_DIR)/.config - echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_BZIP2),CONFIG_INITRAMFS_COMPRESSION_BZIP2=y\nCONFIG_RD_BZIP2=y,# CONFIG_INITRAMFS_COMPRESSION_BZIP2 is not set\n# CONFIG_RD_BZIP2 is not set)" >> $(LINUX_DIR)/.config - echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_LZMA),CONFIG_INITRAMFS_COMPRESSION_LZMA=y\nCONFIG_RD_LZMA=y,# CONFIG_INITRAMFS_COMPRESSION_LZMA is not set\n# CONFIG_RD_LZMA is not set)" >> $(LINUX_DIR)/.config - echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_LZO),CONFIG_INITRAMFS_COMPRESSION_LZO=y\nCONFIG_RD_LZO=y,# CONFIG_INITRAMFS_COMPRESSION_LZO is not set\n# CONFIG_RD_LZO is not set)" >> $(LINUX_DIR)/.config - echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_XZ),CONFIG_INITRAMFS_COMPRESSION_XZ=y\nCONFIG_RD_XZ=y,# CONFIG_INITRAMFS_COMPRESSION_XZ is not set\n# CONFIG_RD_XZ is not set)" >> $(LINUX_DIR)/.config - echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_LZ4),CONFIG_INITRAMFS_COMPRESSION_LZ4=y\nCONFIG_RD_LZ4=y,# CONFIG_INITRAMFS_COMPRESSION_LZ4 is not set\n# CONFIG_RD_LZ4 is not set)" >> $(LINUX_DIR)/.config - endef -else -endif - -define Kernel/SetNoInitramfs - mv $(LINUX_DIR)/.config.set $(LINUX_DIR)/.config.old - grep -v INITRAMFS $(LINUX_DIR)/.config.old > $(LINUX_DIR)/.config.set - echo 'CONFIG_INITRAMFS_SOURCE=""' >> $(LINUX_DIR)/.config.set - echo '# CONFIG_INITRAMFS_FORCE is not set' >> $(LINUX_DIR)/.config.set -endef - define Kernel/Configure/Default rm -f $(LINUX_DIR)/localversion $(LINUX_CONF_CMD) > $(LINUX_DIR)/.config.target @@ -98,7 +59,6 @@ define Kernel/Configure/Default echo "CONFIG_KALLSYMS_UNCOMPRESSED=y" >> $(LINUX_DIR)/.config.target $(SCRIPT_DIR)/package-metadata.pl kconfig $(TMP_DIR)/.packageinfo $(TOPDIR)/.config $(KERNEL_PATCHVER) > $(LINUX_DIR)/.config.override $(SCRIPT_DIR)/kconfig.pl 'm+' '+' $(LINUX_DIR)/.config.target /dev/null $(LINUX_DIR)/.config.override > $(LINUX_DIR)/.config.set - $(call Kernel/SetNoInitramfs) rm -rf $(KERNEL_BUILD_DIR)/modules cmp -s $(LINUX_DIR)/.config.set $(LINUX_DIR)/.config.prev || { \ cp $(LINUX_DIR)/.config.set $(LINUX_DIR)/.config; \ @@ -108,9 +68,21 @@ define Kernel/Configure/Default grep '=[ym]' $(LINUX_DIR)/.config.set | LC_ALL=C sort | mkhash md5 > $(LINUX_DIR)/.vermagic endef -define Kernel/Configure/Initramfs - $(call Kernel/SetInitramfs) -endef +ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),) + ifeq ($(strip $(CONFIG_EXTERNAL_CPIO)),"") +define Kernel/Configure/Initramfs + $(CP) $(GENERIC_PLATFORM_DIR)/other-files/init $(KERNEL_BUILD_DIR)/initramfs.init + $(if $(SOURCE_DATE_EPOCH),touch -hcd "@$(SOURCE_DATE_EPOCH)" $(KERNEL_BUILD_DIR)/initramfs.init) + echo "file /init $(KERNEL_BUILD_DIR)/initramfs.init 0755 0 0" >$(KERNEL_BUILD_DIR)/initramfs.txt + $(eval INITRAMFS_SOURCES?="$(strip
[OpenWrt-Devel] [RFC 3/3] build: per-image package set for initramfs
Move the kernel initramfs build later in the build process and into image.mk. This allows using per-target and per-image rootfs base directories for the initramfs build too. Proof-of-Concept state. This needs cleanup and testing, and someone who knows how to write a Makefilea... Signed-off-by: Bjørn Mork --- include/image.mk | 15 +-- include/kernel-build.mk| 1 - include/kernel-defaults.mk | 8 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/include/image.mk b/include/image.mk index 69b2bd5445fa..bcddb8e29362 100644 --- a/include/image.mk +++ b/include/image.mk @@ -10,6 +10,7 @@ include $(INCLUDE_DIR)/prereq.mk include $(INCLUDE_DIR)/kernel.mk include $(INCLUDE_DIR)/version.mk include $(INCLUDE_DIR)/image-commands.mk +include $(INCLUDE_DIR)/kernel-defaults.mk ifndef IB ifdef CONFIG_TARGET_PER_DEVICE_ROOTFS @@ -469,10 +470,17 @@ define set_rootfs_packages PACKAGES_$$(ROOTFS_ID/$(1)) := $(2) endef +define set_initramfs_packages + PKGID := $$(call mkfs_packages_id,$(2)) + KERNEL_INITRAMFS_NAME := $$(strip $$(KERNEL_INITRAMFS_NAME)+pkg=$$(PKGID)) + PACKAGES_$$(PKGID) := $(2) +endef + define Device/Check/Common _PROFILE_SET = $$(strip $$(foreach profile,$$(PROFILES) DEVICE_$(1),$$(call DEVICE_CHECK_PROFILE,$$(profile DEVICE_PACKAGES += $$(call extra_packages,$$(DEVICE_PACKAGES)) - $$(eval $$(if $$(_PROFILE_SET),$$(foreach image,$$(IMAGES),$$(if $$(IMAGE_PACKAGES/$$(image)),$$(call set_rootfs_packages,$(1)/$$(image),$$(IMAGE_PACKAGES/$$(image))) + $$(if $$(_PROFILE_SET),$$(eval $$(foreach image,$$(IMAGES),$$(if $$(IMAGE_PACKAGES/$$(image)),$$(call set_rootfs_packages,$(1)/$$(image),$$(IMAGE_PACKAGES/$$(image))) + $$(if $$(_PROFILE_SET)$$(KERNEL_INITRAMFS)$$(IMAGE_PACKAGES/initramfs),$$(eval $$(call set_initramfs_packages,$(1),$$(IMAGE_PACKAGES/initramfs ifdef TARGET_PER_DEVICE_ROOTFS $$(if $$(_PROFILE_SET),$$(eval $$(call merge_packages,_PACKAGES,$$(DEVICE_PACKAGES) $$(call DEVICE_EXTRA_PACKAGES,$(1) $$(if $$(_PROFILE_SET),$$(call set_rootfs_packages,$(1),$$(_PACKAGES))) @@ -490,10 +498,13 @@ endef ifndef IB define Device/Build/initramfs + PKGID := $(param_get,pkg,$(subst +,$(space),$$(KERNEL_INITRAMFS_NAME))) $(call Device/Export,$(KDIR)/tmp/$$(KERNEL_INITRAMFS_IMAGE),$(1)) $$(_TARGET): $$(if $$(KERNEL_INITRAMFS),$(BIN_DIR)/$$(KERNEL_INITRAMFS_IMAGE)) - $(KDIR)/$$(KERNEL_INITRAMFS_NAME):: image_prepare + $(KDIR)/$$(KERNEL_INITRAMFS_NAME):: $$(if $$(PKGID),target-dir-$$(PKGID)) image_prepare + $$(call Kernel/CompileImage/Initramfs,$(if $$(PKGID),$(KDIR)/target-dir-$$(PKGID),$(TARGET_DIR))) + $(BIN_DIR)/$$(KERNEL_INITRAMFS_IMAGE): $(KDIR)/tmp/$$(KERNEL_INITRAMFS_IMAGE) cp $$^ $$@ diff --git a/include/kernel-build.mk b/include/kernel-build.mk index c371e78ab9b0..66f521d7aa7b 100644 --- a/include/kernel-build.mk +++ b/include/kernel-build.mk @@ -32,7 +32,6 @@ endef define Kernel/CompileImage $(call Kernel/CompileImage/Default) - $(call Kernel/CompileImage/Initramfs) endef define Kernel/Clean diff --git a/include/kernel-defaults.mk b/include/kernel-defaults.mk index f442106ecbcb..934658170f9b 100644 --- a/include/kernel-defaults.mk +++ b/include/kernel-defaults.mk @@ -74,11 +74,11 @@ ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),) $(CP) $(GENERIC_PLATFORM_DIR)/other-files/init $(KERNEL_BUILD_DIR)/initramfs.init $(if $(SOURCE_DATE_EPOCH),touch -hcd "@$(SOURCE_DATE_EPOCH)" $(KERNEL_BUILD_DIR)/initramfs.init) echo "file /init $(KERNEL_BUILD_DIR)/initramfs.init 0755 0 0" >$(KERNEL_BUILD_DIR)/initramfs.txt - $(eval INITRAMFS_SOURCES?="$(strip $(KERNEL_BUILD_DIR)/initramfs.txt $(TARGET_DIR) $(INITRAMFS_EXTRA_FILES))") + $(eval INITRAMFS_SOURCES=$(KERNEL_BUILD_DIR)/initramfs.txt $(1) $(INITRAMFS_EXTRA_FILES)) endef else define Kernel/Configure/Initramfs - $(eval INITRAMFS_SOURCES="$(call qstrip,$(CONFIG_EXTERNAL_CPIO))") + $(eval INITRAMFS_SOURCES=$(call qstrip,$(CONFIG_EXTERNAL_CPIO))) endef endif else @@ -115,7 +115,7 @@ endef ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),) define Kernel/CompileImage/Initramfs - $(call Kernel/Configure/Initramfs) + $(call Kernel/Configure/Initramfs,$(1)) +$(KERNEL_MAKE) \ CONFIG_BLK_DEV_INITRD=y \ CONFIG_INITRAMFS_ROOT_UID=$(shell id -u) \ @@ -126,7 +126,7 @@ define Kernel/CompileImage/Initramfs $(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_$(c)),\ CONFIG_INITRAMFS_COMPRESSION_$(c)=y CONFIG_RD_$(c)=y,\ CONFIG_INITRAMFS_COMPRESSION_$(c)=n CONFIG_RD_$(c)=n))\ - CONFIG_INITRAMFS_SOURCE=$(INITRAMFS_SOURCES) \ + CONFIG_INITRAMFS_SOURCE="$(INITRAMFS_SOURCES)" \ $(if $(KERNELNAME),$(KERNELNAME),all) $(call Kernel/CopyImage,-initramfs) endef -- 2.20.1
[OpenWrt-Devel] [RFC 2/3] build: implement per-image package sets
Reusing the per-target rootfs code to allow a per-image rootfs, introducing a new optional IMAGE_PACKAGES/ device variable. This allows adding or removing packages from the default set. This is useful if some of the images have additional size restrictions. This is currently Proof-of-Concept only. Needs IB validation/fixes, legacy-devices support, code cleanup and lots of testing Signed-off-by: Bjørn Mork --- include/image.mk | 20 +--- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/include/image.mk b/include/image.mk index 984b64fb9c73..69b2bd5445fa 100644 --- a/include/image.mk +++ b/include/image.mk @@ -464,13 +464,18 @@ define merge_packages ) endef +define set_rootfs_packages + ROOTFS_ID/$(1) := $$(call mkfs_packages_id,$(2)) + PACKAGES_$$(ROOTFS_ID/$(1)) := $(2) +endef + define Device/Check/Common _PROFILE_SET = $$(strip $$(foreach profile,$$(PROFILES) DEVICE_$(1),$$(call DEVICE_CHECK_PROFILE,$$(profile DEVICE_PACKAGES += $$(call extra_packages,$$(DEVICE_PACKAGES)) + $$(eval $$(if $$(_PROFILE_SET),$$(foreach image,$$(IMAGES),$$(if $$(IMAGE_PACKAGES/$$(image)),$$(call set_rootfs_packages,$(1)/$$(image),$$(IMAGE_PACKAGES/$$(image))) ifdef TARGET_PER_DEVICE_ROOTFS -$$(eval $$(call merge_packages,_PACKAGES,$$(DEVICE_PACKAGES) $$(call DEVICE_EXTRA_PACKAGES,$(1 -ROOTFS_ID/$(1) := $$(if $$(_PROFILE_SET),$$(call mkfs_packages_id,$$(_PACKAGES))) -PACKAGES_$$(ROOTFS_ID/$(1)) := $$(_PACKAGES) +$$(if $$(_PROFILE_SET),$$(eval $$(call merge_packages,_PACKAGES,$$(DEVICE_PACKAGES) $$(call DEVICE_EXTRA_PACKAGES,$(1) +$$(if $$(_PROFILE_SET),$$(call set_rootfs_packages,$(1),$$(_PACKAGES))) endif endef @@ -550,16 +555,17 @@ define Device/Build/image $(BIN_DIR)/$(call IMAGE_NAME,$(1),$(2))$$(GZ_SUFFIX)) $(eval $(call Device/Export,$(KDIR)/tmp/$(call IMAGE_NAME,$(1),$(2)),$(1))) - ROOTFS/$(1)/$(3) := \ + PKGID := $$(if $$(ROOTFS_ID/$(3)/$(2)),$$(ROOTFS_ID/$(3)/$(2)),$(if $(TARGET_PER_DEVICE_ROOTFS),$$(ROOTFS_ID/$(3 + ROOTFS/$(1)/$(3)/$(2) := \ $(KDIR)/root.$(1)$$(strip \ $$(if $$(FS_OPTIONS/$(1)),+fs=$$(call param_mangle,$$(FS_OPTIONS/$(1 \ )$$(strip \ - $(if $(TARGET_PER_DEVICE_ROOTFS),+pkg=$$(ROOTFS_ID/$(3))) \ + $$(if $$(PKGID),+pkg=$$(PKGID)) \ ) ifndef IB -$$(ROOTFS/$(1)/$(3)): $(if $(TARGET_PER_DEVICE_ROOTFS),target-dir-$$(ROOTFS_ID/$(3))) +$$(ROOTFS/$(1)/$(3)/$(2)): $$(if $$(PKGID),target-dir-$$(PKGID)) endif - $(KDIR)/tmp/$(call IMAGE_NAME,$(1),$(2)): $$(KDIR_KERNEL_IMAGE) $$(ROOTFS/$(1)/$(3)) + $(KDIR)/tmp/$(call IMAGE_NAME,$(1),$(2)): $$(KDIR_KERNEL_IMAGE) $$(ROOTFS/$(1)/$(3)/$(2)) @rm -f $$@ [ -f $$(word 1,$$^) -a -f $$(word 2,$$^) ] $$(call concat_cmd,$(if $(IMAGE/$(2)/$(1)),$(IMAGE/$(2)/$(1)),$(IMAGE/$(2 -- 2.20.1 ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Re: [OpenWrt-Devel] Port labels for DSA targets/devices
On 20.04.2020 at 21:42 wrote: > > Please share your thoughts. > I think about it. My proposal: Three steps of convention: 1. Use name from device, when is described at chassis. 2. Use variant "2", when ports have only numbers. lanX, where X is number from chassis. 3. Use natural port numeration from switch IC when ports isn't described at all. in this case could be used neutral names, e.g. "portX". I think, most important for users is to easy recognize which port is used. Regards, Pawel Dembicki ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Re: [OpenWrt-Devel] [PATCH 0/3] mac80211: Update to version 5.7-rc2
On 2020-04-21 23:22, Hauke Mehrtens wrote: > This updates mac80211 in OpenWrt to version 5.7-rc2. > This update contains ath11k and many other ieee80211ax updates. > ath11k only works on the ipq807x devices. > > I tried to start a discussion how we want to go forward with the > wireless subsystem we ship in the next OpenWrt release: > https://lists.infradead.org/pipermail/openwrt-devel/2020-March/022198.html > > I would prefer if we apply this to master and then continuously update > to match more recent kernel versions till we are at an LTS kernel > version. I assume that the kernel 5.9 or 5.10 will be the next LTS > version. Using a normal kernel release as a base will make providing > (security) updates much harder. > > You can also find these patches in my staging tree: > https://git.openwrt.org/?p=openwrt/staging/hauke.git;a=shortlog;h=refs/heads/mac80211-5.6 > > Please test this and report any regressions you see compared to the > version currently shipped in OpenWrt master. I tested this and found that the debugfs phy rate control settings directory was not in the right place. It is supposed to be in /sys/kernel/debug/ieee80211/phy0/rc but it somehow ended up in /sys/kernel/debug/rc instead. - Felix ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Re: [OpenWrt-Devel] [RFC PATCH] ramips: remove patches for USB-dwc2
The sender domain has a DMARC Reject/Quarantine policy which disallows sending mailing list messages using the original "From" header. To mitigate this problem, the original message has been wrapped automatically by the mailing list software.--- Begin Message --- Hi, On Wed, Apr 22, 2020 at 1:21 AM Alexey Dobrovolskiy wrote: > > Hi, > USB does not work in master at 35f208da3c built with testing kernel > 5.4 with or without 0032-USB-dwc2-add-device_reset.patch. > (ramips, ZyXEL Keenetic) > In boot log: > [6.888293] usbcore: registered new interface driver usbfs > [6.899641] usbcore: registered new interface driver hub > [6.910630] usbcore: registered new device driver usb > [6.930904] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver > [6.955086] SCSI subsystem initialized > [6.970394] ehci-fsl: Freescale EHCI Host controller driver > [6.985235] ehci-platform: EHCI generic platform driver > [7.00] dwc2 101c.otg: Configuration mismatch. dr_mode forced to > host > [7.033189] dwc2 101c.otg: dwc2_core_reset: HANG! AHB Idle > timeout GRSTCTL GRSTCTL_AHBIDLE > [7.050637] dwc2: probe of 101c.otg failed with error -16 > [7.074662] usbcore: registered new interface driver usb-storage > > Full log attached to FS#2964 We had a similar issue on the Lantiq SoCs a while ago. Based on these issues we submitted the following patches upstream: - [0] usb: dwc2: use a longer AHB idle timeout in dwc2_core_reset() - [1] usb: dwc2: use a longer core rest timeout in dwc2_core_reset() while looking at target/linux/ramips/dts/rt3050.dts I observed that it uses: reset-names = "otg"; while the dwc2 driver actually [2] expects: reset-names = "dwc2"; quick disclaimer: I don't own any ramips based hardware, so I don't expect that I'll be able to look further into this issue. Regards Martin [0] https://github.com/torvalds/linux/commit/dfc4fdebc5d62ac4e2fe5428e59b273675515fb2 [1] https://github.com/torvalds/linux/commit/6689f0f4bb14e50917ba42eb9b41c25e0184970c [2] https://elixir.bootlin.com/linux/v5.4.34/source/drivers/usb/dwc2/platform.c#L215 --- End Message --- ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Re: [OpenWrt-Devel] Can't build x86_64 because of ntf_reject_ipv4.ko missing
> On Apr 20, 2020, at 10:58 PM, Hannu Nyman wrote: > > [snip] > > Regarding IPv6 NAT, you stumbled into a kernel 5.4 issue originally reported > in > http://lists.infradead.org/pipermail/openwrt-devel/2020-February/021929.html > > Bug report: https://bugs.openwrt.org/index.php?do=details_id=2924 > > That should have been fixed yesterday by > https://git.openwrt.org/?p=openwrt/openwrt.git;a=commitdiff;h=29a458b0cae3435bce41136ee3b4132b4103ffae > > Have you updated your source repo? > > (That issue was not detected by the buildbot, as it was a file clash at > package installation, not an actual compilation error of the package itself.) > > > But no idea why that ipv6 NAT thing would have caused your original item of > "ntf_reject_ipv4.ko missing"… > > I think the issues are unrelated. I picked up the fix and that issue is resolved, but still seeing the nft_reject_ipv4.ko issue… -Philip ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Re: [OpenWrt-Devel] [PATCH 3/3] mac80211: Update to version 5.7-rc2-1
Hey Hauke, Op dinsdag 21 april 2020 om 23:22 schreef Hauke Mehrtens : Signed-off-by: Hauke Mehrtens --- package/kernel/mac80211/Makefile | 6 +- .../patches/ath/404-regd_no_assoc_hints.patch | 4 +- ...21-ath10k_init_devices_synchronously.patch | 2 +- .../ath/930-ath10k_add_tpt_led_trigger.patch | 4 +- ...-of-peer_bw_rxnss_override-parameter.patch | 10 +- ...dling-for-VHT160-in-recent-firmwares.patch | 2 +- ...rolling-support-for-various-chipsets.patch | 22 +- ...75-ath10k-use-tpt-trigger-by-default.patch | 8 +- ...980-ath10k-fix-max-antenna-gain-unit.patch | 6 +- ...-power-reduction-for-US-regulatory-d.patch | 8 +- ...-add-stub-for-monitor-interface-xmit.patch | 100 - .../patches/build/060-no_local_ssb_bcma.patch | 4 +- .../602-rt2x00-introduce-rt2x00eeprom.patch | 2 +- .../100-remove-cryptoapi-dependencies.patch | 2 +- .../110-mac80211_keep_keys_on_stop_ap.patch | 2 +- .../patches/subsys/130-disable-fils.patch | 2 +- ...aes-cmac-switch-to-shash-CMAC-driver.patch | 99 +++-- .../subsys/140-tweak-TSQ-setting.patch| 2 +- .../subsys/150-disable_addr_notifier.patch| 12 +- .../300-mac80211-optimize-skb-resizing.patch | 14 +- ...80211-fix-tx-status-for-no-ack-cases.patch | 82 .../500-mac80211_configure_antenna_gain.patch | 38 +- .../utils/iw/patches/001-nl80211_h_sync.patch | 377 +- 23 files changed, 511 insertions(+), 297 deletions(-) delete mode 100644 package/kernel/mac80211/patches/brcm/300-brcmfmac-add-stub-for-monitor-interface-xmit.patch delete mode 100644 package/kernel/mac80211/patches/subsys/305-mac80211-fix-tx-status-for-no-ack-cases.patch I tried picking these with git-pw and that works for the first two patches of this set, but the third one doesn't apply (errors below). Pulling the commits from your git tree worked for me though. Error: $ git-pw patch apply 1274531 b'Applying: mac80211: Update to version 5.5.11\n.git/rebase-apply/patch:132: space before tab in indent.\n \t\t\t\tATH_5GHZ_5725_5850\n.git/rebase-apply/patch:142: space before tab in indent.\n \t\tATH_2GHZ_ALL,\n.git/rebase-apply/patch:143: space before tab in indent.\n \t\tATH_5GHZ_ALL,\n.git/rebase-apply/patch:154: space before tab in indent.\n \t\tATH_2GHZ_CH01_11,\n.git/rebase-apply/patch:155: space before tab in indent.\n \t\tATH_2GHZ_CH12_13,\nwarning: squelched 16 whitespace errors\nwarning: 21 lines add whitespace errors.\nUsing index info to reconstruct a base tree...\nM\tpackage/kernel/mac80211/Makefile\nM\tpackage/kernel/mac80211/patches/ath/120-owl-loader-compat.patch\nM\tpackage/kernel/mac80211/patches/ath/403-world_regd_fixup.patch\nM\tpackage/kernel/mac80211/patches/ath/921-ath10k_init_devices_synchronously.patch\nM\tpackage/kernel/mac80211/patches/ath/930-ath10k_add_tpt_led_trigger.patch\nM\tpackage/kernel/mac80211/patches/ath/972-ath10k_fix-crash-due-to-wrong-handling-of-peer_bw_rxnss_override-parameter.patch\nM\tpackage/kernel/mac80211/patches/ath/973-ath10k_fix-band_center_freq-handling-for-VHT160-in-recent-firmwares.patch\nM\tpackage/kernel/mac80211/patches/ath/974-ath10k_add-LED-and-GPIO-controlling-support-for-various-chipsets.patch\nM\tpackage/kernel/mac80211/patches/ath/975-ath10k-use-tpt-trigger-by-default.patch\nM\tpackage/kernel/mac80211/patches/ath/980-ath10k-fix-max-antenna-gain-unit.patch\nM\tpackage/kernel/mac80211/patches/ath/981-ath10k-adjust-tx-power-reduction-for-US-regulatory-d.patch\nA\tpackage/kernel/mac80211/p atches/brcm/101-v5.5-0001-brcmfmac-don-t-WARN-when-there-are-no-requests.patch\nA\tpackage/kernel/mac80211/patches/brcm/101-v5.5-0002-brcmfmac-fix-suspend-resume-when-power-is-cut-off.patch\nA\tpackage/kernel/mac80211/patches/brcm/103-v5.5-brcmfmac-remove-set-but-not-used-variable-mpnum-nsp-.patch\nA\tpackage/kernel/mac80211/patches/brcm/114-v5.6-0004-brcmfmac-make-errors-when-setting-roaming-parameters.patch\nA\tpackage/kernel/mac80211/patches/brcm/114-v5.6-0006-brcmfmac-add-RSDB-condition-when-setting-interface-c.patch\nA\tpackage/kernel/mac80211/patches/brcm/114-v5.6-0007-brcmfmac-not-set-mbss-in-vif-if-firmware-does-not-su.patch\nA\tpackage/kernel/mac80211/patches/brcm/119-v5.6-0001-brcmfmac-simplify-building-interface-combinations.patch\nA\tpackage/kernel/mac80211/patches/brcm/119-v5.6-0002-brcmfmac-add-initial-support-for-monitor-mode.patch\nM\tpackage/kernel/mac80211/patches/brcm/862-brcmfmac-Disable-power-management.patch\nM\tpackage/kernel/mac80211/patches/brcm/998-survey.pa
Re: [OpenWrt-Devel] [PATCH 0/3] mac80211: Update to version 5.7-rc2
On 21.04.20 23:22, Hauke Mehrtens wrote: This updates mac80211 in OpenWrt to version 5.7-rc2. This update contains ath11k and many other ieee80211ax updates. ath11k only works on the ipq807x devices. I tried to start a discussion how we want to go forward with the wireless subsystem we ship in the next OpenWrt release: https://lists.infradead.org/pipermail/openwrt-devel/2020-March/022198.html I would prefer if we apply this to master and then continuously update to match more recent kernel versions till we are at an LTS kernel version. I assume that the kernel 5.9 or 5.10 will be the next LTS version. Using a normal kernel release as a base will make providing (security) updates much harder. Hi Hauke, It seems I missed that one. +1 for option 4 I'm also in favor of avoiding non-LTS stuff as it puts pressure on timely updates. It allows bleeding edge stuff while being still (more easily) maintainable when a release moves to maintenance. Regards, Koen ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel