diff options
| author | Waldemar Brodkorb <wbx@openadk.org> | 2011-09-16 11:07:13 +0200 |
|---|---|---|
| committer | Waldemar Brodkorb <wbx@openadk.org> | 2011-09-16 11:07:13 +0200 |
| commit | 5861b2783c0615345b80a93470312b36d1cb9907 (patch) | |
| tree | 42ded4821e0834063449a5620a1b46bc6f1e509b /package/kexecinit/src | |
| parent | e3d296fa18ef060fad7e654cd9308e57ffd0934b (diff) | |
| parent | d8a75c17f7cb861b42f327afc9a9ec3901133d2c (diff) | |
fix conflict
Diffstat (limited to 'package/kexecinit/src')
| -rwxr-xr-x | package/kexecinit/src/kexecinit | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/package/kexecinit/src/kexecinit b/package/kexecinit/src/kexecinit new file mode 100755 index 000000000..3aee9ce18 --- /dev/null +++ b/package/kexecinit/src/kexecinit @@ -0,0 +1,65 @@ +#!/bin/sh + +load_system() { + echo "Loading OpenADK from microdrive (${micro}1)" + mount ${micro}1 /mnt + if [ $? -ne 0 ];then echo "Mounting ${micro}1 failed"; exit 1;fi + kexec -l /mnt/boot/kernel + umount /mnt + kexec -e -x +} + +cf_install() { + mkdir /mnt/root + mkdir /mnt/cf + mount -t ext2 ${micro}1 /mnt/root + if [ $? -ne 0 ];then echo "Mounting ${micro}1 failed"; exit 1;fi + mount ${cfd}1 /mnt/cf + if [ $? -ne 0 ];then echo "Mounting ${cfd}1 failed"; exit 1;fi + if [ -f /mnt/cf/sharp.tgz ];then + echo "Installing OpenADK from CF (${cfd}1) to microdrive (${micro}1)" + umount /mnt/root + mke2fs -q ${micro}1 + mount -t ext2 ${micro}1 /mnt/root + if [ $? -ne 0 ];then echo "Mounting ${micro}1 failed"; exit 1;fi + tar -xzpf /mnt/cf/sharp.tgz -C /mnt/root + fi + umount /mnt/root + umount /mnt/cf +} + +check_cf() { + cf=0 + if [ $(lsscsi|wc -l) -eq 1 ];then + cf=0 + else + cf=1 + fi + micro=$(lsscsi |awk '$4 ~ "HMS360" { print $6 }') + if [ "$micro" = "/dev/sda" ];then + cfd=/dev/sdb + else + cfd=/dev/sda + fi +} + +echo " ___ _ ____ _ __ " +echo " / _ \ _ __ ___ _ __ / \ | _ \| |/ / " +echo "| | | | '_ \ / _ \ '_ \ / _ \ | | | | ' / " +echo "| |_| | |_) | __/ | | |/ ___ \| |_| | . \ " +echo " \___/| .__/ \___|_| |_/_/ \_\____/|_|\_\ " +echo " |_| " +echo "" + +sleep 2 +check_cf +if [ $cf -eq 0 ];then + load_system +else + echo "Should I install OpenADK to microdrive (y/n)" + read answer + if [ "$answer" = "y" ];then + cf_install + fi + load_system +fi |
