فهرست منبع

convert mips to use new targethelp make target, useful to just show the help text after building

Waldemar Brodkorb 10 سال پیش
والد
کامیت
021fd36e08
6فایلهای تغییر یافته به همراه122 افزوده شده و 113 حذف شده
  1. 3 0
      Makefile
  2. 3 0
      mk/build.mk
  3. 8 20
      scripts/install-rb532.sh
  4. 3 0
      target/Makefile
  5. 3 1
      target/config/Config.in
  6. 102 92
      target/mips/Makefile

+ 3 - 0
Makefile

@@ -109,6 +109,9 @@ distclean cleandist:
 image: .prereq_done
 	@${GMAKE_INV} image
 
+targethelp: .prereq_done
+	@${GMAKE_INV} targethelp
+
 switch: .prereq_done
 	@${GMAKE_INV} switch
 

+ 3 - 0
mk/build.mk

@@ -190,6 +190,9 @@ toolchain/%: ${STAGING_TARGET_DIR}
 image:
 	$(MAKE) -C target image
 
+targethelp:
+	$(MAKE) -C target targethelp 
+
 switch:
 	if [ -f .config ];then \
 		echo "Saving configuration for target system: ${ADK_TARGET_SYSTEM} with arch: ${ADK_TARGET_ARCH}";\

+ 8 - 20
scripts/install-rb532.sh

@@ -30,16 +30,6 @@ else
 		printf "$2 is not a file, Exiting\n"
 		exit 1
 	fi
-	if [ -z $3 ];then
-		printf "Please give the kernel as third parameter\n"
-		exit 2
-	fi
-	if [ -f $3 ];then
-		printf "Installing $3 on $1\n"
-	else
-		printf "$3 is not a file, Exiting\n"
-		exit 1
-	fi
 	if [ -b $1 ];then
 		printf "Using $1 as CF disk for installation\n"
 		echo "WARNING: This will destroy all data on $1 - type Yes to continue!"
@@ -81,17 +71,8 @@ parted -s $1 unit cyl mkpart primary fat32 $rootsize $maxsize >/dev/null 2>&1
 parted -s $1 set 1 boot on >/dev/null 2>&1
 sfdisk --change-id $1 1 27 >/dev/null 2>&1
 sfdisk --change-id $1 3 88 >/dev/null 2>&1
-sleep 2
+sleep 1
 mkfs.ext4 -q -O ^huge_file ${1}2
-sync
-dd if=$3 of=${1}1 bs=2048 >/dev/null 2>&1
-if [ $? -eq 0 ];then
-	printf "Installation of kernel successful.\n"
-else
-	printf "Installation of kernel failed.\n"
-fi
-sync
-sleep 2
 tune2fs -c 0 -i 0 -m 1 ${rootpart} >/dev/null 2>&1
 if [ $? -eq 0 ];then
 	printf "Successfully disabled filesystem checks on ${rootpart}\n"
@@ -104,6 +85,13 @@ tmp=$(mktemp -d)
 mount -t ext4 ${rootpart} $tmp
 printf "Extracting install archive\n"
 tar -C $tmp -xzpf $2 
+dd if=$tmp/boot/kernel of=${1}1 bs=2048 >/dev/null 2>&1
+if [ $? -eq 0 ];then
+	printf "Installation of kernel successful.\n"
+	rm $tmp/boot/kernel
+else
+	printf "Installation of kernel failed.\n"
+fi
 printf "Fixing permissions\n"
 chmod 1777 $tmp/tmp
 chmod 4755 $tmp/bin/busybox

+ 3 - 0
target/Makefile

@@ -85,6 +85,7 @@ endif
 prepare: $(ADK_TARGET_ARCH)-prepare
 compile: $(ADK_TARGET_ARCH)-compile
 image: $(ADK_TARGET_ARCH)-imageclean $(ADK_TARGET_ARCH)-imageinstall
+targethelp: $(ADK_TARGET_ARCH)-targethelp
 install: $(ADK_TARGET_ARCH)-imageclean $(ADK_TARGET_ARCH)-install $(ADK_TARGET_ARCH)-imageinstall
 clean: $(ADK_TARGET_ARCH)-clean $(ADK_TARGET_ARCH)-imageclean
 
@@ -106,6 +107,8 @@ clean: $(ADK_TARGET_ARCH)-clean $(ADK_TARGET_ARCH)-imageclean
 %-install: %-compile
 	$(TRACE) target/$(patsubst %-install,%,$@)-install
 	$(MAKE) -C $(patsubst %-install,%,$@) install
