Table of Contents
OpenCV On Zynq FPGA
OpenCV is a great framework for image processing projects. Machine learning (ML) projects need to use OpenCV libraries in most cases from what I learned. AMD/Xilinx has PYNQ-ComputerVision (Ref[1]) to support FPGA accelerated OpenCV libraries for older versions’ PYNQ, for example PYNQ_v2.5. I don’t think PYNQ_v3.0.1 can overlay PYNQ-ComputerVisison library anymore.
It is a good practice to run small OpenCV projects on Zynq processors before designing FPGA accelerators for ML projects. Arty-Z7-20 is a SBC platform, which is able to run OpenCV without FPGA programmable logic (PL) accelerator. PYNQ framework does provide a lot of demo Jupyter notebook projects in the prebuilt images, for example, OpenCV face detection, OpenCV Canny edge detection. I felt that I could be an OpenCV power user after I ran the demo projects last month. However, I did find the learning curve of OpenCV on FPGA platform can be challenging if I do not fully understand the flow and limitation of the image processing on Zynq platform. I started to take online OpenCV classes last month. In fact, I already put them on my to-do-list last year. This design challenge moved the priority of OpenCV to the top of my learning tasks now.
Adam Taylor did a great job to educate broad audiences for OpenCV on Zynq FPGA platform through his blogs. You may visit his MicroZed Chronicles for more information. Here is the guidance I learned from his MicroZed Chronicles Part 14 blog:
I will discuss a simple OpenCV project on Zynq platform for the perspective about the project challenge estimation or planning.
Template Match for Bee Detection on Zynq
Template Matching is a method for searching and finding the location of a template image in a larger image from OpenCV website (Ref[2]).
One of my online OpenCV classes from Udemy teach me how to use template match algorithm at OpenCV to search and find the location of a template image. The demo Jupyter Notebook code was very easy to run with PYNQ_v3.0.1 on Arty-Z7-20 platform. I present the demo project from the instructor on Arty-Z7-20 PYNQ platform first. Then I will run the same OpenCV algorithms for bee detection. BTW, I am a bee lover too.
Case1: Searching a dog face. Sammy is the dog's name.
The full picture of Sammy on PYNQ:
The template of the Sammy face is illustrated below.
The algorithms from OpenCV (Reg[2]) for template match: 6 methods are used for the class.
OpenCV template match results on PYNQ are as below.
{gallery}My Gallery Title |
---|
IMAGE TITLE: THEN IMAGE DESCRIPTION |
IMAGE TITLE: THEN IMAGE DESCRIPTION |
IMAGE TITLE: THEN IMAGE DESCRIPTION |
IMAGE TITLE: THEN IMAGE DESCRIPTION |
IMAGE TITLE: THEN IMAGE DESCRIPTION |
IMAGE TITLE: THEN IMAGE DESCRIPTION |
Arty-Z7-20 PYNQ v3.0.1 can find Sammy's face very easy without any issue.
Case 2: Searching a bee from beehive
The full picture of the beehive on PYNQ is below. I downloaded a sample beehive picture from internet today.
The target bee template is as below.
OpenCV template match results on PYNQ are as below.
{gallery}My Gallery Title |
---|
IMAGE TITLE: THEN IMAGE DESCRIPTION |
IMAGE TITLE: THEN IMAGE DESCRIPTION |
IMAGE TITLE: THEN IMAGE DESCRIPTION |
IMAGE TITLE: THEN IMAGE DESCRIPTION |
IMAGE TITLE: THEN IMAGE DESCRIPTION |
IMAGE TITLE: THEN IMAGE DESCRIPTION |
The template searching results are pretty good for beehive this time. 5 of 6 algorithms can do a good job. However, Arty-Z7-20 platform is very struggling to finish the task for beehive. I tried more than 5 runs to get the above results and one HW issue as below.
Jupyter Lab does not react to any further commands I send now. Here is the log from Zynq Linux, which is still alive.
U-Boot 2022.01 (Apr 04 2022 - 07:53:54 +0000) CPU: Zynq 7z020 Silicon: v3.1 DRAM: ECC disabled 512 MiB Flash: 0 Bytes NAND: 0 MiB MMC: mmc@e0100000: 0 Loading Environment from FAT... *** Error - No Valid Environment Area found *** Warning - bad env area, using default environment In: serial@e0000000 Out: serial@e0000000 Err: serial@e0000000 Net: ZYNQ GEM: e000b000, mdio bus e000b000, phyaddr -1, interface rgmii-id SF: Detected w25q128jv with page size 256 Bytes, erase size 4 KiB, total 16 MiB eth0: ethernet@e000b000 Hit any key to stop autoboot: 0 switch to partitions #0, OK mmc0 is current device Scanning mmc 0:1... Found U-Boot script /boot.scr 2776 bytes read in 9 ms (300.8 KiB/s) ## Executing script at 03000000 Trying to load boot images from mmc0 6464304 bytes read in 366 ms (16.8 MiB/s) ## Loading kernel from FIT Image at 10000000 ... Using 'conf-1' configuration Verifying Hash Integrity ... OK Trying 'kernel-0' kernel subimage Description: Linux Kernel Type: Kernel Image Compression: uncompressed Data Start: 0x100000d4 Data Size: 6442720 Bytes = 6.1 MiB Architecture: ARM OS: Linux Load Address: 0x00080000 Entry Point: 0x00080000 Hash algo: sha1 Hash value: b056acb229d05b806f975396dacae4ad04002e0c Verifying Hash Integrity ... sha1+ OK ## Loading fdt from FIT Image at 10000000 ... Using 'conf-1' configuration Verifying Hash Integrity ... OK Trying 'fdt-0' fdt subimage Description: Flattened Device Tree blob Type: Flat Device Tree Compression: uncompressed Data Start: 0x106250a8 Data Size: 19767 Bytes = 19.3 KiB Architecture: ARM Hash algo: sha1 Hash value: 5779ba3e5b1fe87f7fdec42e7688329e3f583819 Verifying Hash Integrity ... sha1+ OK Booting using the fdt blob at 0x106250a8 Loading Kernel Image Loading Device Tree to 1ead4000, end 1eadbd36 ... OK Starting kernel ... Booting Linux on physical CPU 0x0 Linux version 5.15.19-xilinx-v2022.1 (oe-user@oe-host) (arm-xilinx-linux-gnueabi -gcc (GCC) 11.2.0, GNU ld (GNU Binutils) 2.37.20210721) #1 SMP PREEMPT Mon Apr 1 1 17:52:14 UTC 2022 CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache OF: fdt: Machine model: xlnx,zynq-7000 Memory policy: Data cache writealloc cma: Reserved 128 MiB at 0x16800000 Zone ranges: Normal [mem 0x0000000000000000-0x000000001fffffff] HighMem empty Movable zone start for each node Early memory node ranges node 0: [mem 0x0000000000000000-0x000000001fffffff] Initmem setup node 0 [mem 0x0000000000000000-0x000000001fffffff] percpu: Embedded 12 pages/cpu s18828 r8192 d22132 u49152 Built 1 zonelists, mobility grouping on. Total pages: 129920 Kernel command line: root=/dev/mmcblk0p2 rw earlyprintk rootfstype=ext4 rootwait devtmpfs.mount=1 uio_pdrv_genirq.of_id="generic-uio" clk_ignore_unused Unknown kernel command line parameters "earlyprintk", will be passed to user spa ce. Dentry cache hash table entries: 65536 (order: 6, 262144 bytes, linear) Inode-cache hash table entries: 32768 (order: 5, 131072 bytes, linear) mem auto-init: stack:off, heap alloc:off, heap free:off Memory: 373332K/524288K available (9216K kernel code, 324K rwdata, 2512K rodata, 1024K init, 296K bss, 19884K reserved, 131072K cma-reserved, 0K highmem) rcu: Preemptible hierarchical RCU implementation. rcu: RCU event tracing is enabled. rcu: RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2. Trampoline variant of Tasks RCU enabled. Tracing variant of Tasks RCU enabled. rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies. rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2 NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 efuse mapped to (ptrval) slcr mapped to (ptrval) GIC physical location is 0xf8f01000 L2C: platform modifies aux control register: 0x72360000 -> 0x72760000 L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000 L2C-310 erratum 769419 enabled L2C-310 enabling early BRESP for Cortex-A9 L2C-310 full line of zeros enabled for Cortex-A9 L2C-310 ID prefetch enabled, offset 1 lines L2C-310 dynamic clock gating enabled, standby mode enabled L2C-310 cache controller enabled, 8 ways, 512 kB L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76760001 random: get_random_bytes called from start_kernel+0x364/0x5f8 with crng_init=0 zynq_clock_init: clkc starts at (ptrval) Zynq clock init sched_clock: 64 bits at 162MHz, resolution 6ns, wraps every 4398046511101ns clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0x257a3bfb55 , max_idle_ns: 440795207830 ns Switching to timer-based delay loop, resolution 6ns Console: colour dummy device 80x30 printk: console [tty0] enabled Calibrating delay loop (skipped), value calculated using timer frequency.. 325.0 0 BogoMIPS (lpj=1625000) pid_max: default: 32768 minimum: 301 Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) CPU: Testing write buffer coherency: ok CPU0: Spectre v2: using BPIALL workaround CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 Setting up static identity map for 0x100000 - 0x100060 rcu: Hierarchical SRCU implementation. smp: Bringing up secondary CPUs ... CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 CPU1: Spectre v2: using BPIALL workaround smp: Brought up 1 node, 2 CPUs SMP: Total of 2 processors activated (650.00 BogoMIPS). CPU: All CPU(s) started in SVC mode. devtmpfs: initialized VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4 clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911 2604462750000 ns futex hash table entries: 512 (order: 3, 32768 bytes, linear) pinctrl core: initialized pinctrl subsystem NET: Registered PF_NETLINK/PF_ROUTE protocol family DMA: preallocated 256 KiB pool for atomic coherent allocations thermal_sys: Registered thermal governor 'step_wise' cpuidle: using governor menu amba f8801000.etb: Fixing up cyclic dependency with replicator amba f8803000.tpiu: Fixing up cyclic dependency with replicator amba f8804000.funnel: Fixing up cyclic dependency with replicator amba f889c000.ptm: Fixing up cyclic dependency with f8804000.funnel amba f889d000.ptm: Fixing up cyclic dependency with f8804000.funnel hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers. hw-breakpoint: maximum watchpoint size is 4 bytes. zynq-ocm f800c000.ocmc: ZYNQ OCM pool: 256 KiB @ 0x(ptrval) e0000000.serial: ttyPS0 at MMIO 0xe0000000 (irq = 32, base_baud = 6250000) is a xuartps printk: console [ttyPS0] enabled raid6: int32x8 gen() 117 MB/s raid6: int32x8 xor() 77 MB/s raid6: int32x4 gen() 124 MB/s raid6: int32x4 xor() 88 MB/s raid6: int32x2 gen() 200 MB/s raid6: int32x2 xor() 123 MB/s raid6: int32x1 gen() 180 MB/s raid6: int32x1 xor() 100 MB/s raid6: using algorithm int32x2 gen() 200 MB/s raid6: .... xor() 123 MB/s, rmw enabled raid6: using intx1 recovery algorithm vgaarb: loaded SCSI subsystem initialized usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb mc: Linux media interface: v0.10 videodev: Linux video capture interface: v2.00 pps_core: LinuxPPS API ver. 1 registered pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@l inux.it> PTP clock support registered EDAC MC: Ver: 3.0.0 FPGA manager framework Advanced Linux Sound Architecture Driver Initialized. clocksource: Switched to clocksource arm_global_timer NET: Registered PF_INET protocol family IP idents hash table entries: 8192 (order: 4, 65536 bytes, linear) tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear) TCP established hash table entries: 4096 (order: 2, 16384 bytes, linear) TCP bind hash table entries: 4096 (order: 3, 32768 bytes, linear) TCP: Hash tables configured (established 4096 bind 4096) UDP hash table entries: 256 (order: 1, 8192 bytes, linear) UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear) NET: Registered PF_UNIX/PF_LOCAL protocol family RPC: Registered named UNIX socket transport module. RPC: Registered udp transport module. RPC: Registered tcp transport module. RPC: Registered tcp NFSv4.1 backchannel transport module. PCI: CLS 0 bytes, default 64 armv7-pmu f8891000.pmu: hw perfevents: no interrupt-affinity property, guessing. hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available Initialise system trusted keyrings workingset: timestamp_bits=14 max_order=17 bucket_order=3 squashfs: version 4.0 (2009/01/31) Phillip Lougher jffs2: version 2.2. (NAND) (SUMMARY) c 2001-2006 Red Hat, Inc. xor: measuring software checksum speed arm4regs : 1045 MB/sec 8regs : 806 MB/sec 32regs : 836 MB/sec xor: using function: arm4regs (1045 MB/sec) Key type asymmetric registered Asymmetric key parser 'x509' registered io scheduler mq-deadline registered io scheduler kyber registered zynq-pinctrl 700.pinctrl: zynq pinctrl initialized dma-pl330 f8003000.dmac: Loaded driver for PL330 DMAC-241330 dma-pl330 f8003000.dmac: DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Even ts-16 brd: module loaded loop: module loaded random: fast init done spi-nor spi0.0: w25q128jv (16384 Kbytes) spi0.0: error parsing ofpart partition /axi/spi@e000d000/flash@0/partition@0 (/a xi/spi@e000d000/flash@0) tun: Universal TUN/TAP device driver, 1.6 CAN device driver interface macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 34 (00 :18:3e:04:a1:58) e1000e: Intel(R) PRO/1000 Network Driver e1000e: Copyright(c) 1999 - 2015 Intel Corporation. ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver ehci-pci: EHCI PCI platform driver usbcore: registered new interface driver cdc_acm cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters usbcore: registered new interface driver cdc_wdm usbcore: registered new interface driver usb-storage usbcore: registered new interface driver usbserial_generic usbserial: USB Serial support registered for generic usbcore: registered new interface driver usb_serial_simple usbserial: USB Serial support registered for carelink usbserial: USB Serial support registered for zio usbserial: USB Serial support registered for funsoft usbserial: USB Serial support registered for flashloader usbserial: USB Serial support registered for google usbserial: USB Serial support registered for libtransistor usbserial: USB Serial support registered for vivopay usbserial: USB Serial support registered for moto_modem usbserial: USB Serial support registered for motorola_tetra usbserial: USB Serial support registered for novatel_gps usbserial: USB Serial support registered for hp4x usbserial: USB Serial support registered for suunto usbserial: USB Serial support registered for siemens_mpi ULPI transceiver vendor/product ID 0x0451/0x1507 Found TI TUSB1210 ULPI transceiver. ULPI integrity check: passed. ci_hdrc ci_hdrc.0: EHCI Host Controller ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1 ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00 hub 1-0:1.0: USB hub found hub 1-0:1.0: 1 port detected i2c_dev: i2c /dev entries driver cdns-wdt f8005000.watchdog: Xilinx Watchdog Timer with timeout 10s device-mapper: ioctl: 4.45.0-ioctl (2021-03-22) initialised: dm-devel@redhat.com EDAC MC: ECC not enabled Xilinx Zynq CpuIdle Driver started sdhci: Secure Digital Host Controller Interface driver sdhci: Copyright(c) Pierre Ossman sdhci-pltfm: SDHCI platform and OF driver helper ledtrig-cpu: registered to indicate activity on CPUs clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 5513 18127 ns timer #0 at (ptrval), irq=47 usbcore: registered new interface driver usbhid usbhid: USB HID core driver xlnk xlnk: Major 243 xlnk xlnk: xlnk driver loaded xlnk xlnk: xlnk_pdev is not null mmc0: SDHCI controller on e0100000.mmc [e0100000.mmc] using ADMA fpga_manager fpga0: Xilinx Zynq FPGA Manager registered IPVS: Registered protocols (TCP, UDP) IPVS: Connection hash table configured (size=4096, memory=32Kbytes) IPVS: ipvs loaded. IPVS: [rr] scheduler registered. Initializing XFRM netlink socket NET: Registered PF_INET6 protocol family Segment Routing with IPv6 In-situ OAM (IOAM) with IPv6 sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver mmc0: new high speed SDHC card at address aaaa NET: Registered PF_PACKET protocol family mmcblk0: mmc0:aaaa SB16G 14.8 GiB can: controller area network core NET: Registered PF_CAN protocol family mmcblk0: p1 p2 can: raw protocol can: broadcast manager protocol can: netlink gateway - max_hops=1 Registering SWP/SWPB emulation handler Loading compiled-in X.509 certificates Btrfs loaded, crc32c=crc32c-generic, zoned=no, fsverity=no of-fpga-region fpga-full: FPGA Region probed of_cfs_init of_cfs_init: OK cfg80211: Loading compiled-in X.509 certificates for regulatory database cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7' platform regulatory.0: Direct firmware load for regulatory.db failed with error -2 cfg80211: failed to load regulatory.db clk: Not disabling unused clocks ALSA device list: No soundcards found. usb 1-1: new high-speed USB device number 2 using ci_hdrc EXT4-fs (mmcblk0p2): 1 orphan inode deleted EXT4-fs (mmcblk0p2): recovery complete EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null). Qu ota mode: disabled. VFS: Mounted root (ext4 filesystem) on device 179:2. devtmpfs: mounted Freeing unused kernel image (initmem) memory: 1024K Run /sbin/init as init process systemd[1]: System time before build time, advancing clock. systemd[1]: Failed to find module 'autofs4' systemd[1]: systemd 249.11-0ubuntu3 running in system mode (+PAM +AUDIT +SELINUX +APPARMOR +IMA +SMACK +SECCOMP +GCRYPT +GNUTLS -OPENSSL +ACL +BLKID +CURL +ELFU TILS -FIDO2 +IDN2 -IDN +IPTC +KMOD +LIBCRYPTSETUP -LIBFDISK +PCRE2 -PWQUALITY -P 11KIT -QRENCODE +BZIP2 +LZ4 +XZ +ZLIB +ZSTD -XKBCOMMON +UTMP +SYSVINIT default-h ierarchy=unified) systemd[1]: Detected architecture arm. Welcome to PynqLinux, based on Ubuntu 22.04! systemd[1]: Hostname set to <pynq>. systemd[1]: Queued start job for default target Multi-User System. random: systemd: uninitialized urandom read (16 bytes read) systemd[1]: Created slice Slice /system/modprobe. [ OK ] Created slice Slice /system/modprobe. random: systemd: uninitialized urandom read (16 bytes read) systemd[1]: Created slice Slice /system/serial-getty. [ OK ] Created slice Slice /system/serial-getty. random: systemd: uninitialized urandom read (16 bytes read) systemd[1]: Created slice User and Session Slice. [ OK ] Created slice User and Session Slice. systemd[1]: Started Dispatch Password Requests to Console Directory Watch. [ OK ] Started Dispatch Password cts to Console Directory Watch. systemd[1]: Started Forward Password Requests to Wall Directory Watch. [ OK ] Started Forward Password Rcuests to Wall Directory Watch. systemd[1]: Condition check resulted in Arbitrary Executable File Formats File S ystem Automount Point being skipped. systemd[1]: Reached target Local Encrypted Volumes. [ OK ] Reached target Local Encrypted Volumes. systemd[1]: Reached target Remote File Systems. [ OK ] Reached target Remote File Systems. systemd[1]: Reached target Slice Units. [ OK ] Reached target Slice Units. systemd[1]: Reached target Local Verity Protected Volumes. [ OK ] Reached target Local Verity Protected Volumes. systemd[1]: Listening on Syslog Socket. [ OK ] Listening on Syslog Socket. systemd[1]: Listening on initctl Compatibility Named Pipe. [ OK ] Listening on initctl Compatibility Named Pipe. systemd[1]: Condition check resulted in Journal Audit Socket being skipped. systemd[1]: Listening on Journal Socket (/dev/log). [ OK ] Listening on Journal Socket (/dev/log). systemd[1]: Listening on Journal Socket. [ OK ] Listening on Journal Socket. systemd[1]: Listening on udev Control Socket. [ OK ] Listening on udev Control Socket. systemd[1]: Listening on udev Kernel Socket. [ OK ] Listening on udev Kernel Socket. systemd[1]: Condition check resulted in Huge Pages File System being skipped. systemd[1]: Mounting POSIX Message Queue File System... Mounting POSIX Message Queue File System... systemd[1]: Mounting Kernel Debug File System... Mounting Kernel Debug File System... systemd[1]: Condition check resulted in Kernel Trace File System being skipped. systemd[1]: Starting Journal Service... Starting Journal Service... systemd[1]: Starting Restore / save the current clock... Starting Restore / save the current clock... systemd[1]: Starting Set the console keyboard layout... Starting Set the console keyboard layout... systemd[1]: Condition check resulted in Create List of Static Device Nodes being skipped. systemd[1]: Starting Load Kernel Module configfs... Starting Load Kernel Module configfs... systemd[1]: Starting Load Kernel Module drm... Starting Load Kernel Module drm... systemd[1]: Starting Load Kernel Module fuse... Starting Load Kernel Module fuse... systemd[1]: Started Nameserver information manager. [ OK ] Started Nameserver information manager. systemd[1]: Reached target Preparation for Network. [ OK ] Reached target Preparation for Network. systemd[1]: Starting Load Kernel Modules... Starting Load Kernel Modules... systemd[1]: Starting Remount Root and Kernel File Systems... Starting Remount Root and Kernel File Systems... systemd[1]: Starting Coldplug All udev Devices... Starting Coldplug All udev Devices... systemd[1]: Started Journal Service. [ OK ] Started Journal Service. [ OK ] Mounted POSIX Message Queue File System. [ OK ] Mounted Kernel Debug File System. [ OK ] Finished Restore / save the current clock. [ OK ] Finished Load Kernel Module configfs. [ OK ] Finished Set the console keyboard layout. [ OK ] Finished Load Kernel Module drm. [ OK ] Finished Load Kernel Module fuse. [ OK ] Finished Load Kernel Modules. [ OK ] Finished Remount Root and Kernel File Systems. Activating swap /var/swap... Mounting Kernel Configuration File System..Adding 524284k swap on /var/ swap. Priority:-2 extents:1 across:524284k SS . Starting Flush Journal to Persistent Storage... systemd-journald[112]: Received client request to flush runtime journal. Starting Load/Save Random Seed... systemd-journald[112]: File /var/log/journal/b4e19d1e11f24633a2f2e1fe2798cbe4/sy stem.journal corrupted or uncleanly shut down, renaming and replacing. Starting Apply Kernel Variables... Starting Create System Users... [ OK ] Activated swap /var/swap. [ OK ] Mounted Kernel Configuration File System. [ OK ] Reached target Swaps. [ OK ] Finished Apply Kernel Variables. [ OK ] Finished Create System Users. Starting Create Static Device Nodes in /dev... [ OK ] Finished Coldplug All udev Devices. Starting Helper to synchronize boot up for ifupdown... [ OK ] Finished Create Static Device Nodes in /dev. [ OK ] Reached target Preparation for Local File Systems. [ OK ] Reached target Local File Systems. Starting Enable support focl executable binary formats... Starting Set console font and keymap... Starting Rule-based Managecfor Device Events and Files... [ OK ] Finished Enable support focnal executable binary formats. [ OK ] Finished Set console font and keymap. [ OK ] Finished Flush Journal to Persistent Storage. Starting Create Volatile Files and Directories... [ OK ] Started Rule-based Manager for Device Events and Files. [ OK ] Finished Create Volatile Files and Directories. [ OK ] Started Entropy Daemon based on the HAVEGE algorithm. Starting Network Name Resolution... Starting Network Time Synchronization... Starting Record System Boot/Shutdown in UTMP... [ OK ] Finished Record System Boot/Shutdown in UTMP. [ OK ] Found device /dev/ttyPS0. zocl-drm axi:zyxclmm_drm: IRQ index 0 not found [ OK ] Reached target Hardware activated USB gadget. [ OK ] Finished Load/Save Random Seed. [ OK ] Finished Helper to synchronize boot up for ifupdown. [ OK ] Stopped Entropy Daemon based on the HAVEGE algorithm. [ OK ] Started Entropy Daemon based on the HAVEGE algorithm. [ OK ] Started ifup for eth0. Starting Raise network interfaces... [ OK ] Started Network Time Synchronization. [ OK ] Reached target System Initialization. [ OK ] Started resolvconf-pull-resolved.path. [ OK ] Started Trigger to poll focy enabled on GCP LTS non-pro). [ OK ] Started Daily Cleanup of Temporary Directories. [ OK ] Started Ubuntu Advantage Timer for running repeated jobs. [ OK ] Reached target Path Units. [ OK ] Reached target System Time Set. [ OK ] Started Daily apt download activities. [ OK ] Started Daily apt upgrade and clean activities. [ OK ] Started Daily dpkg database backup timer. [ OK ] Started Periodic ext4 Onlicata Check for All Filesystems. [ OK ] Started Discard unused blocks once a week. [ OK ] Started Daily rotation of log files. [ OK ] Started Daily man-db regeneration. [ OK ] Started Message of the Day. [ OK ] Reached target Timer Units. [ OK ] Listening on D-Bus System Message Bus Socket. [ OK ] Listening on UUID daemon activation socket. [ OK ] Reached target Socket Units. [ OK ] Reached target Basic System. Starting LSB: automatic crash report generation... Starting Executing boot.py from the boot partition... [ OK ] Started Regular background program processing daemon. [ OK ] Started D-Bus System Message Bus. [ OK ] Started Save initial kernel messages after boot. Starting Remove Stale Onlict4 Metadata Check Snapshots... Starting Jupyter Notebook Server... Starting LSB: Load kernel cd to enable cpufreq scaling... Starting Dispatcher daemon for systemd-networkd... Starting Resize Filesystem on SD card... Starting System Logging Service... Starting User Login Management... [ OK ] Started Network Name Resolution. [ OK ] Finished Resize Filesystem on SD card. [ OK ] Started System Logging Service. [ OK ] Started LSB: automatic crash report generation. [ OK ] Started LSB: Load kernel mcded to enable cpufreq scaling. [ OK ] Reached target Host and Network Name Lookups. Starting LSB: set CPUFreq kernel parameters... [ OK ] Stopped Entropy Daemon based on the HAVEGE algorithm. [ OK ] Started Entropy Daemon based on the HAVEGE algorithm. Starting resolvconf-pull-resolved.service... [ OK ] Started User Login Management. [ OK ] Started LSB: set CPUFreq kernel parameters. [ OK ] Finished resolvconf-pull-resolved.service. [ OK ] Started Dispatcher daemon for systemd-networkd. [ OK ] Finished Remove Stale Onlicext4 Metadata Check Snapshots. [ OK ] Stopped Entropy Daemon based on the HAVEGE algorithm. [ OK ] Started Entropy Daemon based on the HAVEGE algorithm. [ OK ] Stopped Entropy Daemon based on the HAVEGE algorithm. [ OK ] Started Entropy Daemon based on the HAVEGE algorithm. Starting resolvconf-pull-resolved.service... [ OK ] Finished resolvconf-pull-resolved.service. Starting resolvconf-pull-resolved.service... [ OK ] Finished resolvconf-pull-resolved.service. [ OK ] Finished Raise network interfaces. [ OK ] Reached target Network. [ OK ] Reached target Network is Online. [ OK ] Started ISC DHCP IPv4 server. [ OK ] Started ISC DHCP IPv6 server. Starting Samba NMB Daemon... Starting OpenBSD Secure Shell server... Starting Permit User Sessions... [ OK ] Started Unattended Upgrades Shutdown. [ OK ] Finished Permit User Sessions. [ OK ] Started Serial Getty on ttyPS0. Starting Set console scheme... PYNQ Linux, based on Ubuntu 22.04 pynq ttyPS0 pynq login: Out of memory: Killed process 863 (python3) total-vm:1340792kB, anon -rss:444184kB, file-rss:0kB, shmem-rss:0kB, UID:0 pgtables:930kB oom_score_adj:0 pynq login: pynq login: dd Password: Login incorrect pynq login: xilinx Password: Welcome to PYNQ Linux, based on Ubuntu 22.04 (GNU/Linux 5.15.19-xilinx-v2022.1 a rmv7l) Last login: Sun Nov 17 19:28:40 UTC 2024 on ttyPS0 xilinx@pynq:~$ dmesg [ 3.202752] usbserial: USB Serial support registered for flashloader [ 3.207855] usbserial: USB Serial support registered for google [ 3.212509] usbserial: USB Serial support registered for libtransistor [ 3.217784] usbserial: USB Serial support registered for vivopay [ 3.222526] usbserial: USB Serial support registered for moto_modem [ 3.227548] usbserial: USB Serial support registered for motorola_tetra [ 3.232901] usbserial: USB Serial support registered for novatel_gps [ 3.238072] usbserial: USB Serial support registered for hp4x [ 3.242553] usbserial: USB Serial support registered for suunto [ 3.247221] usbserial: USB Serial support registered for siemens_mpi [ 3.253270] ULPI transceiver vendor/product ID 0x0451/0x1507 [ 3.257690] Found TI TUSB1210 ULPI transceiver. [ 3.260939] ULPI integrity check: passed. [ 3.264286] ci_hdrc ci_hdrc.0: EHCI Host Controller [ 3.267901] ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1 [ 3.300235] ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00 [ 3.305304] hub 1-0:1.0: USB hub found [ 3.307808] hub 1-0:1.0: 1 port detected [ 3.312481] i2c_dev: i2c /dev entries driver [ 3.317270] cdns-wdt f8005000.watchdog: Xilinx Watchdog Timer with timeout 10 s [ 3.323814] device-mapper: ioctl: 4.45.0-ioctl (2021-03-22) initialised: dm-d evel@redhat.com [ 3.331410] EDAC MC: ECC not enabled [ 3.333883] Xilinx Zynq CpuIdle Driver started [ 3.337562] sdhci: Secure Digital Host Controller Interface driver [ 3.342457] sdhci: Copyright(c) Pierre Ossman [ 3.345515] sdhci-pltfm: SDHCI platform and OF driver helper [ 3.350802] ledtrig-cpu: registered to indicate activity on CPUs [ 3.355987] clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, ma x_idle_ns: 551318127 ns [ 3.363985] timer #0 at (ptrval), irq=47 [ 3.367137] usbcore: registered new interface driver usbhid [ 3.371424] usbhid: USB HID core driver [ 3.374126] xlnk xlnk: Major 243 [ 3.376306] xlnk xlnk: xlnk driver loaded [ 3.379025] xlnk xlnk: xlnk_pdev is not null [ 3.382945] mmc0: SDHCI controller on e0100000.mmc [e0100000.mmc] using ADMA [ 3.390677] fpga_manager fpga0: Xilinx Zynq FPGA Manager registered [ 3.397542] IPVS: Registered protocols (TCP, UDP) [ 3.401075] IPVS: Connection hash table configured (size=4096, memory=32Kbyte s) [ 3.407383] IPVS: ipvs loaded. [ 3.409142] IPVS: [rr] scheduler registered. [ 3.412461] Initializing XFRM netlink socket [ 3.415640] NET: Registered PF_INET6 protocol family [ 3.420966] Segment Routing with IPv6 [ 3.423371] In-situ OAM (IOAM) with IPv6 [ 3.426249] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver [ 3.426850] mmc0: new high speed SDHC card at address aaaa [ 3.431715] NET: Registered PF_PACKET protocol family [ 3.435891] mmcblk0: mmc0:aaaa SB16G 14.8 GiB [ 3.438938] can: controller area network core [ 3.445213] NET: Registered PF_CAN protocol family [ 3.447124] mmcblk0: p1 p2 [ 3.448728] can: raw protocol [ 3.451884] can: broadcast manager protocol [ 3.454784] can: netlink gateway - max_hops=1 [ 3.458502] Registering SWP/SWPB emulation handler [ 3.462259] Loading compiled-in X.509 certificates [ 3.466901] Btrfs loaded, crc32c=crc32c-generic, zoned=no, fsverity=no [ 3.483216] of-fpga-region fpga-full: FPGA Region probed [ 3.487928] of_cfs_init [ 3.489189] of_cfs_init: OK [ 3.490933] cfg80211: Loading compiled-in X.509 certificates for regulatory d atabase [ 3.501296] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7' [ 3.506768] platform regulatory.0: Direct firmware load for regulatory.db fai led with error -2 [ 3.514109] cfg80211: failed to load regulatory.db [ 3.515158] clk: Not disabling unused clocks [ 3.520567] ALSA device list: [ 3.522230] No soundcards found. [ 3.635133] usb 1-1: new high-speed USB device number 2 using ci_hdrc [ 4.023354] EXT4-fs (mmcblk0p2): 1 orphan inode deleted [ 4.027369] EXT4-fs (mmcblk0p2): recovery complete [ 4.048464] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. O pts: (null). Quota mode: disabled. [ 4.057386] VFS: Mounted root (ext4 filesystem) on device 179:2. [ 4.066228] devtmpfs: mounted [ 4.070739] Freeing unused kernel image (initmem) memory: 1024K [ 4.075791] Run /sbin/init as init process [ 4.078589] with arguments: [ 4.078596] /sbin/init [ 4.078603] earlyprintk [ 4.078609] with environment: [ 4.078615] HOME=/ [ 4.078621] TERM=linux [ 4.607262] systemd[1]: System time before build time, advancing clock. [ 4.670412] systemd[1]: Failed to find module 'autofs4' [ 4.748396] systemd[1]: systemd 249.11-0ubuntu3 running in system mode (+PAM +AUDIT +SELINUX +APPARMOR +IMA +SMACK +SECCOMP +GCRYPT +GNUTLS -OPENSSL +ACL +BL KID +CURL +ELFUTILS -FIDO2 +IDN2 -IDN +IPTC +KMOD +LIBCRYPTSETUP -LIBFDISK +PCRE 2 -PWQUALITY -P11KIT -QRENCODE +BZIP2 +LZ4 +XZ +ZLIB +ZSTD -XKBCOMMON +UTMP +SYS VINIT default-hierarchy=unified) [ 4.778788] systemd[1]: Detected architecture arm. [ 4.818331] systemd[1]: Hostname set to <pynq>. [ 6.179772] systemd[1]: Queued start job for default target Multi-User System . [ 6.188286] random: systemd: uninitialized urandom read (16 bytes read) [ 6.199305] systemd[1]: Created slice Slice /system/modprobe. [ 6.235414] random: systemd: uninitialized urandom read (16 bytes read) [ 6.243910] systemd[1]: Created slice Slice /system/serial-getty. [ 6.285387] random: systemd: uninitialized urandom read (16 bytes read) [ 6.292964] systemd[1]: Created slice User and Session Slice. [ 6.326017] systemd[1]: Started Dispatch Password Requests to Console Directo ry Watch. [ 6.365839] systemd[1]: Started Forward Password Requests to Wall Directory W atch. [ 6.406013] systemd[1]: Condition check resulted in Arbitrary Executable File Formats File System Automount Point being skipped. [ 6.416773] systemd[1]: Reached target Local Encrypted Volumes. [ 6.455984] systemd[1]: Reached target Remote File Systems. [ 6.495431] systemd[1]: Reached target Slice Units. [ 6.525782] systemd[1]: Reached target Local Verity Protected Volumes. [ 6.566408] systemd[1]: Listening on Syslog Socket. [ 6.595918] systemd[1]: Listening on initctl Compatibility Named Pipe. [ 6.647239] systemd[1]: Condition check resulted in Journal Audit Socket bein g skipped. [ 6.655362] systemd[1]: Listening on Journal Socket (/dev/log). [ 6.696454] systemd[1]: Listening on Journal Socket. [ 6.729725] systemd[1]: Listening on udev Control Socket. [ 6.766270] systemd[1]: Listening on udev Kernel Socket. [ 6.806489] systemd[1]: Condition check resulted in Huge Pages File System be ing skipped. [ 6.819744] systemd[1]: Mounting POSIX Message Queue File System... [ 6.872865] systemd[1]: Mounting Kernel Debug File System... [ 6.906163] systemd[1]: Condition check resulted in Kernel Trace File System being skipped. [ 6.925652] systemd[1]: Starting Journal Service... [ 6.977448] systemd[1]: Starting Restore / save the current clock... [ 7.023339] systemd[1]: Starting Set the console keyboard layout... [ 7.065766] systemd[1]: Condition check resulted in Create List of Static Dev ice Nodes being skipped. [ 7.083468] systemd[1]: Starting Load Kernel Module configfs... [ 7.143727] systemd[1]: Starting Load Kernel Module drm... [ 7.193973] systemd[1]: Starting Load Kernel Module fuse... [ 7.232483] systemd[1]: Started Nameserver information manager. [ 7.284249] systemd[1]: Reached target Preparation for Network. [ 7.328505] systemd[1]: Starting Load Kernel Modules... [ 7.362458] systemd[1]: Starting Remount Root and Kernel File Systems... [ 7.430725] systemd[1]: Starting Coldplug All udev Devices... [ 7.483469] systemd[1]: Started Journal Service. [ 7.917151] Adding 524284k swap on /var/swap. Priority:-2 extents:1 across:5 24284k SS [ 8.001594] systemd-journald[112]: Received client request to flush runtime j ournal. [ 8.034953] systemd-journald[112]: File /var/log/journal/b4e19d1e11f24633a2f2 e1fe2798cbe4/system.journal corrupted or uncleanly shut down, renaming and repla cing. [ 10.399712] zocl: loading out-of-tree module taints kernel. [ 10.442527] [drm] Probing for xlnx,zocl [ 10.442585] zocl-drm axi:zyxclmm_drm: IRQ index 0 not found [ 10.505448] [drm] PR[0] Isolation addr 0x0 [ 10.535222] [drm] Initialized zocl 0.0.0 for axi:zyxclmm_drm on minor 0 [ 10.573296] usb 1-1: Found UVC 1.00 device Streaming Camera (0c45:636b) [ 10.644271] input: Streaming Camera: Streaming Cam as /devices/soc0/axi/e0002 000.usb/ci_hdrc.0/usb1/1-1/1-1:1.0/input/input0 [ 10.644807] usbcore: registered new interface driver uvcvideo [ 11.555197] random: crng init done [ 11.555216] random: 7 urandom warning(s) missed due to ratelimiting [ 13.527531] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck. [ 14.235219] macb e000b000.ethernet eth0: PHY [e000b000.ethernet-ffffffff:00] driver [RTL8211F Gigabit Ethernet] (irq=POLL) [ 14.235262] macb e000b000.ethernet eth0: configuring for phy/rgmii-id link mo de [ 18.418874] macb e000b000.ethernet eth0: Link is Up - 1Gbps/Full - flow contr ol off [ 18.418989] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 40.004852] zocl-drm axi:zyxclmm_drm: zocl_create_client: created KDS client for pid(301), ret: 0 [ 40.005010] zocl-drm axi:zyxclmm_drm: zocl_destroy_client: client exits pid(3 01) [ 40.011378] zocl-drm axi:zyxclmm_drm: zocl_create_client: created KDS client for pid(301), ret: 0 [ 70.293495] fpga_manager fpga0: writing base.bin to Xilinx Zynq FPGA Manager [ 71.249439] [drm] skip kind 29(AIE_RESOURCES) return code: -22 [ 71.249480] [drm] skip kind 8(IP_LAYOUT) return code: -22 [ 71.249494] [drm] skip kind 9(DEBUG_IP_LAYOUT) return code: -22 [ 71.249505] [drm] skip kind 25(AIE_METADATA) return code: -22 [ 71.249516] [drm] skip kind 7(CONNECTIVITY) return code: -22 [ 71.249527] [drm] found kind 6(MEM_TOPOLOGY) [ 71.249648] [drm] Memory 0 is not reserved in device tree. Will allocate memo ry from CMA [ 71.249714] [drm] Memory 1 is not reserved in device tree. Will allocate memo ry from CMA [ 71.249772] [drm] Memory 2 is not reserved in device tree. Will allocate memo ry from CMA [ 71.249830] [drm] Memory 3 is not reserved in device tree. Will allocate memo ry from CMA [ 71.249889] [drm] zocl_xclbin_read_axlf 80449f05-460d-68fb-e04f-9daa4635c070 ret: 0 [ 71.301861] [drm] bitstream 80449f05-460d-68fb-e04f-9daa4635c070 locked, ref= 1 [ 71.301926] zocl-drm axi:zyxclmm_drm: ffffffffc112b410 kds_add_context: Clie nt pid(301) add context Domain(0) CU(0xffffffff) shared(true) [ 71.302029] zocl-drm axi:zyxclmm_drm: ffffffffc112b410 kds_del_context: Clie nt pid(301) del context Domain(0) CU(0xffffffff) [ 71.302058] [drm] bitstream 80449f05-460d-68fb-e04f-9daa4635c070 unlocked, re f=0 [ 71.589515] zocl-drm axi:zyxclmm_drm: zocl_create_client: created KDS client for pid(769), ret: 0 [ 71.589626] zocl-drm axi:zyxclmm_drm: zocl_destroy_client: client exits pid(7 69) [ 71.590229] zocl-drm axi:zyxclmm_drm: zocl_create_client: created KDS client for pid(769), ret: 0 [ 78.737752] zocl-drm axi:zyxclmm_drm: zocl_destroy_client: client exits pid(3 01) [ 82.145528] zocl-drm axi:zyxclmm_drm: zocl_destroy_client: client exits pid(7 69) [ 471.133776] python3 invoked oom-killer: gfp_mask=0x1100cca(GFP_HIGHUSER_MOVAB LE), order=0, oom_score_adj=0 [ 471.133818] CPU: 0 PID: 863 Comm: python3 Tainted: G O 5.15.19 -xilinx-v2022.1 #1 [ 471.133839] Hardware name: Xilinx Zynq Platform [ 471.133855] [<c010d090>] (unwind_backtrace) from [<c0108f00>] (show_stack+0x1 0/0x14) [ 471.133897] [<c0108f00>] (show_stack) from [<c09b65e0>] (dump_stack_lvl+0x40/ 0x4c) [ 471.133934] [<c09b65e0>] (dump_stack_lvl) from [<c09b2af0>] (dump_header+0x60 /0x200) [ 471.133965] [<c09b2af0>] (dump_header) from [<c01f3c7c>] (oom_kill_process+0x 78/0x130) [ 471.134005] [<c01f3c7c>] (oom_kill_process) from [<c01f446c>] (out_of_memory+ 0x2ac/0x30c) [ 471.134039] [<c01f446c>] (out_of_memory) from [<c022804c>] (__alloc_pages+0x7 28/0x82c) [ 471.134076] [<c022804c>] (__alloc_pages) from [<c021250c>] (alloc_zeroed_user _highpage_movable.constprop.0+0x10/0x38) [ 471.134117] [<c021250c>] (alloc_zeroed_user_highpage_movable.constprop.0) fro m [<c02158b0>] (handle_mm_fault+0x1d0/0x954) [ 471.134150] [<c02158b0>] (handle_mm_fault) from [<c01106dc>] (do_page_fault+0 x1e0/0x284) [ 471.134175] [<c01106dc>] (do_page_fault) from [<c01108bc>] (do_DataAbort+0x34 /0xb4) [ 471.134198] [<c01108bc>] (do_DataAbort) from [<c0100dfc>] (__dabt_usr+0x3c/0x 40) [ 471.134221] Exception stack(0xc7067fb0 to 0xc7067ff8) [ 471.134239] 7fa0: ffffffe8 77676d78 7769a 010 00003f9c [ 471.134257] 7fc0: 8e16d6d8 fffdcd68 7767a348 7767a338 0000464d 00004650 7767a 330 00000003 [ 471.134272] 7fe0: 00000869 beca4ef0 8e16d6db accff1ba 20070030 ffffffff [ 471.134283] Mem-Info: [ 471.134291] active_anon:32629 inactive_anon:83656 isolated_anon:0 active_file:15 inactive_file:107 isolated_file:0 unevictable:4 dirty:0 writeback:0 slab_reclaimable:1457 slab_unreclaimable:3614 mapped:100 shmem:117 pagetables:1116 bounce:0 kernel_misc_reclaimable:0 free:2076 free_pcp:26 free_cma:0 [ 471.134330] Node 0 active_anon:130516kB inactive_anon:334624kB active_file:60 kB inactive_file:428kB unevictable:16kB isolated(anon):0kB isolated(file):0kB ma pped:400kB dirty:0kB writeback:0kB shmem:468kB writeback_tmp:0kB kernel_stack:15 84kB pagetables:4464kB all_unreclaimable? no [ 471.134366] Normal free:8304kB min:2840kB low:3548kB high:4256kB reserved_hig hatomic:0KB active_anon:130516kB inactive_anon:334624kB active_file:8kB inactive _file:460kB unevictable:16kB writepending:0kB present:524288kB managed:505428kB mlocked:16kB bounce:0kB free_pcp:104kB local_pcp:0kB free_cma:0kB [ 471.134432] lowmem_reserve[]: 0 0 0 [ 471.134471] Normal: 149*4kB (UMEC) 264*8kB (UME) 156*16kB (UE) 53*32kB (UE) 2 3*64kB (UE) 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 8372kB [ 471.134576] 1034 total pagecache pages [ 471.134583] 773 pages in swap cache [ 471.134590] Swap cache stats: add 158288, delete 157521, find 3283/6486 [ 471.134601] Free swap = 0kB [ 471.134608] Total swap = 524284kB [ 471.134616] 131072 pages RAM [ 471.134622] 0 pages HighMem/MovableOnly [ 471.134629] 4715 pages reserved [ 471.134635] 32768 pages cma reserved [ 471.134642] Tasks state (memory values in pages): [ 471.134649] [ pid ] uid tgid total_vm rss pgtables_bytes swapents o om_score_adj name [ 471.134670] [ 112] 0 112 10967 30 28672 174 -250 systemd-journal [ 471.134691] [ 160] 0 160 4670 17 14336 162 -1000 systemd-udevd [ 471.134712] [ 174] 104 174 4718 29 24576 756 0 systemd-resolve [ 471.134731] [ 175] 106 175 4990 23 18432 115 0 systemd-timesyn [ 471.134750] [ 241] 0 241 8130 19 18432 207 0 dhclient [ 471.134769] [ 265] 0 265 1296 19 10240 29 0 cron [ 471.134787] [ 266] 105 266 1671 29 12288 89 -900 dbus-daemon [ 471.134807] [ 293] 0 293 5543 12 30720 1286 0 networkd-dispat [ 471.134826] [ 299] 101 299 6442 0 22528 172 0 rsyslogd [ 471.134846] [ 300] 0 300 4768 34 16384 122 0 systemd-logind [ 471.134864] [ 614] 0 614 15444 72 43008 319 0 nmbd [ 471.134883] [ 625] 0 625 8613 36 34816 1260 0 unattended-upgr [ 471.134902] [ 626] 0 626 1031 6 10240 9 0 agetty [ 471.134921] [ 629] 0 629 1020 8 10240 7 0 agetty [ 471.134940] [ 632] 0 632 2795 23 18432 226 -1000 sshd [ 471.134958] [ 633] 0 633 35979 3328 108544 10811 0 jupyter-noteboo [ 471.134978] [ 638] 0 638 18962 85 59392 527 0 smbd [ 471.134997] [ 645] 0 645 18509 13 57344 498 0 smbd-notifyd [ 471.135016] [ 646] 0 646 18510 12 55296 499 0 cleanupd [ 471.135035] [ 649] 0 649 18824 0 57344 505 0 samba-bgqd [ 471.135054] [ 767] 0 767 5969 0 30720 2195 0 python3 [ 471.135073] [ 853] 0 853 35508 0 77824 7225 0 python3 [ 471.135091] [ 854] 0 854 35508 0 77824 7204 0 python3 [ 471.135109] [ 857] 0 857 35508 0 77824 7206 0 python3 [ 471.135127] [ 858] 0 858 35508 0 79872 7204 0 python3 [ 471.135145] [ 859] 0 859 35508 0 77824 7251 0 python3 [ 471.135164] [ 860] 0 860 35508 0 77824 7209 0 python3 [ 471.135182] [ 861] 0 861 35508 0 79872 7204 0 python3 [ 471.135201] [ 862] 0 862 35508 0 77824 7256 0 python3 [ 471.135219] [ 863] 0 863 335198 111046 952320 53636 0 python3 [ 471.135237] oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems _allowed=0,global_oom,task_memcg=/system.slice/jupyter.service,task=python3,pid= 863,uid=0 [ 471.135550] Out of memory: Killed process 863 (python3) total-vm:1340792kB, a non-rss:444184kB, file-rss:0kB, shmem-rss:0kB, UID:0 pgtables:930kB oom_score_ad j:0 [ 471.558349] oom_reaper: reaped process 863 (python3), now anon-rss:16kB, file -rss:0kB, shmem-rss:0kB xilinx@pynq:~$
It looks like the memory for Jupyter/Python3 is out of the bandwidth.
Summary of the OpenCV sample project on Zynq
Running the same OpenCV demo project with different applications or subjects can lead me for different acceleration architecture or help me estimate where could be the design challenge.
Next Step of the Design Challenge
I will stick with my plan to finish at least phase one project of Z7_Color_AID.
References
[1] https://github.com/Xilinx/PYNQ-ComputerVision 2019
[2] https://docs.opencv.org/4.x/d4/dc6/tutorial_py_template_matching.html 2024
Previous Blogs:
Z7_Color_AID-Blog#01:First Impression of PYNQ on Arty-Z7-20
Z7_Color_AID Blog #2: Reproduce PYNQ Image on Ubuntu 20.04
Z7_Color_AID Blog #3: PYNQ Framework: Library and Overlay
Z7_Color_AID Blog #4: Architecture Discussion of Z7_Color_AID