Intel D945GCLF2 – Atomowy potwór grzewczy

Intel – bo taka właśnie płyta główna zagościła w moim nowym serwerze stała się bodźcem do popełnienia tego wpisu. Płytka tania, za 200zł można bez problemu kupić fabrycznie nową. Ja nabyłem w tej cenie używaną, ale za to od razu z kością 1GB 800MHz i kartą WiFi, co było dla mnie bardziej na rękę .

Płyta wykonana jest w formacie MiniITX, czyli zaledwie 17×17cm. W sumie mniejsza niż w moim (już niedługo) tablecie. Posiada procesor Intel Atom 330 (2 rdzenie, 4 wątki (HT), 64bit), grafikę GMA950, dźwięk od Realteka, jeden slot DDR2, jeden kanał IDE i dwa SATA. Do tego Gigabit Ethernet i standardowy zestaw złącz (wraz z RS232 i LPT) na tyle. Do tego zgodnie z datasheetem całość (z dyskiem ATA 3.5″, ramem i WiFi na PCI) pobiera 35 watt. Nieźle, co? Idealne pod budowę nettopa, bądź domowego serwera (czyli jak w moim przypadku).

Wpis jednak poświęcę walce z tą płytą, jaką przeżyłem na własnej skórze. Otóż, tak to jest jak najpierw się kupuje, później czyta.

Producent postanowił wyposażyć ją w chłodzenie aktywne. Na większym radiatorze kręci się mały (4cm) wiatrak. Tyle że do najcichszych on nie należy. Eksperymenty z odcięciem mu prądu, a nawet z wymianą radiatora na ten z Artic Cooling Copper Silent nie dały mu rady, temperatura leciała w górę, tylko w wolniejszym tempie. A teraz ciekawostka: pod większym radiatorem znajduje się… chipstet – Intel 82945G. Atom siedzi sobie spokojnie z boku pod radiatorem o połowę mniejszym. A dlaczego? Atom ma TDP równe 8W, zaś chipset – 25W. Gdzie tu sens i logika? Nie ważne, skoro już kupiliśmy, trzeba coś z tym zrobić.

 

Jako, że sprzęt jest bezpośrednim następcą kayaka (HP Kayak XU800 robił dotąd za serwer), oczywiście pracuje on na Linuxie. Jest to (niestety) Ubuntu 10.10, jednak z przejściem na Debiana Wheezy amd64 ociągam się do czasu zakupu nowego HDD (120GB ATA to malutko…). Stąd też wszystko odnosi się do Linuxa i nie wiem jak sprawa wygląda na innych systemach operacyjnych.

W sumie kilka faktów:
– Atom 330 nie posiada SpeedStepa, a więc pracuje cały czas na 1.6GHz (to samo tyczy się jednojajowego 230)
– lm-sensors domyślnie nie wykrył nic.
– Bios potrafi sterować wiatrakiem przez PWM w zakresie 50-100%
– Chipset jest wersją desktopową, więc układ graficzny ma taktowany na 400MHz, w odróżnieniu do 166 w wersji GM

A teraz czas je obalić ;)

I. Atom 330 i zmiana taktowania

Generalnie, temat jest banalnie prosty. Potrzebujemy do tego moduł p4_clockmod (powinien być w jądrze dystrybucyjnym, w wypadku własnej kompilacji nie zapomnijmy o nim) oraz daemon powernowd. Cała zabawa sprowadza się do załadowania modułu

root@kayak:/home/kitor# modprobe p4_clockmod
root@kayak:/home/kitor# powernowd
powernowd: PowerNow Daemon v1.00, (c) 2003-2008 John Clemens
powernowd: Found 2 scalable units:  -- 2 'CPUs' per scalable unit
powernowd:   cpu0: 199Mhz - 1599Mhz (8 steps)
powernowd:   cpu1: 199Mhz - 1599Mhz (8 steps)
powernowd:   cpu2: 199Mhz - 1599Mhz (8 steps)
powernowd:   cpu3: 199Mhz - 1599Mhz (8 steps)
root@kayak:/home/kitor#

I co, da się? Proc zależnie od obciążenia chodzi sobie w zakresie 200-1600MHz. Pozostaje jedynie dopisać p4_clockmod w /etc/modules.

