Подопытный: Схема подключения: Установка ПО: Код (Bash): sudo apt-get install bison flex libusb-dev cd /tmp wget http://download.savannah.gnu.org/releases/avrdude/avrdude-6.1.tar.gz tar xf avrdude-6.1.tar.gz cd avrdude-6.1 ./configure --prefix=/opt/avrdude --enable-linuxgpio make sudo make install Правим avrdude.conf, указывая используемые нами пины: Код (Bash): sudo vim /opt/avrdude/etc/avrdude.conf Раcкомментируем секцию linuxgpio и прописываем наши пины: Код (Bash): programmer id = "linuxgpio"; desc = "Use the Linux sysfs interface to bitbang GPIO lines"; type = "linuxgpio"; reset = 12; sck = 11; mosi = 10; miso = 9; ; Правим конфиг Arduino IDE Код (Bash): sudo vim /usr/share/arduino/hardware/arduino/programmers.txt Вставляем эти строки в конец файла: Код (Bash): rpigpio.name=RPi GPIO rpigpio.protocol=linuxgpio И кидаем симлинки на нашу версию avrdude: Код (Bash): sudo ln -fs /opt/avrdude/bin/avrdude /usr/share/arduino/hardware/tools/avrdude sudo ln -fs /opt/avrdude/etc/avrdude.conf /usr/share/arduino/hardware/tools/avrdude.conf Запускаем Arduino IDE (Если запустить программу из меню, ругнется на отсутствие прав): Код (Bash): sudo arduino Заливаем Blink, эксперементируем - работает! Если возникает проблема следующего характера: Код (Bash): Cant export GPIO 12, already exported/busy?: Device or resource busy avrdude done. Thank you. Это решается через: Код (Bash): echo 12 > /sys/class/gpio/unexport Аналогично для пинов 9, 10 и 11. Специальное спасибо Lukáš Lalinský, на материале статьи которого и был осуществлен этот проект. P.S. Бутлодер таким образом еще не заливал.
Для устранения этого: то есть для разрешения в файл /etc/rc.local добавил это: Код (Bash): if ! [ -e /dev/ttyUSB0 ] then echo 'No file' else chm=$(ls -al /dev/ttyUSB0 | awk '{print($1)}') if [ $chm != "crwxrwxrwx" ] then chmod 777 /dev/ttyUSB0 fi echo "$chm" fi Одним словом разрешил последовательный порт USB всем. Хоть и не хороший... но вариант. Давно было это... И не про GPIO всё это. Но кто-нибудь рассматривал такой вариант?
Кстати посмотрел вот это: Код (Bash): root@raspberrypi:/sys/class/gpio/gpiochip0# ls -al total 0 drwxrwx--- 3 root gpio 0 May 23 18:53 . drwxr-xr-x 3 root root 0 May 23 18:53 .. -rwxrwx--- 1 root gpio 4096 May 23 18:53 base lrwxrwxrwx 1 root gpio 0 May 23 18:53 device -> ../../../3f200000.gpio -rwxrwx--- 1 root gpio 4096 May 23 18:53 label -rwxrwx--- 1 root gpio 4096 May 23 18:53 ngpio drwxrwx--- 2 root gpio 0 May 23 18:53 power lrwxrwxrwx 1 root gpio 0 May 23 18:53 subsystem -> ../../../../../../class/gpio -rwxrwx--- 1 root gpio 4096 May 23 18:53 uevent и пришла мысль поправить доступ вот этим: Код (Bash): root@emo-5:/home/emo-5# usermod --help Использование: usermod [параметры] имя пользователя Параметры: -c, --comment КОММЕНТАРИЙ новое значение поля GECOS -d, --home ДОМ_КАТ новый домашний каталог учётной записи -e, --expiredate EXPIRE_DATE установить дату окончания действия учётной записи в EXPIRE_DATE -f, --inactive INACTIVE установить пароль после устаревания учётной записи в INACTIVE -g, --gid ГРУППА принудительно назначить первичную ГРУППУ -G, --groups ГРУППЫ список дополнительных ГРУПП -a, --append добавить пользователя в дополнительные ГРУППЫ, указанные в параметре -G не удаляя пользователя из других групп -h, --help показать данное сообщение и закончить работу -l, --login НОВОЕ_ИМЯ новое значение имени учётной записи -L, --lock заблокировать учётную запись -m, --move-home переместить содержимое домашнего каталога в новое место (использовать только вместе с -d) -o, --non-unique разрешить создание учётной записи с уже имеющимся (не уникальным) UID -p, --password ПАРОЛЬ задать новый шифрованный пароль для учётной записи -s, --shell ОБОЛОЧКА задать новую оболочку для учётной записи -u, --uid UID новый UID для учётной записи -U, --unlock разблокировать учётную запись -Z, --selinux-user новое SELinux-отображение учётной записи одним словом пользователя "вася пупкин" добавить в группу gpio