+%-targethelp:
+	$(MAKE) -C $(patsubst %-targethelp,%,$@) targethelp
 %-imageinstall: %-imageprepare
 	$(TRACE) target/$(patsubst %-imageinstall,%,$@)-imageinstall
 	$(MAKE) -C $(patsubst %-imageinstall,%,$@) imageinstall

+ 3 - 1
target/config/Config.in

@@ -574,6 +574,7 @@ config ADK_TARGET_ROOTFS_INITRAMFS
 		ADK_LINUX_NATIVE
 	depends on !ADK_HARDWARE_VBOX
 	depends on !ADK_TARGET_SYSTEM_RASPBERRY_PI
+	depends on !ADK_TARGET_SYSTEM_MIKROTIK_RB532
 	select ADK_KERNEL_BLK_DEV_INITRD
 	help
 	  create an read-only initramfs system.
@@ -593,7 +594,7 @@ config ADK_TARGET_ROOTFS_INITRAMFS_PIGGYBACK
 		ADK_LINUX_X86 || \
 		ADK_LINUX_X86_64
 	depends on !ADK_HARDWARE_VBOX
-	select ADK_KERNEL_EXT2_FS
+	depends on !ADK_TARGET_SYSTEM_MIKROTIK_RB532
 	help
 	  create an read-only initramfs system.
 
@@ -674,6 +675,7 @@ config ADK_TARGET_ROOTFS_ISO
 
 config ADK_TARGET_ROOTFS_INITRAMFSARCHIVE
 	boolean "Archive usable for initramfs creation"
+	depends on !ADK_TARGET_SYSTEM_MIKROTIK_RB532
 	help
 	  Use this option if your planning to create a initramfs,
 	  useful for adk-test-framework.

+ 102 - 92
target/mips/Makefile

@@ -8,9 +8,94 @@ include $(TOPDIR)/mk/kernel-build.mk
 include $(TOPDIR)/mk/image.mk
 
 KERNEL:=$(LINUX_DIR)/$(ADK_TARGET_KERNEL)
-
 OSTRIP:=-R .reginfo -R .notes -R .note -R .comment -R .mdebug -R .note.gnu.build-id
 
