ION — Блог Валерия Леонтьева https://valera.ws Место публикации личных заметок. Технологии, управление, бизнес, жизнь Sun, 14 Mar 2010 10:26:41 +0000 ru-RU hourly 1 https://wordpress.org/?v=5.6.2 https://valera.ws/wp-content/uploads/2020/02/favicon.png ION — Блог Валерия Леонтьева https://valera.ws 32 32 Debian 5 и датчики температуры для Intel Atom (330) https://valera.ws/2010.03.14~debian-5-coretemp-intel-atom/ https://valera.ws/2010.03.14~debian-5-coretemp-intel-atom/#comments Sun, 14 Mar 2010 10:24:19 +0000 http://valera.ws/?p=379 Читать далее Debian 5 и датчики температуры для Intel Atom (330) ]]> Проблема: если на платформу ION с процессором Intel Atom (вообще — любым, но у меня Atom 330) установить Debian Linux 5, то датчики температцры процессора «из коробки» не заработают. Связано это с тем, что в моделу ядра coretemp.ko не включена поддержка этого семейства процессоров. А sensors-detect не умеет их находить. О том, как включить поддержку и получать сведения о температуре, написано далее. На самом деле все очень просто. Процессоры семейства Atom придерживаются старой архитектуры X86 и работают аналогично другим процессорам от Intel, т.е. их поддержка в моделу ядра есть, просто она не включена. Чтобы исправить положение, нужно пересобрать модуль ядра, который отвечает за работу с датчиками. Процедура довольно простая и по шагам описана ниже. Кроме обновления самого модуля, требуется обновить скрипт sensors-detect, чтобы он научился находить новые датчики.

Debian 5.0. Как обычно, сначала требуется обновить систему. А затем:

0) Если еще не установлены, то устанавливаем

#lm-sensors apt-get install lm-sensors

1) Сливаем свежую версию (2010-02-19) sensors-detect. Файл можно взять готовый или выдернуть из официальных билдов.

Файл должен быть положен в: /usr/sbin/sensors-detect и иметь права 755.

2) Готовимся к сборке модуля ядра:

#apt-get install build-essential linux-headers-$(uname -r) linux-source-$(uname -r | awk -F’-‘ ‘{print $1}’)

3) Патчим исходники стандартного дебиановского модуля coretemp

#cd /usr/src
#wget http://mabene.icomedias.com/coretemp.patch
#tar jxvf linux-source-$(uname -r | awk -F’-‘ ‘{print $1}’).tar.bz2
#cd linux-source-$(uname -r | awk -F’-‘ ‘{print $1}’)
#patch -p1 < ../coretemp.patch

Здесь вы получите сообщение о неполном патче файла. Не пугайтесь, все хорошо. Последний кусок патча не применился, т.к. патч для Ubuntu, а в Debian сырец чуточку другой. Доведем патчинг до конца руками:

#nano drivers/hwmon/coretemp.c

Находим почти в конце файла строки:

/* check if family 6, models 0xe, 0xf, 0x16, 0x17 */
if ((c->cpuid_level < 0) || (c->x86 != 0x6) ||
!((c->x86_model == 0xe) || (c->x86_model == 0xf) ||
(c->x86_model == 0x16) || (c->x86_model == 0x17))) {

И заменяем их на:

/* check if family 6, models 0xe, 0xf, 0x16, 0x17, 0x1A, 0x1C */
if ((c->cpuid_level < 0) || (c->x86 != 0x6) ||
!((c->x86_model == 0xe) || (c->x86_model == 0xf) ||
(c->x86_model == 0x16) || (c->x86_model == 0x17) ||
(c->x86_model == 0x1A) || (c->x86_model == 0x1C))) {

Суть этой замены в том, что в комментарий и оператор добавляем еще лэйблы двух семейств (одно из них как раз Atom): (c->x86_model == 0x1A) || (c->x86_model == 0x1C)

4) Собираем (билдим) модуля ядра

#make -j 4 -C /lib/modules/$(uname -r)/build M=/usr/src/linux-source-$(uname -r | awk -F’-‘ ‘{print $1}’)/drivers/hwmon/ modules

5) Копируем полученный собранный модуль ядра в нужное место:

#cp drivers/hwmon/coretemp.ko /lib/modules/$(uname -r)/kernel/drivers/hwmon/coretemp.ko

7) modprobe coretemp

Если ошибок нет, то все ок.

8) #sensors-detect (всегда отвечаем утвердительно)

9) #sensors (радуемся):

coretemp-isa-0000
Adapter: ISA adapter
Core 0: +13.0°C (crit = +95.0°C)

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

coretemp-isa-0002
Adapter: ISA adapter
Core 2: +12.0°C (crit = +95.0°C)

coretemp-isa-0003
Adapter: ISA adapter
Core 3: +16.0°C (crit = +95.0°C)

P.S. Если призагрузке модуля ядра coretemp у вас возникала такая ошибка:

# modprobe coretemp
insmod /lib/modules/2.6.26-2-686/kernel/drivers/hwmon/coretemp.ko
FATAL: Error inserting coretemp (/lib/modules/2.6.26-2-686/kernel/drivers/hwmon/coretemp.ko): No such device

то описанное выше решение именно для вас.

P.S.S. Спасибо: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/296478http://www.didier-segura.fr/?p=66.

]]>
https://valera.ws/2010.03.14~debian-5-coretemp-intel-atom/feed/ 3