Dieser Artikel enthält Boot Loader (U-Boot usw.), Linux-Kernel und Debian10 (Buster) -Stammdateisystem für UltraZed / Ultra96 / Ultra96-V2 unter der folgenden URL und erläutert deren Installation. Wenn Sie Probleme beim Erstellen des Boot Loader oder des Linux-Kernels haben, wenden Sie sich bitte an uns.
Laden Sie es wie folgt von github herunter: Die aktuellste Version ist derzeit v2019.2.1. Da einige Bilddateien ziemlich groß sind, verwende ich Git LFS (Large File Storage). Sie müssen git-lfs in Ihrer Umgebung installiert haben.
shell$ git clone -b v2019.2.1 git://github.com/ikwzm/ZynqMP-FPGA-Linux
shell$ cd ZynqMP-FPGA-Linux
shell$ git lfs pull
Informationen zum Formatieren der SD-Karte unter Linux finden Sie unter der folgenden URL.
shell# mount /dev/sdc1 /mnt/usb1
shell# mount /dev/sdc2 /mnt/usb2
Kopieren Sie die Dateien unter Ziel / Ultra96 / boot / auf Partition 1 der SD-Karte (/ dev / sdc1 im folgenden Beispiel).
shell# cp target/Ultra96/boot/* /mnt/usb1
Kopieren Sie die Dateien unter Ziel / Ultra96-V2 / boot / auf Partition 1 der SD-Karte (/ dev / sdc1 im folgenden Beispiel).
shell# cp target/Ultra96-V2/boot/* /mnt/usb1
Kopieren Sie die Dateien unter target / UltraZed-EG-IOCC / boot auf Partition 1 der SD-Karte (/ dev / sdc1 im folgenden Beispiel).
shell# cp target/UltraZed-EG-IOCC/boot/* /mnt/usb1
Extrahieren Sie den Inhalt von debian10-rootfs-vanilla.tgz auf Partition 2 der SD-Karte (/ dev / sdc2 im folgenden Beispiel). Es ist eine gute Idee, das Debian-Paket des Gerätetreibers vorab nach home / fpga des extrahierten Root-Dateisystems zu kopieren. Sie können es später über das Netzwerk kopieren.
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
Es ist praktisch, die Boot-Partition von der Linux-Seite aus immer sichtbar zu halten. In diesem Fall empfiehlt es sich, fstab so einzustellen, dass die Startpartition im Voraus bereitgestellt wird. Beachten Sie, dass fstab bereits so eingestellt ist, dass configfs bereitgestellt wird.
shell# mkdir /mnt/usb2/mnt/boot
shell# cat <<EOT >> /mnt/usb2/etc/fstab
/dev/mmcblk0p1 /mnt/boot auto defaults 0 0
EOT
Nebenbei: Sie können so viel im Voraus in debian10-rootfs-vanilla.tgz schreiben, aber Sie fragen sich vielleicht, warum Sie sich die Mühe machen, es später festzulegen. Der Grund ist, dass debian10-rootfs-vanilla.tgz mit Ultra96 und UltraZed geteilt wird. Die Ultra96 SD-Card-Boot-Partition lautet `/ dev / mmcblk0p1```, während die UltraZed SD-Card-Boot-Partition`
/ dev / mmcblk1p1``` lautet. Darüber hinaus hat UltraZed auch / dev / mmcblk0p1, und wenn Sie es im Voraus in debian10-rootfs-vanilla.tgz schreiben, greift UltraZed fälschlicherweise auf ein anderes Gerät zu. Obwohl es problematisch ist, habe ich mich daher entschlossen, es später einzustellen.
Der Ultra96 / Ultra96-V2 stellt über WLAN eine Verbindung zum Netzwerk her. Es kann sinnvoll sein, vorab eine Einstellungsdatei auf der Hostseite zu erstellen und in RootFS zu schreiben. Natürlich können Sie Ultra96 / Ultra96-V2 später starten und dort konfigurieren.
Hier lautet die SSID ssssssss, die Passphrase ppppppppp und der verschlüsselte Zugriffsschlüssel xxxx.
Geben Sie zunächst die SSID und die Passphrase in wpa_passphrase ein, um einen verschlüsselten Zugriffsschlüssel zu erstellen.
shell# wpa_passphrase ssssssss ppppppppp
network={
ssid="ssssssss"
#psk="ppppppppp"
psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
}
Schreiben Sie die SSID und den verschlüsselten Zugriffsschlüssel direkt in die Netzwerkkonfigurationsdatei (/etc/network/interfaces.d/wlan0).
/mnt/usb2/etc/network/interfaces.d/wlan0
auto wlan0
iface wlan0 inet dhcp
wpa-ssid ssssssss
wpa-psk xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Schreiben Sie in die Netzwerkkonfigurationsdatei (/etc/network/interfaces.d/wlan0), dass wpa_supplicant.conf beim Booten gelesen werden soll, um Wifi wie folgt zu konfigurieren:
/mnt/usb2/etc/network/interfaces.d/wlan0
auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Schreiben Sie die SSID und den verschlüsselten Zugriffsschlüssel in die Wifi-Konfigurationsdatei (/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
}
Beachten Sie, dass Sie für Stealth-SSIDs einen Scan erzwingen müssen. Fügen Sie in diesem Fall `` `scan_ssid = 1``` zu /etc/wpa_supplicant/wpa_supplicant.conf hinzu.
/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
}
Wenn Sie eine Verbindung zu einer SSID ohne Passphrase herstellen, ist es anscheinend besser, `` `key_mgmt = NONE``` (NONE ist in Großbuchstaben) zu setzen.
/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 verfügt bereits über das Linux-Image-Paket v2019.2.1 (Linux-Image-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64). deb) ist installiert. Daher sind die folgenden Arbeiten nicht erforderlich. Bitte beziehen Sie sich bei der Neuinstallation aus irgendeinem Grund darauf.
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) ...
Installieren Sie linux-headers-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64.deb mit 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'
Installieren Sie fclkcfg-4.19.0-xlnx-v2019.2-zynqmp-fpga_1.3.0-1_arm64.deb mit 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) ...
Installieren Sie udmabuf-4.19.0-xlnx-v2019.2-zynqmp-fpga_1.4.6-0_arm64.deb mit 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) ...
Ab v2019.2 ist auch ein Paket von u-dma-buf verfügbar, das ein anderer Name für udmabuf ist. Falls erforderlich, ist es eine gute Idee, dies ebenfalls zu installieren. Der Grund für die Umbenennung von udmabuf in u-dma-buf ist, dass Linux Kernel 5.0 ein weiteres Kernelmodul mit demselben Namen wie udmabuf hinzugefügt wurde. Daher ist der Name udmabuf in Linux Kernel 5.0 und höher nicht verfügbar. Also wird stattdessen u-dma-buf bereitgestellt.
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) ...
Ab v2019.1 wurden die folgenden Änderungen vorgenommen.
Daher können Sie ein Upgrade von v2019.1 auf v2019.2 durchführen, indem Sie die folgenden Schritte ausführen.
Verschiedene Anwendungen von Debian10 (Buster) wurden aktualisiert. Wenn Ihr Ultra96 / Ultra96-V2 / UltraZed mit Ihrem Netzwerk verbunden ist, können Sie mit dem Befehl apt von v2019.1 auf v2019.2 aktualisieren. Starten Sie Ultra96 / Ultra96-V2 / UltraZed, melden Sie sich als Root an und führen Sie apt update und apt upgrade aus.
debian-fpga login: root
Password:
root@debian-fpga:~# apt update
:
(Unterlassung)
:
root@debian-fpga:~# apt upgrade
:
(Unterlassung)
:
Diese Methode aktualisiert das gesamte Paket. Seien Sie vorsichtig, wenn Sie ein Paket haben, das Sie nicht aktualisieren möchten.
https://github.com/ikwzm/ZynqMP-FPGA-Linux zu Linux-Image-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64.deb Es ist vorbereitet, also installieren Sie es bitte mit dpkg.
https://github.com/ikwzm/ZynqMP-FPGA-Linux zu Linux-Headern-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64.deb Es ist vorbereitet, also installieren Sie es bitte mit dpkg.
Nachdem die Linux-Kernel-Version verfügbar ist, muss der Gerätetreiber mit der neuen Linux-Kernel-Version kompatibel sein. udmabuf und fclkcfg haben ein Paket unter https://github.com/ikwzm/ZynqMP-FPGA-Linux. Installieren Sie es also mit dpkg.
Da die in v2018.2 übernommene Gerätebaum-Compiler-Version von Debian 9 alt ist (keine Symbole unterstützt), von https://git.kernel.org/pub/scm/utils/dtc/dtc.git Ich habe v1.4.7 heruntergeladen und erstellt und installiert. In Debian10, das in v2019.1 übernommen wurde, ist die Version des Gerätebaum-Compilers v1.4.7 und unterstützt Symbole. Ich habe dies jedoch nicht bemerkt, als ich v2019.1 und genau wie v2018.2 von https://git.kernel.org/pub/scm/utils/dtc/dtc.git erstellt habe. Ich habe 4.7 heruntergeladen und erstellt und installiert. Auf dem Debian10-Root-Dateisystem in Version 2019.2 ist der von Debian10 bereitgestellte Gerätebaum-Compiler installiert. Beim Upgrade von v2019.1 wird empfohlen, / usr / local / bin / dtc zu entfernen und den Gerätebaum-Compiler mit dem Befehl apt zu installieren.
Bootloader, Linux-Kernel-Image, uEnv für Boot-Partition.Enthält txt. v2019 von github.2.Laden Sie 1 und Ziel herunter/[Ultra96|Ultra96-V2|UltraZed-EG-IOCC]/Kopieren Sie die Dateien unter Boot in die Boot-Partition. UEnv.Es wird auch txt überschreiben, also uEnv.Es ist eine gute Idee, ein Backup zu erstellen, wenn Sie wichtige Änderungen an txt vorgenommen haben.
Kopieren Sie die Dateien unter Ziel / Ultra96 / boot / auf Partition 1 der SD-Karte (/ mnt / boot im folgenden Beispiel).
shell# cp target/Ultra96/boot/* /mnt/boot
Kopieren Sie die Dateien unter Ziel / Ultra96-V2 / boot / auf Partition 1 der SD-Karte (/ mnt / boot im folgenden Beispiel).
shell# cp target/Ultra96-V2/boot/* /mnt/boot
Kopieren Sie die Dateien unter target / UltraZed-EG-IOCC / boot auf Partition 1 der SD-Karte (/ mnt / boot im folgenden Beispiel).
shell# cp target/UltraZed-EG-IOCC/boot/* /mnt/boot
Ab Version 2019.2 wurde die Build-Umgebung von Boot Loader (U-Boot usw.) für jedes Ziel in separate Repositorys unterteilt. Bitte beziehen Sie sich auf die folgende URL.
Die aktuellste Version ist v2019.2.1. Wenn Sie jedoch eine frühere Version installieren möchten, lesen Sie bitte den folgenden Artikel.