Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > OpenWRT/LEDE

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.06.2014, 12:26   #1
BeZoom
Junior Member
 
Регистрация: 25.08.2013
Сообщений: 15
Вес репутации: 0
BeZoom is an unknown quantity at this point
По умолчанию Как освободить занятые системой GPIO?

Я хотел бы использовать 8 портов GPIO в MR-3020, но для этого нужно взять контроль над уже занятыми портами, свододных всего 2.

Код:
root@app:~# cat /sys/kernel/debug/gpio
GPIOs 0-29, ath79:
 gpio-0   (tp-link:green:wlan  ) out hi
 gpio-8   (USB power           ) out hi
 gpio-11  (wps                 ) in  lo
 gpio-17  (tp-link:green:lan   ) out hi
 gpio-18  (sw1                 ) in  hi
 gpio-20  (sw2                 ) in  lo
 gpio-26  (tp-link:green:wps   ) out lo
 gpio-27  (tp-link:green:3g    ) out hi


root@app:~# ls /sys/class/gpio/
export     gpio8      gpiochip0  unexport

root@app:~# echo 27 > /sys/class/gpio/export
ash: write error: Device or resource busy
Т.е. в этом примере gpio-27 занят уже и не получается взять над ним контроль.

В этом топике написано


Код:
Еще один вариант управлять GPIO пинами которые подключены к светодиодам роутера TP-Link

Как я уже писал ранее GPIO захвачены драйвером светодиодов и управлять ими можно, например как я написал в шапке этой темы.
Но есть еще вариант управления этими светодиодами, для этого нужно выгрузить модуль ядра(драйвер светодиодов) leds_gpio
И что бы это не делать каждый раз после ребута, нужно прописать в /etc/rc.local 
В примере я использую выход B44(GPIO27), роутер WR703N, на котором подключен светодиод

rmmod leds_gpio
echo 27 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio27/direction
echo 0 > /sys/class/gpio/gpio27/value
Но это не актуально уже, во всяком случае с прошивкой из trunk, нету там этого модуля.

Код:
root@app:~# rmmod leds_gpio
kmod: module is not loaded
Я могу собрать имидж прошики заново, это не проблема, но подскажите что нужно подправить и где это лежит? Я не нашел в исходниках ничего.

В идеале, чтобы в системе все GPIO были бы свободны.
BeZoom вне форума   Ответить с цитированием
Старый 16.06.2014, 17:43   #2
BeZoom
Junior Member
 
Регистрация: 25.08.2013
Сообщений: 15
Вес репутации: 0
BeZoom is an unknown quantity at this point
По умолчанию Re: Как освободить занятые системой GPIO?

Ответ:


Код:
echo leds-gpio > /sys/bus/platform/devices/leds-gpio/driver/unbind
echo gpio-keys-polled >  /sys/bus/platform/devices/gpio-keys-polled/driver/unbind

root@app:~# cat /sys/kernel/debug/gpio
GPIOs 0-29, ath79:
 gpio-8   (USB power           ) out hi
Если нужно удалить и gpio-8 (хотя запись и чтение в него работает, нельзя только переконфигурировать) то нужно закомментировать "gpio_request_one" в target/linux/ar71xx/files/arch/mips/ath79/mach-tl-mr3020.c, должно работать, но я не пробовал.
BeZoom вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 15:32. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика