По умолчанию для передачи файлов на Linux ядро от Xilinx, можно использовать несколько способов описанных на их wiki: xilinx-wiki.atlassian.net.
На рабочую систему файлы можно передавать как через Ethernet порт, так и через USB (UART) порт. Но т.к. файловая система находится в RAM, при выключении питания добавленные файлы пропадут, для их сохранения необходимо изменить файловую систему rootfs. Сперва рассмотрим передачу файлов через ethernet.
Стоит отметить, что по умолчанию U-Boot взятый от Xilinx, будет пытаться найти ядро Linux через Ethernet порт, перед тем как будет искать его на QSPI. Если кабель не подключен, то U-Boot переходит к следующему шагу, иначе это занимает довольно много времени, если ничего не менять, то он ничего не найдёт и перейдёт к следующему шагу.
Сперва проверим как настроена сеть. Для этого используется команда "ifconfig", которая выведет все включённые сетевые интерфейсы:
Рис.1 Выполнение команды ifconfig |
Проверим какие сетевые интерфейсы сконфигурированы в системе используя команду
"ifconfig -a":
Рис.2 Выполнение команды ifconfig -a |
eth0 - первый ethernet интерфейс,
lo - loopback, подробней здесь,
sit0 - Simple Internet Transition, применяется для передачи IPv6 через IPv4, подробней.
Нас интересует eth0, в данный момент он выключен, для того чтобы его включить воспользуемся командой "ifconfig eth0 up":
Рис.3 Включение интерфейса |
Рис.4 Проверка включения интерфейса |
Рис.5 Вывод терминала при подключении Ethernet устройства |
IP address 192.168.1.11
Subnet mask 255.255.255.0
Рис.6 Настройка IP компьютера |
Рис.7 Настройка интерфейса |
Рис.8 проверка соединения Zybo -> PC |
Рис.9 Проверка соединения PC -> Zybo |
SFTP
1 Способ передачи файлов через SFTP, SSH File Transfer Protocol. Он включён по умолчанию в Zybo, ethernet настроен, должно всё работать. Для передачи файлов нужно установить какой-нибудь клиент на передающей стороне. Под Windows я использовал "psftp". По умолчанию логин и пароль для доступа к Zybo "root".
Переместим файл с компьютера D:/study/test_file.txt в Zybo /usr/:
Рис.10 Перемещение файла через sftp |
ROOTFS
Файлы можно передавать в оба направления, но при выключении питания все проделанные изменения пропадут. Это происходит из-за того что файловая система находится в оперативной памяти (RAM). Для того чтобы файлы не пропадали при выключении питания их необходимо добавить в файловую систему rootfs, и заново переписать загрузочный образ BOOT.bin. Таким же образом устанавливаются дополнительные программы на нашу систему.
Описание необходимых действий указано здесь: xilinx-wiki.atlassian.net.
Если используется rootfs с уже добавленным U-boot заголовком, то сперва его необходимо убрать, иначе не получиться разархивировать. Если файл находится в корневом каталоге, то используется команда:
"dd if=uramdisk.image.gz bs=64 skip=1 of=ramdisk.gz", файл с сжатой файловой системой, с добавленным заголовком носит название "uramdisk.image.gz", рядом появится новый файл "ramdisk.gz" без заголовка.
Рис.11 Удаление заголовка из файла |
Рис.12 Разархивирование файла |
"chmod u+rwx ramdisk".
Далее создадим папку "tmp_mnt", в которую будет смонтирована система, используя команду "mkdir tmp_mnt".
Осталось смонтировать систему командой:
"sudo mount -o loop ramdisk tmp_mnt"
Рис.13 Изменение приоритетов и монтирование образа |
"cat > rootfs_test_file.txt" - создаём новый файл и открываем его для записи
"CTRL+C" - для того чтобы прекратить запись в файл и закрыть его
"sudo mv rootfs_test_file.txt tmp_mnt/usr/" - перемещаем файл
"ls tmp_mnt/usr" - вывод содержимого для проверки
Рис.14 Создание файла и его перемещение |
"sudo umount tmp_mnt/" - размонтирование
"gzip ramdisk" - сжатие
"u-boot-xlnx/tools/mkimage -A arm -T ramdisk -C gzip -d ramdisk.gz uramdisk.image.gz" - добавление U-boot заголовка, для этого необходима утилита mkimage поставляемая вместе с U-boot рассмотрено было в предыдущем уроке.
Рис.15 Архивирование файла и добавление заголовка |
После запуска Linux можно убедиться, что файл находится на месте:
Рис.16 Проверка добавленного файла |
Комментариев нет :
Отправить комментарий