aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
Commit message (Collapse)AuthorAgeFilesLines
* build: fix compatibility with python 3.6Huangbin Zhan2020-07-131-3/+4
| | | | | | | | | On a system python3 is linked to python3.6, fail to perform json_overview_image_info and got `TypeError: __init__() got an unexpected keyword argument 'capture_output'`. This patch emulate the behaviour on python 3.7+. Signed-off-by: Huangbin Zhan <zhanhb88@gmail.com> (cherry picked from commit 3caad5150c2011a7dac462acaa06d0e69f8ed005)
* build,json: fix build failure in case no data is foundDaniel Golle2020-07-131-18/+16
| | | | | | | | | Only collect arch_packages if actually generating any output. Fixes: commit f09b9319 ("build,json: store arch_packages in profiles.json"( Signed-off-by: Daniel Golle <daniel@makrotopia.org> Signed-off-by: Paul Spooren <mail@aparcar.org> (cherry picked from commit 3b0f698760ae3a62173a28f18e9e1e3adef9c492)
* build,json: store arch_packages in profiles.jsonPaul Spooren2020-07-131-2/+5
| | | | | | | | | | The `arch_packages` contains the supported package architecture. Previously it was necessary to parse the `Packages` index for the line `Architecture:`, requiring both an additional parser and file download. Signed-off-by: Paul Spooren <mail@aparcar.org> (cherry picked from commit f09b9319c666e343763c7618878a503ad7eb7531)
* build: store default/device packages in JSONPaul Spooren2020-07-132-2/+19
| | | | | | | | | | | | | With this commit the `profiles.json` contain both the target specific `default_packages` as well as the device specific `device_packages` as a array of strings. This information is required for downstream projects like the various web-based interactive firmware generators. Signed-off-by: Daniel Golle <daniel@makrotopia.org> Signed-off-by: Paul Spooren <mail@aparcar.org> (cherry picked from commit 263f7e5bbd119ebed1f514c16f659a2e2a2b132c)
* scripts: JSON merge don't crash if no JSON foundPaul Spooren2020-06-301-2/+0
| | | | | | | | | | | | | | | | | | | The JSON `WORK_DIR` ($(KDIR)/json_info_files) is only created if the new image generation methods from `image.mk` are used. However some targets like `armvirt` do not use it yet, so the folder is never created. The `json_overview_image_info.py` script used to raise an error if the given `WORK_DIR` isn't a folder, however it should just notify about missing JSON files. This patch removes the Python assert and exists with code 0 even if no JSON files were found, as this is not necessarily an error but simply not yet implemented. Using `glob` on an not existing `Path` results in an empty list, therefore the for loop won't run. Signed-off-by: Paul Spooren <mail@aparcar.org> CC: Petr Štetiar <ynezz@true.cz> (cherry picked from commit 14cbd8fb2dd8c81bad06d3c3bb45213685c19c98)
* build: refactor JSON info files to `profiles.json`Paul Spooren2020-06-302-33/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | JSON info files contain machine readable information of built profiles and resulting images. These files were added in commit 881ed09ee6e2 ("build: create JSON files containing image info"). They are useful for firmware wizards and script checking for reproducibility. Currently all JSON files are stored next to the built images, resulting in up to 168 individual files for the ath79/generic target. This patch refactors the JSON creation to store individual per image (not per profile) files in $(BUILD_DIR)/json_info_files and create an single overview file called `profiles.json` in the target directory. Storing per image files and not per profile solves the problem of parallel file writes. If a profiles sysupgrade and factory image are finished at the same time both processes would write to the same JSON file, resulting in randomly broken outputs. Some target like x86/64 do not use the image code yet, resulting in missing JSON files. If no JSON info files were created, no `profiles.json` files is created as it would be empty anyway. As before, this creation is enabled by default only if `BUILDBOT` is set. Tested via buildroot & ImageBuilder on ath79/generic, imx6 and x86/64. Signed-off-by: Paul Spooren <mail@aparcar.org> [json_info_files dir handling in Make, if case refactoring] Signed-off-by: Petr Štetiar <ynezz@true.cz> (backported from commit 07449f692ce4c4525e946401f4c3ed0cbbc8c4df) Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* build: create JSON files containing image infoPaul Spooren2020-06-301-0/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The JSON info files contain details about the created firmware images per device and are stored next to the created images. The JSON files are stored as "$(IMAGE_PREFIX).json" and contain some device/image meta data as well as a list of created firmware images. An example of openwrt-ramips-rt305x-aztech_hw550-3g.json { "id": "aztech_hw550-3g", "image_prefix": "openwrt-ramips-rt305x-aztech_hw550-3g", "images": [ { "name": "openwrt-ramips-rt305x-aztech_hw550-3g-squashfs-sysupgrade.bin", "sha256": "db2b34b0ec4a83d9bf612cf66fab0dc3722b191cb9bedf111e5627a4298baf20", "type": "sysupgrade" } ], "metadata_version": 1, "supported_devices": [ "aztech,hw550-3g", "hw550-3g" ], "target": "ramips/rt305x", "titles": [ { "model": "HW550-3G", "vendor": "Aztech" }, { "model": "ALL0239-3G", "vendor": "Allnet" } ], "version_commit": "r10920+123-0cc87b3bac", "version_number": "SNAPSHOT" } Signed-off-by: Paul Spooren <mail@aparcar.org> (backported from commit 881ed09ee6e23f6c224184bb7493253c4624fb9f) Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* scripts/download: add sources CDN as first mirrorPaul Spooren2020-05-051-0/+1
| | | | | | | | | | | | | | | | | | OpenWrt now has a CDN for sources at sources.cdn.openwrt.org which mirrors sources.openwrt.org. Downloading sources outside Europe or US (mainland) could result in low throughput, extremely slowing down the first compilation of the build system. This patch adds sources.cdn.openwrt.org as the first mirror to offer worldwide fast download speeds by default. If the CDN goes down for whatever reason, the script jumps to the next available mirror and downloads requested files as before (in regional varying speed). Signed-off-by: Paul Spooren <mail@aparcar.org> Acked-by: Eneas U de Queiroz <cotequeiroz@gmail.com> (cherry picked from commit c737a9ee6a9c47b6e553ac81bf293b1161e59799)
* scripts/dowload.pl: add archive.apache.org to apache mirror listJiri Kastner2019-12-231-0/+1
| | | | | | | | | apache mirrors holds only latest releases, to download older releases, one must use archive.apache.org to get them. Signed-off-by: Jiri Kastner <cz172638@gmail.com> (cherry picked from commit dc34c695c4faa46efc6e2367a2ba06a47caa4840)
* scripts/dl_github_archive.py: fix python3 str, bytes confusionYousong Zhou2019-11-041-1/+1
| | | | | Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com> (cherry picked from commit d26738bc767f48d2dee7097cbfc6d07ffeee58fb)
* build: fix xconfig targetleo chung2019-10-091-1/+1
| | | | | | | | | | | | | | | | | `make xconfig` fails with following linking error of qconf binary: g++ -lQt5Widgets -lQt5Gui -lQt5Core -o qconf qconf.o zconf.tab.o /usr/bin/ld: qconf.o: in function ConfigList::metaObject() const': qconf.cc:(.text+0x3eb): undefined reference to QObjectData::dynamicMetaObject() const' /usr/bin/ld: qconf.o: in function `ConfigList::qt_metacast(char const*)': link error. which is caused by the wrong order of the linked objects/libraries so this patch reorders the linker's arguments which makes the qconf compile again. Signed-off-by: leo chung <gewalalb@gmail.com> [commit subject and message tweaks, whitespace fix] Signed-off-by: Petr Štetiar <ynezz@true.cz> (cherry picked from commit b2c55d50f8aeb21ef4cd3948034a158f7dd743c2)
* build: fix host menu config targets using ncursesPetr Štetiar2019-10-091-2/+0
| | | | | | | | | | | | | | | | | | | | | | On a recent Gentoo Linux installation, invoking `make menuconfig`, `make kernel_menuconfig` or `make kernel_nconfig` in the build system fails, whereas for example `make menuconfig` in the kernel tree alone works as expected. This is happening because STAGING_PREFIX is not defined when kernel's {menu,n}config target calls pkg-config from the toolchain/host and thus pkg-config returns an empty value, and the fallback values in the kernel config script are applied but those are off and the linking fails. Solution is to use system's pkg-config for all ncurses based menu config targets in order to provide proper compiler/linker flags. Ref: FS#2423 Cc: Thomas Albers <thomas.gameiro@gmail.com> Tested-by: Stijn Tintel <stijn@linux-ipv6.be> Tested-by: Eneas U de Queiroz <cotequeiroz@gmail.com> Signed-off-by: Petr Štetiar <ynezz@true.cz> (cherry picked from commit 965f341aa9fdb6e07d509d02a6ca188af050292a)
* build: make device tree arg really optional in mkits.shJohann Neuhauser2019-10-091-5/+4
| | | | | | | | | | If no device tree is given there is no node generated, but the configuration does still include the name of the missing node. This will result in a successful build fit image, but bootm does throw a error message if we want to boot the bad configuration. Signed-off-by: Johann Neuhauser <jneuhauser@dh-electronics.com> (cherry picked from commit 205e0939f0a141a1524d94eaf84407ddcb6a1a09)
* scripts/feeds: fix accepting "-" in feed type stringFelix Fietkau2019-09-151-1/+1
| | | | | | Fixes a syntax error in processing the type src-git-full Signed-off-by: Felix Fietkau <nbd@nbd.name>
* scripts/feeds: fix 'src-include' directiveBjørn Mork2019-09-041-1/+1
| | | | | | | | | | | | | Commit 775b70f8d5df renamed parse_file() parameters without updating the recursive call. This broke parsing of any feeds.conf using 'src-include'. $ scripts/feeds update -a Can't use string ("defaults") as a HASH ref while "strict refs" in use at scripts/feeds line 63, <$fh> line 1. Fixes: 775b70f8d5df ("scripts/feeds: allow adding parameters to feeds") Signed-off-by: Bjørn Mork <bjorn@mork.no> (cherry picked from commit a21b70be31a9d8adda0ae65cc38d1b3b4b6680d4)
* Fix handling of BUILD_SUFFIX in remote-gdb scriptThomas Langer2019-09-041-4/+4
| | | | | | | | | | When CONFIG_BUILD_SUFFIX is enabled, the target-* folders in build_dir and staging_dir have this suffix in the name, but not the toolchain directories. When detecting the names for "arch" and "libc", also accept the suffix and do not use it for the toolchain path. Signed-off-by: Thomas Langer <thomas.langer@intel.com> (cherry picked from commit 035906fd05b2e5543cedd9471731043945fdcf13)
* scripts/feeds: allow adding parameters to feedsJo-Philipp Wich2019-09-041-18/+30
| | | | | | | | | | this allows adding "--" prefixed parameters inside feeds.conf between the target and name. The first parameter is --force which has the same effect as using -f when installing any of the packages. This allows creating feeds that will override base packages by default. Signed-off-by: Jo-Philipp Wich <jo@mein.io> (cherry picked from commit 775b70f8d5dfe9830aaf3b79fc8fb38c8148ee1f)
* download.pl: use https://source.openwrt.orgYousong Zhou2019-09-041-2/+1
| | | | | | | | | https://sources.lede-openwrt.org now redirects to there https://downloads.openwrt.org/sources returns 404, so remove it here Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com> (cherry picked from commit 0f3667864d5391c2d9ace63ccfc83ab270405cc9)
* build: allow overriding default selection state for devicesJonas Gorski2019-09-042-2/+4
| | | | | | | | | | | | | | | | | | | | Allow overriding the default selection state for Devices, similar to setting a default for packages. E.g. by setting DEFAULT to n, they won't be selected by default anymore when enabling all device in the multi device profile. This allows preventing images being built by the default config for known broken devices, devices without enough RAM/flash, or devices not working with a certain kernel versions. This does not prevent the devices from being manually selected or images being built by the ImageBuilder. These devices often still have worth with a reduced package-set, or as a device for regression testing, when no better device is available. Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> (cherry picked from commit 7546be60074e452751ba2a48eddbc13910bec708)
* scripts: time.pl: Don't print the time on stderrAlban Bedel2019-09-041-1/+1
| | | | | | | | | | Having the build time written on stderr make it appear with V=w although it is not an error or warning. Just write the time on stdout to have it part of the build log like all the rest, but not clutter the output when only warnings and errors should be shown. Signed-off-by: Alban Bedel <albeu@free.fr> (cherry picked from commit 340df72e0745236379554dc9ff487e260a424465)
* scripts/feeds: add src-include methodBjørn Mork2019-09-041-11/+26
| | | | | | | | | | | | | The src-include method allows recursive inclusion of feeds.conf snippets. This can for example be used for adding static local feeds to feeds.conf.default without ever having to update the local feeds.conf: src-include defaults feeds.conf.default src-link custom /usr/local/src/lede/custom Signed-off-by: Bjørn Mork <bjorn@mork.no> (cherry picked from commit 7a1b575ac4ede2778bb21cfafa7a1152d9d2555f)
* metadata: handle ABI version rebuild tracking for transient dependenciesJo-Philipp Wich2019-09-041-0/+12
| | | | | | | | | | | | | Extend the packageauxvars database to keep a list of possible package dependencies for each provider, then utilize this information in buildroot to resolve the ABI version dependencies of dependent packages up to five levels deep. This should properly trigger rebuilds for packages indirectly depending on other packages whose ABI_VERSION changed. Signed-off-by: Jo-Philipp Wich <jo@mein.io> (cherry picked from commit 27a4a71c240875e3fff868f26f723178bf94eb86)
* scripts/config: fix *c_shipped build depency trackingJonas Gorski2019-09-041-4/+4
| | | | | | | | | | | | | | The Makefile was missing dependencies on *c_shipped, so changes never triggered a rebuild. Add these as optional dependencies so their absence isn't treated as an error. In addition, fix a typo preventing the zconf.lex.o from being removed on clean. Fixes: 9d5510a500a1 ("build: add new menuconfig code based on linux 3.9") Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> Acked-by: Jo-Philipp Wich <jo@mein.io> (cherry picked from commit 0096a1cf0015e483b99e51c74f2f0bbae7247342)
* metadata: ensure one dependency provider to be y if a package is yJonas Gorski2019-09-041-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | When there are multiple packages providing a meta-package, it is possible to to create a config where a package is selected as =y, but all of its dependency providers are just selected as =m. This is due to the selection statement being just config PACKAGE_foo select PACKAGE_bar if !PACKAGE_baz which is already fulfilled by PACKAGE_bar=m. Fix this by properly comparing the selection states: config PACKAGE_foo select PACKAGE_bar if PACKAGE_baz<PACKAGE_foo Also invert the select conditions to improve readability. Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> [slightly reword commit message] Signed-off-by: Jo-Philipp Wich <jo@mein.io> (cherry picked from commit 1fd50531cac9c41334d8f57e2dbc1f50c3572445)
* config: fix relational operators for bool and tristate symbolsNicolas Pitre2019-09-041-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 31847b67bec0 ("kconfig: allow use of relations other than (in)equality") it is possible to use relational operators in Kconfig statements. However, those operators give unexpected results when applied to bool/tristate values: (n < y) = y (correct) (m < y) = y (correct) (n < m) = n (wrong) This happens because relational operators process bool and tristate symbols as strings and m sorts before n. It makes little sense to do a lexicographical compare on bool and tristate values though. Documentation/kbuild/kconfig-language.txt states that expression can have a value of 'n', 'm' or 'y' (or 0, 1, 2 respectively for calculations). Let's make it so for relational comparisons with bool/tristate expressions as well and document them. If at least one symbol is an actual string then the lexicographical compare works just as before. Signed-off-by: Nicolas Pitre <nico@linaro.org> Acked-by: Randy Dunlap <rdunlap@infradead.org> Tested-by: Randy Dunlap <rdunlap@infradead.org> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> [rebased against OpenWrt kconfig, slightly reword commit message] (backported from upstream 9059a3493efea6492451430c7e2fa0af799a2abb) Signed-off-by: Jo-Philipp Wich <jo@mein.io> (cherry picked from commit 75dcaf3d23301da35eb4a6d0efc5ba5a0ed09850)
* config: regenerate *_shipped sourcesJonas Gorski2019-09-042-243/+302
| | | | | | | | | | | | | | The pregenerated `zconf.hash.c` and `zconf.lex.c` files have not been kept in sync with their respective `*.y` and `*.l` sources in the past causing our kconfig implementation to not recognize important kconfig grammer elements such as relational `<`, `<=`, `>` and `>=` operators. Fixes: 2d7e602381f3 ("scripts/config: sync with latest linux upstream") Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> [reword commit message] Signed-off-by: Jo-Philipp Wich <jo@mein.io> (cherry picked from commit 972123f1e056e6d443be1e4a11db09b5d2ef53da)
* scripts/ubinize-image.sh: fix buildbot breakagePetr Štetiar2019-08-011-1/+1
| | | | | | | | | | | | | | | New Docker based buildslaves install just bare minimum of packages, thus not having bsdmainutils package installed which provides `hexdump` utility, leading to the following build breakage on buildbots: ubinize-image.sh: 12: /builder/scripts/ubinize-image.sh: hexdump: not found So this patch simply replaces `hexdump` with `od` utility provided by coreutils package, which should be likely available. Co-authored-by: Yousong Zhou <yszhou4tech@gmail.com> Signed-off-by: Petr Štetiar <ynezz@true.cz> (cherry picked from commit c6d41c320c795b0bb9a9350c7d4b1ce55f25769a)
* build: add support to && in DEPENDSEneas U de Queiroz2019-05-311-2/+18
| | | | | | | | | | | | Adds support to && operand in DEPENDS. Also, fixes generation of || dependencies by scripts/package-metadata.pl. The precedence order from higher to lower is && then ||. Use of parentheses to change the order is not supported. As before, they are silently ignored. Use them for readability only. Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [DMARC removal]
* build: fix STAGING_DIR cleaning when filenames contain spacesJeffery To2019-05-171-0/+1
| | | | | | | | | | | | When looping through a package's STAGING_FILES_LIST (a list of file/directory paths delimited by newlines), if the path contains spaces, then the path will be split by the while loops, and the file/directory will not be deleted/removed. This sets the internal field separator to the newline only so that the entire path is considered when deleting/removing. Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* build: add a config option for enabling a testing version of the target kernelFelix Fietkau2019-05-112-5/+13
| | | | | | | If the target supports a newer kernel version that is not used by default yet, it can be enabled with this option Signed-off-by: Felix Fietkau <nbd@nbd.name>
* scripts/qemustart: add notes on adding new optionsYousong Zhou2019-04-261-0/+5
| | | | Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
* scripts/qemustart: fix network device emulationYousong Zhou2019-04-261-11/+17
| | | | | | | | We only enabled pcnet driver for malta machine, and x86/legacy target was supposed to only support e1000 model Cc: Petr Štetiar <ynezz@true.cz> Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
* scripts/qemustart: no network by default and enable with -nYousong Zhou2019-04-261-5/+7
| | | | | | | | | | This should make it easier to set up and possibly provide a "work out of the box" experience for most test usage. Typical wan&lan networking setup is only two characters argument away. Cc: Petr Štetiar <ynezz@true.cz> Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com> Acked-by: Hans Dedecker <dedeckeh@gmail.com>
* scripts/qemustart: fix usage with networking supportHans Dedecker2019-04-241-4/+4
| | | | | | | | | | Commit 8bf500eb79 added support for qemu usage without networking support but broke networking support as -n and -z do not work with unquoted argument; fix this by quoting the arguments. Fixes 8bf500eb79 Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
* build: switch default target from ar71xx to ath79Kevin Darbyshire-Bryant2019-04-111-1/+1
| | | | | | | | | | | | | ar71xx is in the process of being deprecated as a target accepting new devices. The replacement target for the same hardware is DTS based ath79. Switch the default build target selection from ar71xx to ath79. This is intended to encourage DTS takeup & support for ath79 and longer term will also aid kernel upstream support. Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
* scripts/qemustart: Allow specifying custom rootfs for maltaPetr Štetiar2019-04-081-0/+11
| | | | | | | | Currently it's not possible to test boot squashfs root images, so this patch now allows this use case as well. Cc: Yousong Zhou <yszhou4tech@gmail.com> Signed-off-by: Petr Štetiar <ynezz@true.cz>
* scripts/qemustart: Allow specifying custom kernel for x86Petr Štetiar2019-04-081-1/+9
| | | | | | | | Currently it's not possible to test boot squashfs root images, so this patch now allows this use case as well. Cc: Yousong Zhou <yszhou4tech@gmail.com> Signed-off-by: Petr Štetiar <ynezz@true.cz>
* scripts/qemustart: Allow usage without networkingPetr Štetiar2019-04-081-10/+31
| | | | | | | | | | | For basic tests it's not necessary to have the networking setup and this allows testing as a normal user as well, without root privileges. So this patch adds `--no-network` long option or `-n` short option, which allows starting QEMU without network. Cc: Yousong Zhou <yszhou4tech@gmail.com> Signed-off-by: Petr Štetiar <ynezz@true.cz>
* IB: fix generating .profile.mk for profiles without metadataDaniel Golle2019-03-271-1/+1
| | | | | | Fixes d6fa04a437 ("IB: include SUPPORTED_DEVICES in 'make info' output") Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* scripts/gen_image_generic.sh: fail on errorsStijn Tintel2019-03-271-1/+1
| | | | | | | | | | | The script always exits with value 0, even if some of the commands fail. This can potentially create broken, unbootable images, e.g. when make_ext4fs fails due to TARGET_KERNEL_PARTSIZE being too small for the kernel. Avoid this by failing the script when any command fails. Acked-by: Jo-Philipp Wich <jo@mein.io> Acked-by: Petr Štetiar <ynezz@true.cz> Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
* IB: include SUPPORTED_DEVICES in 'make info' outputDaniel Golle2019-03-112-0/+5
| | | | Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* ib: display whether profile comes with image metadataDaniel Golle2019-03-062-0/+3
| | | | | | | | Having image metadata (and signature) appended is a condition for semi-automated sysupgrade, hence IB needs to be able to tell which images will end up with metadata. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* scripts: make eva_ramboot.py offset configurableDavid Bauer2019-02-281-11/+19
| | | | | | | | | | | | The current eva_ramboot.py script is currently only compatible with Lantiq based AVM devices. For IPQ40xx devices, the offset needs to be changed. Also an alignment is not necessary here. Adjust the script to be able to pass an optional offset to load the image to. In case no offset is provided, the script behaves exactly as before this commit. Signed-off-by: David Bauer <mail@david-bauer.net>
* build: add helpers for generating QSDK sysupgrade compatible imagesPiotr Dymacz2019-02-251-0/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Qualcomm SDK (QSDK) sysupgrade compatible images for IPQ40xx, IPQ806x and IPQ807x use FIT format together with 'dumpimage' tool from U-Boot for verifying and extracting them. Based on 'images' sections names, corresponding mtd partitions are flashed. For example, in case of NOR-only boards, below mapping is used (section name -> mtd name): hlos* -> 0:HLOS rootfs* -> rootfs And for boards with NAND (kernel inside UBI): ubi* -> rootfs Above mappings come from unmodified QSDK sources and might be wrong for boards running custom or modified QSDK-based firmware. Some of vendors adjust them to meet their modified mtd layout or features like recovery or dual-image support. This adds simple script 'mkits-qsdk-ipq-image.sh' (based on 'mkits.sh') for generating FIT images tree source files, compatible with the QSDK sysupgrade format. Resulting images can be used for initial (factory -> OpenWrt) installation and would work both in CLI and GUI. The script is universal in a way it allows to include as many sections as needed. To make use of it, two generic/basic build recipes for NOR and NAND based boards are also included in 'image-commands.mk': Build/qsdk-ipq-factory-nand Build/qsdk-ipq-factory-nor Example usage for board with UBI in NAND: IMAGE/nand-factory.bin := append-ubi | qsdk-ipq-factory-nand Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
* scripts/qemustart: allow machine selection with new option --machineYousong Zhou2019-02-221-6/+12
| | | | | | | | | | This can be used to set machine options like highmem=off for running old armvirt/32 kernel lacking LPAE support with QEMU version 3.0 or later [1] Armv7 guest fails to boot with qemu-3.0.0-1, https://bugzilla.redhat.com/show_bug.cgi?id=1633328#c5 Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
* scripts: ipkg-make-index.sh: dereference symbolic linksJo-Philipp Wich2019-01-311-1/+1
| | | | | | | | | | Use `stat -L` instead of `ls -l` to follow symbolic links when obtaining the file size of .ipk archives. Without this change, the size of the symlink, not the size of the target file is encoded in the package index file. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* build: fix STAGING_DIR cleaning for packagesJeffery To2019-01-301-1/+1
| | | | | | | | | | | | | | | | This fixes two issues with cleaning package files from STAGING_DIR: * CleanStaging currently can only remove files and not directories. This changes CleanStaging to use clean-package.sh, which does remove directories. * Because of the way directories are ordered in the staging files list, clean-package.sh currently tries (and fails) to remove parent directories before removing subdirectories. This changes clean-package.sh to process the staging files list in reverse, so that subdirectories are removed first. Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* build: add a script for generating Linksys factory imagesOever González2019-01-261-0/+67
| | | | | | | | | | | | | This commit adds the 'Build/linksys-image' rule and the 'linksys-image.sh' script to the build system. This change is needed for generating factory images for the Linksys EA6350v3 device. Without this patch, only valid sysupgrade images can be generated. With this patch, users can flash the device without the need of physical access or disassembly. Signed-off-by: Ryan Pannell <ryan@osukl.com> Signed-off-by: Oever González <notengobattery@gmail.com>
* build: extend ABI_VERSION suffixing to providesJo-Philipp Wich2019-01-241-4/+10
| | | | | | | | | When a library package specifies additional provides, e.g. libncurses which provides libncursesw, we should also append the abi version suffix to each provide, since there may be more than one package providing the virtual library. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* scripts: ipkg-remove: handle existing .ipk files without SourceName fieldJo-Philipp Wich2019-01-211-0/+5
| | | | | | | | | | | | Package archives built before commit e6bcf1e4ac ("build: add ABI_VERSION to binary package names") lack the SourceName control file field which caused ipkg-remove to skip such archives. Add fallback code that matches the files by their basename followed by an underscore, similar to how the old cleanup code worked. Fixes: #2067 Signed-off-by: Jo-Philipp Wich <jo@mein.io>