# [SOLVED][ACPI] cpufreq nie działa.

## Jacekalex

Witam

Instalowałem teraz Gentoo od nowa, i trochę za porządnie odchudziłem kernel   :Very Happy:  :

Sprawa wygląda tak:

```
cpufreq-info

cpufrequtils 007: cpufreq-info (C) Dominik Brodowski 2004-2009

Report errors and bugs to cpufreq@vger.kernel.org, please.

analyzing CPU 0:

  no or unknown cpufreq driver is active on this CPU

  maximum transition latency: 0.00 ms.

analyzing CPU 1:

  no or unknown cpufreq driver is active on this CPU

  maximum transition latency: 0.00 ms.
```

```
localhost  ~ # zgrep -i CPU_FREQ /proc/config.gz

CONFIG_CPU_FREQ=y

CONFIG_CPU_FREQ_TABLE=y

# CONFIG_CPU_FREQ_DEBUG is not set

CONFIG_CPU_FREQ_STAT=y

CONFIG_CPU_FREQ_STAT_DETAILS=y

# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set

CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y

# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set

# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set

CONFIG_CPU_FREQ_GOV_PERFORMANCE=y

CONFIG_CPU_FREQ_GOV_POWERSAVE=y

CONFIG_CPU_FREQ_GOV_USERSPACE=y

CONFIG_CPU_FREQ_GOV_ONDEMAND=y

CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y

localhost ~ # 
```

```
zgrep -i cpufreq /proc/config.gz

# CPUFreq processor drivers

CONFIG_X86_PCC_CPUFREQ=y

CONFIG_X86_ACPI_CPUFREQ=y

# CONFIG_X86_CPUFREQ_NFORCE2 is not set
```

 strace -f cpufreq-info pokazuje:

```
munmap(0xb77bc000, 4096)                = 0

stat64("/sys/devices/system/cpu/cpu0/", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0

stat64("/sys/devices/system/cpu/cpu0/", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0

write(1, "analyzing CPU 0:\n", 17analyzing CPU 0:

)      = 17

open("/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/proc/sys/cpu/0/speed", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/sys/devices/system/cpu/cpu0/cpufreq/scaling_driver", O_RDONLY) = -1 ENOENT (No such file or directory)

write(1, "  no or unknown cpufreq driver i"..., 53  no or unknown cpufreq driver is active on this CPU

) = 53

open("/sys/devices/system/cpu/cpu0/cpufreq/related_cpus", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/sys/devices/system/cpu/cpu0/cpufreq/affected_cpus", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_transition_latency", O_RDONLY) = -1 ENOENT (No such file or directory)

write(1, "  maximum transition latency: 0."..., 39  maximum transition latency: 0.00 ms.

) = 39

open("/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/proc/cpufreq", O_RDONLY)         = -1 ENOENT (No such file or directory)

open("/sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state", O_RDONLY) = -1 ENOENT (No such file or directory)

stat64("/sys/devices/system/cpu/cpu1/", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0

stat64("/sys/devices/system/cpu/cpu1/", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0

write(1, "analyzing CPU 1:\n", 17analyzing CPU 1:

)      = 17

open("/sys/devices/system/cpu/cpu1/cpufreq/scaling_cur_freq", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/proc/sys/cpu/1/speed", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/sys/devices/system/cpu/cpu1/cpufreq/cpuinfo_cur_freq", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/sys/devices/system/cpu/cpu1/cpufreq/scaling_driver", O_RDONLY) = -1 ENOENT (No such file or directory)

write(1, "  no or unknown cpufreq driver i"..., 53  no or unknown cpufreq driver is active on this CPU

) = 53

open("/sys/devices/system/cpu/cpu1/cpufreq/related_cpus", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/sys/devices/system/cpu/cpu1/cpufreq/affected_cpus", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/sys/devices/system/cpu/cpu1/cpufreq/cpuinfo_transition_latency", O_RDONLY) = -1 ENOENT (No such file or directory)

write(1, "  maximum transition latency: 0."..., 39  maximum transition latency: 0.00 ms.

) = 39

open("/sys/devices/system/cpu/cpu1/cpufreq/cpuinfo_min_freq", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/sys/devices/system/cpu/cpu1/cpufreq/scaling_available_frequencies", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/sys/devices/system/cpu/cpu1/cpufreq/scaling_available_governors", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/sys/devices/system/cpu/cpu1/cpufreq/scaling_governor", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/proc/cpufreq", O_RDONLY)         = -1 ENOENT (No such file or directory)

open("/sys/devices/system/cpu/cpu1/cpufreq/stats/time_in_state", O_RDONLY) = -1 ENOENT (No such file or directory)

exit_group(0)       
```

