diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2017-02-05 17:18:11 +0100 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2017-02-05 17:18:11 +0100 |
commit | 0906d4acb286d0584a8f1c15bb1c3077502b0f6d (patch) | |
tree | f3320f6b92084cea98d55dcd8ea97fd9a7d9a03a /package/adkinstall/src | |
parent | 0a2f1543c97632205564085c7931c85c287ba7b1 (diff) |
add new section base/adk, rename adkinstall into fwinstall
Diffstat (limited to 'package/adkinstall/src')
-rw-r--r-- | package/adkinstall/src/adkinstall | 532 |
1 files changed, 0 insertions, 532 deletions
diff --git a/package/adkinstall/src/adkinstall b/package/adkinstall/src/adkinstall deleted file mode 100644 index 90ceb77ec..000000000 --- a/package/adkinstall/src/adkinstall +++ /dev/null @@ -1,532 +0,0 @@ -#!/bin/mksh -# This file is part of the OpenADK project. -# install OpenADK to a block/flash device - -if [ $(id -u) -ne 0 ];then - print installation is only possible as root - exit 1 -fi - -# get adk target system -target=$(cat /etc/.adktarget) -if [ -z $target ];then - print autodetection of target failed - exit 1 -fi - -function mikrotik-rb532-help { - cat >&2 <<EOF -Syntax: adkinstall [-c|-n] <archive> - -c: compact flash install - -n: nand install - -f: filesystem for compact flash - -h: help text -EOF - exit 1 -} - -function sgi-o2-help { - cat >&2 <<EOF -Syntax: adkinstall <archive> - -d: create data partition - -f: filesystem (default ext4) - -h: help text -EOF - exit 1 -} - -function ibm-x40-help { - cat >&2 <<EOF -Syntax: adkinstall <archive> - -d: create data partition - -f: filesystem (default ext4) - -h: help text -EOF - exit 1 -} - -function asus-p5bvm-help { - cat >&2 <<EOF -Syntax: adkinstall <archive> - -d: create data partition - -f: filesystem (default ext4) - -h: help text -EOF - exit 1 -} - - -function pcengines-apu-help { - cat >&2 <<EOF -Syntax: adkinstall <archive> - -f: filesystem (default ext4) - -h: help text -EOF - exit 1 -} - -function pcengines-alix-help { - cat >&2 <<EOF -Syntax: adkinstall <archive> - -f: filesystem (default ext4) - -h: help text -EOF - exit 1 -} - -case $target { -(sgi-o2) - cfgfssize=32768 - data= - fs=ext4 - while getopts "f:d:" ch; do - case $ch in - d) - data=$OPTARG - ;; - f) - fs=$OPTARG - ;; - *) - sgi-o2-help - exit 1 - ;; - esac - done - shift $((OPTIND - 1)) - if [ -z $1 ];then - sgi-o2-help - else - archive=$1 - fi - ;; -(ibm-x40) - cfgfssize=32768 - data= - fs=ext4 - while getopts "f:d:" ch; do - case $ch in - d) - data=$OPTARG - ;; - f) - fs=$OPTARG - ;; - *) - ibm-x40-help - exit 1 - ;; - esac - done - shift $((OPTIND - 1)) - if [ -z $1 ];then - ibm-x40-help - else - archive=$1 - fi - ;; -(asus-p5bvm) - cfgfssize=32768 - data= - fs=ext4 - while getopts "f:d:" ch; do - case $ch in - d) - data=$OPTARG - ;; - f) - fs=$OPTARG - ;; - *) - asus-p5bvm-help - exit 1 - ;; - esac - done - shift $((OPTIND - 1)) - if [ -z $1 ];then - ibm-x40-help - else - archive=$1 - fi - ;; -(pcengines-apu) - cfgfssize=32768 - fs=ext4 - while getopts "f:" ch; do - case $ch in - f) - fs=$OPTARG - ;; - *) - pcengines-apu-help - exit 1 - ;; - esac - done - shift $((OPTIND - 1)) - if [ -z $1 ];then - pcengines-apu-help - else - archive=$1 - fi - ;; -(pcengines-alix) - cfgfssize=32768 - fs=ext4 - while getopts "f:" ch; do - case $ch in - f) - fs=$OPTARG - ;; - *) - pcengines-alix-help - exit 1 - ;; - esac - done - shift $((OPTIND - 1)) - if [ -z $1 ];then - pcengines-alix-help - else - archive=$1 - fi - ;; -(mikrotik-rb532) - cfgfssize=32768 - nand=0 - cf=0 - fs=ext4 - while getopts "cnf:" ch; do - case $ch in - c) - cf=1 - fs=ext4 - ;; - n) - nand=1 - fs=yaffs2 - ;; - f) - fs=$OPTARG - ;; - *) - mikrotik-rb532-help - exit 1 - ;; - esac - done - shift $((OPTIND - 1)) - if [ -z $1 ];then - mikrotik-rb532-help - else - archive=$1 - fi - ;; -(*) - print target $target not supported - exit 1 - ;; -} - -if [ "$target" = "mikrotik-rb532" ];then - if [ $cf -eq 0 -a $nand -eq 0 ];then - print "you either install on cf (-c) or nand (-n)" - mikrotik-rb532-help - fi -fi - -tools="parted partprobe sfdisk mkfs.ext2" - -f=0 -for tool in $tools;do - if ! which $tool >/dev/null; then - echo "checking if $tool is installed... failed" - f=1 - fi -done -if [ $f -eq 1 ];then exit 1;fi - -# create empty partition table -function create_label { - print "creating empty partition table" - parted -s $1 mklabel msdos > /dev/null 2>&1 - if [ $? -ne 0 ]; then - echo "creating empty partition failed!" - exit 1 - fi -} - -# get max size of disk in sectors -function get_max_size { - maxsize=$(env LC_ALL=C parted $1 -s unit s print |awk '/^Disk/ { print $3 }'|sed -e 's/s//') - rootsize=$(($maxsize-$cfgfssize)) - print device has $maxsize sectors. using $rootsize for root. -} - -# create partition, with fstype start and end in sectors -function create_partition { - print creating partition on $1 - parted -s $1 unit s mkpart primary $2 $3 $4 > /dev/null 2>&1 - if [ $? -ne 0 ]; then - echo "creating primary partition failed!" - exit 1 - fi -} - -function set_boot_flag { - print setting bootflag on $1 partition $2 - parted -s $1 set $2 boot on > /dev/null 2>&1 - if [ $? -ne 0 ]; then - echo "setting bootflag failed!" - exit 1 - fi -} - -function change_part_type { - print setting partition type on $1 partition $2 to $3 - sfdisk --change-id $1 $2 $3 >/dev/null 2>&1 - if [ $? -ne 0 ]; then - echo "changing partition type failed!" - exit 1 - fi -} - -function create_filesystem { - print creating filesystem $2 on $1 partition $3 - mkfs.ext2 -j -F -q ${1}${3} - if [ $? -ne 0 ]; then - echo "creating filesystem on partition failed!" - exit 1 - fi -} - -function mount_fs { - print mounting ${1}${2} to $4 with filesystem $3 - mount -t $3 ${1}${2} $4 - if [ $? -ne 0 ]; then - echo "mounting filesystem failed!" - exit 1 - fi -} - -function extract_archive { - print extracting archive $1 onto $2 - tar -C $2 -xpf $1 - if [ $? -ne 0 ]; then - echo "archive extraction failed!" - exit 1 - fi -} - -function grub_install { - print installing bootloader grub -( - print set default=0 - print set timeout=1 - print serial --unit=0 --speed=115200 - print terminal_output serial - print terminal_input serial - consargs="console=ttyS0,115200" - print - print 'menuentry "GNU/Linux (OpenADK)" {' - print "\tlinux /boot/kernel root=/dev/sda1" - print '}' -) >/mnt/boot/grub/grub.cfg - grub-install $1 --root-directory /mnt - if [ $? -ne 0 ]; then - echo "grub install failed!" - exit 1 - fi -} - -function fix_perm { - print fixing permissions - chmod 1777 ${1}/tmp - [[ -f ${1}/usr/bin/sudo ]] && chmod 4755 ${1}/usr/bin/sudo - [[ -f ${1}/usr/bin/Xorg ]] && chmod 4755 ${1}/usr/bin/Xorg -} - -case $target { -(sgi-o2) - get_max_size /dev/sda - create_label /dev/sda - if [ -z $data ];then - create_partition /dev/sda ext2 16385 $rootsize - create_partition /dev/sda ext2 $(($rootsize+1)) $(($maxsize-1)) - set_boot_flag /dev/sda 1 - change_part_type /dev/sda 2 88 - else - datasize=$(($data*1024*2)) - echo datasize is: $datasize - echo create partition from 16385 to $(($rootsize-$datasize)) - create_partition /dev/sda ext2 16385 $(($rootsize-$datasize)) - echo create partition from $(($rootsize-$datasize+1)) to $(($maxsize-$cfgfssize-1)) - create_partition /dev/sda ext2 $(($rootsize-$datasize+1)) $(($maxsize-$cfgfssize-1)) - echo create partition from $(($maxsize-$cfgfssize)) to $(($maxsize-1)) - create_partition /dev/sda ext2 $(($maxsize-$cfgfssize)) $(($maxsize-1)) - set_boot_flag /dev/sda 1 - change_part_type /dev/sda 3 88 - - fi - partprobe /dev/sda - sync - sleep 2 - if [ -z $data ];then - create_filesystem /dev/sda $fs 1 - else - create_filesystem /dev/sda $fs 1 - create_filesystem /dev/sda $fs 2 - fi - mdev -s - mount_fs /dev/sda 1 $fs /mnt - extract_archive $archive /mnt - if [ ! -z $data ];then - echo creating data dir and fstab entry - mkdir /mnt/data - echo "/dev/sda2 /data ext4 rw 0 0" >> /mnt/etc/fstab - fi - fix_perm /mnt - umount /mnt - ;; -(ibm-x40) - get_max_size /dev/sda - create_label /dev/sda - if [ -z $data ];then - create_partition /dev/sda ext2 16385 $rootsize - create_partition /dev/sda ext2 $(($rootsize+1)) $(($maxsize-1)) - set_boot_flag /dev/sda 1 - change_part_type /dev/sda 2 88 - else - datasize=$(($data*1024*2)) - echo datasize is: $datasize - echo create partition from 16385 to $(($rootsize-$datasize)) - create_partition /dev/sda ext2 16385 $(($rootsize-$datasize)) - echo create partition from $(($rootsize-$datasize+1)) to $(($maxsize-$cfgfssize-1)) - create_partition /dev/sda ext2 $(($rootsize-$datasize+1)) $(($maxsize-$cfgfssize-1)) - echo create partition from $(($maxsize-$cfgfssize)) to $(($maxsize-1)) - create_partition /dev/sda ext2 $(($maxsize-$cfgfssize)) $(($maxsize-1)) - set_boot_flag /dev/sda 1 - change_part_type /dev/sda 3 88 - - fi - partprobe /dev/sda - sync - sleep 2 - umount /mnt - if [ -z $data ];then - create_filesystem /dev/sda $fs 1 - else - create_filesystem /dev/sda $fs 1 - create_filesystem /dev/sda $fs 2 - fi - mdev -s - mount_fs /dev/sda 1 $fs /mnt - extract_archive $archive /mnt - if [ ! -z $data ];then - echo creating data dir and fstab entry - mkdir /mnt/data - echo "/dev/sda2 /data ext4 rw 0 0" >> /mnt/etc/fstab - fi - grub_install /dev/sda - fix_perm /mnt - umount /mnt - ;; -(asus-p5bvm) - get_max_size /dev/sdc - create_label /dev/sdc - if [ -z $data ];then - create_partition /dev/sdc ext2 16385 $rootsize - create_partition /dev/sdc ext2 $(($rootsize+1)) $(($maxsize-1)) - set_boot_flag /dev/sdc 1 - change_part_type /dev/sdc 2 88 - else - datasize=$(($data*1024*2)) - echo datasize is: $datasize - echo create partition from 16385 to $(($rootsize-$datasize)) - create_partition /dev/sdc ext2 16385 $(($rootsize-$datasize)) - echo create partition from $(($rootsize-$datasize+1)) to $(($maxsize-$cfgfssize-1)) - create_partition /dev/sdc ext2 $(($rootsize-$datasize+1)) $(($maxsize-$cfgfssize-1)) - echo create partition from $(($maxsize-$cfgfssize)) to $(($maxsize-1)) - create_partition /dev/sdc ext2 $(($maxsize-$cfgfssize)) $(($maxsize-1)) - set_boot_flag /dev/sdc 1 - change_part_type /dev/sdc 3 88 - - fi - partprobe /dev/sdc - sync - sleep 2 - umount /mnt - if [ -z $data ];then - create_filesystem /dev/sdc $fs 1 - else - create_filesystem /dev/sdc $fs 1 - create_filesystem /dev/sdc $fs 2 - fi - mdev -s - mount_fs /dev/sdc 1 $fs /mnt - extract_archive $archive /mnt - if [ ! -z $data ]; then - echo creating data dir and fstab entry - mkdir /mnt/data - echo "/dev/sdc2 /data ext4 rw 0 0" >> /mnt/etc/fstab - fi - #grub_install /dev/sdc - fix_perm /mnt - umount /mnt - ;; -(pcengines-apu|pcengines-alix) - get_max_size /dev/sda - create_label /dev/sda - create_partition /dev/sda ext2 16385 $rootsize - create_partition /dev/sda ext2 $(($rootsize+1)) $(($maxsize-1)) - set_boot_flag /dev/sda 1 - change_part_type /dev/sda 2 88 - partprobe /dev/sda - sync - sleep 2 - create_filesystem /dev/sda $fs 1 - mdev -s - mount_fs /dev/sda 1 $fs /mnt - extract_archive $archive /mnt - grub_install /dev/sda - fix_perm /mnt - umount /mnt - ;; -(mikrotik-rb532) - if (( cf )); then - get_max_size /dev/sda - create_label /dev/sda - create_partition /dev/sda ext2 1 16384 - create_partition /dev/sda ext2 16385 $rootsize - create_partition /dev/sda ext2 $(($rootsize+1)) $(($maxsize-1)) - set_boot_flag /dev/sda 1 - change_part_type /dev/sda 1 27 - change_part_type /dev/sda 3 88 - partprobe /dev/sda - sync - sleep 2 - create_filesystem /dev/sda $fs 2 - mdev -s - mount_fs /dev/sda 2 $fs /mnt - extract_archive $archive /mnt - print installing kernel to cf disk /dev/sda1 - dd if=/mnt/boot/kernel of=/dev/sda1 bs=2048 >/dev/null 2>&1 - fix_perm /mnt - umount /mnt - fi - if (( nand )); then - mount_fs /dev/mtdblock 1 $fs /mnt - rm -rf /mnt/* >/dev/null 2>&1 - mkdir /mnt/boot - mount_fs /dev/mtdblock 0 $fs /mnt/boot - extract_archive $archive /mnt - fix_perm /mnt - umount /mnt/boot - umount /mnt - fi - ;; -} - -echo "successfully installed OpenADK on $target." -exit 0 |