Ldetect-lst — различия между версиями
Материал из Rosalab Wiki
Akdengi (обсуждение | вклад) (→Видеокарты ATI/AMD) |
PastorDi (обсуждение | вклад) |
||
(не показано 7 промежуточных версий 1 участника) | |||
Строка 4: | Строка 4: | ||
===Классы видеокарт-драйверов=== | ===Классы видеокарт-драйверов=== | ||
− | # vesa - все что не поддерживается свободными драйверами. Переключается автоматом, если нет фирмвари... (TODO | + | # vesa - все что не поддерживается свободными драйверами. Переключается автоматом, если нет фирмвари... (TODO Просто добавить vesa если не держит radeon) |
# radeon - видеокарты с поддержкой только с свободными драйверами. Список в файле '''ati_pciids.csv'''. В скрипте '''$ati_free_only'''. Генерация использует функцию '''read_ati_pciids_csv''' | # radeon - видеокарты с поддержкой только с свободными драйверами. Список в файле '''ati_pciids.csv'''. В скрипте '''$ati_free_only'''. Генерация использует функцию '''read_ati_pciids_csv''' | ||
# fglrx-legacy - видеокарты поддерживаемые legacy драйвером. Список в файле '''fglrxko_pci_ids.h'''. В скрипте '''$ati_driver_legacy'''. Генерация использует функцию '''read_fglrxko_pci_ids_h_legacy'''. | # fglrx-legacy - видеокарты поддерживаемые legacy драйвером. Список в файле '''fglrxko_pci_ids.h'''. В скрипте '''$ati_driver_legacy'''. Генерация использует функцию '''read_fglrxko_pci_ids_h_legacy'''. | ||
Строка 20: | Строка 20: | ||
===Логика работы=== | ===Логика работы=== | ||
+ | Порядок обновления придется оставить такой, как есть. | ||
− | 1. Формируем список карт, поддерживаемых | + | 1 проход. Обновляем Legacy |
+ | |||
+ | convert/merge2pcitable.pl fglrxko_pci_ids_h_legacy /path/to/fglrxko_pci_ids.h lst/pcitable > pcitable.new | ||
+ | |||
+ | Формируем список карт, поддерживаемых legacy драйверами. Так как карты могут быть убраны или не существовать, то выполняем следующие шаги: | ||
+ | |||
+ | # Берет d_pci текущий и смотрим на наличие там карт $ati_driver_legacy, $ati_driver_fw и $ati_driver_vesa. | ||
+ | # Если карта в d_in совпадает с картой из $ati_driver_fw или $ati_driver_vesa, то заменяем ей d_pci (карта поддерживается легаси дровами) | ||
+ | # Иначе если совпадает d_pci или d_in нету в текущем списке - оставляем или добавляем карту (может быть имя придется обновить, поэтому просто добавляем) с заменой дров, которые там есть | ||
+ | # Иначе дропаем ее и заменяем свободной $ati_free_only (поддержка кончилась) | ||
+ | |||
+ | 2 проход. Затем по этим картам пробегаемся и включаем поддержку frglx дров | ||
+ | |||
+ | convert/merge2pcitable.pl fglrxko_pci_ids_h /path/to/fglrxko_pci_ids.h lst/pcitable > pcitable.new | ||
+ | |||
+ | # Берем d_pci текущий и смотрим на наличие карт $ati_driver_legacy, $ati_driver_fw, $ati_driver_vesa | ||
+ | # Если карта в d_in совпадает с картой из $ati_driver_fw или $ati_driver_legacy, то заменяем ей d_pci (карта поддерживается vesa/fglrx дровами) | ||
+ | # Иначе просто совпадает d_pci или нету - оставляем или добавляем карту | ||
+ | # Иначе дропаем и заменяем свободной $ati_free_only (поддержка кончилась) | ||
+ | |||
+ | 3 проход - пробегаем снова по картам и где можно переключаем назад vesa/fgrlx на radeon/fgrlx с поддержкой свободных дров и добавляем просто свободные драйвера где еще не сделано и дропаем на vesa где уже не поддерживает! | ||
+ | |||
+ | convert/merge2pcitable.pl ati_pciids_csv /path/to/ati_pciids.csv lst/pcitable > pcitable.new | ||
+ | |||
+ | # Берем d_pci текущий и смотрим на наличие карт $ati_driver_vesa | ||
+ | # Проверяем на совпадение. Если карта есть в наличии, то заменяем d_pci c $ati_driver_vesa на $ati_driver_fw | ||
+ | # Берем d_pci и смотрим на наличие карт $ati_free_only. Если есть совпадения с d_in, то оставляем как есть, иначе ставим просто "Card:VESA driver (generic)" (свободные дрова тоже уже не держат). | ||
+ | |||
+ | FIXME (проверить, если дропает на веса fglrx-legacy, то добавить аналог vesa-legacy!) | ||
+ | |||
+ | [[Категория:Документация]] |
Текущая версия на 13:45, 2 ноября 2012
Rework механизма обнаружения оборудования...
Видеокарты ATI/AMD
Классы видеокарт-драйверов
- vesa - все что не поддерживается свободными драйверами. Переключается автоматом, если нет фирмвари... (TODO Просто добавить vesa если не держит radeon)
- radeon - видеокарты с поддержкой только с свободными драйверами. Список в файле ati_pciids.csv. В скрипте $ati_free_only. Генерация использует функцию read_ati_pciids_csv
- fglrx-legacy - видеокарты поддерживаемые legacy драйвером. Список в файле fglrxko_pci_ids.h. В скрипте $ati_driver_legacy. Генерация использует функцию read_fglrxko_pci_ids_h_legacy.
FIXME все ли legacy карты поддерживаются radeon?
- fglrx - видеокарты, поддерживаемые и свободными и простыми драйверами. Список в файле fglrxko_pci_ids.h. В скрипте $ati_driver_vesa. Генерация использует функцию read_fglrxko_pci_ids_h
- radeon/fglrx - видеокарты с поддержкой и свободных и проприетарных драйверов. В скрипте $ati_driver_fw
# UPDATE ME WHEN UPDATING ../lst/Cards+: my $ati_driver_legacy = 'Card:ATI Radeon HD 2000 to HD 4870 (radeon/fglrx-legacy)'; my $ati_driver_fw = 'Card:ATI Radeon HD 6400 and later (radeon/fglrx)'; my $ati_driver_vesa = 'Card:ATI Radeon HD 5000 and later without free driver (vesa/fglrx)'; my $ati_free_only = 'Card:ATI Radeon HD 4870 and earlier';
Логика работы
Порядок обновления придется оставить такой, как есть.
1 проход. Обновляем Legacy
convert/merge2pcitable.pl fglrxko_pci_ids_h_legacy /path/to/fglrxko_pci_ids.h lst/pcitable > pcitable.new
Формируем список карт, поддерживаемых legacy драйверами. Так как карты могут быть убраны или не существовать, то выполняем следующие шаги:
- Берет d_pci текущий и смотрим на наличие там карт $ati_driver_legacy, $ati_driver_fw и $ati_driver_vesa.
- Если карта в d_in совпадает с картой из $ati_driver_fw или $ati_driver_vesa, то заменяем ей d_pci (карта поддерживается легаси дровами)
- Иначе если совпадает d_pci или d_in нету в текущем списке - оставляем или добавляем карту (может быть имя придется обновить, поэтому просто добавляем) с заменой дров, которые там есть
- Иначе дропаем ее и заменяем свободной $ati_free_only (поддержка кончилась)
2 проход. Затем по этим картам пробегаемся и включаем поддержку frglx дров
convert/merge2pcitable.pl fglrxko_pci_ids_h /path/to/fglrxko_pci_ids.h lst/pcitable > pcitable.new
- Берем d_pci текущий и смотрим на наличие карт $ati_driver_legacy, $ati_driver_fw, $ati_driver_vesa
- Если карта в d_in совпадает с картой из $ati_driver_fw или $ati_driver_legacy, то заменяем ей d_pci (карта поддерживается vesa/fglrx дровами)
- Иначе просто совпадает d_pci или нету - оставляем или добавляем карту
- Иначе дропаем и заменяем свободной $ati_free_only (поддержка кончилась)
3 проход - пробегаем снова по картам и где можно переключаем назад vesa/fgrlx на radeon/fgrlx с поддержкой свободных дров и добавляем просто свободные драйвера где еще не сделано и дропаем на vesa где уже не поддерживает!
convert/merge2pcitable.pl ati_pciids_csv /path/to/ati_pciids.csv lst/pcitable > pcitable.new
- Берем d_pci текущий и смотрим на наличие карт $ati_driver_vesa
- Проверяем на совпадение. Если карта есть в наличии, то заменяем d_pci c $ati_driver_vesa на $ati_driver_fw
- Берем d_pci и смотрим на наличие карт $ati_free_only. Если есть совпадения с d_in, то оставляем как есть, иначе ставим просто "Card:VESA driver (generic)" (свободные дрова тоже уже не держат).
FIXME (проверить, если дропает на веса fglrx-legacy, то добавить аналог vesa-legacy!)