LINUX.ORG.RU

Задействование исправленного DSDT


0

1

Здравствуйте все! Не совсем уверен в правильности выбора раздела для своего поста, но, всё же...
Дано: RFR14 (kernel 2.6.37-2.fc15); Asus EeePC 1201N с очень кривой таблицей DSDT; потраченный на исправление DSDT день (спасибо Googl'у); вроде как исправленный и безошибочно скомпилировавшийся DSDT (DSDT.aml, DSDT.dsl, DSDT.hex); желание протестировать сотворённое; вера в успех.
Цель: задействовать получившуюся таблицу DSDT в системе и дальнейшее тестирование оной.
Вопрос: как мне достигнуть цели с выше указанными данными?
Благодарю за внимание.
P.S.: в Googl'е ничего конкретного по современным версиям Fedor'ы не нашёл - всё, что есть, либо уже протухло, либо про другие дистры.

★★★★★

Ответ на: комментарий от ky-san

Я несколько раз, конечно, использовал dracut, но мне бы хотелось узнать, что и как делать для задействования кастомного DSDT.

carasin ★★★★★
() автор топика
Ответ на: комментарий от ky-san

ky-san

Ядро пересобрать можешь?

Ни разу не пробовал.

ky-san

Обновить initramfs/initrd?

Так?

# dracut /boot/initramfs-$(uname -r).img $(uname -r)
И ещё не понятно, как указать ядру использовать мой DSDT.

carasin ★★★★★
() автор топика
Ответ на: комментарий от ky-san

Просто, если я правильно понимаю, непосредственно пересборка из srpm не требуется, а нужно лишь задать какой-то параметр в /boot/config-2.6.37-2.fc15.i686.PAE , потом задействовать dracut ?
Если так, то я и хочу узнать, как конкретно это сделать применительно к Fedor'е. А если нет, то тогда всё сложнее. Но всё равно буду разбираться.

carasin ★★★★★
() автор топика
Ответ на: комментарий от carasin

1) DSDT можно вкомпилять в ядро (CONFIG_CUSTOM_DSDT)

2) Если ядро поддерживает загрузку DSDT из initramfs (CONFIG_CUSTOM_DSDT_INITRD) - то можно положить DSDT в initramfs.

ky-san
()
Ответ на: комментарий от ky-san

По поводу второго, можно ли, поподробнее?
То есть я меняю строку CONFIG_CUSTOM_DSDT_INITRD в /boot/config-2.6.37-2.fc15.i686.PAE на адрес к моему DSDT (какому-то из трёх: *.aml, *.dsl, *.hex), а дальше пересобираю dracut'ом?
Если что-то говорю не то, прошу поправить.

carasin ★★★★★
() автор топика
Ответ на: комментарий от ky-san

Нашел в /boot/config-2.6.37-2.fc15.i686.PAE:

# CONFIG_ACPI_CUSTOM_DSDT is not set

carasin ★★★★★
() автор топика
Ответ на: комментарий от carasin

*Если* твоё ядро поддерживает эту опцию конфига *и* она включенна, то достаточно положить DSDT.aml в корень initramfs (по крайней мере, так говорит гугл), детали здесь: http://www.lesswatts.org/projects/acpi/overridingDSDT.php

Для ленивый можно просто добавить DSDT.aml в initramfs без запуска разных генерялок initramfs - смотри, например, скрипт на странице выше + man cpio

ky-san
()
Ответ на: комментарий от ky-san

Тогда как узнать, поддерживает ли ядро эту опцию и включена ли она?
Просто сборка ядра - это далёкая от меня тема. И если уж взялся за разбор DSDT, то охота именно какой-то уверенности в своих действиях и хотя бы чуть-чуть понимания того, что делаю.

carasin ★★★★★
() автор топика
Ответ на: комментарий от carasin

> Тогда как узнать, поддерживает ли ядро эту опцию и включена ли она?

Посмотреть, если есть, /proc/config.gz. Если нет - то искать конфиг, с которым было собранно ядро.

(Пере-)сборка ядра должна (и 99.9%) пошагово описанно в документации на твой дистрибутив.

ky-san
()
Ответ на: комментарий от ky-san

Спасибо. Буду смотреть. По результатам (при возникновении трудностей) отпишусь сюда. Ещё раз благодарю.

carasin ★★★★★
() автор топика
Ответ на: комментарий от ky-san

Есть вопрос: у меня установлен devel-пакет ядра (вроде как исходники; по крайней мере этот пакет требуется для функционирования системы akmod). Где в нём этот конфиг ядра?

carasin ★★★★★
() автор топика
Ответ на: комментарий от carasin

Посмотри в корне дирки с исходниками ядра файл .config

Редактировать его руками не нужно - есть разные утилиты (make menuconfig/xconfig/etc)

Читай документацию по сборке ядра в дистрибутиве, там всё описанно.

ky-san
()

Я на Gentoo сделал так:

Device Drivers —>
 Generic Driver Options —>
  [ ] Select only drivers that don’t need compile-time external firmware
  [ ] Prevent firmware from being builtPower management options (ACPI, APM) —>
