瀏覽代碼

add pregenerated core.img, there is no portable way to do it right now

Waldemar Brodkorb 10 年之前
父節點
當前提交
599982c916

+ 0 - 33
package/grub-bin/Makefile

@@ -1,33 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include ${TOPDIR}/rules.mk
-
-# compiled with i486 toolchain, statically linked with uClibc
-# cross-compiling is difficult, so provide a binary package
-PKG_NAME:=		grub-bin
-PKG_VERSION:=		1.98
-PKG_RELEASE:=		2
-PKG_MD5SUM:=		50dbe739776f904c318be05faf1d7ce5
-PKG_DESCR:=		GRUB2 bootloader (binary package)
-PKG_SECTION:=		boot
-PKG_SITES:=		http://openadk.org/distfiles/
-PKG_URL:=		http://www.gnu.org/software/grub
-
-PKG_ARCH_DEPENDS:=	x86 x86_64
-
-PKG_CFLINE_GRUB_BIN:=	select BUSYBOX_FEATURE_STAT_FORMAT@
-PKG_CFLINE_GRUB_BIN+=	depends on !ADK_TARGET_ROOTFS_INITRAMFS_PIGGYBACK && !ADK_TARGET_ROOTFS_INITRAMFS
-
-include ${TOPDIR}/mk/package.mk
-
-$(eval $(call PKG_template,GRUB_BIN,grub-bin,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-
-CONFIG_STYLE:=		manual
-BUILD_STYLE:=		manual
-INSTALL_STYLE:=		manual
-
-do-install:
-	${CP} ${WRKBUILD}/* ${IDIR_GRUB_BIN}/
-
-include ${TOPDIR}/mk/pkg-bottom.mk

+ 18 - 8
package/grub/Makefile

@@ -5,9 +5,9 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=		grub
 PKG_VERSION:=		2.00
-PKG_RELEASE:=		4
+PKG_RELEASE:=		5
 PKG_MD5SUM:=		e927540b6eda8b024fb0391eeaa4091c
-PKG_DESCR:=		GRUB2 bootloader (source package)
+PKG_DESCR:=		GRUB2 bootloader
 PKG_SECTION:=		boot
 PKG_BUILDDEP:=		bison-host qemu-host
 PKG_URL:=		http://www.gnu.org/software/grub
@@ -16,6 +16,8 @@ PKG_SITES:=		ftp://ftp.gnu.org/gnu/grub/
 PKG_ARCH_DEPENDS:=	x86 x86_64 mips
 PKG_NOPARALLEL:=	1
 
+PKG_SUBPKGS:=		GRUB GRUB_TOOLS
+
 PKG_CHOICES_GRUB:=	PC EFI
 PKGCD_PC:=		build for PC BIOS
 PKGCD_EFI:=		build for EFI
@@ -23,7 +25,10 @@ PKGCD_EFI:=		build for EFI
 include $(TOPDIR)/mk/package.mk
 
 $(eval $(call PKG_template,GRUB,grub,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+$(eval $(call PKG_template,GRUB_TOOLS,grub-tools,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
 
+# core.img is generated via
+# grub-mkimage -O ${GRUB_ARCH} -o core.img -c embed.cfg ${GRUB_MODULES}
 GRUB_MODULES:=		ext2 part_msdos biosdisk
 
 ifeq ($(ADK_PACKAGE_GRUB_PC),y)
@@ -35,11 +40,8 @@ GRUB_ARCH:=		x86_64-efi
 CONFIGURE_ARGS+=	--with-platform=efi
 endif
 
-TARGET_CFLAGS+=         -static
-TARGET_LDFLAGS+=        -static
 CONFIGURE_ARGS+=	--disable-grub-mkfont \
 			--enable-efiemu=no \
-			--enable-liblzma=no \
 			--enable-device-mapper=no \
 			--enable-libzfs=no \
 			--disable-werror
@@ -49,8 +51,16 @@ grub-install:
 	${INSTALL_DIR} $(IDIR_GRUB)/boot/grub/${GRUB_ARCH}
 	${CP} ${WRKINST}/usr/lib/grub/${GRUB_ARCH}/*{mod,lst,img} \
 		$(IDIR_GRUB)/boot/grub/${GRUB_ARCH}/
-	PATH='${HOST_PATH}' qemu-i386 ${WRKBUILD}/grub-mkimage \
-		-o $(IDIR_GRUB)/boot/grub/core.img -O ${GRUB_ARCH} \
-		-c ./files/embed.cfg ${GRUB_MODULES}
+	${CP} ./files/core.img.${GRUB_ARCH} \
+		$(IDIR_GRUB)/boot/grub/core.img
+
+grub-tools-install:
+	${INSTALL_DIR} $(IDIR_GRUB_TOOLS)/usr/{sbin,bin}
+	${INSTALL_BIN} ${WRKINST}/usr/sbin/grub-install \
+		$(IDIR_GRUB_TOOLS)/usr/sbin
+	${INSTALL_BIN} ${WRKINST}/usr/sbin/grub-bios-setup \
+		$(IDIR_GRUB_TOOLS)/usr/sbin
+	${INSTALL_BIN} ${WRKINST}/usr/bin/grub-mkimage \
+		$(IDIR_GRUB_TOOLS)/usr/bin
 
 include ${TOPDIR}/mk/pkg-bottom.mk

二進制
package/grub/files/core.img.i386-pc


+ 4 - 0
target/x86/Makefile

@@ -9,7 +9,11 @@ include $(TOPDIR)/mk/image.mk
 
 KERNEL:=$(LINUX_DIR)/arch/x86/boot/bzImage
 ifeq ($(ADK_TARGET_QEMU_WITH_BOOTLOADER),y)
+ifeq ($(ADK_TARGET_QEMU_WITHOUT_GRAPHIC),y)
+CREATE:=./scripts/create.sh -g -t
+else
 CREATE:=./scripts/create.sh -g
+endif
 else
 CREATE:=./scripts/create.sh
 endif

+ 1 - 0
target/x86/sys-available/generic-pc

@@ -4,6 +4,7 @@ config ADK_TARGET_SYSTEM_GENERIC_PC
 	select ADK_generic_pc
 	select ADK_CPU_I486
 	select ADK_TARGET_KERNEL_BZIMAGE
+	select ADK_PACKAGE_GRUB
 	help
 	 Support for generic PC (i486).
 

+ 1 - 1
target/x86/sys-available/ibm-x40

@@ -21,6 +21,6 @@ config ADK_TARGET_SYSTEM_IBM_X40
 	select ADK_TARGET_WITH_PP
 	select ADK_TARGET_WITH_ROOT_RW
 	select ADK_TARGET_KERNEL_BZIMAGE
-	select ADK_PACKAGE_GRUB_BIN
+	select ADK_PACKAGE_GRUB
 	help
          System profile for IBM X40 laptop.

+ 10 - 1
target/x86_64/Makefile

@@ -8,6 +8,11 @@ include $(TOPDIR)/mk/kernel-build.mk
 include $(TOPDIR)/mk/image.mk
 
 KERNEL:=$(LINUX_DIR)/arch/x86/boot/bzImage
+ifeq ($(ADK_TARGET_QEMU_WITH_BOOTLOADER),y)
+CREATE:=./scripts/create.sh -g
+else
+CREATE:=./scripts/create.sh
+endif
 
 ifeq ($(ADK_TARGET_FS),archive)
 imageinstall: $(FW_DIR)/$(ROOTFSTARBALL)
@@ -15,11 +20,15 @@ imageinstall: $(FW_DIR)/$(ROOTFSTARBALL)
 ifeq ($(ADK_TARGET_SYSTEM_QEMU_X86_64),y)
 	@cp $(KERNEL) $(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 "$(CREATE) qemu-${CPU_ARCH}.img $(FW_DIR)/$(ROOTFSTARBALL)"
 	@echo "Start qemu with following command line:"
+ifeq ($(ADK_TARGET_QEMU_WITH_BOOTLOADER),y)
+	@echo 'qemu-system-x86_64 ${ADK_QEMU_ARGS} -net user -net nic,model=e1000 qemu-${CPU_ARCH}.img'
+else
 	@echo 'qemu-system-x86_64 ${ADK_QEMU_ARGS} -net user -net nic,model=e1000 -kernel $(FW_DIR)/$(TARGET_KERNEL) qemu-${CPU_ARCH}.img'
 endif
 endif
+endif
 ifeq ($(ADK_TARGET_FS),initramfsarchive)
 imageinstall: $(FW_DIR)/$(ROOTFSUSERTARBALL)
 	@cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL)