Can arduino run linux

Программирование Arduino из Linux, gentoo-way, быстрый старт

К сожалению, информация, необходимая для подключения Arduino к компьютеру, оказалась разрозненна по разным источникам на разных языках. Как известно, gentoo — это дистрибутив linux с непрерывной разработкой, фактически в нем и понятия такого быть не может, как «дистрибутив». Из-за этого решение проблемы, найденное в интернете, может оказаться неработоспособным просто потому, что на целевой системе другой набор пакетов и настроек.

Кроме того, авторы, как правило, приводят команды и решения специфичные для конкретной системы в конкретный момент времени. Проходит некоторое время, версии продуктов изменяются, меняются некоторые пути и файлы. Данная статься попытка не только консолидировать информацию, но и изложить так, чтобы информация устаревала как можно в меньшей степени, и было легко модифицировать команды под вашу систему. Возможно это будет полезно и в других дистрибутивах.

Архитектура amd64, ядро x86_64 3.7.10-gentoo
Установлены стабильные пакеты последних версий.
На аукционе ebay куплена плата Arduino Pro Mini 328p 16МГц 5V и USB конвертер к ней на чипе FTDI.

Установить в ядро поддержку USB конвертера

После подключения конвертера к USB порту видим следующее:

# tail /var/log/messages my-pc kernel: usb 6-1: new full-speed USB device number 2 using uhci_hcd my-pc kernel: usb 6-1: New USB device found, idVendor=0403, idProduct=6001 my-pc kernel: usb 6-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 my-pc kernel: usb 6-1: Product: FT232R USB UART my-pc kernel: usb 6-1: Manufacturer: FTDI my-pc kernel: usb 6-1: SerialNumber: A900eYdz

Для этого конвертера нужен драйвер ftdi_sio, предпочитаю не добавлять в ядро то, что не нужно при загрузке системы, а компилировать в виде модуля. Genkernel я не использую, а вы можете компилировать ядро удобным для вас способом.

Device Drivers ---> [*] USB support ---> USB Serial Converter support ---> USB FTDI Single Port Serial Driver

Компилируем модуль и загружаем:

# make && make modules_install # modprobe ftdi_sio
#tail -f /var/log/messages my-pc kernel: usbcore: registered new interface driver usbserial my-pc kernel: usbcore: registered new interface driver usbserial_generic my-pc kernel: usbserial: USB Serial support registered for generic my-pc kernel: usbcore: registered new interface driver ftdi_sio my-pc kernel: usbserial: USB Serial support registered for FTDI USB Serial Device my-pc kernel: ftdi_sio 6-1:1.0: FTDI USB Serial Device converter detected my-pc kernel: usb 6-1: Detected FT232RL my-pc kernel: usb 6-1: Number of endpoints 2 my-pc kernel: usb 6-1: Endpoint 1 MaxPacketSize 64 my-pc kernel: usb 6-1: Endpoint 2 MaxPacketSize 64 my-pc kernel: usb 6-1: Setting MaxPacketSize 64 my-pc kernel: usb 6-1: FTDI USB Serial Device converter now attached to ttyUSB0
# ls -l /dev/ttyUSB0 crw-rw---- 1 root uucp, 0 марта 9 13:04 /dev/ttyUSB0

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

Читайте также:  Wps office linux настройка

Установка или обновление пакета rxtx

Актуально только для 64-битных систем:
В момент написания статьи стабильная версия пакета , но прошивка Arduino с ней работать не будет, необходимо поставить . Вероятно когда появится новая стабильная версия проблема будет устранена.

# echo =dev-java/rxtx-2.2_pre2 ~amd64 >> /etc/portage/package.keywords
emerge =dev-java/rxtx-2.2_pre2

Установка java виртуальной машины sun

Можно использовать SDK или JRE, если не знаете, нужен ли вам SDK, то он вам не нужен, и выбирайте sun-jre-bin:

# emerge dev-java/sun-jdk или # emerge dev-java/sun-jre-bin

Из-за лицензионных ограничений вам придется вручную скачать соответствующий исходный файл и скопировать его в /usr/portage/distfiles. Кроме того, VM распространяется под отдельной лицензией, поэтому ее небходимо добавить в файл make.conf:

ACCEPT_LICENSE="Oracle-BCLA-JavaSE"

Убедитесь, что нужная VM выбрана:

# eselect java-vm list Available Java Virtual Machines: [1] sun-jre-bin-1.6 system-vm

Установка окружения toolchain для компиляции

