--- 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 2013/05/13 12:11:18 4847 @@ -206,8 +206,9 @@ # other devices run_hardware_detection case "${SPECIALDEVICE}" in - zotac) echo " \n\n\n \\Z2Zotac 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} ;; *) echo " \n\n\n \\ZnStandard Device erkannt!\\Zn \\" >> ${hwtmp} ;; esac @@ -441,7 +442,7 @@ { local hwinfo - hwinfo="$(hwinfo --bios --storage)" + hwinfo="$(hwinfo --bios --storage --pci --gfxcard)" # check for special devices/clients: # if zotac a zotac and the disk is a removeable device, then add rootdelay to kernelcmd @@ -458,7 +459,13 @@ # only add this for grub legacy, grub2 detect these settings on its own export GRUBLEGACYOPTS="rootdelay=8" - export SPECIALDEVICE="zotac" + # there are to 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 +477,14 @@ 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 } hdd_size_below_256mb() @@ -733,8 +748,10 @@ SATAMODS="sata_via sata_sis sata_nv" DRMMODS="i915 mga nouveau r128 radeon savage sis tdfx ttm via" case ${SPECIALDEVICE} in - zotac) FBMODS="" ;; - rangee) FBMODS="viafb" ;; + zotac_intel) FBMODS=""; DRMMODS="i915" ;; + zotac_nvidia) FBMODS=""; DRMMODS="nouveau" ;; + rangee) FBMODS="" ;; ## fallback to vesafb, viafb does not run on all CLE266 boards + maxdata) FBMODS="i810fb" ;; ## check for maxdata / i810/ i815 Chipsets and disable KMS and use i810fb frambuffer *) FBMODS="uvesafb" ;; esac @@ -745,6 +762,9 @@ # 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 mkinitrd -f /boot/$(readlink /boot/initrd) $(readlink /boot/vmlinuz | sed "s:kernel-::g") > /dev/null @@ -813,6 +833,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()