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. Выполните команду:
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
Выполните команду:
Произойдет успешный импорт библиотеки arrow:
[Ссылки]
1. LuckFox Pico Buildroot Configuration site:wiki.luckfox.com. 2. LuckFox FAQ: установка SDK. |