# emerge sys-devel/crossdev app-portage/layman
# echo source /var/lib/layman/make.conf >> /etc/make.conf # mkdir -pv /usr/local/portage

Установка собственно самой IDE для программирования

Постольку нет ни одной стабилизированной версии, то скорее всего она появится не скоро. Поэтому просто устанавливаем последнюю версию. Необходимо разблокировать следующие пакеты, добавив в файл /etc/portage/package.keywords следующие строчки:

dev-embedded/arduino ~amd64 dev-embedded/uisp ~amd64
echo dev-embedded/arduino doc examples >> /etc/portage/package.use

Запускаем arduino

Выбираем в меню Сервис -> Плата ваш вариант Arduino и Сервис -> Последовательный порт – порт, который появился после подключения конвертера, обычно это /dev/ttyUSB0. Самый простой скетч Blink уже был загружен в мою плату производителем, поэтому чтобы проверить, как все работает, я его модифицировал: теперь светодиод моргает попеременно короткой и длинной вспышкой:

/* Blink A Morse code Turns on an LED on adruino 'Dot - Dash - Pause' */ // Pin 13 has an LED connected on most Arduino boards. int led = 13; // the setup routine runs once when you press reset: void setup() < // initialize the digital pin as an output. pinMode(led, OUTPUT); >void loop()

Нажимаете галочку «Проверить» и стрелочку «Загрузить» и будет вам счастье. На самом деле может и не будет, потому что необходимо устранить еще некоторые проблемы и об этом ниже.

Проблемы:

Если пункт выбора последовательного порта деактивирован, то вам снова нужно вернуться к началу статьи и
#zgrep FTDI /proc/config.gz CONFIG_USB_SERIAL_FTDI_SIO=m
# modprobe -r ftdi_sio # modprobe ftdi_sio
# qlist -ICv rxtx dev-java/rxtx-2.2_pre2
При компиляции выводится ошибка:
/usr/libexec/gcc/avr/ld: cannot open linker script file ldscripts/avr5.x: Нет такого файла или каталога collect2: ошибка: выполнение ld завершилось с кодом возврата 1

причина в том, что пути по которым установлен toolchain не соответствуют путям где его ищет arduino. Находим сначала где нужный файл:

# find /usr/ -name avr5.x /usr/lib64/binutils/avr/2.23.1/ldscripts/avr5.x
# ln -s /usr/lib64/binutils/avr/2.23.1/ldscripts /usr/avr/lib/ldscripts
При компиляции выводится ошибка:
/usr/libexec/gcc/avr/ld: cannot find crtm328p.o: Нет такого файла или каталога collect2: ошибка: выполнение ld завершилось с кодом возврата 1

Для вашей платы имя файла может быть другим, а решение то-же, необходимо создать соответствующую символическую ссылку. Ищем файл:

# find /usr/ -name crtm328p.o /usr/avr/lib/avr5/crtm328p.o
# ln -s /usr/avr/lib/avr5/crtm328p.o /usr/avr/lib/
Существует проблема с binutils версии выше 2.19

Проблема выражается в том, что все вышеописанное работает, все компилируется, собирается и загружается в плату без малейшей ошибки. Но прошивка не работает. В моем случае плата просто моргает светодиодом, секунда горит, на секунду гаснет, то есть классический Blink.

Читайте также:  Настройка cuda для linux

Решение описано здесь, баг зарегистрирован на Gentoo’s Bugzilla.

Чтобы решить проблему следует переустановить toolchain следующим образом:

crossdev -C avr
USE=«multilib -cxx» crossdev —b 2.19.1-r1 -S -s1 —target avr
USE=«multilib cxx» crossdev —b 2.19.1-r1 -S -s4 —target avr

Все написанное выше по поводу некорректных путей остается в силе.

Для систем с hardened ядром:

USE=«multilib -cxx nopie nossp -hardened -pic -openmp» crossdev —b 2.19.1-r1 -S -s1 —target avr
USE=«multilib cxx nopie nossp -hardened -pic -openmp» crossdev —b 2.19.1-r1 -S -s4 —target avr

Вместо заключения

Сама плата и способы ее использования меня заинтересовали в контексте построения системы «Умный дом». Сейчас у меня капитальный ремонт квартиры в самом разгаре, и я могу проложить любые кабели, разместить любые коммутационные коробки и т. д.

Использованные источники

Источник

How to Install Arduino Software (IDE) on Linux