Kolejna sprawa, lm-sensors.
Problem wynikł z upierdliwości modułów odpowiedzialnych za działanie sensorów. Generalnie aby wszystko zaczęło działać (odczyt temperatur obu rdzeni oraz obrotów wentylatorów) musimy:
1. Dodać acpi_enforce_resources=lax do commandline jądra.
2. Załadować moduły coretemp oraz smsc47m1
3. Dopisać sobie w pliku /etc/sensors3.conf następujące linie:

chip "smsc47m1-*"

# SMSC LPC47M10x, LPC47M13x, LPC47M14x and LPC47B27x chips

# We don't set the fan mins by default anymore because they may not exist
# when using the Linux 2.6 driver (since we respect the original chip
# configuration).

set fan1_div 8
set fan1_min 1000
set fan2_div 4
set fan2_min 1500
label fan1 "Chassis Fan"
label fan2 "Chipset Fan"

Teraz ouptut z sensors wygląda tak:

root@kayak:/home/kitor# sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0:      +27.0°C  (crit = +90.0°C)

coretemp-isa-0001
Adapter: ISA adapter
Core 1:      +26.0°C  (crit = +90.0°C)

smsc47m1-isa-0680
Adapter: ISA adapter
Chassis Fan:3072 RPM  (min =  999 RPM, div = 8)
Chipset Fan:   0 RPM  (min = 1498 RPM, div = 4)  ALARM

Alarm przy wiatraku chipsetu wynika z tego że mam podpięte je na odwrót.

Sterowanie wiatrakiem przez PWM
Tą funkcję w BIOSie można w ogóle wyłączyć. Tyle że będzie wył na maksimum obrotów przy starcie systemu. Bo skoro już mamy odczyt obrotów, to czemu by i nimi nie sterować?
Potrzebujemy do tego pakietu fancontrol. Po instalacji wywołujemy komendę pwmconfig. Przykładowy output:

root@kayak:/home/kitor# pwmconfig
# pwmconfig revision 5770 (2009-09-16)
This program will search your sensors for pulse width modulation (pwm)
controls, and test each one to see if it controls a fan on
your motherboard. Note that many motherboards do not have pwm
circuitry installed, even if your sensor chip supports pwm.

We will attempt to briefly stop each fan using the pwm controls.
The program will attempt to restore each fan to full speed
after testing. However, it is ** very important ** that you
physically verify that the fans have been to full speed
after the program has completed.

Found the following devices:
   hwmon0/device is coretemp
   hwmon1/device is coretemp
   hwmon2/device is smsc47m1

Found the following PWM controls:
   hwmon2/device/pwm1
   hwmon2/device/pwm2

Giving the fans some time to reach full speed...
Found the following fan sensors:
   hwmon2/device/fan1_input     current speed: 4237 RPM
   hwmon2/device/fan2_input     current speed: 0 ... skipping!

Warning!!! This program will stop your fans, one at a time,
for approximately 5 seconds each!!!
This may cause your processor temperature to rise!!!
If you do not want to do this hit control-C now!!!
Hit return to continue:

Testing pwm control hwmon2/device/pwm1 ...
  hwmon2/device/fan1_input ... speed was 4237 now 0
    It appears that fan hwmon2/device/fan1_input
    is controlled by pwm hwmon2/device/pwm1
Would you like to generate a detailed correlation (y)? y
    PWM 255 FAN 4237
    PWM 240 FAN 4388
    PWM 225 FAN 4237
    PWM 210 FAN 4237
    PWM 195 FAN 4237
    PWM 180 FAN 4237
    PWM 165 FAN 4096
    PWM 150 FAN 3963
    PWM 135 FAN 3963
    PWM 120 FAN 3840
    PWM 105 FAN 3723
    PWM 90 FAN 3510
    PWM 75 FAN 3413
    PWM 60 FAN 3413
    PWM 45 FAN 3072
    PWM 30 FAN 2925
    PWM 28 FAN 2792
    PWM 26 FAN 2730
    PWM 24 FAN 2792
    PWM 22 FAN 2671
    PWM 20 FAN 2671
    PWM 18 FAN 2614
    PWM 16 FAN 2671
    PWM 14 FAN 2507
    PWM 12 FAN 2507
    PWM 10 FAN 2507
    PWM 8 FAN 2409
    PWM 6 FAN 2234
    PWM 4 FAN 2234
    PWM 2 FAN 0
    Fan Stopped at PWM = 2

Testing pwm control hwmon2/device/pwm2 ...
  hwmon2/device/fan1_input ... speed was 4237 now 4388
    no correlation

