aboutsummaryrefslogtreecommitdiff
path: root/include/image-commands.mk
Commit message (Collapse)AuthorAge
* treewide: remove implicit SUBTARGETPaul Spooren2024-04-08
| | | | | | | | | | | | | | | | | | Historically it's possible to leave the `SUBTARGETS` undefined and automatically fallback to a "generic" subtarget. This however breaks various downstream scripts which may have expectations around filenames: While some targets with an explicit generic subtarget contain `generic` in the filenames of artifacts, implicit "subtargets" don't. Right now this breaks the CI[1], possibly also scripts using the ImageBuilders. This commit removes all code that support implicit handling of subtargets and instead requires every target to define "SUBTARGETS". [1]: https://github.com/openwrt/openwrt/actions/runs/8592821105/job/23548273630 Signed-off-by: Paul Spooren <mail@aparcar.org>
* mediatek: Moved recovery image creation to include/image-commands.mkRoland Reinl2024-03-31
| | | | | | The recovery image is reqired for D-Link M30 as well. So I moved it to include/image-commands.mk to be able to use it for MT7622 and filogic devices. Signed-off-by: Roland Reinl <reinlroland+github@gmail.com>
* images: append to existing image with ubinize-image build cmdDaniel Golle2024-02-16
| | | | | | | | Let ubinize-image append the ubinized image to the existing image instead of replacing it. Fixes: 6c17d71973 ("scripts: ubinize-image.sh: support static volumes, make size optional") Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* scripts: ubinize-image.sh: fix on POSIX shell, allow custom imagesDaniel Golle2024-02-16
| | | | | | | | | | Make sure ubinize-image.sh also works with more simple POSIX Shell and allow creating complete custom images to be used as ARTIFACT/foo.img and thereby allow including uImage.FIT, TF-A FIP and what ever else is required on a specific board. Fixes: 6c17d71973 ("scripts: ubinize-image.sh: support static volumes, make size optional") Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* scripts: ubinize-image.sh: support static volumes, make size optionalDaniel Golle2024-02-15
| | | | | | | | | | | | | | | | In order to support devices having TF-A FIP image or UBI-aware U-Boot SPL we need to include a static volume for the bootloader. Introduce support for adding additional static volumes by prefixing the filename with ':', eg. UBINIZE_PARTS := fip:=$(STAGING_DIR_IMAGE)/u-boot.fip Also add support for rootfs-in-uImage.FIT setups which don't require a rootfs partition and make the (3rd) size parameter in UBINIZE_PARTS optional (see example above without declared size). Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* image: improve UBI image sizing on NAND devicesTony Ambardar2023-11-26
| | | | | | | | | | | | | | | | | | | | | | | | Many NAND devices use a build recipe with "append-ubi | check-size" to ensure factory images don't exceed the target flash partition size. However, UBI reserves space for bad block handling and other operational overhead, and thus 'check-size' can overestimate the space available by several MB. In practice, this means a failed check is definitely a failure, while a passing check is only probably a pass. Improve the situation by teaching 'Build/append-ubi' to check image sizes while accounting for UBI reserved blocks. Add new device variable NAND_SIZE and use with existing IMAGE_SIZE to derate the available space. Each UBI device reserves 20 PEBs per 1024 PEBs of the entire NAND device for bad blocks, plus an additional 4 PEBs overhead. Many devices can transparently enable this check by setting NAND_SIZE based on their flash storage, and may then remove any unneeded 'check-size'. Link: http://www.linux-mtd.infradead.org/doc/ubi.html#L_overhead Suggested-by: Shiji Yang <yangshiji66@qq.com> Suggested-by: Robert Marko <robimarko@gmail.com> Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
* image: fix Linksys image alignment and simplify footer creationTony Ambardar2023-11-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current factory image sizes for Linksys devices are 256-byte aligned. This is not an issue writing factory images from the OpenWrt or Linksys GUIs, but can lead to failures using a TFTP client from the Linksys bootloader: NAND write: device 1 offset 0x2800000, size 0xc00100 Attempt to write to non page aligned data NAND write to offset 2800000 failed -22 0 bytes written: ERROR Simplify Linksys footer creation by migrating to a makefile build recipe, and pre-pad the footer (with 0xFF) to ensure the final image is $(PAGESIZE) aligned. Finally, remove the old linksys-image.sh script no longer needed. Linksys footer details are given below for future reference. The 256-byte footer is appended to factory images and tested by both the Linksys Upgrader (observed in EA6350v3) and OpenWrt sysupgrade. Footer format: .LINKSYS. Checked by Linksys upgrader before continuing. (9 bytes) <VERSION> Upgrade version number, unchecked so arbitrary. (8 bytes) <TYPE> Model of device, space padded (0x20). (15 bytes) <CRC> CRC checksum of factory image to flash. (8 bytes) <padding> Padding ('0' + 0x20 * 7) (8 bytes) <signature> Signature of signer, unchecked so arbitrary. (16 bytes) <padding> Padding with nulls (0x00) (192 bytes) Link: https://github.com/openwrt/openwrt/pull/11405#issuecomment-1358510123 Link: https://github.com/openwrt/openwrt/pull/11405#issuecomment-1587517739 Reported-by: Stijn Segers <foss@volatilesystems.org> Reported-by: Wyatt Martin <wawowl@gmail.com> Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
* image: use helper function for size unitsTony Ambardar2023-11-26
| | | | | | | | Add the make function 'exp_units' for helping evaluate k/m/g size units in expressions, and use this to consistently replace many ad hoc substitutions like '$(subst k,* 1024,$(subst m, * 1024k,$(IMAGE_SIZE)))' in makefiles. Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
* ramips: add encrypted SGE factory image for D-Link devicesAlan Luck2023-11-12
| | | | | | | | | | | creates SGE encrypted factory images to use via the D-Link web interface rename the old factory unencrypted images to recovery for use in the recovery console when recovery is needed DIR-1935-A1 , DIR-853-A1 , DIR-853-A3 , DIR-867-A1 , DIR-878-A1 and DIR-882-A1 Signed-off-by: Alan Luck <luckyhome2008@gmail.com>
* image: add additional fields to Netgear encrypted imageWenli Looi2023-07-01
| | | | | | | | | | | | | | | | These fields are used for EAX12 and EX6250v2 series, and perhaps other devices. Compatibility is preserved with the WAX202 and WAX206. In addition, adds the related vars to DEVICE_VARS so that the variables work correctly with multiple devices. References in GPL source: https://www.downloads.netgear.com/files/GPL/EAX12_EAX11v2_EAX15v2_GPL_V1.0.3.34_src.tar.gz * tools/imgencoder/src/gj_enc.c Contains code that generates the encrypted image. Signed-off-by: Wenli Looi <wlooi@ucalgary.ca>
* ath79: Add support for MOXA AWK-1137CMaximilian Martin2023-06-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Device specifications: ====================== * Qualcomm/Atheros AR9344 * 128 MB of RAM * 16 MB of SPI NOR flash * 2x 10/100 Mbps Ethernet * 2T2R 2.4/5 GHz Wi-Fi * 4x GPIO-LEDs (1x wifi, 2x ethernet, 1x power) * 1x GPIO-button (reset) * 2x fast ethernet - lan1 + builtin switch port 1 + used as WAN interface - lan2 + builtin switch port 2 + used as LAN interface * 9-30V DC * external antennas Flashing instructions: ====================== Log in to https://192.168.127.253/ Username: admin Password: moxa Open Maintenance > Firmware Upgrade and install the factory image. Serial console access: ====================== Connect a RS232-USB converter to the maintenance port. Pinout: (reset button left) [GND] [NC] [RX] [TX] Firmware Recovery: ================== When the WLAN and SYS LEDs are flashing, the device is in recovery mode. Serial console access is required to proceed with recovery. Download the original image from MOXA and rename it to 'awk-1137c.rom'. Set up a TFTP server at 192.168.127.1 and connect to a lan port. Follow the instructions on the serial console to start the recovery. Signed-off-by: Maximilian Martin <mm@simonwunderlich.de>
* image: improve uImage.FIT device tree overlay supportDaniel Golle2023-06-05
| | | | | | | | | | Instead of generating full config nodes incl. kernel, generate minimal config nodes for device tree overlays to be applied to the main config. In this way, multiple device tree overlays can be applied more easily. While at it change filenames to upstream style, ie. use dtso and dtbo suffix for device tree overlays. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* build: Allow specifying uImage timeDavid Yang2023-05-20
| | | | | | | Some U-Boot checks for a specified uImage time and refuses to boot if mismatched. This patch fixes it by recognizing UIMAGE_TIME parameter. Signed-off-by: David Yang <mmyangfl@gmail.com>
* build: escape whitespaces in VERSION_DIST for Netgear imagesSven Roederer2023-05-20
| | | | | | | | | Prevents subshell commands from failing to parse options when having defined a whitespace in the VERSION_DIST. As the called resulting images unlikely will handle whitespace correctly, we replace them by "-". Signed-off-by: Sven Roederer <S.Roederer@colvistec.de>
* Revert "ath79: add empty squashfs-lzma filesystem"Daniel Golle2023-05-12
| | | | | | | | | | This reverts commit 91e3419a33f3f0baa2fb25680f5c9a7b2240102b. Now that squashfs3-lzma generates reproducible output we can drop the empty binary. Having a binary file in the tree is not nice and we actually also use squashfs3-lzma for devices which expect the kernel to be loaded from a squashfs3... Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* ath79: add empty squashfs-lzma filesystemPaul Spooren2023-05-08
| | | | | | | | | | | | | | | | | The filesystem is currently created on every build to trick the boot loader of some FRITZ! devices into accepting the image. Sadly the resulting squashfs-lzma filesystem is not reproducible. To fix this, create a squashfs filesystem once and include it into the repository. Creation happend as shown below rm -rf empty_dir mkdir empty_dir ./staging_dir/host/bin/mksquashfs-lzma \ empty_dir/ empty-squashfs-lzma \ -noappend -root-owned -be -nopad -b 65536 -fixed-time 0 Signed-off-by: Paul Spooren <mail@aparcar.org>
* ramips: add support for D-Link DAP-1620 B1Rani Hod2023-04-29
| | | | | | | | | | | | | | | | | | | | | | | | | The DAP-1620 rev B is a wall-plug AC1300 repeater. Specifications: - MT7621AT, 256 MiB RAM, 16 MiB SPI NOR - MT7615DN 2x2 802.11n +2x2 802.11ac (DBDC) - Ethernet: 1 port 10/100/1000 - Status LEDs (1x red+green) - LED RSSI bargraph (2x green, 1x red+green) Installation: - Keep reset button pressed during plug-in - Web Recovery Updater is at 192.168.0.50 - Upload factory.bin, confirm flashing (seems to work best with Chromium-based browsers) Revert to OEM firmware: - tail -c+117 DAP1620B1_FW212B03.bin | \ openssl aes-256-cbc -d -md md5 -out decrypted.bin \ -k 905503a4e0c3cd3c1ce062246de427a68962347e - flash decrypted.bin via D-Link Web Recovery Signed-off-by: Rani Hod <rani.hod@gmail.com>
* tools/squashfs: rename to squashfs3-lzmaChristian Marangi2023-02-18
| | | | | | | | | | | | | | | | The name of squashfs is confusing since in reality it's a really old version using an old lzma library. This tools is used for old ath79 netgear target and to produde a fake squasfs3 image needed for some specific bootloader from some OEM (AVM for example) Rename squashfs tool to squasfs3-lzma to better describe it. Rename the installed bin from mksquashfs-lzma to mksquashfs3-lzma. Use tar transform to migrate the root directory in tar to the new naming. Drop redundant PKG_CAT variable not needed anymore. Also update any user of this tool. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* build: fix incomplete initramfs compression optionsTony Butler2023-01-17
| | | | | | | | | | | | Requires: tools/lz4, tools/lzop complete the wiring so that these options work: * `CONFIG_KERNEL_INITRAMFS_COMPRESSION_LZO` * `CONFIG_KERNEL_INITRAMFS_COMPRESSION_LZ4` Signed-off-by: Tony Butler <spudz76@gmail.com> [remove blocking dependencies for separate ramdisk, fix lzop options] Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* image: add gzip-filename build recipeMichael Pratt2023-01-06
| | | | | | | | | | Some vendors use basic gzip metadata (original filename and timestamp) to verify valid images, along with the size of it's contents. Also, add a new device profile variable FACTORY_IMG_NAME which would be ideal to use with this new recipe. Signed-off-by: Michael Pratt <mcpratt@pm.me>
* tools: Add gzip-libdeflate advanced compressorMarkus Stockhausen2023-01-02
| | | | | | | | | | | | | | | | | Several devices provide U-Boot versions with only gzip compressed kernel support (e.g. Realtek switches). This compression method produces larger images than lzma. To save space on flash and avoid going the hard way with lzma-loader we can make use of enhanced gzip tool based on libdeflate compression library from https://github.com/ebiggers/libdeflate. It keeps 100% deflate/gzip compatibility while improving compression ratio. The image can be unpacked by the default inflate routines inside U-Boot. Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de> [Switched to v1.15 and made it work with cmake] Signed-off-by: Olliver Schinagl <oliver@schinagl.nl> Reviewed-by: Robert Marko <robimarko@gmail.com> Reviewed-by: Rosen Penev <rosenp@gmail.com> Reviewed-by: Sander Vanheule <sander@svanheule.net>
* image-commands.mk: Be consistent in command invocationOlliver Schinagl2022-12-18
| | | | | | | Most/all other tools use the staging dir prefix, gzip should as well. Signed-off-by: Olliver Schinagl <oliver@schinagl.nl> Acked-by: Christian Marangi <ansuelsmth@gmail.com>
* build: make sure that $(STAGING_DIR_IMAGE) existsDaniel Golle2022-12-05
| | | | | | | Call 'mkdir -p $(STAGING_DIR_IMAGE)' before trying to store files in this potentially non-existing folder. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mkits: support definition of DTB loadaddrDavid Bauer2022-11-08
| | | | | | | Support defining a per-device loadaddress for the DTB. This is required for devices which to not align the DTB from the bootloader correctly. Signed-off-by: David Bauer <mail@david-bauer.net>
* build: move Build/edimax-header to image-commands.mkINAGAKI Hiroshi2022-10-19
| | | | | | | | | | To use from the following devices in ath79 target, move edimax-header to image-commands.mk. - ELECOM WRC-300GHBK2-I - ELECOM WRC-1750GHBK2-I/C Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
* build: image: use printf for ModelNameLimit16Huangbin Zhan2022-10-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix syntax error on macos, for substr is undefined results according to the POSIX standard. From expr on macos: According to the POSIX standard, the use of string arguments length, substr, index, or match produces undefined results. In this version of expr, these arguments are treated just as their respective string values. By a simple test Makefile: define ModelNameLimit16 $(shell expr substr "$(word 2, $(subst _, ,$(1)))" 1 16) endef define ModelNameLimit16_2 $(shell printf %.16s "$(word 2, $(subst _, ,$(1)))") endef hello: echo $(call ModelNameLimit16, technicolor_tg582n-telecom-italia) echo $(call ModelNameLimit16_2, technicolor_tg582n-telecom-italia) The same output is produced. echo tg582n-telecom-i tg582n-telecom-i echo tg582n-telecom-i tg582n-telecom-i Signed-off-by: Huangbin Zhan <zhanhb88@gmail.com> [ wrap commit description to 80 columns and improve it ] Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* image-commands: fix generating out-of-tree DTODaniel Golle2022-07-30
| | | | | | | Hack path so DTO generation works also for out-of-tree device tree sources which currently fail. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* image: add support for Netgear encrypted imageWenli Looi2022-07-19
| | | | | | | | | | | | | | | | | | | | | | | | Netgear encrypted image is used in various devices including WAX202, WAX206, and EX6400v3. This image format also requires a dummy squashfs4 image which is added here as well. References in WAX202 GPL source: https://www.downloads.netgear.com/files/GPL/WAX202_V1.0.5.1_Source.rar * openwrt/bootloader/u-boot-mt7621-2018.09-gitb178829-20200526/board/ralink/common/dual_image.c Bootloader code that verifies the presence of a squashfs4 image, thus a dummy image is added here. * openwrt/tools/imgencoder/src/gj_enc.c Contains code that generates the encrypted image. There is support for adding an RSA signature, but it does not look like the signature is verified by the stock firmware or bootloader. * openwrt/tools/imgencoder/src/imagekey.h Contains the encryption key and IV. It appears the same key/IV is used for other Netgear devices including WAX206 and EX6400v3. Signed-off-by: Wenli Looi <wlooi@ucalgary.ca>
* image: strip metadata from images when used in other artifactsDaniel Golle2022-04-15
| | | | | | | | | Image metadata and signature is of no use for images which are included inside other artifacts (like an SD-card image). Strip them off before using images in artifacts or stashing them for the ImageBuilder as the contained signature breaks reproducibility. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* build: store sha256_unsigned in JSONPaul Spooren2022-03-29
| | | | | | | | | | | | Introduce `sha256_unsigned` which is a checksum of the image _before_ a signature is attached. This is helpful to compare image reproducibility. Since the `.sha256sum` file is located in the $(KDIR) folder, switch $(BIN_DIR) with $(KDIR) to simplify the code. The value of $(BIN_DIR) itself is not stored inside the resulting JSON file, so it can be replaced. Signed-off-by: Paul Spooren <mail@aparcar.org>
* tools: zip: fetch SOURCE_DATE_EPOCH directlySungbo Eo2022-03-09
| | | | | | | | | Remove "--mtime" option introduced in commit 18c9faa03211 ("tools: zip: add option for reproducible archives") and instead fetch SOURCE_DATE_EPOCH environment variable directly in the code. Ref: https://sourceforge.net/p/infozip/patches/25/ Signed-off-by: Sungbo Eo <mans0n@gorani.run>
* build: image: use UTC for zip timestampSungbo Eo2022-03-09
| | | | | | | | Zip uses DOS timestamp for mtime which is stored in local time and hence depends on the timezone of the build system. Force zip to use UTC timezone to make image builds more reproducible. Signed-off-by: Sungbo Eo <mans0n@gorani.run>
* image-commands.mk: Use ERROR_MESSAGE for imagesize failsPaul Spooren2022-02-28
| | | | | | | | | | | | | If a image is bigger than the device can handle, an error message is printed. This is usually silenced and silently ignored, making it harder to debug. While it's possible to run the build in verbose mode (via `make V=s`) and grep for *is too big*, it's more intuitive to print the error message directly. For that use the newly unlocked `$(call ERROR_MESSAGE,...)` definition which now also print in non-verbose mode. Fixes: FS#50 (aka #7604) Signed-off-by: Paul Spooren <mail@aparcar.org>
* ramips: add support for ipTIME AX2004MSungbo Eo2022-02-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ipTIME AX2004M is an 802.11ax (Wi-Fi 6) router, based on MediaTek MT7621A. Specifications: * SoC: MT7621A * RAM: 256 MiB * Flash: NAND 128 MiB * Wi-Fi: * MT7915D: 2.4/5 GHz (DBDC) * Ethernet: 5x 1GbE * Switch: SoC built-in * USB: 1x 3.0 * UART: J4 (115200 baud) * Pinout: [3V3] (TXD) (RXD) (GND) MAC addresses: | interface | MAC address | source | comment |-----------|-------------------|----------------|--------- | LAN | 58:xx:xx:00:xx:9B | | [1] | WAN | 58:xx:xx:00:xx:99 | | | WLAN 2G | 58:xx:xx:00:xx:98 | factory 0x4 | | WLAN 5G | 5A:xx:xx:40:xx:98 | | | | 58:xx:xx:00:xx:98 | config ethaddr | [1] Used in this patch as WLAN 5G MAC address with the local bit set Load addresses: * stock * 0x80010000: FIT image * 0x81001000: kernel image -> entry * OpenWrt * 0x80010000: FIT image * 0x82000000: uncompressed kernel+relocate image * 0x80001000: relocated kernel image -> entry Notes: * This device has a dual-boot partition scheme, but this firmware works only on boot partition 1. The stock web interface will flash only on the inactive boot partition, but the recovery web page will always flash on boot partition 1. Installation via recovery mode: 1. Press reset button, power up the device, wait >10s for CPU LED to stop blinking. 2. Upload recovery image through the recovery web page at 192.168.0.1. Revert to stock firmware: 1. Install stock image via recovery mode. Signed-off-by: Sungbo Eo <mans0n@gorani.run>
* Revert "ramips: add support for ipTIME AX2004M"Stijn Tintel2022-02-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit f4a79148f8cb ("ramips: add support for ipTIME AX2004M") seems to leak KERNEL_LOADADDR 0x82000000 to other devices, causing the to no longer boot. The leak is visible in u-boot: Using 'config-1' configuration Trying 'kernel-1' kernel subimage Description: MIPS OpenWrt Linux-5.10.92 Type: Kernel Image Compression: lzma compressed Data Start: 0x840000e4 Data Size: 10750165 Bytes = 10.3 MiB Architecture: MIPS OS: Linux Load Address: 0x82000000 Entry Point: 0x82000000 Normally, it should look like this: Using 'config-1' configuration Trying 'kernel-1' kernel subimage Description: MIPS OpenWrt Linux-5.10.92 Type: Kernel Image Compression: lzma compressed Data Start: 0xbfca00e4 Data Size: 2652547 Bytes = 2.5 MiB Architecture: MIPS OS: Linux Load Address: 0x80001000 Entry Point: 0x80001000 Revert the commit to avoid more people soft-bricking their devices. This reverts commit f4a79148f8cbb7dfbcddfb0c1128caec45a01596. Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
* ramips: add support for ipTIME AX2004MSungbo Eo2022-01-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ipTIME AX2004M is an 802.11ax (Wi-Fi 6) router, based on MediaTek MT7621A. Specification: * SoC: MT7621A * RAM: 256 MiB * Flash: NAND 128 MiB * Wi-Fi: * MT7915D: 2.4/5 GHz (DBDC) * Ethernet: 5x 1GbE * Switch: SoC built-in * USB: 1x 3.0 * UART: J4 (115200 baud) * Pinout: [3V3] (TXD) (RXD) (GND) MAC address: | interface | MAC | source | comment |-----------|-------------------|----------------|--------- | LAN | 58:XX:XX:00:XX:9B | | [1] | WAN | 58:XX:XX:00:XX:99 | | | WLAN 2G | 58:XX:XX:00:XX:98 | factory 0x4 | | WLAN 5G | 5A:XX:XX:40:XX:98 | | | | | | | | 58:XX:XX:00:XX:98 | config ethaddr | [1] Used in this patch as WLAN 5G MAC address with the local bit set Load address: * stock * 0x80010000: FIT image * 0x81001000: kernel image -> entry * OpenWrt * 0x80010000: FIT image * 0x82000000: uncompressed kernel+relocate image * 0x80001000: relocated kernel image -> entry Installation via **recovery** mode: 1. Press reset button, power up the device, wait >10s for CPU LED to stop blinking. 2. Upload recovery image through the recovery web page at 192.168.0.1. Revert to stock firmware: 1. Install stock image via recovery mode. Signed-off-by: Sungbo Eo <mans0n@gorani.run>
* kirkwood: add support for ipTIME NAS1Sungbo Eo2022-01-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | ipTIME NAS1 is a 1-bay NAS, based on Marvell Kirkwood SoC. Specifications: * SoC: 88F6281 * RAM: 256 MiB * Flash: SPI NOR 16 MiB * SATA: 1x 3Gb/s * Ethernet: 1x 1GbE * USB: 1x 2.0 * Fan: 2 speed level * UART: JP1 (115200 8N1) * Pinout: [3V3] (TXD) (RXD) (GND) Notes: * There are several variants of the model name: "NAS-I", "NASI", "NAS1". Here "NAS1" is adopted for consistent naming scheme. * The reset button is also a USB copy button in stock FW, but in this patch the former is the only default behavior. Installation via web interface: 1. Flash sysupgrade image through the stock web interface. Revert to stock firmware: 1. Perform sysupgrade with stock image. Signed-off-by: Sungbo Eo <mans0n@gorani.run>
* build: move Build/copy-file to image-commands.mkChristian Lamparter2022-01-15
| | | | | | This is makro is present in more than one place. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* build: image: improve zip build recipeSungbo Eo2021-12-12
| | | | | | | | | * clean before build * specify executable path * allow adding extra options for zip * use basename of $@ Signed-off-by: Sungbo Eo <mans0n@gorani.run>
* x86: added support to generate VHDX imagesOldřich Jedlička2021-12-05
| | | | | | | Added support to generate dynamic-sized VHDX images for Hyper-V. Compile-tested on x86 and run-tested on Windows 10 21H2 (Hyper-V). Signed-off-by: Oldřich Jedlička <oldium.pro@gmail.com>
* build: image: add command to ubinize the kernel imageRobert Marko2021-11-28
| | | | | | | | | | | | | | Newer NAND devices from MikroTik like the hAP ac3 require the kernel to be packed into UBIFS and then ubinized. So, since the ubinize-image.sh script can now ubinize kernel only as well lets add a command for it. This now allows calling ubinize-kernel in the kernel packaging at then end. Signed-off-by: Robert Marko <robimarko@gmail.com>
* build: image: explicitly pass --rootfs to append-ubiRobert Marko2021-11-28
| | | | | | | | | | Rootfs is now optional in ubinize-image.sh and requires --rootfs flag instead of just passing the rootfs image as the argument before ubinize opts. So, simply add --rootfs flag before the $(IMAGE_ROOTFS). Signed-off-by: Robert Marko <robimarko@gmail.com>
* build: image: add UBIFS kernel packerRobert Marko2021-11-28
| | | | | | | This allows packing the kernel into UBIFS like newer MikroTik NAND devices require. Signed-off-by: Robert Marko <robimarko@gmail.com>
* build: move elecom-wrc-gs-factory to image-commands.mkINAGAKI Hiroshi2021-10-30
| | | | | | | | ELECOM WRC-X3200GST3 uses the same header/footer as WRC-GS/GST devices in ramips/mt7621 subtarget, so move "Build/elecom-wrc-gs-factory" to image-commands.mk to use from mediatek/mt7622 subtarget. Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
* scripts: mkits.sh: Allow legacy @ mode for dts creationDamien Mascord2021-09-23
| | | | | | | | | | | | | | | | | | commit 5ec60cbe9d94 ("scripts: mkits.sh: replace @ with - in nodes") broke support for Meraki MR32 and this patch makes the replacement configurable allowing for specifying the @ or - or whatever character that is desired to retain backwards compatibility with existing devices. For example, this patch includes the fix for the Meraki MR32 in target/linux/bcm53xx/image for meraki_mr32: DEVICE_DTS_DELIMITER := @ DEVICE_DTS_CONFIG := config@1 Fixes: 5ec60cbe9d94 ("scripts: mkits.sh: replace @ with - in nodes") Signed-off-by: Damien Mascord <tusker@tusker.org> [Added tags, checkpatch.pl fixes, noted that this is for old stuff] Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* build: introduce $(MKHASH)Leonardo Mörlein2021-05-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this commit, it was assumed that mkhash is in the PATH. While this was fine for the normal build workflow, this led to some issues if make TOPDIR="$(pwd)" -C "$pkgdir" compile was called manually. In most of the cases, I just saw warnings like this: make: Entering directory '/home/.../package/gluon-status-page' bash: line 1: mkhash: command not found bash: line 1: mkhash: command not found bash: line 1: mkhash: command not found bash: line 1: mkhash: command not found bash: line 1: mkhash: command not found bash: line 1: mkhash: command not found bash: line 1: mkhash: command not found bash: line 1: mkhash: command not found [...] While these were only warnings and the package still compiled sucessfully, I also observed that some package even fail to build because of this. After applying this commit, the variable $(MKHASH) is introduced. This variable points to $(STAGING_DIR_HOST)/bin/mkhash, which is always the correct path. Signed-off-by: Leonardo Mörlein <me@irrelefant.net>
* build: kernel2minor: work around path length limitFrançois Chavant2021-05-12
| | | | | | | | | | | | | | When building for MikroTik devices the kernel2minor tool will sometimes fail with: Can't get lstat from kernel file!: No such file or directory. This is because kernel2minor expects paths no longer than 250 chars. To work around this the include/image-commands.mk has been modified to copy the kernel to a temporary file (/tmp/tmp.XXXXXXXXXX) before calling kernel2minor. Signed-off-by: François Chavant <francois@chavant.info>
* image: use portable filename in 'append-image-stage'Daniel Golle2021-04-24
| | | | | | | | | | | The 'append-image-stage' command doesn't work when setting the EXTRA_IMAGE_NAME option of the ImageBuilder as in that case DEVICE_IMG_PREFIX is modified and no longer matches the value it had in buildroot. Choose a filename independent of DEVICE_IMG_PREFIX for images staged using 'append-image-stage' to fix that. Fixes: de4b29dab9 ("image: introduce 'append-image-stage' build command") Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* image: introduce 'append-image-stage' build commandDaniel Golle2021-04-23
| | | | | | | | | | | Similar to 'append-image' this new command appends an existing binary. 'append-image-stage' also makes a copy of that binary and keeps it in $(STAGING_DIR_IMAGE). When called from within the ImageBuilder, this copy is used instead of expecting the binary to be present. This is useful for artifacts which include the initramfs/recovery image which is usually not included in the ImageBuilder. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* image: fix append-image when building multiple profilesDaniel Golle2021-03-24
| | | | | | | | In case CONFIG_TARGET_MULTI_PROFILE is set, IMG_PREFIX cannot be expanded. Use DEVICE_IMG_PREFIX instead and make sure it's defined. Fixes: 8f89b1ab0f ("image: add 'append-image' build command") Signed-off-by: Daniel Golle <daniel@makrotopia.org>