+# target helper text
+ifeq ($(ADK_TARGET_FS),nfsroot)
+targethelp:
+	@echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
+	@echo 'The nfs root tarball is: ${FW_DIR}/${ROOTFSUSERTARBALL}'
+ifeq ($(ADK_TARGET_SYSTEM_FON_FON2100),y)
+	@echo 'Type the following in Redboot:'
+	@echo 'RedBoot> load $(TARGET_KERNEL)'
+	@echo 'RedBoot> go'
+endif
+ifeq ($(ADK_TARGET_SYSTEM_LEMOTE_YEELONG),y)
+	@echo 'Boot your Lemote Yeelong and type following commands in PMON:'
+	@echo 'PMON> ifaddr rtl0 <ip-address-client>'
+	@echo 'PMON> load tftp://<ip-address-server>/${TARGET_KERNEL}'
+	@echo 'PMON> g'
+endif
+endif
+ifeq ($(ADK_TARGET_FS),yaffs)
+targethelp:
+	@echo 'The root tarball is: ${FW_DIR}/${ROOTFSTARBALL}'
+	@echo 'Format your NAND with Routerboot, boot via NFS and'
+	@echo 'then install kernel and filesystem via:'
+	@echo 'adkinstall ${ROOTFSTARBALL}'
+endif
+ifeq ($(ADK_TARGET_FS),usb)
+targethelp:
+	@echo 'The root tarball is: ${FW_DIR}/${ROOTFSTARBALL}'
+ifeq ($(ADK_TARGET_SYSTEM_LEMOTE_YEELONG),y)
+	@echo "Startup the netbook and type del to enter PMON:"
+	@echo "PMON> load /dev/fs/ext2@usb0/boot/kernel"
+	@echo "PMON> g"
+endif
+endif
+ifeq ($(ADK_TARGET_FS),archive)
+targethelp:
+	@echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSTARBALL)"
+ifeq ($(ADK_HARDWARE_QEMU),y)
+	@echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
+	@echo "Use following command to create a QEMU Image:"
+	@echo "./scripts/create.sh qemu-${CPU_ARCH}.img $(FW_DIR)/$(ROOTFSTARBALL)"
+	@echo "Start qemu with following options:"
+	@echo 'qemu-system-${CPU_ARCH} -nographic -M malta -device e1000,netdev=adk0 -netdev user,id=adk0 -kernel $(FW_DIR)/$(TARGET_KERNEL) qemu-${CPU_ARCH}.img'
+endif
+ifeq ($(ADK_TARGET_SYSTEM_LEMOTE_YEELONG),y)
+	@echo "Startup the Lemote Yeelong and type del to enter PMON:"
+	@echo "PMON> load /dev/fs/ext2@wd0a/boot/kernel"
+	@echo "PMON> g root=/dev/sda1"
+endif
+ifeq ($(ADK_TARGET_SYSTEM_MIKROTIK_RB532),y)
+	@echo "Use following command to install it on CF card:"
+	@echo "sudo ./scripts/install-rb532.sh /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
+endif
+endif
+ifeq ($(ADK_TARGET_FS),initramfsarchive)
+targethelp:
+	@echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
+	@echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSUSERTARBALL)"
+endif
+ifeq ($(ADK_TARGET_FS),initramfs)
+targethelp:
+	@echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
+	@echo 'The initramfs image is: ${FW_DIR}/${INITRAMFS}'
+ifeq ($(ADK_HARDWARE_QEMU),y)
+	@echo "Start qemu with following command line:"
+	@echo 'qemu-system-${CPU_ARCH} -nographic -M malta -device e1000,netdev=adk0 -netdev user,id=adk0 -kernel $(FW_DIR)/$(TARGET_KERNEL) -initrd ${FW_DIR}/${INITRAMFS}'
+endif
+endif
+ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
+targethelp:
+	@echo 'The kernel+initramfs file is: $(FW_DIR)/${TARGET_KERNEL}'
+ifeq ($(ADK_HARDWARE_QEMU),y)
+	@echo "Start qemu with following command line:"
+	@echo 'qemu-system-${CPU_ARCH} -nographic -M malta -device e1000,netdev=adk0 -netdev user,id=adk0 -kernel $(FW_DIR)/$(TARGET_KERNEL)'
+endif
+endif
+ifeq ($(ADK_TARGET_FS),squashfs)
+targethelp:
+ifeq ($(ADK_TARGET_SYSTEM_BROADCOM_BCM47XX),y)
+	@echo 'You can flash the image via tftp:'
+	@echo 'tftp 192.168.1.1'
+	@echo 'tftp> binary'
+	@echo "tftp> put $(ROOTFSSQUASHFS) upgrade_code.bin"
+endif
+endif
+
+# image creation and kernel install
 ifeq ($(ADK_TARGET_SYSTEM_BROADCOM_BCM47XX),y)
 kernel-install:
 	${TARGET_CROSS}objcopy ${OSTRIP} -S ${LINUX_DIR}/vmlinuz.elf \
@@ -29,7 +114,6 @@ else
 	cp $@~ $@
 endif
 endif
-
 ifeq ($(ADK_TARGET_SYSTEM_LINKSYS_AG241),y)
 kernel-install:
 	${TARGET_CROSS}objcopy -S -O srec $(KERNEL) $(LINUX_DIR)/vmlinux.srec
@@ -38,18 +122,20 @@ kernel-install:
 	PATH='${TARGET_PATH}' addpattern -p AG3B -b -r 2.0 -i $(LINUX_DIR)/vmlinux.tmp \
 		-o $(BUILD_DIR)/$(TARGET_KERNEL) 2>/dev/null
 endif
-
 ifeq ($(ADK_TARGET_SYSTEM_MIKROTIK_RB532),y)
 kernel-install:
 	$(TARGET_CROSS)objcopy $(OSTRIP) -S $(KERNEL) $(BUILD_DIR)/$(TARGET_KERNEL)
+	@cp $(BUILD_DIR)/$(TARGET_KERNEL) $(FW_DIR)/${TARGET_KERNEL}
 endif
 ifeq ($(ADK_TARGET_SYSTEM_MIKROTIK_RB4XX),y)
 kernel-install:
 	$(TARGET_CROSS)objcopy $(OSTRIP) -S $(KERNEL) $(BUILD_DIR)/$(TARGET_KERNEL)
+	@cp $(BUILD_DIR)/$(TARGET_KERNEL) $(FW_DIR)/${TARGET_KERNEL}
 endif
 ifeq ($(ADK_TARGET_SYSTEM_FON_FON2100),y)
 kernel-install:
 	$(TARGET_CROSS)objcopy $(OSTRIP) -S $(KERNEL) $(BUILD_DIR)/$(TARGET_KERNEL)
