X-Git-Url: http://git.grml.org/?p=grml-autoconfig.git;a=blobdiff_plain;f=autoconfig.functions;h=e129caea21bae19821d8c58758d83d221509c55c;hp=d8499aed808d91013e7d5fc7ab6027733c43f32b;hb=4a4e155db0e3c21790c6c5073f076a5e9ceaf33b;hpb=364ff29a35ee2eb3a8105fcf89a54887bee4f24b diff --git a/autoconfig.functions b/autoconfig.functions index d8499ae..e129cae 100755 --- a/autoconfig.functions +++ b/autoconfig.functions @@ -344,7 +344,7 @@ config_time(){ # hwclock uses the TZ variable [ -r /etc/timezone ] && TZ=$(cat /etc/timezone) [ -n "$TZ" ] || TZ=Europe/Vienna - + if ! [ -r /dev/rtc ] ; then ewarn "Realtime clock not available, skipping execution of hwclock therefore." ; eend 0 else @@ -364,7 +364,7 @@ config_time(){ # {{{ print kernel info config_kernel(){ - vmware-detect &>/dev/null && VMWARE="inside ${WHITE}VMWare${NORMAL}" + vmware-detect &>/dev/null && VMWARE="inside ${WHITE}VMware/Qemu${NORMAL}" [ -d /proc/xen ] && VMWARE='' # vmware-detect returns '0' when running with a Xen-enabled kernel einfo "Running Linux Kernel $KERNEL $VMWARE" ; eend 0 if [ -r /proc/cpuinfo ] ; then @@ -391,10 +391,10 @@ else if ! checkbootparam qemu ; then if vmware-detect ; then if [ -r /etc/X11/xorg.conf.vmware ] ; then - einfo "Copying /etc/X11/xorg.conf.vmware to /etc/X11/xorg.conf" + einfo "VMware: Copying /etc/X11/xorg.conf.vmware to /etc/X11/xorg.conf" cp /etc/X11/xorg.conf.vmware /etc/X11/xorg.conf ; eend $? fi - fi + fi fi fi fi @@ -405,7 +405,7 @@ fi config_qemu(){ if checkbootparam qemu ; then if [ -r /etc/X11/xorg.conf.example ] ; then - einfo "Copying /etc/X11/xorg.conf.example to /etc/X11/xorg.conf" + einfo "Qemu: Copying /etc/X11/xorg.conf.example to /etc/X11/xorg.conf" cp /etc/X11/xorg.conf.example /etc/X11/xorg.conf ; eend $? fi fi @@ -1211,58 +1211,49 @@ config_cpu(){ if checkbootparam "nocpu"; then ewarn "Skipping CPU detection as requested on boot commandline." ; eend 0 else - if ! [ -x /etc/init.d/powernowd ] ; then - ewarn "Skipping CPU detection as powernowd dependencies are not fulfilled." ; eend 1 - elif [ ! -e /lib/modules/${KERNEL}/kernel/arch/i386/kernel/cpu/cpufreq -o ! -e /lib/modules/${KERNEL}/kernel/drivers/cpufreq ] ; then - ewarn "Skipping CPU detection as module dependencies are not fulfilled." ; eend 1 - else - if [[ `grep -c processor /proc/cpuinfo` -gt 1 ]] ; then - einfo "Detecting CPU:" - CPU=$(awk -F: '/^processor/{printf " Processor"$2" is"};/^model name/{printf $2};/^vendor_id/{printf vendor};/^cpu MHz/{printf " %dMHz",int($2)};/^cache size/{printf ","$2" Cache"};/^$/{print ""}' /proc/cpuinfo 2>>$DEBUG) - echo $CPU | sed 's/ \{1,\}/ /g' - eend 0 - else - einfo "Detecting CPU: `awk -F: '/^processor/{printf " Processor"$2" is"};/^model name/{printf $2};/^vendor_id/{printf vendor};/^cpu MHz/{printf " %dMHz",int($2)};/^cache size/{printf ","$2" Cache"};/^$/{print ""}' /proc/cpuinfo 2>>$DEBUG` " ; eend 0 - fi - if /usr/sbin/laptop-detect ; then - einfo "Detected Laptop - trying to use cpu frequency scaling:" -# loadcpumod() { -# for module in /lib/modules/${KERNEL}/kernel/arch/i386/kernel/cpu/cpufreq/*.ko /lib/modules/${KERNEL}/kernel/drivers/cpufreq/*.ko ; do -# # modprobe ${${${${(f)"$(_call_program modules ${(M)words[1]##*/}modprobe -l | grep cpufreq 2>>$DEBUG)"}:#}##*/}%.*} -# modprobe `basename ${module%%\.ko}` 1>>$DEBUG 2>&1 -# done -# } -# CPU=$(grep 'model name' /proc/cpuinfo | cut -b14- | head -1) -# eindent -# if [[ $CPU = *Intel* ]] ; then -# einfo "Detected CPU is of type Intel - loading modules and starting cpudyn." -# local DETECTED=1 -# loadcpumod -# /etc/init.d/cpudyn start 1>>$DEBUG ; eend $? -# fi -# if [[ $CPU = *AMD* ]] ; then -# einfo "Detected CPU is of type AMD - loading modules and starting powernowd." -# local DETECTED=1 -# loadcpumod -# /etc/init.d/powernowd start 1>>$DEBUG ; eend $? -# fi - - eindent - if [ -r /usr/bin/cpufreq-detect.sh ] ; then - . /usr/bin/cpufreq-detect.sh - if [ -n "$MODULE" -a "$MODULE" != none ]; then - einfo "Loading module ${MODULE} and starting powernowd." - modprobe cpufreq_userspace 1>>$DEBUG - modprobe "$MODULE" 1>>$DEBUG || modprobe "$MODULE_FALLBACK" 1>>$DEBUG - /etc/init.d/powernowd start 1>>$DEBUG ; eend $? - else - ewarn "Could not detect an appropriate CPU for use with powernowd - skipping." && eend 1 - fi - fi - eoutdent + # check module dependencies + cpufreq_check() { + if [ -e /lib64 ] ; then + [ -e /lib/modules/${KERNEL}/kernel/arch/x86_64/kernel/cpufreq ] || return 1 + else + [ -e /lib/modules/${KERNEL}/kernel/arch/i386/kernel/cpu/cpufreq -o ! -e /lib/modules/${KERNEL}/kernel/drivers/cpufreq ] || return 1 fi + } + + if [[ `grep -c processor /proc/cpuinfo` -gt 1 ]] ; then + einfo "Detecting CPU:" + CPU=$(awk -F: '/^processor/{printf " Processor"$2" is"};/^model name/{printf $2};/^vendor_id/{printf vendor};/^cpu MHz/{printf " %dMHz",int($2)};/^cache size/{printf ","$2" Cache"};/^$/{print ""}' /proc/cpuinfo 2>>$DEBUG) + echo $CPU | sed 's/ \{1,\}/ /g' + eend 0 + else + einfo "Detecting CPU: `awk -F: '/^processor/{printf " Processor"$2" is"};/^model name/{printf $2};/^vendor_id/{printf vendor};/^cpu MHz/{printf " %dMHz",int($2)};/^cache size/{printf ","$2" Cache"};/^$/{print ""}' /proc/cpuinfo 2>>$DEBUG` " ; eend 0 fi -fi + + if ! cpufreq_check ; then + ewarn "Skipping cpufreq setup as module dependencies are not fulfilled." ; eend 1 + else + if /usr/sbin/laptop-detect ; then + einfo "Detected Laptop - trying to use cpu frequency scaling:" + if [ -r /usr/bin/cpufreq-detect.sh ] ; then + eindent + . /usr/bin/cpufreq-detect.sh + if [ -n "$MODULE" -a "$MODULE" != none ]; then + einfo "Loading modules ${MODULE} and cpufreq_ondemand, setting ondemand governor" + modprobe "$MODULE" 1>>$DEBUG || modprobe "$MODULE_FALLBACK" 1>>$DEBUG + if modprobe cpufreq_ondemand && RC=0 || RC=1 ; then + for file in $(find /sys/devices/system/cpu/ -name scaling_governor 2>/dev/null) ; do + echo ondemand > $file + done + fi + eend $RC + else + ewarn "Could not detect an appropriate CPU for use with cpu frequency scaling - skipping." && eend 1 + fi + eoutdent + fi # cpufreq-detect + fi # laptop-detect + fi # cpufreq_check +fi # checkbootparam nocpu } # }}} @@ -1648,7 +1639,7 @@ EOF chmod 755 /etc/init.d/xstartup sed -i 's#^6:.*#6:2345:respawn:/bin/zsh --login -c "/etc/init.d/xstartup ; /bin/zsh"#' /etc/inittab - + /sbin/telinit q ; eend $? if grep -q '^allowed_users=' /etc/X11/Xwrapper.config ; then