diff options
Diffstat (limited to 'abs/core/LinHES-config-svn/install_functions.sh')
-rwxr-xr-x | abs/core/LinHES-config-svn/install_functions.sh | 621 |
1 files changed, 0 insertions, 621 deletions
diff --git a/abs/core/LinHES-config-svn/install_functions.sh b/abs/core/LinHES-config-svn/install_functions.sh deleted file mode 100755 index 4f6f7ed..0000000 --- a/abs/core/LinHES-config-svn/install_functions.sh +++ /dev/null @@ -1,621 +0,0 @@ -#!/bin/bash -. /etc/profile -disk=$2 -mountpoint=new_boot - -#------------------------------------------- -MYTHDBUSER=mythtv -MYTHTVPASSWD=mythtv -CMDLINE=$(cat /proc/cmdline) -hostname=`hostname` -MYSQLCMD_C="mysql -u$MYTHDBUSER -p$MYTHTVPASSWD mythconverg -B --exec" -BASE="" - - -function update_db_settings () { - - echo "setting database value $1 to $2 for $hostname" - $MYSQLCMD_C "delete from settings where value='${1}' and hostname=\"$hostname\";" - $MYSQLCMD_C "REPLACE INTO settings set value='${1}', data='${2}' , hostname=\"$hostname\";" -} - -function random_theme () { -THEMES="basic-blue -basic-green -basic-red -basic-purple -basic-amber" - -theme=($THEMES) # Read into array variable. - -num_themes=${#theme[*]} # Count how many elements. - -pick=${theme[$((RANDOM%num_themes))]} -echo "Selected $pick as the theme" -update_db_settings Theme "$pick" -} - - -function splash_setup (){ - echo $CMDLINE | grep -q splash=silent - if [ $? -eq 0 ] - then - update_db_settings Hostbootsplash 1 - else - update_db_settings Hostbootsplash 0 - fi -} - - -function setupremote { - [ -e $BASE/etc/lircd.conf ] && mv -f $BASE/etc/lircd.conf $BASE/etc/lircd.conf.`date +%Y-%m-%d-%H-%M` - if [ -d $TEMPLATES/remotes/$Remotetype ] - then - cd $TEMPLATES/remotes/$Remotetype - for i in lircd* - do - cat $i >> $BASE/etc/lircd.conf - done - cp -f lircrc* $BASE/etc/lircrc 2> /dev/null - [ -e /etc/lircrc ] && chmod 755 /etc/lircrc - update_db_settings HostRemoteType "$Remotetype" - #special case for special remote - echo "Starting with support for $Remotetype" - if [ "$Remotetype" == "dvico" ] - then - /usr/sbin/lircd -d /dev/usb/hiddev0 - else - /usr/sbin/lircd -d /dev/lirc0 - fi - [ -e /root/.mythtv ] || mkdir /root/.mythtv 2>/dev/null - ln -s /etc/lircrc /root/.mythtv/lircrc 2>/dev/null - else - echo "Couldn't open directory $TEMPLATES/remotes/$Remotetype" - fi -} - -function scan_for_hpg_receiver() { -echo "Scanning for Hauppauge receiver" -for hpgid in `lspci -nm -d4444: |cut -d" " -f6- |tr -d '"'|tr " " :` -do - line=`grep $hpgid $TEMPLATES/remotes/i2c.id` - if [ $? -eq 0 ] - then - modprobe lirc_i2c - FoundReceiverType=`echo "$line"|cut -d"|" -f2` - Remotetype=`echo "$line"|cut -d"|" -f4` - statusline=`echo "$line"|cut -d"|" -f2,4` - echo "Found $statusline , $Remotetype" - update_db_settings HostReceiverType $FoundReceiverType - setupremote - break - fi - -done -} - - -function scan_for_usb_remote () { -found_remote=1 -echo "Scanning for usb receiver/remote" -while read line -do - USBID=`echo "$line"|cut -d"|" -f1` - lsusb -d "$USBID" > /dev/null 2>/dev/null - if [ $? -eq 0 ] - then - Remotetype=`echo "$line"|cut -d"|" -f2` - echo "Found $Remotetype" - setupremote - found_remote=0 - break - fi -done <$BASE/$TEMPLATES/remotes/receiver_usb.id -if [ $found_remote -eq 1 ] -then - scan_for_hpg_receiver -fi -echo "Scanning for TatIR..." -if lsusb | grep 04d8:0004 > /dev/null 2>/dev/null -then - /usr/bin/PyroUsb.py > /dev/null 2>&1 & -fi -} - -function rest_of_network () { - #netmask - echo $CMDLINE | grep -q netmask - if [ $? -eq 0 ] - then - TEMPVAR=${CMDLINE#*netmask=} - NETMASK=${TEMPVAR%% *} - /sbin/ifconfig eth0 $IP netmask $NETMASK - nm=`/usr/bin/nmconv.py -obits $NETMASK` - NETMASK="/$nm $NETMASK" - echo $NETMASK - update_db_settings HostNETMASK${MYTHDEFAULT} "$NETMASK" - else - echo "netmask not found" - fi - #gateway - echo $CMDLINE | grep -q gateway - if [ $? -eq 0 ] - then - TEMPVAR=${CMDLINE#*gateway=} - GATEWAY=${TEMPVAR%% *} - /sbin/route add default gw $GATEWAY - update_db_settings HostGW${MYTHDEFAULT} "$GATEWAY" - - else - echo "gateway not found" - fi - - #dns - echo $CMDLINE | grep -q dns - if [ $? -eq 0 ] - then - TEMPVAR=${CMDLINE#*dns=} - DNS=${TEMPVAR%% *} - echo "nameserver $DNS" >> /etc/resolv.conf - update_db_settings HostDNS${MYTHDEFAULT} "$DNS" - else - echo "DNS not found" - fi -} - -function init_network { - echo $CMDLINE |grep -q netdev - if [ $? -eq 0 ] - then - TEMPVAR=${CMDLINE#*netdev=} - MYTHDEFAULT=${TEMPVAR%% *} - else - MYTHDEFAULT="eth0" - fi - - - - echo $CMDLINE | grep -q ip - if [ $? -eq 0 ] - then - update_db_settings HostDefaulteth0 0 - update_db_settings HostDefault${MYTHDEFAULT} 1 - - update_db_settings HostActiveonbooteth0 0 - update_db_settings HostActiveonboot${MYTHDEFAULT} 1 - update_db_settings HostNetDevice ${MYTHDEFAULT} - - TEMPVAR=${CMDLINE#*ip=} - IP=${TEMPVAR%% *} - if [ "$IP" == "dhcp" ] - then - /sbin/dhcpcd $MYTHDEFAULT - update_db_settings HostUseDHCP${MYTHDEFAULT} 0 - else - /sbin/ifconfig ${MYTHDEFAULT} $IP - update_db_settings HostUseDHCP${MYTHDEFAULT} 1 - update_db_settings HostIP${MYTHDEFAULT} "$IP" - rest_of_network - fi - fi -} - -function init_remote { - echo $CMDLINE | grep -q remoteport - if [ $? -eq 0 ] - then - TEMPVAR=${CMDLINE#*remoteport=} - REMOTEPORT=${TEMPVAR%% *} - if [ "$ReceiverType" == "Serial" ] - then - if [ -e /dev/$REMOTEPORT ] - then - /usr/bin/setserial /dev/$REMOTEPORT uart none - /sbin/modprobe lirc_serial - update_db_settings HostReceiverType Serial - update_db_settings HostSerialPortlirc "$REMOTEPORT" - fi - fi - - fi - - echo $CMDLINE | grep -q remote - if [ $? -eq 0 ] - then - TEMPVAR=${CMDLINE#*remote=} - Remotetype=${TEMPVAR%% *} - setupremote - else - scan_for_usb_remote - fi -} - -#----------------------- - -#set -x - -partition_it () { -ROOT=$1 -DATA=$2 -SWAP=$3 - -if [ "$SWAP" != "NO" ] - then - SWAPLINE=",$SWAP,S" - MKSWAPCMD="mkswap /dev/${disk}2" - else - SWAPLINE=",0,0" - MKSWAPCMD="" - fi - -if [ "$DATA" == "ALL" ] -then - DATALINE=",,," - EXTRALINE="" -else - DATALINE=",$DATA,," - EXTRALINE=",0,," -fi -sfdisk /dev/$disk -uM << EOF -,$1,,* -$SWAPLINE -$DATALINE -$EXTRALINE -; -EOF - -$MKSWAPCMD -#sfdisk -l /dev/$disk -} - - -function fscmd () { - -case $1 in - reiserfs) FSCMDC="mkreiserfs -q -l ROOT" - ;; - - xfs) FSCMDC="mkfs -t $1 -f" - ;; - ext3) FSCMDC="mkfs.ext3" - ;; - jfs) FSCMDC="mkfs.jfs -q " - ;; - ext4) FSCMDC="mkfs.ext4" - ;; - *) FSCMDC="echo $1" - ;; -esac -} - -format_it () { - fscmd $1 - $FSCMDC /dev/${disk}1| tr -s [:cntrl:] \\n - fscmd $2 - $FSCMDC /dev/${disk}3| tr -s [:cntrl:] \\n -} - -mount_it () { - if [ ! -d \/$mountpoint ] - then - mkdir \/$mountpoint - fi - mount /dev/${disk}1 \/$mountpoint - mkdir \/$mountpoint/myth - mount /dev/${disk}3 \/$mountpoint/myth -} - -unmount_it () { - umount /dev/${disk}1 - umount /dev/${disk}3 - umount \/$mountpoint/myth - umount \/$mountpoint -} - - -copy_it () { - - if [ "$1" == "ALL" ] - then - echo "Transferring system" - unsquashfs -f -d /$mountpoint /.livesys/medium/system.sqf - else - echo "Upgrading system" - unsquashfs -e $1 -f -d /$mountpoint /.livesys/medium/system.sqf - fi - - for i in sys proc dev tmp - do - mkdir /$mountpoint/$i - - done - chmod 777 /$mountpoint/tmp - mknod /$mountpoint/dev/null c 1 3 - mknod /$mountpoint/dev/null c 1 5 - mknod /$mountpoint/dev/console c 5 1 - chmod +s /$mountpoint/usr/bin/Xorg - chmod +s /$mountpoint/usr/bin/crontab - chmod +s /$mountpoint/usr/bin/sudo - chmod +s /$mountpoint/bin/mount - -} - - -device_node () { - cd /dev - mknod hda b 3 0 - mknod hda1 b 3 1 - mknod hda2 b 3 2 - mknod hda3 b 3 3 - mknod hda4 b 3 4 - mknod hda5 b 3 5 - mknod hda6 b 3 6 - mknod hda7 b 3 7 - mknod hda8 b 3 8 - mknod sda b 8 0 - mknod sda1 b 8 1 - mknod sda2 b 8 2 - mknod sda3 b 8 3 - mknod sda4 b 8 4 - mknod sda5 b 8 5 - mknod sda6 b 8 6 - mknod sda7 b 8 7 - mknod sda8 b 8 8 - mknod sdb b 8 16 - mknod sdb1 b 8 17 - mknod sdb2 b 8 18 - mknod sdb3 b 8 19 - mknod sdb4 b 8 20 - mknod sdb5 b 8 21 - mknod sdb6 b 8 22 - mknod sdb7 b 8 23 - mknod sdb8 b 8 24 - cd - - } - - - - -function create_fstab() -{ -echo "creating fstab" -cat > /$mountpoint/etc/fstab << EOF -# <file system> <dir> <type> <options> <dump> <pass> -none /dev/pts devpts defaults 0 0 -none /dev/shm tmpfs defaults 0 0 -/dev/cdrom /media/cdrom auto ro,user,noauto,unhide 0 0 -/dev/dvd /media/dvd auto ro,user,noauto,unhide 0 0 -UUID=ROOTUID / auto defaults 0 1 -UUID=DATAUID /myth auto defaults 0 1 -UUID=SWAPUID swap swap defaults 0 0 -EOF - - -} - - -function find_uuid() { - uuid=`blkid -s UUID /dev/$1 |cut -d= -f2|cut -d\" -f2` - echo $uuid for $1 - FOUNDUUID=$uuid - -} - - -get_grub_map() { - [ -e /tmp/dev.map ] && rm /tmp/dev.map - /sbin/grub --no-floppy --device-map /tmp/dev.map <<EOF -quit -EOF -} - -mapdev() { - partition_flag=0 - device_found=0 - devs=$(cat /tmp/dev.map | grep -v fd | sed 's/ *\t/ /' | sed ':a;$!N;$!ba;s/\n/ /g') - linuxdevice=$(echo $1 | cut -b1-8) - if [ "$(echo $1 | egrep '[0-9]$')" ]; then - # /dev/hdXY - pnum=$(echo $1 | cut -b9-) - pnum=$(($pnum-1)) - partition_flag=1 - fi - for dev in $devs - do - if [ "(" == $(echo $dev | cut -b1) ]; then - grubdevice="$dev" - else - if [ "$dev" == "$linuxdevice" ]; then - device_found=1 - break - fi - fi - done - if [ "$device_found" == "1" ]; then - if [ "$partition_flag" == "0" ]; then - echo "$grubdevice" - else - grubdevice_stringlen=${#grubdevice} - grubdevice_stringlen=$(($grubdevice_stringlen - 1)) - grubdevice=$(echo $grubdevice | cut -b1-$grubdevice_stringlen) - echo "$grubdevice,$pnum)" - fi - else - echo "DEVICE NOT FOUND" - fi -} - - -dogrub() { - get_grub_map - sync - ROOTDEV=/dev/$1 - echo $ROOTDEV - - bootdev=$(mapdev $ROOTDEV) - echo $bootdev - cp -a /$mountpoint/usr/lib/grub/i386-pc/* /$mountpoint/boot/grub/ - sync - # freeze xfs filesystems to enable grub installation on xfs filesystems - if [ -x /usr/sbin/xfs_freeze ]; then - #/usr/sbin/xfs_freeze -f /$mountpoint > /dev/null 2>&1 - echo "freezing xfs fs" - /usr/sbin/xfs_freeze -f /$mountpoint - if [ $? -eq 0 ] - then - sleep 40 - echo "unfreezing xfs" - /usr/sbin/xfs_freeze -u /$mountpoint - fi - fi - #$DESTDIR/sbin/grub-install --recheck --root-directory=$DESTDIR $bootdev >/tmp/grub.log 2>&1 - echo grub-install --recheck --root-directory=/$mountpoint $bootdev - grub-install --recheck --root-directory=/$mountpoint $bootdev - # unfreeze xfs filesystems - - - if grep "Error [0-9]*: " /tmp/grub.log >/dev/null; then - echo "Error installing GRUB. " - return 1 - fi - echo "GRUB was successfully installed." -} - -function removevg () { - LIST=`pvscan |grep $1|tr -s " " |cut -d" " -f 5` - for vg in $LIST - do - echo "Removing vg $vg" - vgremove -f -v $vg - done - - - - -} - - -case $1 in - partition_it ) - #drive ROOT DATA(ALL) SWAP(NO) - for i in `mount | grep $disk | awk ' { print $1 } '` - do - umount $i - done - swap=`cat /etc/fstab |grep $disk|grep swap|awk ' { print $1 } '` - swapoff $swap - removevg $disk - partition_it $3 $4 $5 - exit 0 - - ;; - format_it ) - device_node - - format_it $3 $4 - exit 0 - ;; - mount_it ) - mount_it - ;; - copy_it ) - copy_it $3 - - ;; - - - fstab_fix_it) - echo $@ >> /tmp/fstab.input - if [ ! -f /$mountpoint/etc/fstab ] - then - create_fstab - fi - #was 5 - if [ "$3" == "UPGRADE" ] - then - if [ ! -f /tmp/etc/KnoppMyth-version ] - then - if [ -f /tmp/etc/fstab ] - then - cp -f /tmp/etc/fstab /$mountpoint/etc/fstab - else - create_fstab - fi - else - create_fstab - fi - fi - - #search for UUID - FOUNDUUID="" - find_uuid ${2}1 - ROOTUUID=$FOUNDUUID - echo "--" - echo $ROOTUUID - echo "--" - FOUNDUUID="" - find_uuid ${2}2 - SWAPUUID=$FOUNDUUID - - FOUNDUUID="" - if [ "$4" == "" ] - then - #upgrade - find_uuid ${2}3 - elif [ "$5" == "FULL_INSTALL" ] - then - #install - find_uuid ${2}3 - else - #upgrade with non statndard myth - find_uuid $4 - fi - - DATAUUID=$FOUNDUUID - - - - sed -i -e "s/.*\/\ .*$/UUID=$ROOTUUID \/ auto defaults,noatime 0 1/g" /$mountpoint/etc/fstab - sed -i -e "s/.*\/myth\ .*$/UUID=$DATAUUID \/myth auto defaults,noatime 0 1/g" /$mountpoint/etc/fstab - sed -i -e "s/.*swap\ .*$/UUID=$SWAPUUID swap swap defaults 0/g" /$mountpoint/etc/fstab - -#if Knoppmyth upgrade then loop through old fstab picking out vg - if [ -f /tmp/etc/KnoppMyth-version ] - then - if [ -f /tmp/etc/fstab ] - then - grep -q /dev/vg /tmp/etc/fstab - if [ $? -eq 0 ] - then - grep /dev/vg /tmp/etc/fstab >> /$mountpoint/etc/fstab - grep /dev/vg /tmp/etc/fstab | awk -v mount=$mountpoint ' { print "/" mount $2 }' |xargs mkdir - grep /dev/vg /tmp/etc/fstab | awk -v mount=$mountpoint ' { print "/" mount $2 }' |xargs chown -R mythtv:users - fi - fi - fi - ;; - - grub_it ) - - #grub-install --recheck --no-floppy --root-directory=/$mountpoint "(hd0)" - #fixing grub/menu.1st - dogrub ${disk} - FOUNDUUID="" - find_uuid ${disk}1 - ROOTUUID=$FOUNDUUID - sed -i -e "s/root=.\S*/root=\/dev\/disk\/by-uuid\/$ROOTUUID/g" /$mountpoint/boot/grub/menu.lst - mkinitcpio -g /$mountpoint/boot/kernel26.img - ;; - umount_it) - umount \/$mountpoint/myth - umount \/$mountpoint - ;; - update_db_it ) - update_db_settings "$2" "$3" - ;; - - -esac - - - |