Co niestety jest zgodne z prawdą.

Procesor  Intel(R) Core(TM)2 Duo CPU     E6750  @ 2.66GHz,

od zawsze cpufreq-info pokazywał driver acpi-cpufreq ( w tej chwili na Debianie (jajo Aptosida 2.6.39) też tak pokazuje.

Konfig jednego z kerneli: http://pastebin.com/MDxAdkJu

Jak poprawić konfig kernela?

Zamierzam dopracować lekką statyczną konfigurację, i w tej chwili to jest jedyny problem z optymalnym konfigiem

Dzięki i Pozdrawiam.

 :Cool: Last edited by Jacekalex on Sun Jun 12, 2011 11:12 am; edited 3 times in total

----------

## Zwierzak

Mam podobny problem, ale z procesorem Intel i3, nie jestem w stanie wymusić zmiany częstotliwości na nim. Ktoś wie jakie moduły są przewidziane do power managment dla tych procesorów?

----------

## SlashBeast

U mnie na i5 gra i bucy.

```
## CPU Frequency scaling

CONFIG_CPU_FREQ=y

CONFIG_CPU_FREQ_TABLE=y

CONFIG_CPU_FREQ_STAT=y

# CONFIG_CPU_FREQ_STAT_DETAILS is not set

# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set

# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set

CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y

# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set

CONFIG_CPU_FREQ_GOV_PERFORMANCE=y

CONFIG_CPU_FREQ_GOV_POWERSAVE=y

CONFIG_CPU_FREQ_GOV_USERSPACE=y

CONFIG_CPU_FREQ_GOV_ONDEMAND=y

CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
```

Sprawdzcie dmesg czy nie ma zadnego problemu z acpi. W przypadku braku acpi (np. jak bootujesz z acpi=off) nie dziala ani HT ani skalowanie procesora.

----------

## Zwierzak

Doszedłem właśnie do tego, że nie ma problemów u mnie z sterowaniem prockiem, problem jest z PowerDevil korzystającym z UPower, jakoś nie znalazłem, aby oferował możliwość sterowania procesorem. Ale rozwiązałem to odpalając cpufreq-set podczas zmiany profili (można było dodać) i teraz działa bez problemu. Dzięki temu linux również powinien zyskać 3h działania na baterii zamiast <1h.

----------

## nUmer_inaczej

Zarządzanie zasilaniem

Nie jestem pewny, ale chyba acpid musisz mieć odpalone.

----------

## Jacekalex

U mnie chyba acpid i moduły w jaju nie radzą sobie z płytą gł.

Załadowałem acpid z Thinderboxa, jest to samo, konfig kernela sprawdzałem 10 razy.

Nawiasem piszac , mam Debiana na sąsiedniej partycji, i tam cpufreq działa.

Tydzień temu miałem Gentoo ~x86 - też działało, teraz (po 10 mieś) zainstalowałem od nowa na stabilnym gcc, błędów mniej, a z cpufreq jaja.

Jeszcze pokombinuję z jajem i acpi.

EDYTA:

Znalazłem winnego - błąd w ACPI w kernelu 2.6.39

Sprawa wyglada tak: od kernela 2.6.38.4 miałem taki problem.

Kernel - który miał podaną w cmdline komendę acpi=force - w ogóle nie wstawał.

Był tylko czarny ekran.

W tej chwili mam 2.6.37-r4 (Gentoo-sources) - i ACPI ruszyło.

Nie zorientowałem się wcześniej, bo mam nowego gruba2 - i w paramterze acpi=force omyłkowo był myślnik zamiast =.

Mam 2 kernele 2.6.39 - kompilowane na różnych konfigach (inaczej zrobionych) - i oba wstają, o ile nie mają acpi=force w cmdline.

2 wersje 2.6.37 wstają bez problemu, 2.6.38.2 z vanilla-sources tez wstaje.

Natomiast bez acpi=force na obecnej płycie w ogóle nie mam obsługi Acpi. (dałem się nabrać na Gigabyte).

Spróbuję 2.6.39.1 z kernel.org, może będzie miał to poprawione.

To by było na tyle

 :Cool: Last edited by Jacekalex on Sun Oct 23, 2011 5:05 pm; edited 3 times in total

----------

## SlashBeast

Teraz jeszcze dodaj SOLVED.

----------

## Jacekalex

Na Solved troche za wcześnie - na Debianie, na jaju 2.6.39-0.slh.2-aptosid-686 acpi=force działa, cpufreq działa.

Na źródłach 2.6.39 Vanilla i Gentoo z drzewa, nie działa za Chiny Ludowe.

Muszę wyczaić w konfigu Aptosida, skąd jest ta różnica.

I poprawić konfig kernela w Gentoo - żeby ruszyło.

Na 2.6.39.1 z kernel.org  ten sam kłopot - co na wszystkich od 2.6.38.4.

Także do SOLVED jeszcze kawał drogi.

Pozdrawiam

 :Cool: 

----------

## SlashBeast

Twoim problemem jest acpi, a nie cpufreq sam w sobie, w takim razie popraw temat. 

Pobierz sobie config z debiana i sprawdz wtedy, sprawdz tez jakie patche ma debian w kernelu, moze ktorys lata regresje z acpi.

----------

## Jacekalex

Konfigi przekopałem na wszystkie strony, jutro skompiluję na żywca jajo na konfigu z Aptosida, i zobaczę, co wypluje.

Jednego jestem pewien, jeśli w Aptosidzie nie dali jakichś latek poprawiających ACPI, to używane moduły przez kernel z Aptosida, i Gentowe -są takie same, moduły ACPI też.

Prawdopodobnie różnica jest gdzie indziej.

I kombinuję, jak ją wyczaić.

EDYTA:

Pomógł najnowszy bios do płyty głównej, - nie trzeba już w grubie klepać acpi=force, żeby działało acpi.

Co ciekawe, kompilowane (w domu) wersje 2.6.38.* i 2.6.39.* - które nie wstawały przy acpi=force, teraz nie wstają w ogóle - jest tylko czarny ekran, nic więcej.

Błąd chyba przejściowy skoro mam 3 działające z ACPI kernele:

```
vmlinuz-2.6.37-tic

vmlinuz-2.6.37-gentoo-r4

vmlinuz-3.0.0-rc2
```

 - na tych 3 ACPI już działa normalnie, bez żadnych machinacji w grubie.

EDYTA2:

Obecnie na kernelach 2.6.37 i 3.0 nie potrzeba już acpi=force, za to na 2.6.38.6 i 2.6.39 muszę dawać acpi=off, żeby uruchomienie nie skończyło się blackscreenem i zwiechą.

EDYTA3:

Jajo 2.6.39.2 z vanilla-sources - nareszcie mam stabilne jajo, w którym prawidłowo (u mnie) działa ACPI.

Edyta4:

Pomogła zmiana biosu płyty gł (na najnowszy), sytuacja z Acpi się uspokoiła.

Pozdrawiam

 :Cool: 

----------

