[LEDE-DEV] [PATCH] build: Adds the ability to disable personal initramfs build for target device
Сергеев Сергей
adron at yapic.net
Thu Jun 16 12:59:27 PDT 2016
16.06.2016 22:15, Felix Fietkau пишет:
> On 2016-06-16 21:04, adron at yapic.net wrote:
>> From: Sergey Sergeev <adron at yapic.net>
>>
>> If KERNEL_INITRAMFS := in the target/linux/*/image/Makefile->Device/%NAME% section is set to ''
>> then personal initramfs file for this target device will not be created.
>> This var is similar to the Device/Build/kernel KERNEL_INSTALL :=
>>
>> Signed-off-by: Sergey Sergeev <adron at yapic.net>
> What devices do you need to disable initramfs for, and why?
>
> - Felix
>
>
Hello. I need a Mikrotik devices.
I'm working on support for normal(ubi + jffs2 for NAND and jffs2 for
NOR) sysupgrade system for all Mikrotiks devices.
This devices hasthree types of flash memory:
NAND flash with blocksize = 512b and oob = 16b and ecc
NAND flash with blocksize = 2048b and oob = 64b and ecc
NOR flash with blocksize = 1024b and without oob and ecc.
So i create 3 type of devices:
ifeq ($(SUBTARGET),mikrotik)
define Device/rb-common
LOADER_TYPE := elf
KERNEL_INSTALL :=
KERNEL = kernel-bin | lzma | loader-kernel | kernel2minor
$$(KERNEL2MINOR_ARGS)
KERNEL_INITRAMFS := kernel-bin | lzma | loader-kernel
IMAGES := sysupgrade.bin
IMAGE/sysupgrade.bin = append-rootfs | pad-rootfs | combined-image |
check-size $$$$(IMAGE_SIZE)
endef
define Device/NOR
$(Device/rb-common)
DEVICE_PROFILE := MikrotikDefault MikrotikNorFlash
BLOCKSIZE := 64k
IMAGE_SIZE := 16000k
KERNEL2MINOR_ARGS := -s 1024 -i 0 -p NOR01024 -e
endef
TARGET_DEVICES += NOR
define Device/NAND-2048b
$(Device/rb-common)
DEVICE_PROFILE := MikrotikDefault MikrotikNorFlash
BLOCKSIZE := 128k
IMAGE_SIZE := 32000k
KERNEL2MINOR_ARGS := -s 2048 -i 65536 -p NND02048 -e -c
endef
TARGET_DEVICES += NAND-2048b
define Device/NAND-512b
$(Device/rb-common)
DEVICE_PROFILE := MikrotikDefault MikrotikNorFlash
BLOCKSIZE := 16k
IMAGE_SIZE := 32000k
KERNEL2MINOR_ARGS := -s 512 -i 65536 -p NND00512 -e -c
endef
TARGET_DEVICES += NAND-512b
endif # ifeq ($(SUBTARGET),mikrotik)
and after do make I get the following files:
cat ./bin/ar71xx/md5sums
1f5415c6fa8c9ac86ca04ab8d2bb7eaa
*openwrt-ar71xx-mikrotik-vmlinux-initramfs.bin
74d5315b86e6d6285657097cb88330f1
*openwrt-ar71xx-mikrotik-vmlinux-initramfs.lzma
8426e37778fb487839553a66f3a5e760
*openwrt-ar71xx-mikrotik-vmlinux-initramfs.elf
a3d42d184fa59780fda2517062007064
*openwrt-ar71xx-mikrotik-NAND-2048b-initramfs-kernel.bin
a3d42d184fa59780fda2517062007064
*openwrt-ar71xx-mikrotik-NAND-512b-initramfs-kernel.bin
a3d42d184fa59780fda2517062007064
*openwrt-ar71xx-mikrotik-NOR-initramfs-kernel.bin
a3d42d184fa59780fda2517062007064
*openwrt-ar71xx-mikrotik-vmlinux-initramfs-lzma.elf
a518ab1349dd193f84ff3e00399ba4ce
*openwrt-ar71xx-mikrotik-vmlinux-initramfs.gz
a9ec346db00358038ed02d2c6759776d
*openwrt-ar71xx-mikrotik-NOR-squashfs-sysupgrade.bin
adb5078c694fe049d773c6d2c46e4b62
*openwrt-ar71xx-mikrotik-NAND-512b-squashfs-sysupgrade.bin
b2b003c9ade18a24e64d12de4d6396b2
*openwrt-ar71xx-mikrotik-NAND-2048b-squashfs-sysupgrade.bin
...
As you can see we have 4identicalfiles:
openwrt-ar71xx-mikrotik-NAND-2048b-initramfs-kernel.bin,
penwrt-ar71xx-mikrotik-NAND-512b-initramfs-kernel.bin,
openwrt-ar71xx-mikrotik-NOR-initramfs-kernel.bin,
openwrt-ar71xx-mikrotik-vmlinux-initramfs-lzma.elf
So i want to use KERNEL_INITRAMFS := and leave only one initramfs
file(openwrt-ar71xx-mikrotik-vmlinux-initramfs-lzma.elf) and three
sysupgrade files.
More information about the Lede-dev
mailing list