--- trunk/installer-simple/bin/installer.sh.in 2015/07/31 10:48:17 2887 +++ 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 @@ -114,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 @@ -126,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 } @@ -158,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 @@ -196,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 ]] @@ -253,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 @@ -294,6 +391,7 @@ 1 w EOF + fi fi else cfdisk ${HDD} || dialog_die @@ -468,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}" } @@ -529,11 +635,20 @@ case "${method}" in auto) - export BOOTHDD="" - export SWAPHDD="" - export ROOTHDD="${HDD}1" - export FORMAT_FILESYSTEM_BOOTHDD="" - export FORMAT_FILESYSTEM_ROOTHDD="${FORMAT_FILESYSTEM}" + 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)