Python — Как загрузить модули ядра в программе C / C ++

Я работаю с датчиком температуры ds18b20 и работаю над преобразованием некоторого кода Python в c ++, чтобы помочь лучше выучить язык. Я столкнулся с проблемой, когда мне нужно загрузить модули w1-gpio и w1-therm. Я обнаружил довольно много вещей о переполнении стека, отметив, что следует использовать init_module, и в том же потоке кто-то еще упоминает использовать fork() вдоль стороны exec(), После долгих поисков и изучения справочных страниц я не могу найти примеров того, как выполнить любую из этих задач. Может ли кто-нибудь указать мне и / или привести пример того, как я мог бы загрузить эти два модуля любым из этих методов? Или предоставить альтернативу, которая не связана с системой («modprobe w1-gpio»)?

uname -a

производит:

Linux raspberrypi 4.1.13-v7+ #826 SMP PREEMPT Fri Nov 13 20:19:03 GMT 2015 armv7l GNU/Linux

1

Решение

Я до сих пор держу это system("modprobe ...") это очень хорошее решение для этой ситуации. Это просто вызывает у вас дополнительные проблемы, чтобы НЕ делать этого.

Если вы точно знаете, какие модули ядра вы хотите загрузить, используйте init_module или это брат или сестра finit_module, Но вам нужно будет загружать модули в правильном порядке. И, конечно же, нужно знать все соответствующие места, где хранятся файлы, какие аргументы им нужны и т. Д.

И не забудьте отменить заказ на delete_module когда ты убираешь за собой.

Источник modprobe и друзей можно найти здесь:
https://github.com/vadmium/module-init-tools

insmod довольно короткий, но modproble — это чуть более 2300 строк кода.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]