Cet article fournit Boot Loader (U-Boot, etc.), Linux Kernel et Debian10 (buster) Root File System pour UltraZed / Ultra96 / Ultra96-V2 à l'URL suivante, et explique comment les installer. Si vous ne parvenez pas à créer Boot Loader ou Linux Kernel, veuillez.
Téléchargez-le depuis github comme suit: La dernière version actuellement est la v2019.2.1. Étant donné que certains fichiers image sont assez volumineux, j'utilise Git LFS (Large File Storage). Vous devez avoir git-lfs installé dans votre environnement.
shell$ git clone -b v2019.2.1 git://github.com/ikwzm/ZynqMP-FPGA-Linux
shell$ cd ZynqMP-FPGA-Linux
shell$ git lfs pull
Pour plus d'informations sur le formatage de la carte SD sous Linux, reportez-vous à l'URL suivante.
shell# mount /dev/sdc1 /mnt/usb1
shell# mount /dev/sdc2 /mnt/usb2
Copiez les fichiers sous target / Ultra96 / boot / sur la partition 1 de la carte SD (/ dev / sdc1 dans l'exemple ci-dessous).
shell# cp target/Ultra96/boot/* /mnt/usb1
Copiez les fichiers sous target / Ultra96-V2 / boot / sur la partition 1 de la carte SD (/ dev / sdc1 dans l'exemple ci-dessous).
shell# cp target/Ultra96-V2/boot/* /mnt/usb1
Copiez les fichiers sous target / UltraZed-EG-IOCC / boot sur la partition 1 de la carte SD (/ dev / sdc1 dans l'exemple ci-dessous).
shell# cp target/UltraZed-EG-IOCC/boot/* /mnt/usb1
Extrayez le contenu de debian10-rootfs-vanilla.tgz sur la partition 2 de la carte SD (/ dev / sdc2 dans l'exemple ci-dessous). C'est une bonne idée de copier à l'avance le paquet Debian du pilote de périphérique vers home / fpga du système de fichiers racine extrait. Vous pourrez le copier ultérieurement via le réseau.
shell# tar xfz debian10-rootfs-vanilla.tgz -C /mnt/usb2
shell# mkdir /mnt/usb2/home/fpga/debian
shell# cp linux-image-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64.deb /mnt/usb2/home/fpga/debian
shell# cp linux-headers-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64.deb /mnt/usb2/home/fpga/debian
shell# cp fclkcfg-4.19.0-xlnx-v2019.2-zynqmp-fpga_1.3.0-1_arm64.deb /mnt/usb2/home/fpga/debian
shell# cp udmabuf-4.19.0-xlnx-v2019.2-zynqmp-fpga_1.4.6-0_arm64.deb /mnt/usb2/home/fpga/debian
shell# cp u-dma-buf-4.19.0-xlnx-v2019.2-zynqmp-fpga_2.1.3-0_arm64.deb /mnt/usb2/home/fpga/debian
Il est pratique de garder la partition de démarrage visible du côté Linux à tout moment. Dans ce cas, il est judicieux de configurer fstab pour monter la partition de démarrage à l'avance. Notez que fstab est déjà configuré pour monter les configfs.
shell# mkdir /mnt/usb2/mnt/boot
shell# cat <<EOT >> /mnt/usb2/etc/fstab
/dev/mmcblk0p1 /mnt/boot auto defaults 0 0
EOT
A part: vous pouvez écrire cela dans debian10-rootfs-vanilla.tgz à l'avance, mais vous vous demandez peut-être pourquoi vous vous souciez de le définir plus tard. La raison en est que debian10-rootfs-vanilla.tgz est partagé avec Ultra96 et UltraZed. La partition de démarrage Ultra96 SD-Card est / dev / mmcblk0p1 '', tandis que la partition de démarrage UltraZed SD-Card est
/ dev / mmcblk1p1 ''. De plus, UltraZed a aussi / dev / mmcblk0p1, et si vous l'écrivez dans debian10-rootfs-vanilla.tgz à l'avance, UltraZed accédera par erreur à un autre périphérique. Par conséquent, bien que ce soit gênant, j'ai décidé de le régler plus tard.
L'Ultra96 / Ultra96-V2 se connecte au réseau via WiFi. Il peut être bon de créer à l'avance un fichier de paramètres côté hôte et de l'écrire dans RootFS. Bien sûr, vous pouvez démarrer Ultra96 / Ultra96-V2 plus tard et le configurer ici.
Ici, le SSID est ssssssss, la phrase de passe est ppppppppp et la clé d'accès chiffrée est xxxx.
Tout d'abord, entrez le SSID et la phrase de passe dans wpa_passphrase pour créer une clé d'accès chiffrée.
shell# wpa_passphrase ssssssss ppppppppp
network={
ssid="ssssssss"
#psk="ppppppppp"
psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
}
Écrivez le SSID et la clé d'accès chiffrée directement dans le fichier de configuration réseau (/etc/network/interfaces.d/wlan0).
/mnt/usb2/etc/network/interfaces.d/wlan0
auto wlan0
iface wlan0 inet dhcp
wpa-ssid ssssssss
wpa-psk xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dans le fichier de configuration réseau (/etc/network/interfaces.d/wlan0), écrivez que wpa_supplicant.conf doit être lu au moment du démarrage pour configurer le Wifi comme suit:
/mnt/usb2/etc/network/interfaces.d/wlan0
auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Décrivez le SSID et la clé d'accès chiffrée dans le fichier de configuration Wifi (/etc/wpa_supplicant/wpa_supplicant.conf).
/etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=/run/wpa_supplicant
update_config=1
network={
ssid="ssssssss"
psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
}
Pour les SSID furtifs, vous devez forcer une analyse. Dans ce cas, ajoutez
scan_ssid = 1``` à /etc/wpa_supplicant/wpa_supplicant.conf.
/etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=/run/wpa_supplicant
update_config=1
network={
ssid="ssssssss"
scan_ssid=1
key_mgmt=WPA-PSK
psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
}
Lors de la connexion à un SSID sans mot de passe, il semble préférable de définir
key_mgmt = NONE``` (NONE est en majuscule).
/etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=/run/wpa_supplicant
update_config=1
network={
ssid="ssssssss"
scan_ssid=1
key_mgmt=NONE
}
shell# umount /mnt/usb1
shell# umount /mnt/usb2
root'password is "admin".
debian-fpga login: root
Password:
root@debian-fpga:~#
debian10-rootfs-vanilla.tgz a déjà le package d'images Linux v2019.2.1 (linux-image-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64. deb) est installé. Par conséquent, le travail suivant n'est pas nécessaire, mais veuillez vous y référer lors de la réinstallation pour une raison quelconque.
root@debian-fpga:~# cd /home/fpga/debian
root@debian-fpga:/home/fpga/debian# dpkg -i linux-image-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64.deb
(Reading database ... 26393 files and directories currently installed.)
Preparing to unpack linux-image-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64.deb ...
Unpacking linux-image-4.19.0-xlnx-v2019.2-zynqmp-fpga (4.19.0-xlnx-v2019.2-zynqmp-fpga-2) over (4.19.0-xlnx-v2019.2-zynqmp-fpga-2) ...
Setting up linux-image-4.19.0-xlnx-v2019.2-zynqmp-fpga (4.19.0-xlnx-v2019.2-zynqmp-fpga-2) ...
Installez linux-headers-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64.deb en utilisant dpkg.
root@debian-fpga:~# cd /home/fpga/debian
root@debian-fpga:/home/fpga/debian# dpkg -i linux-headers-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64.deb
Selecting previously unselected package linux-headers-4.19.0-xlnx-v2019.2-zynqmp-fpga.
(Reading database ... 26393 files and directories currently installed.)
Preparing to unpack linux-headers-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64.deb ...
Unpacking linux-headers-4.19.0-xlnx-v2019.2-zynqmp-fpga (4.19.0-xlnx-v2019.2-zynqmp-fpga-2) ...
Setting up linux-headers-4.19.0-xlnx-v2019.2-zynqmp-fpga (4.19.0-xlnx-v2019.2-zynqmp-fpga-2) ...
make: Entering directory '/usr/src/linux-headers-4.19.0-xlnx-v2019.2-zynqmp-fpga'
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
YACC scripts/kconfig/zconf.tab.c
LEX scripts/kconfig/zconf.lex.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
scripts/kconfig/conf --syncconfig Kconfig
HOSTCC scripts/dtc/dtc.o
HOSTCC scripts/dtc/flattree.o
HOSTCC scripts/dtc/fstree.o
HOSTCC scripts/dtc/data.o
HOSTCC scripts/dtc/livetree.o
HOSTCC scripts/dtc/treesource.o
HOSTCC scripts/dtc/srcpos.o
HOSTCC scripts/dtc/checks.o
HOSTCC scripts/dtc/util.o
HOSTCC scripts/dtc/dtc-lexer.lex.o
HOSTCC scripts/dtc/dtc-parser.tab.o
HOSTLD scripts/dtc/dtc
CC scripts/mod/empty.o
HOSTCC scripts/mod/mk_elfconfig
MKELF scripts/mod/elfconfig.h
HOSTCC scripts/mod/modpost.o
CC scripts/mod/devicetable-offsets.s
HOSTCC scripts/mod/file2alias.o
HOSTCC scripts/mod/sumversion.o
HOSTLD scripts/mod/modpost
HOSTCC scripts/bin2c
HOSTCC scripts/kallsyms
HOSTCC scripts/conmakehash
HOSTCC scripts/sortextable
HOSTCC scripts/asn1_compiler
HOSTCC scripts/extract-cert
make: Leaving directory '/usr/src/linux-headers-4.19.0-xlnx-v2019.2-zynqmp-fpga'
Installez fclkcfg-4.19.0-xlnx-v2019.2-zynqmp-fpga_1.3.0-1_arm64.deb à l'aide de dpkg.
root@debian-fpga:~# cd /home/fpga/debian
root@debian-fpga:/home/fpga/debian# dpkg -i fclkcfg-4.19.0-xlnx-v2019.2-zynqmp-fpga_1.3.0-1_arm64.deb
Selecting previously unselected package fclkcfg-4.19.0-xlnx-v2019.2-zynqmp-fpga.
(Reading database ... 45373 files and directories currently installed.)
Preparing to unpack fclkcfg-4.19.0-xlnx-v2019.2-zynqmp-fpga_1.3.0-1_arm64.deb ...
Unpacking fclkcfg-4.19.0-xlnx-v2019.2-zynqmp-fpga (1.3.0-1) ...
Setting up fclkcfg-4.19.0-xlnx-v2019.2-zynqmp-fpga (1.3.0-1) ...
Installez udmabuf-4.19.0-xlnx-v2019.2-zynqmp-fpga_1.4.6-0_arm64.deb à l'aide de dpkg.
root@debian-fpga:~# cd /home/fpga/debian
root@debian-fpga:/home/fpga/debian# dpkg -i udmabuf-4.19.0-xlnx-v2019.2-zynqmp-fpga_1.4.6-0_arm64.deb
Selecting previously unselected package udmabuf-4.19.0-xlnx-v2019.2-zynqmp-fpga.
(Reading database ... 45379 files and directories currently installed.)
Preparing to unpack udmabuf-4.19.0-xlnx-v2019.2-zynqmp-fpga_1.4.6-0_arm64.deb ...
Unpacking udmabuf-4.19.0-xlnx-v2019.2-zynqmp-fpga (1.4.6-0) ...
Setting up udmabuf-4.19.0-xlnx-v2019.2-zynqmp-fpga (1.4.6-0) ...
À partir de la v2019.2, un package de u-dma-buf, qui est un autre nom pour udmabuf, est également disponible. Si nécessaire, c'est une bonne idée de l'installer également. La raison du changement de nom de udmabuf en u-dma-buf est qu'un autre module du noyau portant le même nom que udmabuf a été ajouté au noyau Linux 5.0. Par conséquent, le nom udmabuf n'est pas disponible dans Linux Kernel 5.0 et versions ultérieures. Donc u-dma-buf est fourni à la place.
root@debian-fpga:~# cd /home/fpga/debian
root@debian-fpga:/home/fpga/debian# dpkg -i u-dma-buf-4.19.0-xlnx-v2019.2-zynqmp-fpga_2.1.3-0_arm64.deb
Selecting previously unselected package u-dma-buf-4.19.0-xlnx-v2019.2-zynqmp-fpga.
(Reading database ... 45384 files and directories currently installed.)
Preparing to unpack u-dma-buf-4.19.0-xlnx-v2019.2-zynqmp-fpga_2.1.3-0_arm64.deb ...
Unpacking u-dma-buf-4.19.0-xlnx-v2019.2-zynqmp-fpga (2.1.3-0) ...
Setting up u-dma-buf-4.19.0-xlnx-v2019.2-zynqmp-fpga (2.1.3-0) ...
À partir de la version v2019.1, les modifications suivantes ont été apportées.
Par conséquent, vous pouvez passer de la v2019.1 à la v2019.2 en suivant les étapes ci-dessous.
Diverses applications de Debian10 (buster) ont été mises à jour. Si votre Ultra96 / Ultra96-V2 / UltraZed est connecté à votre réseau, vous pouvez passer de la v2019.1 à la v2019.2 avec la commande apt. Démarrez Ultra96 / Ultra96-V2 / UltraZed, connectez-vous en tant que root et exécutez apt update et apt upgrade.
debian-fpga login: root
Password:
root@debian-fpga:~# apt update
:
(Omission)
:
root@debian-fpga:~# apt upgrade
:
(Omission)
:
Cette méthode mettra à niveau l'ensemble du package. Soyez prudent si vous avez un package que vous ne souhaitez pas mettre à niveau.
https://github.com/ikwzm/ZynqMP-FPGA-Linux vers linux-image-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64.deb Il est prêt, veuillez donc l'installer avec dpkg.
https://github.com/ikwzm/ZynqMP-FPGA-Linux vers linux-headers-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64.deb Il est prêt, veuillez donc l'installer avec dpkg.
Maintenant que la version du noyau Linux est en place, le pilote de périphérique doit être compatible avec la nouvelle version du noyau Linux. udmabuf et fclkcfg ont un package sur https://github.com/ikwzm/ZynqMP-FPGA-Linux, alors installez-le avec dpkg.
Étant donné que la version de compilation de l'arborescence de périphériques de Debian 9 adoptée dans la v2018.2 est ancienne (elle ne supportait pas les symboles), à partir de https://git.kernel.org/pub/scm/utils/dtc/dtc.git J'ai téléchargé, construit et installé la v1.4.7. Dans Debian10 adopté dans la v2019.1, la version de device-tree-compiler est la v1.4.7 et prend en charge les symboles. Cependant, je n'ai pas remarqué cela lorsque je faisais la v2019.1 et tout comme la v2018.2 de https://git.kernel.org/pub/scm/utils/dtc/dtc.git. J'ai téléchargé 4.7 et construit et installé. Le système de fichiers racine Debian10 de la version v2019.2 a le compilateur d'arborescence de périphériques fourni par Debian10 installé. Lors de la mise à niveau à partir de la v2019.1, il est recommandé de supprimer / usr / local / bin / dtc et d'installer device-tree-compiler avec la commande apt.
Boot Loader, Linux Kernel Image, uEnv pour la partition de démarrage.Contient du txt. v2019 de github.2.Télécharger 1 et cibler/[Ultra96|Ultra96-V2|UltraZed-EG-IOCC]/Copiez les fichiers sous boot sur la partition de démarrage. Cependant, uEnv.Il écrasera également txt, donc uEnv.C'est une bonne idée de faire une sauvegarde si vous avez apporté des modifications importantes à txt.
Copiez les fichiers sous target / Ultra96 / boot / sur la partition 1 de la carte SD (/ mnt / boot dans l'exemple ci-dessous).
shell# cp target/Ultra96/boot/* /mnt/boot
Copiez les fichiers sous target / Ultra96-V2 / boot / sur la partition 1 de la carte SD (/ mnt / boot dans l'exemple ci-dessous).
shell# cp target/Ultra96-V2/boot/* /mnt/boot
Copiez les fichiers sous target / UltraZed-EG-IOCC / boot sur la partition 1 de la carte SD (/ mnt / boot dans l'exemple ci-dessous).
shell# cp target/UltraZed-EG-IOCC/boot/* /mnt/boot
Depuis la version v2019.2, l'environnement de construction de Boot Loader (U-Boot, etc.) a été divisé en référentiels distincts pour chaque cible. Veuillez vous référer à l'URL suivante.
La dernière version pour le moment est v2019.2.1, mais veuillez vous référer aux articles suivants lors de l'installation de versions antérieures.
Recommended Posts