roboforum.ru

Технический форум по робототехнике.

Компиляция модулей

Компиляция модулей

edwardoid » 28 авг 2011, 10:18

Господа, как скомпилировать что-либо как модуль для ядра? Мне нужно скомпилировать модуль для GPIO (/sys/class/gpio ). Как это делается? Смогу ли я через modprobe gpio.ko получить в /sys/class директорию и файлы для GPIO?

Re: Компиляция модулей

Strijar » 28 авг 2011, 14:36

при настройке ядра включите gpio как модуль - [M] и после сборки ядра он будет модулем. Если при настройке ядра GPIO вообще выключен - то не получиться его туда загрузить.

Re: Компиляция модулей

edwardoid » 28 авг 2011, 19:32

В смысле? Ядро обязательно должно знать какие потенциально модули будут потом подключены? А можно как-то помянять ядро, не перепрошивая?

Re: Компиляция модулей

Strijar » 28 авг 2011, 20:07

Если написать свой модуль который будет использовать только те функции, что есть в вашем ядре - то можно.

Поменять ядро не перепрошивая можно только если пользоваться удаленой загрузкой - например если у вас загрузчик u-boot то можно загружать ядро по tftp не затирая старое. Но для этого нужно что бы была доступна сеть и tftp сервер с файлом ядра. Т.е. имеет смысл только на этапе отладки.

Добавлено спустя 4 минуты 3 секунды:
Еще вариант - если вам нужно просто "дрыгать ногой" то это можно сделать прямо из пользовательского приложения, через IO регистры - используя mmap() на /dev/mem

Re: Компиляция модулей

edwardoid » 29 авг 2011, 00:06

мне нужно переводить ножки GPIO из положения "читать" в положение "писать" и обратно. Вы это имели ввиду под "дрыгать"?

Re: Компиляция модулей

Strijar » 29 авг 2011, 10:06

Ну если просто менять режим - так это просто. Поищите в сети по словам gpio mmap или "GPIO access from userspace"

Re: Компиляция модулей

edwardoid » 29 авг 2011, 22:13

погуглил, нифига не понял. Если на гпио сидит конвертер на сериал порт, смогу ли я так контролировать чтение/запись. Ведь мне нужно и писать в порт, и читать оттуда.

Re: Компиляция модулей

Strijar » 30 авг 2011, 11:31

Я чего то вообще не понял ваше задачу. Я вам говорю - если вы не хотите переливать ядро или писать свой собственный драйвер, вы можете получить доступ к конфигурационным регистрам процессора из пользовательского приложения. Обычно это делается в драйверах - и это правильно. Все что вы можете делать через "регистры" вы можете делать. Линукс тут уже не при чем, изучайте ваш процессор.

Re: Компиляция модулей

setar » 01 сен 2011, 04:04

насколько я понял edwardoid хотел бы "подсобрать" модуль GPIO не пересобирая ядра.
В принципе сделать это можно, только нужно иметь полностью идентичный уже собранному ядру исходный код, переменные окружения и кросс компилятор.
На практике такое получить можно лишь самостоятельно полностью пересобрав ядро.
Если собирали сами, то без проблем - добавляете в конфиге модуль и делаете make modules


Rambler\'s Top100 Mail.ru counter