LINUX.ORG.RU

Сообщения senswet

 

Сборка модуля gpiomem для mips arch

Всем привет.

Нарыл, что есть модуль ядра, обеспечивающий пользовательский режим доступа к участку памяти с GPIO-регистрами. Работает аналогично /dev/mem, но отображает только одну страницу памяти и не требует прав root:

https://github.com/raspberrypi/linux/commit/825010a8ee015e0b7876cbcb90a82b3d2...

Модуль написан для архитектуры arm, мне же нужна архитектура mips. Связавшись с автором, выяснил, что код может быть скомпилирован и для mips, нужно только поправить адреса размещения регистров в памяти. С этим проблем не возникло.

Для сборки использовал toolchain openwrt 18.06.0. Ядро 4.9.111. В время компиляции модуля вылезла ошибка:

implicit declaration of function 'phys_mem_access_prot'; did you mean 'phys_mem_access_prot_allowed'? [-Werror=implicit-function-declaration]

Функция 'phys_mem_access_prot' объявляется и определяется в файле drivers/char/mem.c, который вроде как подключается к ядру на этапе сборки. В конфиге ядра:

CONFIG_DEVMEM=y

CONFIG_DEVKMEM=y

Если я объявляю (без определения) функцию 'phys_mem_access_prot' в исходнике модуля gpiomem, то компиляция проходит успешно, но модуль не загружается:

#modprobe gpiomem

1 module could not be probed

- gpiomem

в логе dmesg:

gpiomem: Unknown symbol phys_mem_access_prot (err 0)

В чем ошибка - не понимаю. Бьюсь уже не первый день, прошу помощи.

 , ,

senswet
()

RSS подписка на новые темы