+	@cp $(BUILD_DIR)/$(TARGET_KERNEL) $(FW_DIR)/${TARGET_KERNEL}
 
 ${BUILD_DIR}/${ROOTFSSQUASHFS}: ${BUILD_DIR}/root.squashfs
 	$(TARGET_CROSS)objcopy $(OSTRIP) -S $(LINUX_DIR)/vmlinux $(BUILD_DIR)/vmlinux.strip
@@ -60,120 +146,44 @@ endif
 ifeq ($(ADK_TARGET_SYSTEM_LEMOTE_YEELONG),y)
 kernel-install:
 	$(TARGET_CROSS)objcopy $(OSTRIP) -S $(KERNEL) $(BUILD_DIR)/$(TARGET_KERNEL)
+	@cp $(BUILD_DIR)/$(TARGET_KERNEL) $(FW_DIR)/${TARGET_KERNEL}
 endif
-ifeq ($(ADK_TARGET_SYSTEM_QEMU_MIPS),y)
-kernel-install:
-	$(TARGET_CROSS)objcopy $(OSTRIP) -S $(KERNEL) $(BUILD_DIR)/$(TARGET_KERNEL)
-endif
-ifeq ($(ADK_TARGET_SYSTEM_QEMU_MIPSEL),y)
+ifeq ($(ADK_HARDWARE_QEMU),y)
 kernel-install:
 	$(TARGET_CROSS)objcopy $(OSTRIP) -S $(KERNEL) $(BUILD_DIR)/$(TARGET_KERNEL)
+	@cp $(BUILD_DIR)/$(TARGET_KERNEL) $(FW_DIR)/${TARGET_KERNEL}
 endif
 
+# filesystem specific targets
 ifeq ($(ADK_TARGET_FS),nfsroot)
-imageinstall: kernel-install $(FW_DIR)/$(ROOTFSUSERTARBALL)
-	@cp $(BUILD_DIR)/$(TARGET_KERNEL) $(FW_DIR)/${TARGET_KERNEL}
-	@echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
-	@echo 'The nfs root tarball is: ${FW_DIR}/${ROOTFSUSERTARBALL}'
-ifeq ($(ADK_TARGET_SYSTEM_FON_FON2100),y)
-	@echo 'Type the following in Redboot:'
-	@echo 'RedBoot> load $(TARGET_KERNEL)'
-	@echo 'RedBoot> go'
-endif
-ifeq ($(ADK_TARGET_SYSTEM_LEMOTE_YEELONG),y)
-	@echo 'Boot your lemote and type following commands in PMON:'
-	@echo 'PMON> ifaddr rtl0 <ip-address-client>'
-	@echo 'PMON> load tftp://<ip-address-server>/${TARGET_KERNEL}'
-	@echo 'PMON> g'
-endif
+imageinstall: kernel-install $(FW_DIR)/$(ROOTFSUSERTARBALL) targethelp
 endif
 ifeq ($(ADK_TARGET_FS),yaffs)
-imageinstall: kernel-install $(FW_DIR)/$(ROOTFSTARBALL)
-	@echo 'The root tarball is: ${FW_DIR}/${ROOTFSTARBALL}'
-	@echo 'Format your NAND with Routerboot, boot via NFS and'
-	@echo 'then install kernel and filesystem via:'
-	@echo 'adkinstall ${ROOTFSTARBALL}'
+imageinstall: $(FW_DIR)/$(ROOTFSTARBALL) targethelp
 endif
 ifeq ($(ADK_TARGET_FS),archive)
-imageinstall: $(FW_DIR)/$(ROOTFSTARBALL)
-	@echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSTARBALL)"
-ifneq ($(ADK_HARDWARE_QEMU),)
-	@cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL)
-	@echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
-	@echo "Use following command to create a QEMU Image:"
-	@echo "./scripts/create.sh qemu-${CPU_ARCH}.img $(FW_DIR)/$(ROOTFSTARBALL)"
-	@echo "Start qemu with following options:"
-	@echo 'qemu-system-${CPU_ARCH} -nographic -M malta -device e1000,netdev=adk0 -netdev user,id=adk0 -kernel $(FW_DIR)/$(TARGET_KERNEL) qemu-${CPU_ARCH}.img'
-endif
-ifeq ($(ADK_TARGET_SYSTEM_LEMOTE_YEELONG),y)
-	@echo "Startup the netbook and type del to enter PMON:"
-	@echo "PMON> load /dev/fs/ext2@wd0a/boot/kernel"
-	@echo "PMON> g root=/dev/sda1"
-	@echo "The root parameter have to be changed."
-endif
-ifeq ($(ADK_TARGET_SYSTEM_MIKROTIK_RB532),y)
-	@cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL)
-	@echo "Use following command to install it on CF card:"
-	@echo "sudo ./scripts/install-rb532.sh /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL) $(FW_DIR)/$(TARGET_KERNEL)"
-endif
+imageinstall: $(FW_DIR)/$(ROOTFSTARBALL) targethelp
 endif
 ifeq ($(ADK_TARGET_FS),initramfsarchive)
