1 # SPDX-License-Identifier: GPL-2.0-only
3 # Copyright (C) 2006-2016 OpenWrt.org
5 include $(TOPDIR
)/rules.mk
6 include $(INCLUDE_DIR
)/image.mk
8 USB1_PACKAGES
:= kmod-usb-ohci
9 USB2_PACKAGES
:= $(USB1_PACKAGES
) kmod-usb2
12 $(MAKE
) -C lzma-loader
clean
16 # Optimized LZMA compression (with dictionary), handled by lzma-loader.
17 cat
$(KDIR
)/vmlinux |
$(STAGING_DIR_HOST
)/bin
/lzma e
-si
-so
-eos
-lc1
-lp2
-pb2
> $(KDIR
)/vmlinux.lzma
19 # Less optimal LZMA compression (no dictionary), handled by CFE.
20 $(STAGING_DIR_HOST
)/bin
/lzma e
-so
-d16
$(KDIR
)/vmlinux
> $(KDIR
)/vmlinux-nodictionary.lzma
22 gzip
-nc9
$(KDIR
)/vmlinux
> $(KDIR
)/vmlinux.gz
23 ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS
),)
24 cat
$(KDIR
)/vmlinux-initramfs |
$(STAGING_DIR_HOST
)/bin
/lzma e
-si
-so
-eos
-lc1
-lp2
-pb2
> $(KDIR
)/vmlinux-initramfs.lzma
25 $(STAGING_DIR_HOST
)/bin
/lzma e
-so
-d16
$(KDIR
)/vmlinux-initramfs
> $(KDIR
)/vmlinux-initramfs-nodictionary.lzma
27 rm -f
$(KDIR
)/loader.gz
28 $(MAKE
) -C lzma-loader \
32 echo
-ne
"\\x00" >> $(KDIR
)/loader.gz
34 echo
-ne
'\xde\xad\xc0\xde' > $(KDIR
)/fs_mark
35 $(call prepare_generic_squashfs
,$(KDIR
)/fs_mark
)
38 define trxalign
/jffs2-128k
39 -a
0x20000 -f
$(KDIR
)/root.
$(1)
41 define trxalign
/jffs2-64k
42 -a
0x10000 -f
$(KDIR
)/root.
$(1)
44 define trxalign
/squashfs
45 -a
1024 -f
$(1) $(if
$(2),-f
$(2)) -a
0x10000 -A
$(KDIR
)/fs_mark
48 #################################################
50 #################################################
52 define Build
/trx-with-loader
53 $(STAGING_DIR_HOST
)/bin
/trx \
56 -f
$(KDIR
)/loader.gz \
58 $(call trxalign
/$(FILESYSTEM
),$@
)
62 define Build
/trx-v2-with-loader
63 $(STAGING_DIR_HOST
)/bin
/trx \
67 -f
$(KDIR
)/loader.gz \
68 -f
$(KDIR
)/vmlinux.lzma \
69 $(call trxalign
/$(FILESYSTEM
),$@
,$@.pattern
)
73 define Build
/trx-without-loader
74 $(STAGING_DIR_HOST
)/bin
/trx \
78 $(call trxalign
/$(FILESYSTEM
),$@
)
83 $(STAGING_DIR_HOST
)/bin
/asustrx
-p
$(PRODUCTID
) -i
$@
-o
$@.new
87 define Build
/edimax-bin
88 $(STAGING_DIR_HOST
)/bin
/trx2edips
$@
$@.new
92 define Build
/huawei-bin
93 dd if
=/dev
/zero of
=$@.new bs
=92 count
=1
94 echo
-ne
'HDR0\x08\x00\x00\x00' >> $@.new
99 define Build
/linksys-bin
100 $(STAGING_DIR_HOST
)/bin
/addpattern
-4 -p
$(DEVICE_ID
) -v v
$(VERSION
) $(if
$(SERIAL
),-s
$(SERIAL
)) -i
$@
-o
$@.new
104 define Build
/linksys-pattern-partition
105 $(STAGING_DIR_HOST
)/bin
/addpattern
-5 -p
$(DEVICE_ID
) -v v
$(VERSION
) $(if
$(SERIAL
),-s
$(SERIAL
)) -i
/dev
/null
-o
$@.pattern
108 define Build
/motorola-bin
109 $(STAGING_DIR_HOST
)/bin
/motorola-bin
-$(MOTOROLA_DEVICE
) $@
$@.new
113 define Build
/prepend-with-elf
115 dd if
=$(KDIR
)/loader.elf of
=$@ bs
=131072 conv
=sync
119 define Build
/tailed-bin
120 echo
$(BIN_TAIL
) >> $@
123 define Build
/usrobotics-bin
124 $(STAGING_DIR_HOST
)/bin
/trx2usr
$@
$@.new
128 #################################################
130 #################################################
132 DEVICE_VARS
+= PRODUCTID
133 DEVICE_VARS
+= DEVICE_ID VERSION SERIAL
134 DEVICE_VARS
+= NETGEAR_BOARD_ID NETGEAR_REGION
135 DEVICE_VARS
+= MOTOROLA_DEVICE
136 DEVICE_VARS
+= BIN_TAIL
138 define Device
/Default
140 IMAGE_NAME
= $$(IMAGE_PREFIX
)-$$(1).
$$(2)
141 KERNEL_NAME
= vmlinux.lzma
142 KERNEL_INITRAMFS_NAME
= vmlinux-initramfs.lzma
143 FILESYSTEMS
:= $(FS_64K
)
145 IMAGE
/trx
:= append-rootfs | trx-with-loader
148 define Device
/standard
149 DEVICE_TITLE
:= Image with LZMA loader and LZMA compressed kernel
152 define Device
/standard-noloader-gz
153 DEVICE_TITLE
:= Image with gzipped kernel
154 KERNEL_NAME
= vmlinux.gz
155 IMAGE
/trx
:= append-rootfs | trx-without-loader
158 define Device
/standard-noloader-nodictionarylzma
159 DEVICE_TITLE
:= Image with LZMA compressed kernel matching CFE decompressor
160 KERNEL_NAME
= vmlinux-nodictionary.lzma
161 IMAGE
/trx
:= append-rootfs | trx-without-loader
165 DEVICE_VENDOR
:= ASUS
167 IMAGE
/trx
:= append-rootfs | trx-with-loader | asus-trx
170 define Device
/linksys
171 DEVICE_VENDOR
:= Linksys
173 IMAGE
/bin
:= append-rootfs | trx-with-loader | linksys-bin
176 define Device
/motorola
177 DEVICE_VENDOR
:= Motorola
179 IMAGE
/bin
:= append-rootfs | trx-with-loader | motorola-bin
182 define Device
/netgear
183 DEVICE_VENDOR
:= NETGEAR
185 IMAGE
/chk
:= append-rootfs | trx-with-loader | netgear-chk
188 #################################################
190 #################################################
192 include $(SUBTARGET
).mk
194 #################################################
195 # Shared BuildImage defines
196 #################################################
198 define Image
/Build
/Initramfs
199 $(STAGING_DIR_HOST
)/bin
/trx \
201 -o
$(BIN_DIR
)/$(IMG_PREFIX
)-initramfs.trx \
202 -f
$(KDIR
)/loader.gz \
203 -f
$(KDIR
)/vmlinux-initramfs.lzma
204 $(STAGING_DIR_HOST
)/bin
/trx \
206 -o
$(BIN_DIR
)/$(IMG_PREFIX
)-initramfs-noloader-nodictionary.trx \
207 -f
$(KDIR
)/vmlinux-initramfs-nodictionary.lzma
210 # $(1): filesystem type.
212 # TODO: Move it to Device/*
213 ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS
),)
214 $(call Image
/Build
/Initramfs
)
218 $(eval
$(call BuildImage
))