No correlations were detected.
There is either no fan connected to the output of hwmon2/device/pwm2,
or the connected fan has no rpm-signal connected to one of
the tested fan sensors. (Note: not all motherboards have
the pwm outputs connected to the fan connectors,
check out the hardware database on http://www.almico.com/forumindex.php)

Did you see/hear a fan stopping during the above test (n)? y

Testing is complete.
Please verify that all fans have returned to their normal speed.

The fancontrol script can automatically respond to temperature changes
of your system by changing fanspeeds.
Do you want to set up its configuration file now (y)? y
What should be the path to your fancontrol config file (/etc/fancontrol)?
Loading configuration from /etc/fancontrol ...

Select fan output to configure, or other action:
1) hwmon2/device/pwm2  3) Change INTERVAL     5) Save and quit
2) hwmon2/device/pwm1  4) Just quit           6) Show configuration
select (1-n): 2

Devices:
hwmon0/device is coretemp
hwmon1/device is coretemp
hwmon2/device is smsc47m1

Current temperature readings are as follows:
hwmon0/device/temp1_input       26
hwmon1/device/temp1_input       25

Select a temperature sensor as source for hwmon2/device/pwm1:
1) hwmon0/device/temp1_input
2) hwmon1/device/temp1_input
3) None (Do not affect this PWM output)
select (1-n): 1

Enter the low temperature (degree C)
below which the fan should spin at minimum speed (20):

Enter the high temperature (degree C)
over which the fan should spin at maximum speed (60):

Enter the minimum PWM value (0-255)
at which the fan STOPS spinning (press t to test) (100): 2

Enter the minimum PWM value (2-255)
at which the fan STARTS spinning (press t to test) (150): 4

Enter the PWM value (0-2) to use when the temperature
is below the low temperature limit (0): 2

Enter the PWM value (2-255) to use when the temperature
is over the high temperature limit (255):

Select fan output to configure, or other action:
1) hwmon2/device/pwm2  3) Change INTERVAL     5) Save and quit
2) hwmon2/device/pwm1  4) Just quit           6) Show configuration
select (1-n): 5

Saving configuration to /etc/fancontrol...
Configuration saved

Po tym można odpalić fancontrol:

root@kayak:/home/kitor# Loading configuration from /etc/fancontrol ...

Common settings:
  INTERVAL=10

Settings for hwmon2/device/pwm1:
  Depends on hwmon0/device/temp1_input
  Controls hwmon2/device/fan1_input
  MINTEMP=20
  MAXTEMP=60
  MINSTART=4
  MINSTOP=2
  MINPWM=2
  MAXPWM=255

Enabling PWM on fans...
Starting automatic fan control...

Aby startował automatycznie, polecam dopisanie do /etc/rc.local, nie ma on swojego wpisu do init.d.

I ostatnia sprawa, taktowanie GMA
Ta część chyba najbardziej niebezpieczna, bo z palca będziemy modyfikować rejestry układu graficzego.
Tak jak wspomniałem, mobilna wersja układu i945 ma taktowanie ustawione domyślnie na 166MHz. Tam użytkownicy poprzez zmodyfikowane sterowniki, GMABoostera itd kręcą go do 400MHz. My mamy zaś sytuację dokładnie odwrotną – aby nieco zbić z temperatury (i poboru prądu) odkręcimy układ do 200MHz. Wszystko załatwia jedna linijka:

setpci -s 02.0 f0.b=00,60

Ją również możemy dopisać do /etc/rc.local.

Efektem końcowym jest w moim wypadku temperatura średnia niższa o prawie 5 stopni (26 vs 31), oraz względna cisza. Bo prawdziwa będzie dopiero z dyskiem SATA 2.5″ i wymienionym wiatrakiem na porządny i cichy. Ale mimo wszystko różnica między tzw. out-of the box a tym co jest obecnie jest spora.

Komentarze

Autor: Kajetan Krykwiński
Utworzono: 28 maja 2011
Kategorie: Blogi - Kajetan 'kitor' Krykwiński
Tagi: , , , , , ,

Twitter

Facebook

Sonda

Z jakiego systemu operacyjnego korzystasz?

View Results

Podeślij newsa!
Jeśli widziałeś ciekawe urządzenie lub temat i chciałbyś abyśmy omówili to na łamach PDAsite.pl, skorzystaj z formularza poniżej.

    Imię i nazwisko / ksywka* (pojawi się w newsie, jeśli zostanie wykorzystany)

    Adres email

    Treść wiadomości*

    Przepisz kod z obrazka:*
    captcha