# Руководство пользователя Страница содержит руководство по подготовке программной части, сборке rootfs и ядра Linux для модуля **Q7_KOMDIV_MK**. Скачать примеры бинарников для запуска Linux: https://disk.360.yandex.ru/d/11mHF4DiqqxNxQ ## Общая информация **Q7_KOMDIV_MK** используется как вычислительный модуль в составе встраиваемых и серверных систем. Для работы модуля требуется подготовить загрузчик, ядро Linux и корневую файловую систему. В рамках данной страницы используется следующее окружение: {{tablelayout?rowsHeaderSource=Auto}} ^ Компонент ^ Версия / описание ^ | Хостовая ОС | Ubuntu 24.04 | | Rootfs | Buildroot 2025.02.7 + buildroot-external-inmys | | Ядро Linux | k5500vk018-linux | | Архитектура | KOMDIV-64 (MIPS64) | | Сборка rootfs | через Docker-контейнер komdiv-sdk | ## Комплектация отладочного комплекта В комплекте с модулем ''Q7_KOMDIV_MK'' предоставляются: {{ komdiv-evm-pack.jpg?480 }} * кабель USB Type-C для подключения отладочной консоли; * прищепка DIP8-SOIC8 для прошивки загрузчика Barebox в модуль; * переходник для подключения прищепки к [FT2232H-56Q Mini Module](https://www.chipdip.ru/product/ft4232h-56q-mini-mdl-ftdi-8052788321); * радиатор охлаждения** ; * блок питания 12V. **SoC выполнен по технологии 65 нм. Температура 65C под нагрузкой при комнатной температуре 25C без радиатора считается штатной. Необходимо учитывать в конечном изделии тепловыделение модуля 4 Вт. Для отладки предложен алюминевый радиатор 28x28x11 mm с теплопроводящим клеем. ## Состав программной части Q7_KOMDIV_MK Для работы модуля требуется три основных компонента: ^ Компонент ^ Описание ^ Доступ к исходну кода ^ Место прошивки ^ | Загрузчик | Barebox | Приватный репозиторий с доступом по токену | SPI FLASH 4MB на модуле | | Ядро Linux | Linux с поддержкой k5500vk018 | Приватный репозиторий с доступом по токену | eMMC 4GB на модуле/внешняя SD-карта| | Rootfs | Buildroot 2025.02.7 + buildroot-external-inmys | Публичный GitHub Inmys | eMMC 4GB на модуле/внешняя SD-карта | На данный момент исходный код распространяется через репозитории с приватным доступом. Для получения токена обратитесь на почту **info@inmys.ru** ## Подготовка окружения Сборка выполняется на **Ubuntu 24.04**. Перед началом работы необходимо обновить список пакетов и установить кросс-компилятор для MIPS (требуется для сборки barebox): ``` bash sudo apt update sudo apt install -y cpp-mips64el-linux-gnuabi64 ``` Также предполагается, что на хостовой машине установлен Docker. ## Сборка BareBox Введите высланные логин и токен с info@inmys.ru вместо ''XXXXX'' и ''YYYYY'' и выполните команды: ``` bash git clone https://XXXXX:YYYYY@gitlab.inmys.online/srisa/k5500vk018-barebox.git cd k5500vk018-barebox make ARCH=mips CROSS_COMPILE=mips64el-linux-gnuabi64- srisa_k64s_defconfig make ARCH=mips CROSS_COMPILE=mips64el-linux-gnuabi64- -j24 ``` Результат сборки находится по пути ''images/barebox-rbm_c1k5500vk018-el.img'' ## Сборка образа системы Введите высланные логин и токен с info@inmys.ru вместо ''XXXXX'' и ''YYYYY'' и выполните команду: ``` bash LOGIN="XXXXX"; TOKEN="YYYYY"; printf "machine gitlab.inmys.online\nlogin %s\npassword %s\n" "$LOGIN" "$TOKEN" > .gitlab.netrc ``` Выполните следующие команды: ``` bash mkdir -p container cd container wget https://nextcloud.inmys.online/nextcloud/index.php/s/ZJFE4wx3pMwf9yn/download -O Dockerfile sudo docker build -t komdiv-sdk . cd .. wget https://buildroot.org/downloads/buildroot-2025.02.7.tar.gz tar -xf buildroot-2025.02.7.tar.gz git clone https://github.com/inmys/buildroot-external-inmys.git -b nms-q7-k5500vk018 sudo docker run -it -e USER=$USER -e USERID=$UID -v $(pwd):/BR -v "$(pwd)/.gitlab.netrc:/root/.netrc:ro" --cpus=12 -t komdiv-sdk bash ``` В Docker-контейнере выполнить: ``` bash make BR2_EXTERNAL=$PWD/buildroot-external-inmys -C buildroot-2025.02.7 O=$PWD/output br_defconfig cd output export FORCE_UNSAFE_CONFIGURE=1 make -j12 ``` После завершения сборки необходимо выйти из контейнера сочетанием клавиш ''Ctrl + D'' Результаты сборки находятся в директории ''output/images/'' ## Прошивка загрузчика в SPI-флешку Осуществляется программатором FT2232H-56Q Mini Module с установленным переходником FT2232H-56Q Mini Module_Adapter Необходимо подключить программатор FT2232H-56Q Mini Module к ПК и подключить прищепку к плате, красным проводом вверх. Правильное положение прищепки достигается, если плата Q7_KOMDIV_MK установлена в отладочную плату NMS-Q7-EVM-MINI {{tablelayout?rowsHeaderSource=Auto}} | {{ burn-barebox-1.jpg?480 }} | {{ burn-barebox-2.jpg?480 }} | ### Linux (Пример для Ubuntu 24.04) Установка зависимостей: ``` bash sudo apt update && sudo apt install flashrom -y ``` Прошивка производится с помощью скрипта [burn-barebox.sh](https://disk.360.yandex.ru/d/YOFf-XhxbfylWQ) (скрипт также присутствует в репозитории barebox): ``` bash # Скачивание wget https://nextcloud.inmys.online/nextcloud/index.php/s/4Cyp3YZ4w82oTxt/download -O burn-barebox.sh # Установка chmod +x burn-barebox.sh sudo ./burn-barebox.sh barebox-rbm_c1k5500vk018-el.img ``` [Пример barebox-rbm_c1k5500vk018-el.img.](https://disk.360.yandex.ru/d/11mHF4DiqqxNxQ) ``` bash 4+0 records in 8192+0 records out 4194304 bytes (4,2 MB, 4,0 MiB) copied, 0,0105851 s, 396 MB/s 1881+1 records in 1881+1 records out 963180 bytes (963 kB, 941 KiB) copied, 0,0058463 s, 165 MB/s flashrom unknown on Linux 6.14.0-28-generic (x86_64) flashrom is free software, get the source code at https://flashrom.org Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns). Found Winbond flash chip "W25Q32.V" (4096 kB, SPI) on ft2232_spi. === This flash part has status UNTESTED for operations: WP The test status of this chip may have been updated in the latest development version of flashrom. If you are running the latest development version, please email a report to flashrom@flashrom.org if any of the above operations work correctly for you with this flash chip. Please include the flashrom log file for all operations you tested (see the man page for details), and mention which mainboard or programmer you tested in the subject line. Thanks for your help! Reading old flash chip contents... done. Erasing and writing flash chip... Erase/write done. Verifying flash... VERIFIED. ``` ### Windows * Скачать и установить flashrom для windows https://github.com/therealdreg/flashrom_build_windows_x64 * Через Zadig заменить драйвер ftdi на winusb. Подоходит вот эта инструкция: https://docs.mikron.ru/wiki/dev-tools/debuggers/ft2232.html * Открыть через командную строку flashrom.exe с правами администратора Определение флешки программатором: ``` bash .\flashrom.exe -p ft2232_spi:type=2232H,port=A,divisor=4 ``` Чтение файла из памяти: ``` bash .\flashrom.exe --progress -V -c "W25Q32JV" -p ft2232_spi:type=2232H,port=A,divisor=4 -r filename.bin ``` Запись файла в память: ``` bash .\flashrom.exe --progress -V -c "W25Q32JV" -p ft2232_spi:type=2232H,port=A,divisor=4 -w filename.bin ``` ## Подготовка загрузочной флешки Скачать ресурсы: https://disk.360.yandex.ru/d/11mHF4DiqqxNxQ Для первого запуска необходимо подготовить загрузочную флешку. Для прошивки флешки необходимо, чтобы в той же директории, что и скрипт, находились vmlinuz и файл .dtb. Прошивка USB-флешки/SD-карты ``` bash sudo chmod +x burn-boot-usb.sh sudo ./burn-boot-usb.sh /dev/sdX #где X - буква прошиваемой флешки ``` В конце ожидайте вывод: ''Флешка подготовлена'' ## Первый запуск 1. Для работы девайса программатор необходимо отключить 2. На SD-карте не отрабатывает CD#. SD-карта работает если была вставлена до подачи питания. В Barebox установлен приоритет загрузки на USB или SD-карту. Поэтому если вставлен внешний накопитель, то загрузка будет происходить с него. * Вставьте флешку в отладочную плату и подайте питание * Дождитесь конца загрузки и зайдите под root/root * Установите уникальные MAC-адреса, разметьте EMMC и перенесите образ на EMMC следующими командами Мак-адреса задаются через переменные окружения barebox (хранятся в SPI-флешке). Модули оснащены i2c eeprom с EUI-48. Можно использовать их в качестве уникальных адресов (auto-burn-macs.sh). При наличии у заказчика собственных уникальных мак-адресов можно использовать manual-burn-mac.sh Логин/пароль: root/root ``` bash /root/auto-burn-macs.sh umount /dev/mmcblk0* > /dev/null 2>&1 echo 'n p 1 +1G n p 2 +1G n p 3 +1G w' | tr ' ' '\n' | fdisk -u /dev/mmcblk0 mke2fs -F /dev/mmcblk0p1 mke2fs -F /dev/mmcblk0p2 mke2fs -F /dev/mmcblk0p3 mount /dev/mmcblk0p1 /boot mount "$(blkid /dev/sd* | grep 'LABEL="Q7_BOOT"' | cut -d: -f1)" /mnt # one-liner для монтирования boot раздела флешки cp /mnt/k5500vk018-inmys-q7.dtb /boot cp /mnt/vmlinuz /boot sync umount /dev/mmcblk0p1 umount "$(blkid /dev/sd* | grep 'LABEL="Q7_BOOT"' | cut -d: -f1)" ``` После того как команды были успешно выполнены, можно выключать питание и работать без флешки. Платформа готова к работе. [Примеры работы с периферией](https://wiki.inmys.ru/boards:nms-uq7-komdiv-mk:peripherial:start)