LuckFox Pico Buildroot Configuration Печать
Добавил(а) microsin   

Buildroot это инструментарий сборки загружаемого образа Linux, специально предназначенный для ограниченных по ресурсам встраиваемых систем. Конфигурированием Buildroot вы можете настроить программные пакеты и библиотеки, которые будут включены в образ для встраиваемой системы, чтобы они удовлетворяли требованиям приложения. В этой статье (перевод документации [1]) демонстрируется, как добавить пакеты для iftop и minicom, а также как добавить библиотеку python-arrow, с помощью конфигурирования Buildroot.

[1. Добавление пакетов]

1.1. Откройте интерфейс конфигурирования menuconfig:

$ cd < SDK directory>/sysdrv/source/buildroot/buildroot-2023.02.6/
$ make luckfox_pico_defconfig
$ make menuconfig

Обратите внимание, что директория "buildroot-2023.02.6" не появится сразу после загрузки SDK [2]. Чтобы эта директория появилась, нужно сначала хотя бы один раз скомпилировать SDK командами:

~/luckfox-pico$ ./build.sh lunch
~/luckfox-pico$ ./build.sh

1.2. iftop

Iftop это утилита для мониторинга сетевого трафика в реальном времени. Она отображает текущую ситуацию по трафику различных сетевых соединений в системе через "графический" интерфейс. Можно выполнить сортировку по объему трафика и показать подробную информацию по каждому соединению, что помогает быстро обнаружить узкие места сетевого обмена данными или ненормальный трафик.

Модификация конфигурации. Нажмите клавишу /, введите iftop и нажмите Enter для поиска. Если результат поиска только один, нажмите клавишу 1 для быстрого перехода к настройке iftop.

Для разрешения iftop нажмите Y. Напротив пункта конфигурации iftop появится звездочка. Это означает, что утилита iftop статически будет добавлена в компилируемый образ системы Buildroot.

...
[ ] ifplugd
[*] iftop
[ ] ifupdown
...

1.3. minicom

Minicom это утилита для работы с последовательным портом, наподобие HyperTerminal в Windows. Она используется главным образом с последовательными устройствами, такими как свичи отладки, модемы, переходники USB-UART. Minicom предоставляет простой, но эффективный интерфейс командной строки, поддерживая конфигурацию параметров последовательного соединения и протоколы передачи файлов (такие как XMODEM, YMODEM). Minicom достаточно легковесная, чтобы подойти для развертывания в окружении embedded Linux и сценариях отладки, где используется последовательный обмен данными.

Модификация конфигурации. Нажмите клавишу /, введите minicom и нажмите Enter для поиска. Если результат поиска только один, нажмите клавишу 1 для быстрого перехода к настройке minicom.

Для разрешения minicom нажмите Y. Напротив пункта конфигурации minicom появится звездочка. Это означает, что утилита minicom статически будет добавлена в компилируемый образ системы Buildroot.

...
[ ] memtool
[*] minicom
[ ] nanocom
...

1.4. Сохранение конфигурации

Нажмите клавишу Esc несколько раз. Когда появится запрос о необходимости сохранения (save), выберите "Yes", сохраните конфигурацию и приступайте к перекомпиляции образа.

$ make savedefconfig
$ make

[2. Добавление библиотек Python]

Конфигурированием Buildroot мы не только можем добавлять пакеты, но также можем добавлять в систему требуемые библиотеки Python. Ниже показан пример добавления библиотеки python-arrow.

2.1. Открытие интерфейса конфигурации

$ cd < SDK directory>/sysdrv/source/buildroot/buildroot-2023.02.6/
$ make luckfox_pico_defconfig
$ make menuconfig

2.2. Модификация конфигурации

В меню конфигурации найдите и выберите Target, затем выберите Interpreter languages and scripting, и в завершение выберите External python modules.

Найдите в списке требуемые библиотеки, и расставьте пробелом на них звездочки (или нажмите Y для разрешения библиотеки).

2.3. Сохраните конфигурацию

После того, как завершили изменения, нажмите несколько раз Esc до появления запроса на сохранение. В этом диалоге выберите "Yes," save, и переходите к перекомпиляции.

$ make savedefconfig
$ make

[3. Перепрошивка firmware]

Скомпилируйте firmware выбором ветви (branch) и указанием модели вашей платы:

$ cd ~/< SDK directory>
~/luckfox-pico$ ./build.sh lunch

Компиляция:

~/luckfox-pico$ ./build.sh

Перепрошивка firmware:

~/luckfox-pico$ upgrade_tool uf ./output/image/update.img

[4. Проверка результата]

4.1. iftop

Выполните команду:

# iftop -i eth0 -P -nNB -m 15M

Назначение параметров:

-i eth0: указывает сетевой интерфейс для мониторинга, в этом примере eth0. Вы можете поменять это на другое имя интерфейса, если необходимо.
-P: показывать номера портов.
-n: показывать адреса хостов в числовой форме вместо доменных имен.
-N: отображать номера портов в столбцах host и service, без указания соответствующих имен сервиса.
-B: показывать трафик в байтах.
-m 15M: ограничить максимальную отображаемую полосу 15 мегабитами в секунду (Mbps).

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

4.2. minicom

1. Выполните команду:

# minicom -s

2. После выполнения команды откроется интерфейс конфигурации утилиты minicom. Выберите "Serial port setup".

3. После выбора "Serial port setup" нажмите Enter для входа в меню настройки.

4. В меню настройки будут показаны 14 элементов, соответствующих буквам A, B...N на клавиатуре, первый элемент эт выбор устройства последовательного порта. Здесь для примера мы взяли UART3. Файл устройства для UART3 это /dev/ttyS3, так что установите последовательное устройство (serial device) на /dev/ttyS3. Метод установки: сначала нажмите клавишу "A", затем введите имя устройства /dev/ttyS3, и нажмите Enter для подтверждения. Одновременно вы можете также установить другие элементы конфигурации, какие как "E" для установки скорости (baud rate), количество бит данных в кадре (data bits) и количество стоп-бит (stop bits), "F" для установки аппаратного управления потоком (hardware flow control). Здесь мы нажали "F" для выключения аппаратного управления потоком.

5. После выполнения настроек нажмите Enter для подтверждения и возврата в интерфейс конфигурации.

6. Нажмите "Esc" для выхода из интерфейса конфигурации и введите в интерфейс последовательной отладки (serial debugging interface). Вы можете видеть, что текущий файл последовательного интерфейса /dev/ttyS3.

7. Если у вас хост разработки Windows, то откройте sscom или putty, установите скорость подключения (baud rate) 115200, и подключите переходничок USB-UART к UART3 платы Luckfox Pico для отправки данных. Если у вас машина хоста на Linux, то выбор аналогичных программ большой: cutecom (больше всего похожа на sscom), gtkterm, putty, minicom.

hello luckfox

8. Luckfox Pico успешно примет данные.

9. Нажмите "CTRL+A" и нажмите "Z" для открытия окна help утилиты minicom. На следующей картинке мы можем видеть, что у minicom есть множество функций. Функция echo в minicom по умолчанию выключена, и соответствующий элемент конфигурации "local Echo on/off...E". Можно нажать клавишу "E" для включения/выключения функции echo.

10. В интерфейсе конфигурации minicom нажмите "CTRL+A", и затем нажмите "X", чтобы закрыть minicom.

4.3. python-arrow

Выполните команду:

# python3
import arrow

Произойдет успешный импорт библиотеки arrow:

[Ссылки]

1. LuckFox Pico Buildroot Configuration site:wiki.luckfox.com.
2LuckFox FAQ: установка SDK.