Ребята подскажите!
HolaDuo, стоит Ubuntu Server. Пытался установить 0 или 1 на разъеме GPIO, но ни один из пинов не отреагировал.
Написал скрипт на Bash который в цикле экспортирует(export) ноги(от 1 до 300), ставит им 0 и 1 на 1 сек и делает unexport. В общем чтоб вручную не писать...
При попытке импорта некоторых ног, была ошибка что типо ресурс занят, но это ожидаемо.
Осциллографом прошелся по каждому пину, но ни один не отреагировал.
Наверняка есть какая-то хитрость, может какой-нибудь модуль подгрузить надо или ядро с поддержкой чего-нибудь пересобрать.
что там у вас происходит и как написано видно только вам..
могу погадать (ручку золотить не обязательно)..
в общем случае, если разрешена работа в ядре:
включаем работу с пином через sysfs echo K > /sys/class/gpio/export
если команда прошла успешно, соответствующий пин доступен для чтения командой cat /sys/class/gpio/gpioK/value
чтобы переключить пин на вывод необходимо echo out > /sys/class/gpio/gpioK/direction
после этого режим пина переключается на вывод в состояние "0"
переключить состояние можно командой echo 1 > /sys/class/gpio/gpioK/value
где К в вышеприведенных примерах вычисляется
K=(B-1) * 32+P
пример:
GPIO3_10 = (3-1) * 32+10 = 74 т.е. K=74
да, все делаете правильно.. похоже придется ядро модифицировать..
в исходниках ядра ищете файл борды, не знаю, как он для Duo называется, примерно
arch/arm/mach-mx6/*board*.c рядом еще должен объектник лежать
там в структуре конфига пинов прописываете "свой" пин, для 46 это будет MX6DL_PAD_SD4_DAT6__GPIO_2_14,
пересобираете, грузите и пробуете. если все сделали в нужных местах, то пин должен контролироваться.
если что-то непонятно, не стесняйтесь - спрашивайте..
Полазил я по каталогу arch/arm/*
Не нашел там "mach-mx6". Только mach-imx и mach-mxs. Но в них нет ни одного объектника, только заголовочные и исходники.
именно. это ядро. я перед правками делаю копию архива ядра или копии тех файлов, которые правлю под себя..
находите файлы борды, добавляете свои пины, далее варианты
пересборка в составе билдрута или отдельно только ядро, потом грузитесь и смотрите на пин..