Hello, I’m wondering how to make LEDE build automatically an initramfs image (for use with u-boot tftp recovery boot), when the ENH200EXT is selected as the target device. By setting "CONFIG_TARGET_ROOTFS_INITRAMFS=y" a working image is build that can be tftp-booted alright, but I would prefer that it is build automatically beside the sysupgrade image.
The context would, as requested, be "target/linux/ar71xx/image/generic.mk". From what I have understood so far, the clause would be something like: define Device/enh200ext DEVICE_TITLE := Engenius ENH200EXT DEVICE_PACKAGES := rssileds BOARDNAME := ENH200EXT CONSOLE := ttyS0,115200 IMAGE_SIZE := 8192k IMAGES := initramfs.bin sysupgrade.bin MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env),6272k(firmware),1536k(failsafe),64k(art)ro endef TARGET_DEVICES += enh200ext The sysupgrade image is build, but the initramfs image is not build. I suppose an IMAGE/initramfs declaration must be added, but I do not know what to declare or call. Some help would be appreciated, -- s.y. Paul > Op 2 apr. 2017, om 18:16 heeft Piotr Dymacz <pep...@gmail.com> het volgende > geschreven: > > Hello Paul, > > On 01.04.2017 13:05, Paul Oranje wrote: >> Thanks for the comments. >> See my comments/questions inline below. >> Paul >> > [...] >>> Also, make sure you follow rules from [1], especially the one about commit >>> message/description (line wrap). >> I will correct this in patch v2. > > OK. > >> BTW ./scripts/checkpatch.pl ar71xx-enh200ext.patch at my site only yields >> the first warning, but not the error; strange. > > Your patch was probably corrupted by your e-mail client. > > You can download your patch which arrived to the mailing list and was then > picked up by patchwork using this link: > > http://patchwork.ozlabs.org/patch/745796/raw/ > > If you check downloaded patch, you will get same error as I did. > > I don't know how you send patches, but what should always work is git > send-email: https://git-scm.com/docs/git-send-email > > [...] > >>> Please, include image support for this device in generic.mk. We really >>> don't want to (and won't) include more devices in legacy.mk. >> What position in generic.mk would you suggest for the entry of the clause >> for the ENH200EXT ? > > It's more up to you. It would be good to keep alphabetical order but that > file is already "broken" in this subject. > >> And except this entry into generic.mk, would any other change be needed with >> respect to the target image makefile(s) ? > > I don't think so, your board seems to use a common pattern for image > generation. > > You can also take a look at some of the recent changes which moved Compex > board into generic image building code: > > https://github.com/lede-project/source/commit/be11ce8f26bfa58c110434ccf673c0411402b171 > > https://github.com/lede-project/source/commit/0af487033e6af390686ed2bc693beab7b467eaf3 > > -- > Best regards, > Piotr Dymacz > >> >>> >>> [1] https://lede-project.org/submitting-patches >>> >>> -- >>> Cheers, >>> Piotr >>> >>>> target/linux/ar71xx/mikrotik/config-default | 1 + >>>> target/linux/ar71xx/nand/config-default | 1 + >>>> 14 files changed, 122 insertions(+), 3 deletions(-) >>>> create mode 100644 >>>> target/linux/ar71xx/files/arch/mips/ath79/mach-enh200ext.c >>>> >>>> diff --git a/package/boot/uboot-envtools/files/ar71xx >>>> b/package/boot/uboot-envtools/files/ar71xx >>>> index 3a5d269..a104c3a 100644 >>>> --- a/package/boot/uboot-envtools/files/ar71xx >>>> +++ b/package/boot/uboot-envtools/files/ar71xx >>>> @@ -27,6 +27,7 @@ cpe870|\ >>>> cr3000|\ >>>> cr5000|\ >>>> eap300v2|\ >>>> +enh200ext|\ >>>> gl-ar300m|\ >>>> hornet-ub|\ >>>> hornet-ub-x2|\ >>>> diff --git a/target/linux/ar71xx/base-files/etc/board.d/01_leds >>>> b/target/linux/ar71xx/base-files/etc/board.d/01_leds >>>> index 686ae31..cf9c3ae 100755 >>>> --- a/target/linux/ar71xx/base-files/etc/board.d/01_leds >>>> +++ b/target/linux/ar71xx/base-files/etc/board.d/01_leds >>>> @@ -28,7 +28,8 @@ alfa-nx) >>>> ucidef_set_led_netdev "lan" "LAN" "alfa:green:led_3" "eth1" >>>> ;; >>>> all0258n|\ >>>> -all0315n) >>>> +all0315n|\ >>>> +enh200ext) >>>> ucidef_set_rssimon "wlan0" "200000" "1" >>>> ucidef_set_led_rssi "rssilow" "RSSILOW" "$board:red:rssilow" "wlan0" >>>> "1" "40" "0" "6" >>>> ucidef_set_led_rssi "rssimedium" "RSSIMEDIUM" >>>> "$board:yellow:rssimedium" "wlan0" "30" "80" "-29" "5" >>>> diff --git a/target/linux/ar71xx/base-files/etc/board.d/02_network >>>> b/target/linux/ar71xx/base-files/etc/board.d/02_network >>>> index 20b34e8..014404e 100755 >>>> --- a/target/linux/ar71xx/base-files/etc/board.d/02_network >>>> +++ b/target/linux/ar71xx/base-files/etc/board.d/02_network >>>> @@ -155,6 +155,7 @@ ar71xx_setup_interfaces() >>>> dlan-hotspot|\ >>>> dlan-pro-500-wp|\ >>>> dr344|\ >>>> + enh200ext|\ >>>> ja76pf2|\ >>>> rocket-m-ti|\ >>>> ubnt-unifi-outdoor) >>>> diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh >>>> b/target/linux/ar71xx/base-files/lib/ar71xx.sh >>>> index 4951e5b..f365feb 100755 >>>> --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh >>>> +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh >>>> @@ -619,6 +619,9 @@ ar71xx_board_detect() { >>>> *"EmbWir-Dorin-Router") >>>> name="ew-dorin-router" >>>> ;; >>>> + *"ENH200EXT") >>>> + name="enh200ext" >>>> + ;; >>>> *"EPG5000") >>>> name="epg5000" >>>> ;; >>>> diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh >>>> b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh >>>> index 364a32f..b4a84c2 100755 >>>> --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh >>>> +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh >>>> @@ -332,7 +332,8 @@ platform_check_image() { >>>> cap324|\ >>>> cap4200ag|\ >>>> cr3000|\ >>>> - cr5000) >>>> + cr5000|\ >>>> + enh200ext) >>>> platform_check_image_allnet "$1" && return 0 >>>> return 1 >>>> ;; >>>> @@ -721,7 +722,8 @@ platform_do_upgrade() { >>>> local board=$(ar71xx_board_name) >>>> >>>> case "$board" in >>>> - all0258n) >>>> + all0258n|\ >>>> + enh200ext) >>>> platform_do_upgrade_allnet "0x9f050000" "$ARGV" >>>> ;; >>>> all0305|\ >>>> diff --git a/target/linux/ar71xx/config-4.4 >>>> b/target/linux/ar71xx/config-4.4 >>>> index 68b408a..3a74f8f 100644 >>>> --- a/target/linux/ar71xx/config-4.4 >>>> +++ b/target/linux/ar71xx/config-4.4 >>>> @@ -99,6 +99,7 @@ CONFIG_ATH79_MACH_EAP300V2=y >>>> CONFIG_ATH79_MACH_EAP7660D=y >>>> CONFIG_ATH79_MACH_EL_M150=y >>>> CONFIG_ATH79_MACH_EL_MINI=y >>>> +CONFIG_ATH79_MACH_ENH200EXT=y >>>> CONFIG_ATH79_MACH_EPG5000=y >>>> CONFIG_ATH79_MACH_ESR1750=y >>>> CONFIG_ATH79_MACH_ESR900=y >>>> diff --git a/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt >>>> b/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt >>>> index 1bf00bd..9ff545d 100644 >>>> --- a/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt >>>> +++ b/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt >>>> @@ -94,6 +94,15 @@ config ATH79_MACH_ALL0258N >>>> select ATH79_DEV_LEDS_GPIO >>>> select ATH79_DEV_M25P80 >>>> >>>> +config ATH79_MACH_ENH200EXT >>>> + bool "Engenius ENH200EXT support" >>>> + select SOC_AR724X >>>> + select ATH79_DEV_AP9X_PCI if PCI >>>> + select ATH79_DEV_ETH >>>> + select ATH79_DEV_GPIO_BUTTONS >>>> + select ATH79_DEV_LEDS_GPIO >>>> + select ATH79_DEV_M25P80 >>>> + >>>> config ATH79_MACH_ALL0315N >>>> bool "Allnet ALL0315N support" >>>> select SOC_AR724X >>>> diff --git a/target/linux/ar71xx/files/arch/mips/ath79/Makefile >>>> b/target/linux/ar71xx/files/arch/mips/ath79/Makefile >>>> index 7383244..7e6482c 100644 >>>> --- a/target/linux/ar71xx/files/arch/mips/ath79/Makefile >>>> +++ b/target/linux/ar71xx/files/arch/mips/ath79/Makefile >>>> @@ -103,6 +103,7 @@ obj-$(CONFIG_ATH79_MACH_EAP300V2) += >>>> mach-eap300v2.o >>>> obj-$(CONFIG_ATH79_MACH_EAP7660D) += mach-eap7660d.o >>>> obj-$(CONFIG_ATH79_MACH_EL_M150) += mach-el-m150.o >>>> obj-$(CONFIG_ATH79_MACH_EL_MINI) += mach-el-mini.o >>>> +obj-$(CONFIG_ATH79_MACH_ENH200EXT) += mach-enh200ext.o >>>> obj-$(CONFIG_ATH79_MACH_EPG5000) += mach-epg5000.o >>>> obj-$(CONFIG_ATH79_MACH_ESR1750) += mach-esr1750.o >>>> obj-$(CONFIG_ATH79_MACH_ESR900) += mach-esr900.o >>>> diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-enh200ext.c >>>> b/target/linux/ar71xx/files/arch/mips/ath79/mach-enh200ext.c >>>> new file mode 100644 >>>> index 0000000..68eb2fc >>>> --- /dev/null >>>> +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-enh200ext.c >>>> @@ -0,0 +1,89 @@ >>>> +/* >>>> + * Engenius ENH200EXT support >>>> + * >>>> + * Copyright (C) 2011 Daniel Golle <dgo...@allnet.de> >>>> + * Copyright (C) 2017 Paul Oranje <p...@xs4all.nl> (ENH200EXT is same >>>> device as ALL0258N) >>>> + * >>>> + * This program is free software; you can redistribute it and/or modify >>>> it >>>> + * under the terms of the GNU General Public License version 2 as >>>> published >>>> + * by the Free Software Foundation. >>>> + */ >>>> + >>>> +#include <asm/mach-ath79/ath79.h> >>>> + >>>> +#include "dev-eth.h" >>>> +#include "dev-ap9x-pci.h" >>>> +#include "dev-gpio-buttons.h" >>>> +#include "dev-leds-gpio.h" >>>> +#include "dev-m25p80.h" >>>> +#include "machtypes.h" >>>> + >>>> +/* found via /sys/gpio/... try and error */ >>>> +#define ENH200EXT_GPIO_BTN_RESET 1 >>>> +#define ENH200EXT_GPIO_LED_RSSIHIGH 13 >>>> +#define ENH200EXT_GPIO_LED_RSSIMEDIUM 15 >>>> +#define ENH200EXT_GPIO_LED_RSSILOW 14 >>>> + >>>> +/* defaults taken from others machs */ >>>> +#define ENH200EXT_KEYS_POLL_INTERVAL 20 /* msecs */ >>>> +#define ENH200EXT_KEYS_DEBOUNCE_INTERVAL (3 * >>>> ENH200EXT_KEYS_POLL_INTERVAL) >>>> + >>>> +/* showed up in the original firmware's bootlog */ >>>> +#define ENH200EXT_SEC_PHYMASK BIT(3) >>>> + >>>> +static struct gpio_led enh200ext_leds_gpio[] __initdata = { >>>> + { >>>> + .name = "enh200ext:green:rssihigh", >>>> + .gpio = ENH200EXT_GPIO_LED_RSSIHIGH, >>>> + .active_low = 1, >>>> + }, { >>>> + .name = "enh200ext:yellow:rssimedium", >>>> + .gpio = ENH200EXT_GPIO_LED_RSSIMEDIUM, >>>> + .active_low = 1, >>>> + }, { >>>> + .name = "enh200ext:red:rssilow", >>>> + .gpio = ENH200EXT_GPIO_LED_RSSILOW, >>>> + .active_low = 1, >>>> + } >>>> +}; >>>> + >>>> +static struct gpio_keys_button enh200ext_gpio_keys[] __initdata = { >>>> + { >>>> + .desc = "reset", >>>> + .type = EV_KEY, >>>> + .code = KEY_RESTART, >>>> + .debounce_interval = ENH200EXT_KEYS_DEBOUNCE_INTERVAL, >>>> + .gpio = ENH200EXT_GPIO_BTN_RESET, >>>> + .active_low = 1, >>>> + } >>>> +}; >>>> + >>>> +static void __init enh200ext_setup(void) >>>> +{ >>>> + u8 *mac = (u8 *) KSEG1ADDR(0x1f7f0000); >>>> + u8 *ee = (u8 *) KSEG1ADDR(0x1f7f1000); >>>> + >>>> + ath79_register_m25p80(NULL); >>>> + >>>> + ath79_register_leds_gpio(-1, ARRAY_SIZE(enh200ext_leds_gpio), >>>> + enh200ext_leds_gpio); >>>> + >>>> + ath79_register_gpio_keys_polled(-1, ENH200EXT_KEYS_POLL_INTERVAL, >>>> + ARRAY_SIZE(enh200ext_gpio_keys), >>>> + enh200ext_gpio_keys); >>>> + >>>> + ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0); >>>> + ath79_init_mac(ath79_eth1_data.mac_addr, mac, 0); >>>> + >>>> + ath79_eth1_data.phy_mask = ENH200EXT_SEC_PHYMASK; >>>> + >>>> + ath79_register_mdio(0, 0x0); >>>> + >>>> + ath79_register_eth(0); >>>> + ath79_register_eth(1); >>>> + >>>> + ap91_pci_init(ee, mac); >>>> +} >>>> + >>>> +MIPS_MACHINE(ATH79_MACH_ENH200EXT, "ENH200EXT", "Engenius ENH200EXT", >>>> + enh200ext_setup); >>>> diff --git a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h >>>> b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h >>>> index 478a1a9..b49bb7b 100644 >>>> --- a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h >>>> +++ b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h >>>> @@ -94,6 +94,7 @@ enum ath79_mach_type { >>>> ATH79_MACH_EBR_2310_C1, /* D-link EBR-2310 rev. C1 */ >>>> ATH79_MACH_EL_M150, /* EasyLink EL-M150 */ >>>> ATH79_MACH_EL_MINI, /* EasyLink EL-MINI */ >>>> + ATH79_MACH_ENH200EXT, /* Engenius ENH200EXT */ >>>> ATH79_MACH_EPG5000, /* EnGenius EPG5000 */ >>>> ATH79_MACH_ESR1750, /* EnGenius ESR1750 */ >>>> ATH79_MACH_ESR900, /* EnGenius ESR900 */ >>>> diff --git a/target/linux/ar71xx/image/legacy-devices.mk >>>> b/target/linux/ar71xx/image/legacy-devices.mk >>>> index 7497a1b..c119966 100644 >>>> --- a/target/linux/ar71xx/image/legacy-devices.mk >>>> +++ b/target/linux/ar71xx/image/legacy-devices.mk >>>> @@ -132,6 +132,12 @@ define LegacyDevice/DB120 >>>> endef >>>> LEGACY_DEVICES += DB120 >>>> >>>> +define LegacyDevice/ENH200EXT >>>> + DEVICE_TITLE := Engenius ENH200EXT >>>> + DEVICE_PACKAGES := rssileds >>>> +endef >>>> +LEGACY_DEVICES += ENH200EXT >>>> + >>>> define LegacyDevice/EWDORINAP >>>> DEVICE_TITLE := Embedded Wireless Dorin Platform (4MB flash) >>>> DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2 >>>> kmod-usb-ledtrig-usbport kmod-usb-storage >>>> diff --git a/target/linux/ar71xx/image/legacy.mk >>>> b/target/linux/ar71xx/image/legacy.mk >>>> index 1845cd0..0562532 100644 >>>> --- a/target/linux/ar71xx/image/legacy.mk >>>> +++ b/target/linux/ar71xx/image/legacy.mk >>>> @@ -255,6 +255,7 @@ >>>> dlan_pro_500_wp_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,64k(C >>>> dlan_pro_1200_ac_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,64k(Config1)ro,64k(Config2)ro,15872k@0x70000(firmware),64k(art)ro >>>> cameo_ap94_mtdlayout=mtdparts=spi0.0:256k(uboot)ro,64k(config)ro,6208k(firmware),64k(caldata)ro,1600k(unknown)ro,64k@0x7f0000(caldata_copy) >>>> cameo_ap94_mtdlayout_fat=mtdparts=spi0.0:256k(uboot)ro,64k(config)ro,7808k(firmware),64k(caldata)ro,64k@0x660000(caldata_orig),6208k@0x50000(firmware_orig) >>>> +enh200ext_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env),6272k(firmware),1536k(failsafe),64k(art)ro >>>> esr900_mtdlayout=mtdparts=spi0.0:192k(u-boot)ro,64k(u-boot-env)ro,1408k(kernel),13248k(rootfs),1024k(manufacture)ro,64k(backup)ro,320k(storage)ro,64k(caldata)ro,14656k@0x40000(firmware) >>>> esr1750_mtdlayout=mtdparts=spi0.0:192k(u-boot)ro,64k(u-boot-env)ro,1408k(kernel),13248k(rootfs),1024k(manufacture)ro,64k(backup)ro,320k(storage)ro,64k(caldata)ro,14656k@0x40000(firmware) >>>> epg5000_mtdlayout=mtdparts=spi0.0:192k(u-boot)ro,64k(u-boot-env)ro,1408k(kernel),13248k(rootfs),1024k(manufacture)ro,64k(backup)ro,320k(storage)ro,64k(caldata)ro,14656k@0x40000(firmware) >>>> @@ -903,6 +904,7 @@ $(eval $(call >>>> SingleProfile,AthLzma,64k,AP152_16M,ap152-16M,AP152,ttyS0,115200,$ >>>> $(eval $(call >>>> SingleProfile,AthLzma,64k,BXU2000N2,bxu2000n-2-a1,BXU2000n-2-A1,ttyS0,115200,$$(bxu2000n2_mtdlayout),RKuImage)) >>>> $(eval $(call >>>> SingleProfile,AthLzma,64k,CAP4200AG,cap4200ag,CAP4200AG,ttyS0,115200,$$(cap4200ag_mtdlayout),KRuImage)) >>>> $(eval $(call >>>> SingleProfile,AthLzma,64k,DB120,db120,DB120,ttyS0,115200,$$(db120_mtdlayout),RKuImage)) >>>> +$(eval $(call >>>> SingleProfile,AthLzma,64k,ENH200EXT,enh200ext,ENH200EXT,ttyS0,115200,$$(enh200ext_mtdlayout),KRuImage,65536)) >>>> $(eval $(call >>>> SingleProfile,AthLzma,64k,EWDORINAP,ew-dorin,EW-DORIN,ttyATH0,115200,$$(ew-dorin_mtdlayout_4M),KRuImage,65536)) >>>> $(eval $(call >>>> SingleProfile,AthLzma,64k,EWDORINRT,ew-dorin-router,EW-DORIN-ROUTER,ttyATH0,115200,$$(ew-dorin_mtdlayout_4M),KRuImage,65536)) >>>> $(eval $(call >>>> SingleProfile,AthLzma,64k,EWDORIN16M,ew-dorin-16M,EW-DORIN,ttyATH0,115200,$$(ew-dorin_mtdlayout_16M),KRuImage,65536)) >>>> diff --git a/target/linux/ar71xx/mikrotik/config-default >>>> b/target/linux/ar71xx/mikrotik/config-default >>>> index cf6f754..0d77433 100644 >>>> --- a/target/linux/ar71xx/mikrotik/config-default >>>> +++ b/target/linux/ar71xx/mikrotik/config-default >>>> @@ -64,6 +64,7 @@ >>>> # CONFIG_ATH79_MACH_EAP7660D is not set >>>> # CONFIG_ATH79_MACH_EL_M150 is not set >>>> # CONFIG_ATH79_MACH_EL_MINI is not set >>>> +# CONFIG_ATH79_MACH_ENH200EXT is not set >>>> # CONFIG_ATH79_MACH_EPG5000 is not set >>>> # CONFIG_ATH79_MACH_ESR1750 is not set >>>> # CONFIG_ATH79_MACH_ESR900 is not set >>>> diff --git a/target/linux/ar71xx/nand/config-default >>>> b/target/linux/ar71xx/nand/config-default >>>> index 24e712c..4f0475a 100644 >>>> --- a/target/linux/ar71xx/nand/config-default >>>> +++ b/target/linux/ar71xx/nand/config-default >>>> @@ -62,6 +62,7 @@ >>>> # CONFIG_ATH79_MACH_EAP7660D is not set >>>> # CONFIG_ATH79_MACH_EL_M150 is not set >>>> # CONFIG_ATH79_MACH_EL_MINI is not set >>>> +# CONFIG_ATH79_MACH_ENH200EXT is not set >>>> # CONFIG_ATH79_MACH_EPG5000 is not set >>>> # CONFIG_ATH79_MACH_ESR1750 is not set >>>> # CONFIG_ATH79_MACH_ESR900 is not set >>>> >>> >>> >>> _______________________________________________ >>> Lede-dev mailing list >>> Lede-dev@lists.infradead.org >>> http://lists.infradead.org/mailman/listinfo/lede-dev >> > _______________________________________________ Lede-dev mailing list Lede-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/lede-dev