[Comm] cpufreq-simple и P4 (was: Бета 6.0.1 KDesktop 2012.02.09)
Michael Shigorin
mike на osdn.org.ua
Пт Мар 2 23:12:27 MSK 2012
On Thu, Feb 23, 2012 at 08:39:24AM +0400, Геннадий Ищенко wrote:
> > > > > > grep speedstep /etc/modules
> > > > > > rpm -q cpufreq-simple
> > > > > Привожу все, что просили:
> > > > Только все это лучше в багзиллу и уже там разбираться.
> > > Я в багзиллу только раз и положил что-то года три назад и долго
> > > мучился с оформлением. А тут и сформулировать трудно.
> > Тут как раз сформулировать просто -- если хотите, давайте вместе.
> > Собственно, ответы на мои вопросы из Вашего же письма как раз и
> > пойдут; вешать стоит на проект Sisyphus, компонент cpufreq-simple
> > с остальным по умолчанию.
> Михаил, буду очень благодарен, если это сделаете вы. Я прошлый
> раз возился довольно долго и нет полной уверенности, что все
> сделал правильно, да и забыл уже где и что. Опыт вещь великая,
> а у меня его нет и, самое главное, особенно и нет смысла
> приобретать, так как нахожу что-то очень редко, а возраст
> такой, что все, что не используется - забывается быстро.
Да уж, новое -- это хорошо забытое старое:
https://bugzilla.altlinux.org/6074
Там, правда, про P4M -- но вот как раз для него из P4 и есть
смысл пытаться грузить speedstep-ich; пригодился на паттерн.
Проверьте, что выдаёт приложенный скрипт? (не должен ничего)
2 community: у кого есть машинки с Pentium 4 и Mobile P4 --
пожалуйста, прогоните его тоже. В идеале заодно попробовав
загрузить предложенный модуль, если вывод непуст.
--
---- WBR, Michael Shigorin <mike на altlinux.ru>
------ Linux.Kiev http://www.linux.kiev.ua/
----------- следующая часть -----------
#!/bin/sh -efu
# Try to detect cpufreq module,
# Heavy based on code from Debian's loadcpufreq init script.
CPUINFO=/proc/cpuinfo
IOPORTS=/proc/ioports
if [ ! -f $CPUINFO ] ; then
echo "$CPUINFO not detected..." >&2
return 1
fi
MODEL_NAME=$(grep '^model name' "$CPUINFO" | head -1 | sed -e 's/^.*: //;')
MODEL_ID=$(grep -E '^model[[:space:]]+:' "$CPUINFO" | head -1 | sed -e 's/^.*: //;')
CPU=$(grep -E '^cpud[^:]+:' "$CPUINFO" | head -1 | sed -e 's/^.*: //;')
VENDOR_ID=$(grep -E '^vendor_id[^:]+:' "$CPUINFO" | head -1 | sed -e 's/^.*: //;')
CPU_FAMILY=$(sed -e '/^cpu family/ {s/.*: //;p;Q};d' $CPUINFO)
MODULE=
case "$VENDOR_ID" in
GenuineIntel*)
# If the CPU has the est flag, it supports enhanced
# speedstep and should use the acpi-cpufreq driver
if [ "$(grep est $CPUINFO)" ]; then
MODULE=acpi-cpufreq
elif [ $CPU_FAMILY = 15 ]; then
# Right. Check if it's a P4 without est.
case "$MODEL_NAME" in
Mobile\ Intel\(R\)\ Pentium\(R\)*)
MODULE=speedstep-ich
;;
esac
# no use of p4-clockmod at all
else
# Two modules for PIII-M depending the chipset.
# modprobe speedstep-ich || modprobe speestep-smi
# would be another way
if [ -f $IOPORTS ] && grep -q 'Intel .*ICH' $IOPORTS ; then
PIII_MODULE=speedstep-ich
else
PIII_MODULE=speedstep-smi
fi
# So it doesn't have Enhanced Speedstep, and it's not a
# P4. It could be a Speedstep PIII, or it may be
# unsupported. There's no terribly good programmatic way
# of telling.
case "$MODEL_NAME" in
Intel\(R\)\ Pentium\(R\)\ III\ Mobile\ CPU*)
MODULE=$PIII_MODULE
;;
# JD: says this works with cpufreq_userspace
Mobile\ Intel\(R\)\ Pentium\(R\)\ III\ CPU\ -\ M*)
MODULE=$PIII_MODULE
;;
# https://bugzilla.ubuntu.com/show_bug.cgi?id=4262
# UNCONFIRMED
Pentium\ III\ \(Coppermine\)*)
MODULE=$PIII_MODULE
;;
esac
fi
;;
AuthenticAMD*)
# Hurrah. This is nice and easy.
case $CPU_FAMILY in
5)
# K6
MODULE=powernow-k6
;;
6)
# K7
MODULE=powernow-k7
;;
15|16|17|20)
# K8
MODULE=powernow-k8
;;
esac
;;
CentaurHauls*)
# VIA
if [ $CPU_FAMILY = 6 ]; then
case $MODEL_ID in
10) # VIA C7 VIA Esther
# try acpi_cpufreq as
# suggested in the kernel
# configuration help
MODULE=acpi_cpufreq
;;
*)
MODULE=longhaul
;;
esac
fi
;;
GenuineTMx86*)
# Transmeta
if [ "$(grep longrun $CPUINFO)" ]; then
MODULE=longrun
fi
;;
esac
if [ -n "$MODULE" ]; then
echo "$MODULE"
else
exit 1
fi
Подробная информация о списке рассылки community