--- trunk/installer-simple/bin/installer.sh.in 2015/07/31 09:42:12 2883 +++ trunk/installer-simple/bin/installer.sh.in 2015/07/31 11:40:56 2892 @@ -44,7 +44,9 @@ VERSION="%VERSIONTAG%" TITLE="${DEFAULT_TITLE} - ${VERSION}" +# initialize global variables so they are exportable # some sane defaults +INSTALL_METHOD="" LIVEROOT="${DEFAULT_LIVEROOT}" IMAGEROOT="${DEFAULT_IMAGEROOT}" INSTALLROOT="${DEFAULT_INSTALLROOT}" @@ -56,6 +58,7 @@ SPECIALDEVICE="" FORMFACTOR="${DEFAULT_FORMFACTOR}" FORMAT_FILESYSTEM="${DEFAULT_FILESYSTEM}" +FLASHDISK=0 # TOTALLINES=linecount of ${CDIMAGENAME}-tarball -1 ! # -> now in images.conf @@ -81,6 +84,7 @@ is_mounted --location "${INSTALLROOT}/sys" && umount ${INSTALLROOT}/sys is_mounted --location "${INSTALLROOT}/boot" && umount ${INSTALLROOT}/boot is_mounted --location "${INSTALLROOT}" && umount ${INSTALLROOT} + [[ -n ${SWAPHDD} ]] && swapoff ${SWAPHDD} echo $"Installation aborted." exit 1 @@ -99,28 +103,6 @@ return 0 } -install_mount_rootfs() -{ - local opts - - if [[ -n ${SWAPHDD} ]] - then - swapon ${SWAPHDD} || die - fi - if [[ -n ${ROOTHDD} ]] - then - mount -t ${FORMAT_FILESYSTEM_ROOTHDD} ${ROOTHDD} ${INSTALL_ROOT} || die - fi - if [[ -n ${BOOTHDD} ]] - then - install -d ${INSTALL_ROOT}/boot || die - mount -t ${FORMAT_FILESYSTEM_BOOTHDD} ${BOOTHDD} ${INSTALL_ROOT}/boot || die - fi - - cd ${INSTALL_ROOT} || die -} - - mount_rootfs() { local retval @@ -136,7 +118,7 @@ then echo $"${INSTALLROOT} already mounted" >&2 else - mount "${ROOTHDD}" "${INSTALLROOT}" || dialog_die $"Could not mount rootfs - drive '${ROOTHDD}' -> '${INSTALLROOT}'" + mount -t "${FORMAT_FILESYSTEM_ROOTHDD}" "${ROOTHDD}" "${INSTALLROOT}" || dialog_die $"Could not mount rootfs - drive '${ROOTHDD}' -> '${INSTALLROOT}'" fi fi @@ -148,7 +130,7 @@ then echo $"${INSTALLROOT}/boot already mounted" >&2 else - mount "${BOOTHDD}" "${INSTALLROOT}"/boot || dialog_die $"Could not mount bootfs - drive '${BOOTHDD}' -> '${INSTALLROOT}/boot'" + mount -t "${FORMAT_FILESYSTEM_BOOTHDD}" "${BOOTHDD}" "${INSTALLROOT}"/boot || dialog_die $"Could not mount bootfs - drive '${BOOTHDD}' -> '${INSTALLROOT}/boot'" fi fi } @@ -180,13 +162,15 @@ local removable=0 if [[ ! -z $(echo "${hwinfo}" | grep -i zotac) ]] then - #for i in /sys/block/[hs]d*/removable - #do - # if [[ $(< ${i}) = 1 ]] - # then - # removable=1 - # fi - #done + for i in /sys/block/[hs]d*/removable + do + if [[ $(< ${i}) = 1 ]] + then + removable=1 + # we assume that all removable disks are flash disks on a zotac + export FLASHDISK=1 + fi + done # smartcard = udevadm info -n /dev/sda -a | grep -i 'configuration.*card' # only add this for grub legacy, grub2 detect these settings on its own @@ -218,6 +202,32 @@ export GRUBLEGACYOPTS="" fi + # check for i845 Chipsets and enable KMS and use 915 drm driver later in initrd + if [[ ! -z $(echo "${hwinfo}" | grep -i i845) ]] + then + export SPECIALDEVICE="i845" + # unset default video=1024x768 opt or the drm driver breaks + export KERNELOPTS="quiet" + export GRUBLEGACYOPTS="" + # enable full kms support + export GRUB2GFXPAYLOAD="keep" + fi + + # check for radeon gfxcards + if [[ ! -z $(echo "${hwinfo}" | grep -i radeon) ]] + then + # enable full kms support + export GRUB2GFXPAYLOAD="keep" + fi + + # requires nomsi to prevent massive IRQ error spam + # see: http://ubuntuforums.org/showthread.php?t=1234983 + if [[ ! -z $(echo "${hwinfo}" | grep -i 'P5VD2-X') ]] || [[ ! -z $(echo "${hwinfo}" | grep -i 'VT8237') ]] || [[ ! -z $(echo "${hwinfo}" | grep -i 'VX700') ]] + then + export SPECIALDEVICE="nomsi" + export KERNELOPTS="${KERNELOPTS} pci=nomsi,noaer" + fi + # check for special devices/clients: # check for laptops and activate cpufreq scaling if [[ $(echo "${hwinfo}" | grep 'Formfactor:' | sed 's:.*Formfactor\:\ \"\(.*\)\":\1:') = laptop ]] @@ -244,19 +254,6 @@ setup_hdd_partitions() { - case "${INSTALL_METHOD}" in - auto) - BOOTHDD="" - SWAPHDD="" - ROOTHDD="${HDD}1" - ;; - normal) - BOOTHDD="${HDD}1" - SWAPHDD="${HDD}2" - ROOTHDD="${HDD}3" - ;; - esac - # sanity check - should not happen if is_mounted --device "${ROOTHDD}" then @@ -288,38 +285,103 @@ ## delete disk dd if=/dev/zero of=${HDD} count=1 &> /dev/null || dialog_die - if [[ ${FDISKPARTIONBELOW256MB} = 1 ]] + if [[ ${FLASHDISK} = 1 ]] then - ## setup one bootable partition - #1. n= new disk - #2. p= primary disk - #3. 1= first partition - #4. 2= default sector start // small disk needs more space for grub2 mbr sector - #5. ''= defaul sector end - #6. a= bootable flag - #7. 1= boot flag for partition 1 - #8. w= write/quit - fdisk ${HDD} &> /dev/null << EOF + if [[ ${FDISKPARTIONBELOW256MB} = 1 ]] + then + ## setup one bootable partition + # 1. n= new disk + # 2. p= primary disk + # 3. 1= first partition + # 4. 2= default sector start // small disk needs more space for grub2 mbr sector + # 5. ''= defaul sector end + # 6. a= bootable flag + # 7. 1= boot flag for partition 1 + # 8. n= new disk + #10. p= primary disk + #11. 2= second partition + #12. ''= default sector start + #13. ''= defaul sector end + #14. w= write/quit + fdisk ${HDD} &> /dev/null << EOF n p 1 2 ++50M +a +1 +n +p +2 + +w +EOF + else + ## setup one bootable partition + # 1. n= new disk + # 2. p= primary disk + # 3. 1= first partition + # 4. ''= default sector start + # 5. ''= defaul sector end + # 6. a= bootable flag + # 7. 1= boot flag for partition 1 + # 8. n= new disk + #10. p= primary disk + #11. 2= second partition + #12. ''= default sector start + #13. ''= defaul sector end + #14. w= write/quit + fdisk ${HDD} &> /dev/null << EOF +n +p +1 + ++50M a 1 +n +p +2 + + w EOF + fi else - ## setup one bootable partition - #1. n= new disk - #2. p= primary disk - #3. 1= first partition - #4. ''= default sector start - #5. ''= defaul sector end - #6. a= bootable flag - #7. 1= boot flag for partition 1 - #8. w= write/quit - fdisk ${HDD} &> /dev/null << EOF + if [[ ${FDISKPARTIONBELOW256MB} = 1 ]] + then + ## setup one bootable partition + #1. n= new disk + #2. p= primary disk + #3. 1= first partition + #4. 2= default sector start // small disk needs more space for grub2 mbr sector + #5. ''= defaul sector end + #6. a= bootable flag + #7. 1= boot flag for partition 1 + #8. w= write/quit + fdisk ${HDD} &> /dev/null << EOF +n +p +1 +2 + +a +1 +w +EOF + else + ## setup one bootable partition + #1. n= new disk + #2. p= primary disk + #3. 1= first partition + #4. ''= default sector start + #5. ''= defaul sector end + #6. a= bootable flag + #7. 1= boot flag for partition 1 + #8. w= write/quit + fdisk ${HDD} &> /dev/null << EOF n p 1 @@ -329,6 +391,7 @@ 1 w EOF + fi fi else cfdisk ${HDD} || dialog_die @@ -360,7 +423,7 @@ umount "${BOOTHDD}" fi - mkfs."${FORMAT_FILESYSTEM}" "${BOOTHDD}" &>> /tmp/format.log || dialog_die + mkfs."${FORMAT_FILESYSTEM_BOOTHDD}" "${BOOTHDD}" &>> /tmp/format.log || dialog_die fi if [[ -n ${ROOTHDD} ]] @@ -372,7 +435,7 @@ umount "${ROOTHDD}" fi - mkfs."${FORMAT_FILESYSTEM}" "${ROOTHDD}" &>> /tmp/format.log || dialog_die + mkfs."${FORMAT_FILESYSTEM_ROOTHDD}" "${ROOTHDD}" &>> /tmp/format.log || dialog_die fi } @@ -392,11 +455,11 @@ clearconfig if [[ -n ${BOOTHDD} ]] then - addconfig -e "UUID=$(get_uuid ${BOOTHDD})\t/\t${FORMAT_FILESYSTEM}\tnoatime\t1 1" + addconfig -e "UUID=$(get_uuid ${BOOTHDD})\t/\t${FORMAT_FILESYSTEM_BOOTHDD}\tnoatime\t1 1" fi if [[ -n ${ROOTHDD} ]] then - addconfig -e "UUID=$(get_uuid ${ROOTHDD})\t/\t${FORMAT_FILESYSTEM}\tnoatime\t0 0" + addconfig -e "UUID=$(get_uuid ${ROOTHDD})\t/\t${FORMAT_FILESYSTEM_ROOTHDD}\tnoatime\t0 0" fi if [[ -n ${SWAPHDD} ]] then @@ -503,12 +566,20 @@ zotac*) message+=$"\n\Z2Zotac device detected.\Zn" ;; rangee) message+=$"\n\Z2Rangee device detected.\Zn" ;; maxdata) message+=$"\n\Z2Maxdata device detected.\Zn" ;; + i845) message+=$"\n\Z2Intel i845 VGA device detected.\Zn" ;; + nomsi) message+=$"\n\Z2Mainboard with P5VD2-X/VT8237/VX700 chipset detected.\Zn" + message+=$"\n\Z2Disabling Message Signaled Interrupts (MSI) capability of the kernel.\Zn" ;; *) message+=$"\n\ZnCommon device detected.\Zn" ;; esac if [[ ${FORMFACTOR} = laptop ]] then message+=$"\n\ZnFormfactor Laptop, activating 'ondemand' powersaving mode.\Zn" fi + if [[ ${FLASHDISK} = 1 ]] + then + message+=$"\n\ZnFlash memory detected.\Zn" + message+=$"\n\ZnF2FS will be used as default filesystem withn the auto installation mode.\Zn" + fi messagebox -y 12 -h $"Detected hardware:" "${message}" } @@ -564,9 +635,44 @@ case "${method}" in auto) + if [[ ${FLASHDISK} = 1 ]] + then + export BOOTHDD="${HDD}1" + export SWAPHDD="" + export ROOTHDD="${HDD}2" + export FORMAT_FILESYSTEM_BOOTHDD="f2fs" + export FORMAT_FILESYSTEM_ROOTHDD="ext2" + else + export BOOTHDD="" + export SWAPHDD="" + export ROOTHDD="${HDD}1" + export FORMAT_FILESYSTEM_BOOTHDD="" + export FORMAT_FILESYSTEM_ROOTHDD="${FORMAT_FILESYSTEM}" + fi export INSTALL_METHOD="${method}" ;; normal) + export BOOTHDD="${HDD}1" + export SWAPHDD="${HDD}2" + export ROOTHDD="${HDD}3" + export FORMAT_FILESYSTEM_BOOTHDD="${FORMAT_FILESYSTEM}" + export FORMAT_FILESYSTEM_ROOTHDD="${FORMAT_FILESYSTEM}" + export INSTALL_METHOD="${method}" + ;; + single) + export BOOTHDD="" + export SWAPHDD="" + export ROOTHDD="${HDD}1" + export FORMAT_FILESYSTEM_BOOTHDD="" + export FORMAT_FILESYSTEM_ROOTHDD="${FORMAT_FILESYSTEM}" + export INSTALL_METHOD="${method}" + ;; + flash) + export BOOTHDD="${HDD}1" + export SWAPHDD="" + export ROOTHDD="${HDD}2" + export FORMAT_FILESYSTEM_BOOTHDD="${FORMAT_FILESYSTEM}" + export FORMAT_FILESYSTEM_ROOTHDD="f2fs" export INSTALL_METHOD="${method}" ;; *)