Я работаю с датчиком температуры 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
Я до сих пор держу это system("modprobe ...")
это очень хорошее решение для этой ситуации. Это просто вызывает у вас дополнительные проблемы, чтобы НЕ делать этого.
Если вы точно знаете, какие модули ядра вы хотите загрузить, используйте init_module
или это брат или сестра finit_module
, Но вам нужно будет загружать модули в правильном порядке. И, конечно же, нужно знать все соответствующие места, где хранятся файлы, какие аргументы им нужны и т. Д.
И не забудьте отменить заказ на delete_module
когда ты убираешь за собой.
Источник modprobe
и друзей можно найти здесь:
https://github.com/vadmium/module-init-tools
insmod довольно короткий, но modproble — это чуть более 2300 строк кода.
Других решений пока нет …