Browse Source

add simple lemote disk installer

Waldemar Brodkorb 13 years ago
parent
commit
a9eb63c94f

+ 0 - 3
mk/build.mk

@@ -146,9 +146,6 @@ ${TOPDIR}/package/Depends.mk: ${TOPDIR}/.config $(wildcard ${TOPDIR}/package/*/M
 .PHONY: all world clean cleantarget cleandir distclean image_clean
 
 world:
-	echo $(KERNEL_BASE)
-	echo $(KERNEL_MAJ)
-	echo $(KERNEL_MIN)
 	mkdir -p $(DISTDIR) $(BUILD_DIR) $(TARGET_DIR) $(PACKAGE_DIR)/.stamps \
 		$(TOOLS_DIR) $(TOOLS_BUILD_DIR) $(TOOLCHAIN_BUILD_DIR)
 	${BASH} ${TOPDIR}/scripts/scan-pkgs.sh

+ 1 - 1
package/base-files/Makefile

@@ -6,7 +6,7 @@ include $(TOPDIR)/mk/rootfs.mk
 
 PKG_NAME:=		base-files
 PKG_VERSION:=		1.0
-PKG_RELEASE:=		50
+PKG_RELEASE:=		51
 PKG_SECTION:=		base
 PKG_DESCR:=		basic files and scripts
 

+ 1 - 0
package/base-files/src/init

@@ -18,6 +18,7 @@ echo >/dev/mdev.seq
 echo "/sbin/mdev" >/proc/sys/kernel/hotplug
 mdev -s
 cat /etc/.rnd >/dev/urandom 2>&1
+[ -x /installer ] && { /installer; }
 [ -x /kexecinit ] && { /kexecinit; }
 [ -x /cryptinit ] && { /cryptinit; exec switch_root /mnt "/init";}
 [ -x /sbin/cfgfs ] && { cfgfs setup; mount -o remount,ro /;} || mount -o remount,rw /

+ 26 - 0
package/installer/Makefile

@@ -0,0 +1,26 @@
+# 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
+
+PKG_NAME:=		installer
+PKG_VERSION:=		1.0
+PKG_RELEASE:=		1
+PKG_DESCR:=		OpenADK disk installer
+PKG_SECTION:=		base
+
+WRKDIST=		${WRKDIR}/${PKG_NAME}-${PKG_VERSION}
+NO_DISTFILES:=		1
+
+include ${TOPDIR}/mk/package.mk
+
+$(eval $(call PKG_template,INSTALLER,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+
+CONFIG_STYLE:=		manual
+BUILD_STYLE:=		manual
+INSTALL_STYLE:=		manual
+
+do-install:
+	$(INSTALL_BIN) ./src/installer $(IDIR_INSTALLER)/
+
+include ${TOPDIR}/mk/pkg-bottom.mk

+ 61 - 0
package/installer/src/installer

@@ -0,0 +1,61 @@
+#!/bin/sh
+
+create_bootcfg() {
+	cat << FOO > /mnt/boot/boot.cfg
+default 0
+timeout 2
+showmenu 1
+title OpenADK
+	kernel (wd0,0)/boot/kernel
+	args root=/dev/sda1
+
+title USB
+	kernel (usb0,0)/boot/kernel
+	args root=/dev/sdc1
+FOO
+
+}
+
+disk_install() {
+	mke2fs -q -j /dev/sda1
+	sync
+	sleep 2
+	mount -t ext4 /dev/sda1 /mnt
+	tar xzvf /lemote-yeelong-eglibc-archive+kernel.tar.gz -C /mnt
+	test -x /mnt/usr/bin/sudo && chmod u+s /mnt/usr/bin/sudo
+	test -x /mnt/usr/bin/Xorg && chmod u+s /mnt/usr/bin/Xorg
+	create_bootcfg
+	umount /mnt
+	
+}
+
+. /etc/functions.sh
+echo 0 > /proc/sys/kernel/printk
+
+load_modules /etc/modules
+for f in /etc/modules.d/*; do
+	[[ -e $f ]] && load_modules /etc/modules.d/*
+	break
+done
+
+echo "  ___                      _    ____  _  __ "
+echo " / _ \ _ __   ___ _ __    / \  |  _ \| |/ / "
+echo "| | | | '_ \ / _ \ '_ \  / _ \ | | | | ' /  "
+echo "| |_| | |_) |  __/ | | |/ ___ \| |_| | . \  "
+echo " \___/| .__/ \___|_| |_/_/   \_\____/|_|\_\ "
+echo "      |_|                                   "
+echo ""
+# settle down, after module load
+sleep 2
+echo "Should I install OpenADK to disk (y/n)"
+read answer
+if [ "$answer" = "y" ];then
+	disk_install
+fi
+echo "Should I reboot now (y/n)"
+read answer
+if [ "$answer" = "y" ];then
+	reboot
+else
+	exit
+fi