Как я могу загрузить модуль во времени выполнения?

Насколько я знаю | разделитель может использоваться только на всех путях:

echo 'cat /root/child/@attr1|/root/child/@attr2|/root/child/@attr3' | xmllint --shell data.xml

(Как // средства на любой глубине, “//корень” помещает синтаксический анализатор в бессмысленную дополнительную работу. Принятие Вашей демонстрационной внешности XML имеет подобную структуру как реальную (таким образом, корень является действительно корневым узлом XML), лучше используйте “/root/child”.)

Или можно использовать выражение с функциями XPath:

echo 'cat /root/child/@*[name()="attr1" or name()="attr2" or name()="attr3"]' | xmllint --shell data.xml

При необходимости во всех атрибутах с “attr*” имя можно использовать универсальное выражение:

echo 'cat /root/child/@*[starts-with(name(),"attr")]' | xmllint --shell data.xml
4
29.12.2013, 01:29
2 ответа

Необходимо будет создать пакет ядра (make tar-pkg). Затем скопируйте его в свою систему ARM, например, в /tmp и извлечение к /. Вы получите все модули драйвера, установленные в корректные папки включая надлежащий modules.dep и другие файлы должны были автоматически разрешить зависимости от модуля.

modprobe qcserial должен работать затем.

1
27.01.2020, 20:58
  • 1
    я вместо этого сделал a make tar-pkg -j8 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- скомпилировать его для корректного arch, У меня теперь есть a linux-3.11.6-arm.tar по-видимому включая все модули, не только qcserial. Я также получил сообщение как "** ** ** ПРЕДУПРЕЖДЕНИЕ ** ** **, Ваша архитектура не определила архитектурно-зависимых файлов, которые будут помещены в tarball. Добавьте тех, которые к/home/reg/semios/linux-3.11.6/scripts/package/buildtar..." - который я не понимаю..., что "архитектурно-зависимые файлы", к которым относится? –  stdcerr 28.12.2013, 22:25
  • 2
    @cerr не обращает внимание на это предупреждение. Пока Вы добираетесь linux-3.11.6-arm.tar все в порядке. Btw можно удалить /boot папка из архива. Этот архив имеет все драйверы, которые Вы скомпилировали как модули. Я также использовал Встроенный Debian и использовал этот метод для установки модулей драйвера. –  yegorich 29.12.2013, 00:03
  • 3
    К вашему сведению: Если необходимо не обязательно использовать Debian, Вы могли бы использовать Buildroot. Это установило бы модули прямо к Вашему архиву rootfs во время этапа здания. –  yegorich 29.12.2013, 00:06
  • 4
    я должен не обязательно использовать debian для этого, это 'просто', шел с ним sio i decieded для продолжения его. Я использовал buildroot на других платформах прежде, но должен был бы выяснить некоторые основы снова, прежде чем я смогу начать... –  stdcerr 29.12.2013, 01:17
  • 5
    Если Вы использовали tar -C / -tvf linux-3.11.6-arm.tar для извлечения, чем Вы только что перечислили файлы. Необходимо использовать tar -C / -xvf linux-3.11.6-arm.tar извлечь файлы, т.е. -x опция. –  yegorich 29.12.2013, 14:21

Существует две утилиты к загрузочным модулям: insmod и modprobe. insmod утилита низкого уровня: это загружает файл модуля, данный его полным путем. modprobe высокоуровневая утилита: Вы передаете его имя модуля, и это ищет то имя модуля в базе данных модуля, загружается, любые необходимые зависимости затем загружает сам модуль. Если модуль не зарегистрирован в базе данных модуля, modprobe сбои.

В дополнение к копированию файла модуля необходимо обновить базу данных модуля. Выполненный depmod -a повторно создавать целую базу данных'.

Не имеет значения, куда Вы помещаете файл модуля, пока это находится где-нибудь под /lib/modules/3.11.6 (где 3.11.6 Ваша версия ядра, как возвращено uname -r). Обычно kernel подкаталог резервируется для модулей, которые шли с самим ядром, необходимо поместить Ваш в другой подкаталог.

2
27.01.2020, 20:58

Теги

Похожие вопросы