--- alx-src/trunk/alxinstall-ng/bin/alxinstall-ng.sh.in 2011/09/14 13:12:00 3202 +++ alx-src/trunk/alxinstall-ng/bin/alxinstall-ng.sh.in 2014/04/22 10:55:06 5575 @@ -37,12 +37,14 @@ # grub options GRUBLEGACYOPTS="" GRUB2OPTS="" +GRUB2GFXPAYLOAD="1024x768x16,1024x768" # fdisk options FDISKPARTIONBELOW256MB=0 # default specialdevices SPECIALDEVICE="" +FORMFACTOR="desktop" # target filesystem FORMAT_FILESYSTEM="ext4" @@ -206,12 +208,18 @@ # other devices run_hardware_detection case "${SPECIALDEVICE}" in - zotac) echo " \n\n\n \\Z2Zotac Device erkannt!\\Zn \\" >> ${hwtmp} ;; - rangee) echo " \n\n\n \\Z2Rangee Device erkannt!\\Zn \\" >> ${hwtmp} ;; - *) echo " \n\n\n \\ZnStandard Device erkannt!\\Zn \\" >> ${hwtmp} ;; + zotac*) echo " \n\n\n \\Z2Zotac Device erkannt.\\Zn \\" >> ${hwtmp} ;; + rangee) echo " \n\n\n \\Z2Rangee Device erkannt.\\Zn \\" >> ${hwtmp} ;; + maxdata) echo " \n\n\n \\Z2Maxdata Device erkannt.\\Zn \\" >> ${hwtmp} ;; + i845) echo " \n\n\n \\Z2Intel i845 Device erkannt.\\Zn \\" >> ${hwtmp} ;; + *) echo " \n\n\n \\ZnStandard Device erkannt.\\Zn \\" >> ${hwtmp} ;; esac + if [[ ${FORMFACTOR} = laptop ]] + then + echo " \n \\ZnFormfactor Laptop, Powersave Modus 'ondemand' wird aktiviert.\\Zn \\" >> ${hwtmp} + fi - echo " \" 13 70" >> ${hwtmp} + echo " \" 14 70" >> ${hwtmp} chmod a+x ${hwtmp} ${hwtmp} @@ -441,7 +449,7 @@ { local hwinfo - hwinfo="$(hwinfo --bios --storage)" + hwinfo="$(hwinfo --bios --storage --pci --gfxcard --sys)" # check for special devices/clients: # if zotac a zotac and the disk is a removeable device, then add rootdelay to kernelcmd @@ -458,7 +466,13 @@ # only add this for grub legacy, grub2 detect these settings on its own export GRUBLEGACYOPTS="rootdelay=8" - export SPECIALDEVICE="zotac" + # there are two zotac types in the wild, nvidia based gfx and intel + if [[ ! -z $(echo "${hwinfo}" | grep -i nouveau) ]] + then + export SPECIALDEVICE="zotac_nvidia" + else + export SPECIALDEVICE="zotac_intel" + fi fi # check for special devices/clients: @@ -470,6 +484,33 @@ export SPECIALDEVICE="rangee" export GRUBLEGACYOPTS="" fi + + # check for special devices/clients: + # check for maxdata / i810/ i815 Chipsets and disable KMS and use i810fb frambuffer + if [[ ! -z $(echo "${hwinfo}" | grep -i i810) ]] || [[ ! -z $(echo "${hwinfo}" | grep -i i815) ]] + then + export SPECIALDEVICE="maxdata" + export GRUBLEGACYOPTS="" + fi + + # check for i845 Chipsets and disable KMS and use 915 drm driver + 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 special devices/clients: + # check for laptops and activate cpufreq scaling + if [[ $(echo "${hwinfo}" | grep 'Formfactor:' | sed 's:.*Formfactor\:\ \"\(.*\)\":\1:') = laptop ]] + then + export FORMFACTOR="laptop" + export KERNELOPTS="${KERNELOPTS} cpufreq.governor=ondemand" + fi } hdd_size_below_256mb() @@ -622,8 +663,10 @@ if [[ -f ${INSTALLPATH}/etc/conf.d/grub ]] then sed -i "s:^\(export GRUB_CMDLINE_LINUX_DEFAULT=\).*:\1\"${KERNELOPTS}\":" ${INSTALLPATH}/etc/conf.d/grub || die + sed -i "s:^\(export GRUB_GFXPAYLOAD_LINUX=\).*:\1\"${GRUB2GFXPAYLOAD}\":" ${INSTALLPATH}/etc/conf.d/grub || die else echo "export GRUB_CMDLINE_LINUX_DEFAULT=\"${KERNELOPTS}\"" > ${INSTALLPATH}/etc/conf.d/grub || die + echo "export GRUB_GFXPAYLOAD_LINUX=\"${GRUB2GFXPAYLOAD}\"" >> ${INSTALLPATH}/etc/conf.d/grub || die fi echo 'grub-mkdevicemap' > ${INSTALLPATH}/root/.installrc || die echo "LC_ALL=C grub-mkconfig -o ${grub2conf} &> /dev/null" >> ${INSTALLPATH}/root/.installrc || die @@ -732,12 +775,22 @@ PATAMODS="ata_piix pata_amd pata_mpiix pata_oldpiix pata_sis pata_via" SATAMODS="sata_via sata_sis sata_nv" DRMMODS="i915 mga nouveau r128 radeon savage sis tdfx ttm via" + OTHERMODS="" case ${SPECIALDEVICE} in - zotac) FBMODS="" ;; - rangee) FBMODS="viafb" ;; + zotac_intel|i845) FBMODS=""; DRMMODS="i915" ;; + zotac_nvidia) FBMODS=""; DRMMODS="nouveau" ;; + rangee) FBMODS="" ;; ## fallback to vesafb, viafb does not run on all CLE266 boards + # not working with kms enabled drivers -> segfaults + #maxdata) FBMODS="i810fb" ;; ## check for maxdata / i810/ i815 Chipsets and disable KMS and use i810fb frambuffer + maxdata) FBMODS="" ;; *) FBMODS="uvesafb" ;; esac + if [[ ${FORMFACTOR} = laptop ]] + then + OTHERMODS="acpi-cpufreq cpufreq_ondemand cpufreq_conservative cpufreq_powersave" + fi + # install an appropriate uvesafb.conf install -d ${INSTALLPATH}/etc/modprobe.d || die echo "options uvesafb mode_option=1024x768-32@60 scroll=ywrap" > ${INSTALLPATH}/etc/modprobe.d/uvesafb.conf || die @@ -745,8 +798,11 @@ # install an appropriate viafb.conf echo "options viafb viafb_mode=1024x768 viafb_refresh=60" > ${INSTALLPATH}/etc/modprobe.d/viafb.conf || die + # install an appropriate i810fb.conf + echo "options i810fb xres=1024 yres=768 bpp=16 mtrr=1 hsync1=30 hsync2=62 vsync1=30 vsync2=60" > ${INSTALLPATH}/etc/modprobe.d/i810fb.conf || die + cat > ${INSTALLPATH}/root/.installrc << CHROOTEOF -echo "MODULES=\"${FORMAT_FILESYSTEM} ${DISKMODS} ${OLDATAMODS} ${PATAMODS} ${SATAMODS} ${DRMMODS} ${FBMODS}\"" > /etc/conf.d/mkinitrd +echo "MODULES=\"${FORMAT_FILESYSTEM} ${DISKMODS} ${OLDATAMODS} ${PATAMODS} ${SATAMODS} ${DRMMODS} ${FBMODS} ${OTHERMODS}\"" > /etc/conf.d/mkinitrd mkinitrd -f /boot/$(readlink /boot/initrd) $(readlink /boot/vmlinuz | sed "s:kernel-::g") > /dev/null exit 0 CHROOTEOF @@ -813,6 +869,19 @@ # install network config skeleton install -m0644 ${INSTALLPATH}/etc/alxconfig-ng/skel/net/net.eth0 ${INSTALLPATH}/etc/conf.d/ || die + + # intel framebufer quirk + if [[ -e /proc/fb ]] + then + if [[ ! -z $(grep 'inteldrmfb' /proc/fb) ]] + then + fbdev=$(grep 'inteldrmfb' /proc/fb | sed 's:\([0-9]\).*:\1:') + if [[ ${fbdev} != 0 ]] + then + sed -i "s:^\(SPLASH_DEV=\).*:\1\"/dev/fb${fbdev}\":" ${INSTALLPATH}/etc/splash/splash.conf || die + fi + fi + fi } install_system_settings_flash()