Power management options (ACPI, APM) —>
 ACPI (Advanced Configuration and Power Interface) Support —>
  [*] Include Custom DSDT
  (/usr/src/dsdt/dsdt.h) Custom DSDT Table file to include

PS dsdt.h эт dsdt.hex

tn1
()
Ответ на: комментарий от carasin

>Короче, похоже в Fedor'е всё как-то по-другому

все абсолютно также. Собирай ядро...

Pinkbyte ★★★★★
()
Ответ на: комментарий от AITap

Это я уже понял. Вот только до того, как возьмусь компилить ядро, можете мне подсказать, что нужно делать (в частности, с этим конфигом), чтобы не пересобирать полностью ядро, а обойтись малой кровью обновлением initramfs (если это, конечно, возможно)?

carasin ★★★★★
() автор топика
Ответ на: комментарий от carasin

Скопируйте его в дерево исходников ядра в /.config и через make menuconfig настройте всё, что нужно (как в статье выше).

AITap ★★★★★
()
Ответ на: комментарий от tn1

tn1

Device Drivers —> Generic Driver Options —> [ ] Select only drivers that don’t need compile-time external firmware [ ] Prevent firmware from being builtPower management options (ACPI, APM) —> Power management options (ACPI, APM) —> ACPI (Advanced Configuration and Power Interface) Support —>

  • Include Custom DSDT (/usr/src/dsdt/dsdt.h) Custom DSDT Table file to include

Я так понимаю, это открыт конфиг в каком-то редакторе?

carasin ★★★★★
() автор топика
Ответ на: комментарий от carasin

make menuconfig после того как положите конфиг ядра в дерево исходников под именем .config

Pinkbyte ★★★★★
()
Ответ на: комментарий от carasin

1 Скачай сорцы ядра.
2 распакуй их.
3 зайди туда.
4 make menuconfig
5

Device Drivers —>
 Generic Driver Options —>
  [ ] Select only drivers that don’t need compile-time external firmware
  [ ] Prevent firmware from being builtPower management options (ACPI, APM) —>
Power management options (ACPI, APM) —>
 ACPI (Advanced Configuration and Power Interface) Support —>
  [*] Include Custom DSDT
  (/usr/src/dsdt/dsdt.h) Custom DSDT Table file to include

вместо /usr/src/dsdt/dsdt.h укажи полный путо до dsdt.h
6 Сам разбирайся (у меня это make (модулей у меня нет) и cp arch/x86_64/boot/bzImage /boot).

PS спроси лучше у init_6

tn1
()
Ответ на: комментарий от tn1

Спасибо. Уже разобрался. Сейчас кумекаю, как это всё сделать не в обход пакетного мэнеджера.

carasin ★★★★★
() автор топика
Ответ на: комментарий от tn1

Поразбирался. Начал компиляцию. Посмотрим, что выйдет =)

carasin ★★★★★
() автор топика
Ответ на: комментарий от eugeneblack

Спасибо. Именно по ней и делал (ребята из RFR подсказали).

carasin ★★★★★
() автор топика
Ответ на: комментарий от tn1

Всем спасибо! Прошу прощения за то, что задавал подчас неуместные вопросы. Благодарю за отзывчивость. Буду тестить, что там насобиралось.

carasin ★★★★★
() автор топика
Ответ на: комментарий от ky-san

Так... После пересборки ядра, его установки и загрузки в сухом остатке получаем:

$ dmesg | grep DSDT
[    0.000000] ACPI: Override [DSDT-A1469001], this is unsafe: tainting kernel
[    0.000000] ACPI: DSDT @ 0x6ff90500 Table override, replaced with:
[    0.000000] ACPI: DSDT c0a31ecc 0A5CA (v01  A1469 A1469001 00000001 INTL 20100528)
$ su -c 'cat /sys/firmware/acpi/tables/DSDT > /home/carasin/dsdt/dsdt.dat'
$ cd ~/dsdt/
$ ls
dsdt.dat
$ iasl -d dsdt.dat

Intel ACPI Component Architecture
AML Disassembler version 20100528 [Jul  1 2010]
Copyright (c) 2000 - 2010 Intel Corporation
Supports ACPI Specification Revision 4.0a

Loading Acpi table from file dsdt.dat
Acpi table [DSDT] successfully installed and loaded
Pass 1 parse of [DSDT]
Pass 2 parse of [DSDT]
Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)
...
Parsing completed
Disassembly completed, written to "dsdt.dsl"
$ ls
dsdt.dat  dsdt.dsl
$ iasl -tc dsdt.dsl

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20100528 [Jul  1 2010]
Copyright (c) 2000 - 2010 Intel Corporation
Supports ACPI Specification Revision 4.0a

ASL Input:  dsdt.dsl - 10884 lines, 363675 bytes, 4483 keywords
AML Output: dsdt.aml - 42442 bytes, 1507 named objects, 2976 executable opcodes

Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 69 Optimizations
Ну что ж... Вроде работает. Поработаем дальше, посмотрим на стабильность.

carasin ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.