[sisyphus] I: kernel-image-std26-up-2.6.16-alt5 and hidden Intel SMBus

Sergey Vlasov =?iso-8859-1?q?vsu_=CE=C1_altlinux=2Eru?=
Сб Май 20 22:37:33 MSD 2006


Hello!

После установки сборки ядра kernel-image-std26-up-2.6.16-alt5,
возможно, кто-то заметит исчезновение контроллера SMBus из списка
обнаруженных PCI-устройств (что может привести, например, к
неработоспособности lm_sensors).  Это касается только чипсетов Intel и
только std26-up (в std26-smp видимых изменений не появится).

Причина этого явления в том, что чипсеты Intel позволяют программно
скрыть PCI-устройства контроллера SMBus, и некоторые BIOS используют
эту возможность (в частности, подобные BIOS часто встречаются на
платах от ASUS).  В ядре есть код, который может разрешить работу
такого скрытого устройства, и до недавнего времени он использовался
всегда (точнее, в нём есть список Subsystem ID, для которых это
следует делать).  Однако позднее было обнаружено некоторое количество
неприятных проблем, возникающих при открытии доступа к SMBus таким
образом; эти проблемы проявляются после использования режима ACPI S3
(Suspend to RAM).  Например, в одном из случаев на ноутбуке переставал
работать вентилятор, что приводило к быстрому перегреву.

В готовящихся к выпуску ядрах 2.6.17 и 2.6.16.17 проблему решили путём
отключения кода, разрешающего доступ к скрытым контроллерам SMBus,
если в конфигурации ядра включена поддержка режимов энергосбережения
ACPI (CONFIG_ACPI_SLEEP).  В ядрах std26 эта опция конфигурации
включена в std26-up, но отсутствует в std26-smp (именно поэтому
поведение std26-smp после обновления не изменится).

В сборку std26-up-2.6.16-alt5, помимо патча из 2.6.16.17, добавлен ещё
один патч, который позволяет всё-таки включить такой скрытый
контроллер SMBus, запретив при этом использование Suspend to RAM.
Если ядро обнаружит скрытый контроллер SMBus, оно выведет сообщение:

PCI: i801 SMBus was hidden by BIOS - boot with 'unhide_smbus' to unhide it
     (this will disable ACPI S3 sleep support)

В случае, если доступ к SMBus нужнее, чем Suspend to RAM, необходимо
добавить параметр unhide_smbus в строку параметров ядра (append в
/etc/lilo.conf или kernel ... в /boot/grub/menu.lst).  При указании
этого параметра ядро std26-up-2.6.16-alt5 будет вести себя в отношении
SMBus так же, как и предыдущие сборки, однако использование режима S3
(Suspend to RAM) будет запрещено.

В дальнейшем разработчики планируют решить эту проблему другим
способом (включение SMBus должно выполняться не только при начальной
загрузке, но и при возвращении из suspend, что сейчас не делается),
однако это изменение необходимо протестировать на различных машинах, и
оно точно не попадёт в 2.6.17.  Так что пока придётся ограничиться
наиболее безопасным вариантом - включать контроллер SMBus, скрытый
средствами BIOS, только при указании дополнительного параметра.

-- 
Sergey Vlasov
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 191 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20060520/864b7e66/attachment-0003.bin>


Подробная информация о списке рассылки Sisyphus