-imageinstall: $(FW_DIR)/$(ROOTFSUSERTARBALL)
-	@cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL)
-	@echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
-	@echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSUSERTARBALL)"
+imageinstall: kernel-install $(FW_DIR)/$(ROOTFSUSERTARBALL) targethelp
 endif
 ifeq ($(ADK_TARGET_FS),initramfs)
-imageinstall: $(FW_DIR)/$(INITRAMFS)
-	@cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL)
-	@echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
-	@echo 'The initramfs image is: ${FW_DIR}/${INITRAMFS}'
-ifneq ($(ADK_HARDWARE_QEMU),)
-	@echo "Start qemu with following command line:"
-	@echo 'qemu-system-${CPU_ARCH} -nographic -M malta -device e1000,netdev=adk0 -netdev user,id=adk0 -kernel $(FW_DIR)/$(TARGET_KERNEL) -initrd ${FW_DIR}/${INITRAMFS}'
-endif
+imageinstall: kernel-install $(FW_DIR)/$(INITRAMFS) targethelp
 endif
 ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
-imageinstall: createinitramfs
+imageinstall: createinitramfs targethelp
 	@cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL)
-	@echo 'The kernel+initramfs file is: $(FW_DIR)/${TARGET_KERNEL}'
-ifneq ($(ADK_HARDWARE_QEMU),)
-	@echo "Start qemu with following command line:"
-	@echo 'qemu-system-${CPU_ARCH} -nographic -M malta -device e1000,netdev=adk0 -netdev user,id=adk0 -kernel $(FW_DIR)/$(TARGET_KERNEL)'
-endif
 endif
 ifeq ($(ADK_TARGET_FS),usb)
-imageinstall: $(FW_DIR)/$(ROOTFSTARBALL)
-	@echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSTARBALL)"
-ifeq ($(ADK_TARGET_SYSTEM_LEMOTE_YEELONG),y)
-	@echo "Startup the netbook and type del to enter PMON:"
-	@echo "PMON> load /dev/fs/ext2@usb0/boot/kernel"
-	@echo "PMON> g"
-endif
-endif
-ifeq ($(ADK_TARGET_FS),cf)
-imageinstall: kernel-install $(FW_DIR)/$(ROOTFSUSERTARBALL)
-	@cp $(BUILD_DIR)/$(TARGET_KERNEL) $(FW_DIR)/$(TARGET_KERNEL)
-	@echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
-	@echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSUSERTARBALL)"
-	@echo "Boot the board via network (tftp+nfsroot) and use adkinstall."
-	@echo "If you just want to update, use adkupdate."
+imageinstall: $(FW_DIR)/$(ROOTFSTARBALL) targethelp
 endif
 ifeq ($(ADK_TARGET_FS),squashfs)
-imageinstall: kernel-install ${BUILD_DIR}/${ROOTFSSQUASHFS}
+imageinstall: kernel-install ${BUILD_DIR}/${ROOTFSSQUASHFS} targethelp
 	@if [ $$($(STATCMD) ${BUILD_DIR}/${ROOTFSSQUASHFS}) -gt 3801088 ];then \
 		echo 'Image is too big!'; \
 	else \
 		${CP} ${BUILD_DIR}/${ROOTFSSQUASHFS} ${FW_DIR}/${ROOTFSSQUASHFS}; \
 		echo The image file is $(ROOTFSSQUASHFS); \
 	fi
-ifeq ($(ADK_TARGET_SYSTEM_FON_FON2100),y)
-	@echo The kernel file is $(TARGET_KERNEL)
-endif
-ifeq ($(ADK_TARGET_SYSTEM_BROADCOM_BCM47XX),y)
-	@echo 'You can flash the image via tftp:'
-	@echo 'tftp 192.168.1.1'
-	@echo 'tftp> binary'
-	@echo "tftp> put $(ROOTFSSQUASHFS) upgrade_code.bin"
-endif
 endif
+