Настройка системы совместимости с модулями Linux
Статья включает:
Cистема совместимости с модулями Linux
состоит из менеджера io-lxdev, библиотеки совместимости liblxcompat и набора динамически подгружаемых драйверов devl-*
на базе исходных кодов Linux, представляющих из себя аналоги модулей ядра Linux.
Менеджер может быть запущен как без параметров:
# io-lxdev
При этом загрузка требуемых модулей регулируется конфигурационным файлом по умолчанию.
Также менеджер может быть запущен с явным указанием загружаемых модулей и возможностью передать им параметры:
# io-lxdev mali-mcom02 -p mali_debug_level=5
Получить информацию о модуле и узнать возможные параметры можно передав менеджеру io-lxdev ключ -i и имя модуля:
# io-lxdev -i mali-mcom02loading module 'mali-mcom02' infoModule: mali- version:- author: ARM Ltd.- license: GPL- parameter: mali_l2_max_readsMaximum reads for Mali L2 cache- parameter: mali_max_job_runtimeMaximum allowed job runtime in msecs.Jobs will be killed after this no matter what- parameter: mali_majorDevice major number- parameter: mali_debug_levelHigher number, more dmesg output- parameter: memMali system memory size
Для того, чтобы драйвер устройства запустился, менеджером io-lxdev должен быть загружен соответствующий модуль и произведена ассоциация драйвера с поддерживаемым им оборудованием.
Чтобы сопоставить драйвер с устройством, менеджер io-lxdev должен знать о конфигурации оборудования. В случае, если шина, на которой расположено устройство, имеет возможность обнаружения и идентификации устройств (например, PCI
или USB
) это может происходить автоматически, иначе конфигурация должна быть описана в конфигурационном файле.
Конфигурационный файл менеджера io-lxdev определяет структуру и параметры оборудования. Он содержит в себе список устройств, взаимосвязи, их параметры (адреса регистров, номера прерываний), ассоциацию с драйверами, возможность автоматической загрузки модулей и передачи им параметров.
Пример:
// загрузка модулей#module "mali-mcom02"#module "mcom02-gpuclk"// структура оборудованияclocks {gpuclk: mcom02-cmctr {#clock-cells = <0>;compatible = "elvees,mcom02-pll";clock-frequency = <300000000>;};};gpu {compatible = "arm,mali-dev";clocks = <&gpuclk>;};
В данном примере описаны и привязаны к драйверам два связаных устройства: GPU Mali и его тактовый генератор. Конфигурация также предусматривает автоматическую загрузку соответствующих модулей.
Подробнее о формате конфигурационного файла можно прочитать в статье /etc/system/config/lxdev.conf.
Предыдущий раздел: перейти