Загрузка образа ОС
Для обеспечения доступа к плате по интерфейсу UART и Ethernet, загрузки ЗОСРВ «Нейтрино» и работы с файловыми системами необходимо установить загрузчик U-Boot на SD-карту и создать на ней разделы. Для этого на инструментальной системе выполнить следующие действия:
Подключить SD карту к инструментальной системе и копировать на нее загрузчик U-Boot:
$ sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdX bs=1k seek=8
где sdX - имя SD карты в инструментальной системе, например, sdc.
![]() | Файл загрузчика u-boot-sunxi-with-spl.bin предоставляется на условиях "как есть", т.е. без сопровождения, и может быть собран самостоятельно из исходных текстов, расположенных в репозитории U-Boot |
Создать раздел FAT32 размером 100 Мб и Power-Safe размером 2 Гб:
$ echo -e "o\nn\np\n1\n2048\n206848\nt\nb\nn\np\n2\n206849\n4401153\nt\n2\nb3\nw\n" | sudo fdisk /dev/sdX
Форматировать раздел FAT32:
$ sudo mkfs.vfat -F 32 /dev/sdX1
Создать файл построения образа файловой системы Power-Safe powersafe.bld следующего содержания:
[blksize=512] [vol_name=kpda_fs] [+boot_cls] [+boot_quiet] [+boot_active] [-followlink] [num_sectors=4194304] [num_inodes=320000] [uid=0 gid=0] [boot_offset=2048] /usr/bin/=${KPDA_TARGET}/armle-v7/usr/bin
Создать образ раздела с файловой системой Power-Safe:
$ mkqnx6fsimg2 -vvv powersafe.bld powersafe.qfs
Записать полученный образ файловой системы Power-Safe в раздел Power-Safe SD карты:
$ sudo dd if=powersafe.qfs of=/dev/sdX2
Копировать образ ЗОСРВ «Нейтрино» в раздел FAT32 SD карты:
$ cp ~/kpda-bsp-allwinner-h3-orangepipc/images/ifs-h3-orangepi.bin /точка_монтирования
где точка_монтирования - это, как правило, каталог /media/имя_пользователя/метка_тома. Если после форматирования раздела FAT32 при подготовке SD карты не произошло автомонтирование раздела, то следует подключить его вручную.
Вставить SD карту в слот на плате. Подключить плату к инструментальной системе через переходник USB-UART.
Установить и запустить программу minicom со следующими параметрами: скорость 115200, 8 бит, без контроля четности, 1 стоп-бит, порт /dev/ttyUSB0
:
$ sudo apt install minicom $ sudo minicom -D /dev/ttyUSB0
Включить плату. Дождаться запуска командной строки в отладочной консоли U-Boot в окне терминала инструментальной системы (для пропуска установленных ранее вариантов автозагрузки можно нажать любую клавишу), например:
U-Boot SPL 2022.04-rc5 (Apr 23 2024 - 17:57:50 +0300) DRAM: 1024 MiB Trying to boot from MMC1 U-Boot 2022.04-rc5 (Apr 23 2024 - 17:57:50 +0300) Allwinner Technology CPU: Allwinner H3 (SUN8I 1680) Model: Xunlong Orange Pi PC DRAM: 1 GiB Core: 38 devices, 15 uclasses, devicetree: separate WDT: Not starting watchdog@1c20ca0 MMC: mmc@1c0f000: 0 Loading Environment from FAT... OK In: serial Out: serial Err: serial Net: phy interface0 eth0: ethernet@1c30000 starting USB... Bus usb@1c1a000: USB EHCI 1.00 Bus usb@1c1a400: USB OHCI 1.0 Bus usb@1c1b000: USB EHCI 1.00 Bus usb@1c1b400: USB OHCI 1.0 Bus usb@1c1c000: USB EHCI 1.00 Bus usb@1c1c400: USB OHCI 1.0 Bus usb@1c1d000: USB EHCI 1.00 Bus usb@1c1d400: USB OHCI 1.0 scanning bus usb@1c1a000 for devices... 1 USB Device(s) found scanning bus usb@1c1a400 for devices... 1 USB Device(s) found scanning bus usb@1c1b000 for devices... 1 USB Device(s) found scanning bus usb@1c1b400 for devices... 1 USB Device(s) found scanning bus usb@1c1c000 for devices... 1 USB Device(s) found scanning bus usb@1c1c400 for devices... 1 USB Device(s) found scanning bus usb@1c1d000 for devices... 1 USB Device(s) found scanning bus usb@1c1d400 for devices... 1 USB Device(s) found scanning usb for storage devices... 0 Storage Device(s) found Hit any key to stop autoboot: 0 =>
Загрузить и запустить образ ЗОСРВ «Нейтрино»:
=> fatload mmc 0 0x41000000 ifs-h3-orangepi.bin => go 0x41000000
Если для загрузки образа ЗОСРВ «Нейтрино» используется протокол TFTP, то на инструментальной системе необходимо настроить TFTP сервер и копировать загрузочный образ ifs-h3-orangepi.bin
в каталог, использующийся TFTP сервером:
$ sudo apt install tftpd-hpa $ sudo cp ~/kpda-bsp-allwinner-h3-orangepipc/images/ifs-h3-orangepi.bin /srv/tftp $ sudo systemctl restart tftpd-hpa
Подключить плату через кабель Ethernet к локальной сети, в которой находится инструментальная система. В консоли загрузчика U-Boot указать IP-адрес TFTP-сервера и назначить IP-адрес клиента (платы):
=> setenv serverip <IP-адрес TFTP-сервера> => setenv ipaddr <IP-адрес TFTP-клиента>
Загрузить образ ЗОСРВ «Нейтрино» по протоколу TFTP и запустить его:
=> tftpboot 0x41000000 ifs-h3-orangepi.bin => go 0x41000000
В результате выполнения приведенных выше команд должен запуститься образ ЗОСРВ «Нейтрино», выведены сообщения о ходе загрузки и запущен командный интерпретатор. Пример вывода:
System page at phys:40022000 user:fc410000 kern:fc410000 Starting next program at vfe0820ac cpu_startnext: cpu0 -> fe0820ac cpu_startnext: invoking vstart:4100a720 sysp:fc410000 eip:fe0820ac cpu:00000000 VFPv3: fpsid=41023075 coproc_attach(10): attach fe099c78 (fe09b750) coproc_attach(11): attach fe099c78 (fe09b750) Welcome to KPDA Neutrino on the OrangePi PC Allwinner H3 (ARMv7 Cortex-A7 QuadCore) - Board Starting common servers... Starting UART serial driver... Starting USB host driver... Starting SD/eMMC driver... Starting Network driver... #
Все системные утилиты расположены в файловой системе загрузочного образа. При необходимости использования файловой системы Power-Safe SD карты с дополнительными утилитами из каталога /usr/bin
можно подключить её следующей командой:
# mount -t qnx6 /dev/sd0t179 /
Для сохранения параметров загрузки и выполнения требуемого варианта загрузки по умолчанию автоматически при включении питании модуля в консоли U-Boot установите переменную окружения bootcmd и сохраните значение переменных c помощью команды saveenv, например:
=> setenv kpdaboot “fatload mmc 0 0x41000000 ifs-h3-orangepi.bin; go 0x41000000” => setenv bootcmd run kpdaboot => saveenv
Предыдущий раздел: перейти