Arduino is a widely-used, open-source electronics platform used to create devices that interact with their environment using sensors and actuators. It consists of a programmable hardware board and a software (Integrated Development Environment(IDE)) for writing and uploading programs to the board.

Before you can start building projects using Arduino, you need to set up the IDE to program your boards. The Arduino (IDE) is a free open-source and cross-platform desktop application that allows you to write code and upload it to the board. It runs on Linux, Windows, and Mac OS X, and Linux.

In this article, we will explain how to install the latest version of the Arduino Software (IDE) on Linux machines.

Installing Arduino IDE on Linux Systems

The Arduino Software (IDE) is a package that does not require any particular process for the various Linux distributions. The only needed requirement is the 32-bit or 64-bit version of the operating system.

Download the Arduino Software (IDE)

Go to the download page and grab the latest version (1.8.12 at the time of writing) of Arduino Software (IDE) for your supported system architecture. You can choose between the 32-bit, 64-bit, and ARM versions, as it is very crucial to select the right version for your Linux distribution.

Alternatively, you can use the following wget command to download the Arduino Software (IDE) package directly on the terminal.

$ wget https://downloads.arduino.cc/arduino-1.8.12-linux64.tar.xz

Download Arduino IDE in Linux

Next, extract the downloaded archive file using the tar command.

$ tar -xvf arduino-1.8.12-linux64.tar.xz

Extract Arduino IDE in Linux

Run Arduino IDE Install Script

Now move into the extracted arduino-1.8.12 directory and run the installation script with root privileges as shown.

$ cd arduino-1.8.12/ $ sudo ./install.sh

Install Arduino IDE in Linux

Once the installation is done, a desktop icon will be created on your desktop, to launch the IDE, double click on it.

Читайте также:  Install winrar on linux

Running Arduino IDE in Linux

It might happen that, you will get an error “Error opening serial port” while uploading a sketch after you have selected your board and the serial port. To fix this error, run the following command (replace tecmint with your username).

$ sudo usermod -a -G dialout tecmint

Besides, if you have a good internet connection, you can use the Arduino Web Editor (which has an up-to-date version of the IDE). The advantage with it is that it allows you to save your sketches in the cloud, and have them backed up, making them accessible from any device.

That’s it for now! For more information and advanced usage instructions, see the Arduino documentation. To reach us, use the feedback form below.

Источник

Как установить Arduino IDE на linux

На данный момент у меня стоит Linux 20.04 и Arduino IDE у меня получилось поставить только версии 1.8.15 — почему? — расскажу далее.

Мои неудачные попытки установки Arduino IDE на linux

На официальном сайте https://www.arduino.cc/en/software имеется дистрибутив. Всё отлично, скачал его, распаковал. Но вот беда: исполнительный фаил не открывается.
Начал разбираться — совет был переустановить Java JDK — но ходил по кругу, т.к. Java JDK у меня устанавливается с ошибкой.

Хорошо, следующая мысль — надо обновить Linux до версии 21.XX или даже 22.XX — нашел «Мурзилку» по обновлению, сделал все подготовительные операции: судо апэтэ апдейт, апргрейд и т.п., но смутила фраза «сделать бекап» . Читаю комменты — у многих ничего не получилось — и такой вариант меня вообще не устраивает.

Теперь пришла мысль: так, линукс версия у меня старая, почему бы не поставить старую версию Arduino IDE?

Как я поставил Arduino IDE на linux

  1. Выполняем все подготовительные операции Апдейт и Апгрейд:
    sudo apt update && sudo apt upgrade
  2. Скачиваем пакет с Arduino IDE версии 1.8.15:
    wget https://downloads.arduino.cc/arduino-1.8.15-linux64.tar.xz
  3. Находим наш скачанный архив и распаковываем его:
    Тут я действовал просто: правой кнопкой мыши — распаковать «тут»
  4. Проваливаемся в распакованные папки:
    arduino-1.8.15-linux64 / arduino-1.8.15 / install.sh
  5. Видим фаил install.sh но не торопимся его кликать. Несколько попыток прокликать его не увенчались успехом — в левом верхнем углу крутилось колесико «Загрузка» несколько секунд, затем пропадало и просто ничего не происходило. Ну всё. накипело до предела. тут же (в этой же папке) открываю консоль (правой кнопкой / терминал) и ввожу команду
    sudo ./install.sh
  6. Заходим в «Приложения» — сразу заметил по последней странице, что что-то прибавилось, что-то тут новенькое появилось — ищу — да . вот она .

Источник

Оцените статью
Adblock
detector