aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/gemini/image
Commit message (Collapse)AuthorAgeFilesLines
* target: use SPDX license identifiers on MakefilesAdrian Schmutzler2021-02-101-4/+2
| | | | | | Use SPDX license tags to allow machines to check licenses. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* treewide: provide global default for SUPPORTED_DEVICESAdrian Schmutzler2021-01-231-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The majority of our targets provide a default value for the variable SUPPORTED_DEVICES, which is used in images to check against the compatible on a running device: SUPPORTED_DEVICES := $(subst _,$(comma),$(1)) At the moment, this is implemented in the Device/Default block of the individual targets or even subtargets. However, since we standardized device names and compatible in the recent past, almost all targets are following the same scheme now: device/image name: vendor_model compatible: vendor,model The equal redundant definitions are a symptom of this process. Consequently, this patch moves the definition to image.mk making it a global default. For the few targets not using the scheme above, SUPPORTED_DEVICES will be defined to a different value in Device/Default anyway, overwriting the default. In other words: This change is supposed to be cosmetic. This can be used as a global measure to get the current compatible with: $(firstword $(SUPPORTED_DEVICES)) (Though this is not precisely an achievement of this commit.) Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* gemini: Add swap partition to DNS-313Linus Walleij2020-07-311-7/+13
| | | | | | | | | Sometimes when using the DNS-313 memory usage can peak and with a simple swap partition we can avoid running into the roof and invoking the OOM killer. Set this partition to 128MB (twice the size of the memory of the DNS-313). Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* treewide: drop DEVICE_TYPE when used as device variableAdrian Schmutzler2020-06-031-2/+0
| | | | | | | | | | | | | | | | | | | | | | | DEVICE_TYPE is a target/subtarget variable, and it does not have any effect when set in a device definition. It can only be set in a target's or subtarget's Makefile. Consequently, having it set anyway is misleading, so this drops all cases. This effectively reverts the following commits: 7a1497fd601d ("apm821xx: MBL: set DEVICE_TYPE to NAS") 5b4765c93a1b ("gemini: Classify Raidsonic NAS IB-4220-B as a NAS") cdc6de460bb4 ("gemini: D-Link DNS-313 is a NAS") For the following commit, the variable was set when adding device support: 27b2f0fc0fc5 ("kirkwood: add support for Iomega Storcenter ix2-200") Cc: Christian Lamparter <chunkeey@gmail.com> Cc: Sungbo Eo <mans0n@gorani.run> Cc: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* samba36: RemoveRosen Penev2020-05-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Samba 3.6 is completely unsupported, in addition to having tons of patches It also causes kernel panics on some platforms when sendfile is enabled. Example: https://github.com/gnubee-git/GnuBee_Docs/issues/45 I have reproduced on ramips as well as mvebu in the past. Samba 4 is an alternative available in the packages repo. cifsd is a lightweight alternative available in the packages repo. It is also a faster alternative to both Samba versions (lower CPU usage). It was renamed to ksmbd. To summarize, here are the alternatives: - ksmbd + luci-app-cifsd - samba4 + luci-app-samba4 Signed-off-by: Rosen Penev <rosenp@gmail.com> [drop samba36-server from GEMINI_NAS_PACKAGES, ksmbd rename + summary] Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
* gemini: Refine package listLinus Walleij2020-04-091-3/+4
| | | | | | | | | The NAS packages for Gemini doesn't even include the block-mount package. Augment the list to be based off the DEFAULT_PACKAGES.nas to make sure we extend on the essentials. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* gemini: dns313_gen_hdd_img.sh: switch to /bin/shRosen Penev2019-12-311-1/+1
| | | | | | | | Nothing here needs bash. Signed-off-by: Rosen Penev <rosenp@gmail.com> [add prefix to commit title] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* treewide: replace backticks by $(...) in gen_*_img.sh scriptsAdrian Schmutzler2019-09-291-1/+1
| | | | | | | | This replaces deprecated backticks by more versatile $(...) syntax. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> [decapitalized patch subject at submitter's request] Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* gemini: image: fix race condition when building copy-kernel.binYousong Zhou2019-09-112-8/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | Make treat copy-kernel.o as intermediate and delete it when it's no longer needed. This can fail when the same submake was triggered multiple times for different devices. arm-openwrt-linux-muslgnueabi-as -k -o copy-kernel.o copy-kernel.S export MAKEFLAGS= ;make -w -C copy-kernel CROSS_COMPILE=arm-openwrt-linux-muslgnueabi- arm-openwrt-linux-muslgnueabi-objcopy -O binary -S copy-kernel.o copy-kernel.bin make[5]: Entering directory '/builder/shared-workdir/build/target/linux/gemini/image/copy-kernel' arm-openwrt-linux-muslgnueabi-objcopy -O binary -S copy-kernel.o copy-kernel.bin rm copy-kernel.o make[5]: Leaving directory '/builder/shared-workdir/build/target/linux/gemini/image/copy-kernel' # "App" partition is the rootfs arm-openwrt-linux-muslgnueabi-objcopy: 'copy-kernel.o': No such file Makefile:27: recipe for target 'copy-kernel.bin' failed make[5]: Leaving directory '/builder/shared-workdir/build/target/linux/gemini/image/copy-kernel' make[5]: *** [copy-kernel.bin] Error 1 Makefile:244: recipe for target '/builder/shared-workdir/build/build_dir/target-arm_fa526_musl_eabi/linux-gemini/tmp/openwrt-gemini-storlink_sl93512r-ext4-factory.bin' failed make[4]: *** [/builder/shared-workdir/build/build_dir/target-arm_fa526_musl_eabi/linux-gemini/tmp/openwrt-gemini-storlink_sl93512r-ext4-factory.bin] Error 2 With this change, output files are directed to $(KDIR) Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com> Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
* gemini: Enable flash boot on reference design typeLinus Walleij2019-08-171-8/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The flash layout on the Storlink reference design for Gemini is using 2 MB flash for the kernel, and it also insists on overwriting the partition table with default values on every boot. The same is true for the SQ201. This poses a problem on recent OpenWrt firmware as the base zImage is bigger than 2 MB. At the same time there is a ramdisk partition of 6 MB that we don't really need. The partition table looks like this: Creating 7 MTD partitions on "30000000.flash": 0x000000000000-0x000000016000 : "BOOT" 0x000000120000-0x000000320000 : "Kern" 0x000000320000-0x000000920000 : "Ramdisk" 0x000000920000-0x000000f20000 : "Application" 0x000000f20000-0x000000f40000 : "VCTL" 0x000000f40000-0x000000fe0000 : "CurConf" 0x000000fe0000-0x000001000000 : "FIS directory" On boot the "Kern" partition is copied to RAM @0x01600000 and the "Ramdisk" partition is copied to RAM @0x00800000. Then the kernel is executed. The idea with this patch is to extend the "Kern" partition with the "Ramdisk" partition to get a full 8 MB to use for the kernel. Then we put the OpenWrt JFFS2 rootfs inside the "Application" partition. We create a small assembly loop that we prepend to the "Kern" image that will copy the "Kern" from 0x0160000 and the "Ramdisk" from 0x00800000 and put them in consecutive space at 0x00400000 and execute it from there, using "Application" as rootfs. We generate 3 main files: - zImage - contains the assembly bootstrap loop and the first part of the generated kernel image - rd.gz - contains the second part of the generated kernel image - hddapp.tgz - contains the root filesystem On the SQ201 I flash these manually using the native boot loader PLATO, "Y" alternative for the zImage, "R" for the rd.gz image and "A" for hddapp.tgz. This works fine and I can now boot to prompt on the SQ201 with nothing but flash. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* gemini: Add copy-kernel utility packageLinus Walleij2019-08-173-0/+78
| | | | | | | | | | | This package just contains a small Gemini-only assembler bootstrap loop to copy the kernel from the two fragments (previously zImage at 0x01600000 and initramdisk at 0x00800000) into one big zImage of up to 8 MB at 0x00400000. It will be built on demand from the Gemini image Makefile. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* gemini: split up DEVICE_TITLEMoritz Warning2019-08-021-7/+14
| | | | | | DEVICE_TITLE is split up into DEVICE_VENDOR, DEVICE_MODEL and DEVICE_VARIANT Signed-off-by: Moritz Warning <moritzwarning@web.de>
* gemini: Add SL93512r missing ImageInfo fileLinus Walleij2019-07-071-0/+18
| | | | | | | | | | | Somehow I missed to add the magical image cooking file for the SL93512r. Fix it. Fixes: 18e2053becb8 ("gemini: Add StorLink SL93512r images") Reported-by: Christian Lamparter <chunkeey@gmail.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [added Fixes, changed subject]
* gemini: Fix device name for StorLink SL93512rAdrian Schmutzler2019-07-071-1/+1
| | | | | | | | | This has been reported by Chen Minqiang (@ptpt52). Reported-by: Chen Minqiang <ptpt52@gmail.com> Fixes: 18e2053becb8 ("gemini: Add StorLink SL93512r images") Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [Added tags]
* gemini: Add StorLink SL93512r imagesLinus Walleij2019-07-011-7/+17
| | | | | | | | | | | This adds image generation for the StorLink reference design SL93512r. This board is now supported upstream in kernel v4.19. As this image structure is identical to SQ201 and Raidsonic, we simply refer to this as "storlink-reference" from now on. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* gemini: Drop switch kmod and swconfigLinus Walleij2019-07-011-1/+0
| | | | | | | | | The DIR-685 needs this module compiled in for safety (it is facing the LAN ports) and it is now (as of kernel v4.19) using the DSA switch architecture so swconfig is not needed. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* gemini: Support sysupgrade on DIR-685Linus Walleij2019-05-231-1/+3
| | | | | | | | | | | | | This makes sysupgrade work on the D-Link DIR-685 after initial factory install. We create the platform.sh script to support sysupgrade on more targets as we move on with sysupgrade support. Cc: Petr Štetiar <ynezz@true.cz> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Petr Štetiar <ynezz@true.cz> [cleanup in platform.sh, removed superfluous SUPPORTED_DEVICES]
* gemini: Classify Raidsonic NAS IB-4220-B as a NASChristian Lamparter2019-03-251-0/+1
| | | | Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* gemini: D-Link DNS-313 is a NASChristian Lamparter2019-03-251-0/+1
| | | | Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* gemini: Generate padded kernel+rootfs images for DIR-685Linus Walleij2019-03-131-3/+20
| | | | | | | | | | | | | | | | | | | | | We currently generate a kernel that boots from the harddrive in the DIR-685. That's not how we usually do things, so let's augment it to boot from flash and mount the rootfs using squashfs and JFFS2 like everyone else. Partition splitting only work when the partitions are inside of a "partitions" node which is why we have a patch like this (submitted upstream). Another patch drops the rootfs arguments and renames the firmware partition while adding the compatible "wrg" to it so the WRGG parser will kick in. Factory image was tested by bravely reflashing the DIR-685 from stock firmware using the web UI and the serial console boot loader. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* gemini: Generate harddisk image for DNS-313Linus Walleij2019-02-202-6/+49
| | | | | | | | | | | | | | | | | | | | | | This makes OpenWrt build an Ext2+Ext4 partitioned image for the D-Link DNS-313 with two blank partitions, a boot partition on /dev/sda3 and a rootfs partition on /dev/sda4. This uses the methods already used in apm821xx including the tricks to convert the generated Ext2 filesystem partition to version 1 so that the firmware bootloader will properly recognize it. We patch a bit around the build files to make sure we get the rootfs size set and that genext2fs is properly built. Tested on the D-Link DNS-313. Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [Fixing and tricksing] Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* gemini: Name binary "bootpart.tar.gz"Linus Walleij2019-02-141-2/+2
| | | | | | | | | | This factory binary i supposed to actually be unzipped and untarred by the user as part of the installation process (this NAS boots from harddisk), so name it "bootpart.tar.gz" and not "factory.bin" so it is helpful for users. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* gemini: dlink-dir-685: fix rt2800-pci package nameChristian Lamparter2019-01-261-1/+1
| | | | | | The package is now called kmod-rt2800-pci. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* gemini: add EOD marker to rootfs imagesMathias Kresin2019-01-261-1/+2
| | | | | | | | | With 6409b159e8b8 ("gemini: switch to 4.14") the EOF marker were dropped from the rootfs images. Without the marker the rootfs_data partition can't be created and it isn't possible to permanently store any configuration changes. Signed-off-by: Mathias Kresin <dev@kresin.me>
* gemini: fix ITian Square One SQ201 package selectionMathias Kresin2019-01-261-1/+1
| | | | | | | All kernel modules are prefixed with kmod-. Add the prefix to include the desired packages. Signed-off-by: Mathias Kresin <dev@kresin.me>
* gemini: replace date placeholderMathias Kresin2019-01-261-0/+2
| | | | | | | | | | Replace the data placerholder in ImageInfo-itian_sq201 in a reproducible way. The code for the replace was accidentality dropped in 5bac6238959 ("gemini: unify and fix ib-nas4220b and sq201 image creation") Signed-off-by: Mathias Kresin <dev@kresin.me>
* gemini: drop Teltonika RUT1xx artifactsMathias Kresin2019-01-261-7/+0
| | | | | | | | Support for the Teltonika RUT1xx was added with the switch to kernel 4.4. Hidding such changes in a kernel switch commit is the wrong way and the support for the Teltonika RUT1xx is pretty much incomplete. Signed-off-by: Mathias Kresin <dev@kresin.me>
* gemini: add wiligear image build codeMathias Kresin2019-01-261-2/+23
| | | | | | | | | | | | | | | | | They were dropped with 6409b159e8b8 ("gemini: switch to 4.14") without any explaination. The image generation is disabled for now as it would break the build for the target. The mkfwimage2 call need to be adjusted to reflect the real size of kernel and rootfs. Nevertheless, add the required code to give interested parties a chance to fix the remaining issues. The dts would need to use the ecoscentric,redboot-fis-partitions partition parser to get the correct partition offsets and size. It's expected that the OEM firmware adjusts the on flash partition table with the values defined in the image header. Signed-off-by: Mathias Kresin <dev@kresin.me>
* gemini: fix alphabetical orderMathias Kresin2019-01-261-10/+10
| | | | | | Reorder the image recipes to keep the alphabetical order. Signed-off-by: Mathias Kresin <dev@kresin.me>
* gemini: use dts compatible based image filenamesMathias Kresin2019-01-263-15/+21
| | | | | | | | Use an output image filename based on the compatible string from the dts files. This way it is way easier to get for which board an image is intended. Signed-off-by: Mathias Kresin <dev@kresin.me>
* gemini: drop unnecessary image build default variablesMathias Kresin2019-01-261-3/+0
| | | | | | | They are either not required, set to an earlier set default value or defined due to target features. Signed-off-by: Mathias Kresin <dev@kresin.me>
* gemini: drop unnecessary imagesMathias Kresin2019-01-261-4/+1
| | | | | | | | | The root filesystem is already part of the factory image and most likely not required at all. The same applies to the kernel images. Signed-off-by: Mathias Kresin <dev@kresin.me>
* gemini: all images are factory imagesMathias Kresin2019-01-261-6/+6
| | | | | | | There is no support for sysupgrade in gemini, hence all images are only suitable for an installation via bootloader or oem firmware. Signed-off-by: Mathias Kresin <dev@kresin.me>
* gemini: follow common pattern for temp dir namingMathias Kresin2019-01-261-8/+10
| | | | | | | | For temporary directories <imagename>.tmp is a common pattern in image build code across the tree. Use it for the nas4220b/sq201 recipe as well. Signed-off-by: Mathias Kresin <dev@kresin.me>
* gemini: use existing build code where possibleMathias Kresin2019-01-261-2/+2
| | | | | | | Use the existing image build recipes in favour of introducing deplicate shell code. Signed-off-by: Mathias Kresin <dev@kresin.me>
* gemini: make all tar files more reproducibleMathias Kresin2019-01-261-3/+5
| | | | | | | Force a fixed sorting and use the parameters to create reproducible archives for all tar invocations. Signed-off-by: Mathias Kresin <dev@kresin.me>
* gemini: build images in temporary directoriesMathias Kresin2019-01-261-11/+13
| | | | | | | Create files in temporary directories within the build directory instead manipulating files in the (final) output directory. Signed-off-by: Mathias Kresin <dev@kresin.me>
* gemini: don't hardcode image filenamesMathias Kresin2019-01-261-6/+8
| | | | | | | Use the existing image build code mechanisms to specify the image output filename. Signed-off-by: Mathias Kresin <dev@kresin.me>
* gemini: fix parallel buildMathias Kresin2019-01-261-0/+1
| | | | | | | | | | | | Due to the missing PROFILES all images are build, regardless of the selected (or currently processed in case of a multi profile build). Because of the race condition builds with eight parallel jobs fail, which can be seen on the build bots as well. Add the PROFILES variable for now, till the root cause is identified. Signed-off-by: Mathias Kresin <dev@kresin.me>
* gemini: unify and fix ib-nas4220b and sq201 image creationChristian Lamparter2019-01-242-34/+25
| | | | | | | | | | | | | Both Build/sq201-images and Build/nas4220b-images scripts are very similar. This patch unifies both methods at the cost of renaming the produced sysupgrade file names, but with the benifit of creating better reproducible files. The patch also fixes a race in parallel builds in which case the ImageInfo of one device could end up in both sysupgrade files. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* gemini: lazy set IMAGE_NAMEChristian Lamparter2019-01-241-1/+1
| | | | | | | | | | | Currently, IMAGE_NAME is expanded at declaration time and this causes strange filename in the builder's logs: |cp: cannot stat '[...]/openwrt-gemini-dlink-dns-313-.': No such file or directory |cp: cannot stat '[...]/openwrt-gemini-nas4220b-.': No such file or directory |[...] Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* gemini: Fix up image generationLinus Walleij2018-10-201-6/+10
| | | | | | | | | | | | | | | I noticed that the image generator for the Gemini generates some 10+ MB files for the second (application) partition. This is just wrong. The first 6144K partition named initramfs easily fits OpenWRTs squashfs,jffs2 overlayed partitions with nice headroom for storing configuration files. Generate a blank partition for the hddapp.tgz file and delete it after generating the firmware image - when performing updates manually you just want the "rd.z" file around anyways. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* gemini: Break out USB to packagesLinus Walleij2018-10-201-1/+1
| | | | | | | | | | | | This creates a new kernel package for the fotg210 host controller and uses that with the gemini to shrink the kernel. The SQ201 needs the USB2 PCI package as well. The build system required me to make kernel_oldconfig beofore it would build without errors so some minor unrelated Kconfig entries are changed. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* gemini: Cook SQ201 imagesLinus Walleij2018-06-182-0/+35
| | | | | | | | | This generates the "rd.gz" and "hddapp.tgz" that doesn't contain anything of the sort but rather the OpenWRT rootfs. It works the same way as how we generate the same layout for the NAS4220b. For some reason the ImageInfo file is different for the SQ201. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* gemini: Add appropriate Wireless kernel modulesLinus Walleij2018-06-181-2/+3
| | | | | | | | | | | | The D-Link DIR-685 has a RealTek RT2880 mini-PCI card in a slot. Activate the appropriate kernel module. The Square One SQ201 has a Ralink RT61-based mini-PCI card. Activate the appropriate kernel modules. This fixes the previous error just activating the firmware: the kernel module will bring in the firmware it needs. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* gemini: Cook a WRGG firmware imageLinus Walleij2018-06-181-2/+10
| | | | | | | | | This makes the Gemini build a WRGG-type firmware update image for the DIR-685. This should hopefully install the kernel from the web firmware upgrade API on the product switching it permanently to use OpenWRT. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* gemini: create zImage for DIR-685Linus Walleij2018-05-141-3/+8
| | | | Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* gemini: fix hard disk boot on D-Link devicesRoman Yeryomin2018-05-051-7/+1
| | | | | | | | | | | | | | | | | | | | | | | Since the D-Link devices boot from hard disk we need to add the following changes to Gemini: - Supply a bootarg in the device tree so we can boot from the right partition (/dev/sda4 on DNS-313) - Disable forced command line in config so the kernel picks up the right bootargs from the device tree - Enable EXT4 in the config as this is used for rootfs else we get nowhere, we cannot load this as a module because, well, it is supposed to be loaded from the root partition (chicken and egg problem). - Enable jbd2 and mbcache (needed by ext4) Also clean out the premature attempts to dynamically modify the command line in the Image makefile: we should pass this with the device tree bootargs instead, it works much better. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Roman Yeryomin <roman@advem.lv>
* gemini: add rtl8366rb to dir-685 boardRoman Yeryomin2018-05-051-1/+2
| | | | Signed-off-by: Roman Yeryomin <roman@advem.lv>
* gemini: switch to 4.14Roman Yeryomin2018-05-051-61/+104
| | | | | | | | | | | | | This introduces Device/ infrastructure and images for all boards available upstream. Changes from Linus submitted version: - fix Raidsonic image generation - remove redundant (old) image generation - remove redundant header tool for dns313 board Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Roman Yeryomin <roman@advem.lv>