Issues with TIDL examples in cloud9-examples
Created by: jadonk
Describe the bug This is a collection of issues to be fixed in cloud9-examples or other places in the image to get the TIDL examples running.
Seems the only real issue right now is the missing libopencv-dev package.
I do need to somehow make the default runner be the Beagle Makefile runner.
Describe which image you are running (example: bone-debian-10.2-iot-armhf-2020-02-03-4gb.img.xz) am57xx-debian-9.12-iot-tidl-armhf-2020-03-24-4gb.img.xz
Describe your hardware BeagleBone AI, Logitech C922, USB Type-C power brick, USB Type-C hub with pass-through power
Describe any Capes Installed BeagleBone Fan Cape
Please run this built-in script
sudo /opt/scripts/tools/version.sh
debian@beaglebone:/var/lib/cloud9$ sudo /opt/scripts/tools/version.sh
git:/opt/scripts/:[43e2e0e554b10d779fdbc730bb0d5d197e467d02]
model:[BeagleBoard.org_BeagleBone_AI]
dogtag:[BeagleBoard.org Debian IoT TIDL Image 2020-03-24]
UBOOT: Booted Device-Tree:[am5729-beagleboneai.dts]
kernel:[4.14.108-ti-r130]
nodejs:[v6.17.0]
/boot/uEnv.txt Settings:
pkg check: to individually upgrade run: [sudo apt install --only-upgrade <pkg>]
pkg:[bb-cape-overlays]:[4.14.20200312.0-0rcnee0~stretch+20200312]
pkg:[bb-wl18xx-firmware]:[1.20200322.0-0rcnee0~stretch+20200322]
pkg:[kmod]:[23-2rcnee1~stretch+20171005]
pkg:[librobotcontrol]:[1.0.4-git20190227.1-0rcnee0~stretch+20190327]
pkg:[firmware-ti-connectivity]:[20190717-2rcnee1~stretch+20200305]
groups:[debian : debian adm kmem dialout cdrom floppy audio dip video plugdev users systemd-journal i2c bluetooth netdev gpio pwm eqep remoteproc admin spi iio docker tisdk weston-launch xenomai cloud9ide]
cmdline:[console=ttyS0,115200n8 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 rng_core.default_quality=100 quiet]
dmesg | grep remote
[ 4.416240] remoteproc remoteproc0: 4b234000.pru is available
[ 4.418539] remoteproc remoteproc1: 4b238000.pru is available
[ 4.426604] remoteproc remoteproc2: 4b2b4000.pru is available
[ 4.427317] remoteproc remoteproc3: 4b2b8000.pru is available
[ 34.947215] remoteproc remoteproc4: 58820000.ipu is available
[ 34.975987] remoteproc remoteproc5: 55020000.ipu is available
[ 35.036312] remoteproc remoteproc6: 40800000.dsp is available
[ 35.080973] remoteproc remoteproc5: powering up 55020000.ipu
[ 35.081021] remoteproc remoteproc5: Booting fw image dra7-ipu2-fw.xem4, size 3751356
[ 35.091456] remoteproc remoteproc7: 41000000.dsp is available
[ 35.223770] remoteproc remoteproc4: powering up 58820000.ipu
[ 35.223824] remoteproc remoteproc4: Booting fw image dra7-ipu1-fw.xem4, size 7051536
[ 35.428696] remoteproc remoteproc5: registered virtio0 (type 7)
[ 35.428722] remoteproc remoteproc5: remote processor 55020000.ipu is now up
[ 35.494829] remoteproc remoteproc4: registered virtio1 (type 7)
[ 35.494856] remoteproc remoteproc4: remote processor 58820000.ipu is now up
[ 35.656527] Modules linked in: omap_remoteproc virtio_rpmsg_bus rpmsg_core cmemk(O) uio_pdrv_genirq uio spidev pruss_soc_bus pru_rproc pruss pruss_intc
[ 35.657634] Modules linked in: omap_remoteproc virtio_rpmsg_bus rpmsg_core cmemk(O) uio_pdrv_genirq uio spidev pruss_soc_bus pru_rproc pruss pruss_intc
[ 35.658605] Modules linked in: omap_remoteproc virtio_rpmsg_bus rpmsg_core cmemk(O) uio_pdrv_genirq uio spidev pruss_soc_bus pru_rproc pruss pruss_intc
[ 35.874871] remoteproc remoteproc7: powering up 41000000.dsp
[ 35.874922] remoteproc remoteproc7: Booting fw image dra7-dsp2-fw.xe66, size 21014532
[ 35.888629] remoteproc remoteproc6: powering up 40800000.dsp
[ 35.888671] remoteproc remoteproc6: Booting fw image dra7-dsp1-fw.xe66, size 21014532
[ 36.021653] remoteproc remoteproc6: registered virtio2 (type 7)
[ 36.021673] remoteproc remoteproc6: remote processor 40800000.dsp is now up
[ 36.036804] remoteproc remoteproc7: registered virtio3 (type 7)
[ 36.036827] remoteproc remoteproc7: remote processor 41000000.dsp is now up
dmesg | grep pru
[ 4.408190] pruss 4b200000.pruss: creating PRU cores and other child platform devices
[ 4.416240] remoteproc remoteproc0: 4b234000.pru is available
[ 4.416301] pru-rproc 4b234000.pru: PRU rproc node /ocp/pruss_soc_bus@4b226004/pruss@0/pru@34000 probed successfully
[ 4.418539] remoteproc remoteproc1: 4b238000.pru is available
[ 4.418591] pru-rproc 4b238000.pru: PRU rproc node /ocp/pruss_soc_bus@4b226004/pruss@0/pru@38000 probed successfully
[ 4.420084] pruss 4b280000.pruss: creating PRU cores and other child platform devices
[ 4.426604] remoteproc remoteproc2: 4b2b4000.pru is available
[ 4.426657] pru-rproc 4b2b4000.pru: PRU rproc node /ocp/pruss_soc_bus@4b2a6004/pruss@0/pru@34000 probed successfully
[ 4.427317] remoteproc remoteproc3: 4b2b8000.pru is available
[ 4.427372] pru-rproc 4b2b8000.pru: PRU rproc node /ocp/pruss_soc_bus@4b2a6004/pruss@0/pru@38000 probed successfully
[ 35.656527] Modules linked in: omap_remoteproc virtio_rpmsg_bus rpmsg_core cmemk(O) uio_pdrv_genirq uio spidev pruss_soc_bus pru_rproc pruss pruss_intc
[ 35.657634] Modules linked in: omap_remoteproc virtio_rpmsg_bus rpmsg_core cmemk(O) uio_pdrv_genirq uio spidev pruss_soc_bus pru_rproc pruss pruss_intc
[ 35.658605] Modules linked in: omap_remoteproc virtio_rpmsg_bus rpmsg_core cmemk(O) uio_pdrv_genirq uio spidev pruss_soc_bus pru_rproc pruss pruss_intc
[ 48.418351] pruss_uio_shmem 4b200000.pruss_shmem: Allocating gdev
[ 48.418400] pruss_uio_shmem 4b200000.pruss_shmem: Allocating info
[ 48.418434] pruss_uio_shmem 4b200000.pruss_shmem: Requesting resource
[ 48.418512] pruss_uio_shmem 4b200000.pruss_shmem: Mapping resource
[ 48.418568] pruss_uio_shmem 4b200000.pruss_shmem: Registering with uio driver
[ 48.438436] pruss_uio_shmem 4b200000.pruss_shmem: Saving platform data
[ 48.456676] pruss_uio_shmem 4b280000.pruss_shmem: Allocating gdev
[ 48.456714] pruss_uio_shmem 4b280000.pruss_shmem: Allocating info
[ 48.456758] pruss_uio_shmem 4b280000.pruss_shmem: Requesting resource
[ 48.456859] pruss_uio_shmem 4b280000.pruss_shmem: Mapping resource
[ 48.456925] pruss_uio_shmem 4b280000.pruss_shmem: Registering with uio driver
[ 48.468756] pruss_uio_shmem 4b280000.pruss_shmem: Saving platform data
dmesg | grep pinctrl-single
[ 0.684252] pinctrl-single 4a003400.pinmux: 282 pins at pa fc003400 size 1128
dmesg | grep gpio-of-helper
lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 004: ID 046d:085c Logitech, Inc. C922 Pro Stream Webcam
Bus 003 Device 003: ID 2109:0103 VIA Labs, Inc.
Bus 003 Device 002: ID 2109:2817 VIA Labs, Inc.
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
END
To Reproduce Steps to reproduce the behavior:
libopencv-dev wasn't installed
sudo apt install libopencv-dev -y
Without doing this, the below steps fail sooner.
nginx seems to now be holding port 8080
debian@beaglebone:/var/lib/cloud9$ **cd /var/lib/cloud9/BeagleBone/AI/tidl**
debian@beaglebone:/var/lib/cloud9/BeagleBone/AI/tidl$ **make -f /var/lib/cloud9/common/Makefile TARGET=dummy.pru0**
/var/lib/cloud9/common/Makefile:28: MODEL=BeagleBoard.org_BeagleBone_AI,TARGET=dummy.pru0,COMMON=/var/lib/cloud9/common
/var/lib/cloud9/common/Makefile:147: GEN_DIR=/tmp/cloud9-examples,CHIP=am335x,PROC=pru,PRUN=0,PRU_DIR=/sys/class/remoteproc/remoteproc1,EXE=.out
- Stopping PRU 0
sh: echo: I/O error
Cannot stop 0
make: *** No rule to make target '/tmp/cloud9-examples/dummy.pru0.out', needed by 'install'. Stop.
debian@beaglebone:/var/lib/cloud9/BeagleBone/AI/tidl$ make -f /var/lib/cloud9/common/Makefile TARGET=dummy.tidl
/var/lib/cloud9/common/Makefile:28: MODEL=BeagleBoard.org_BeagleBone_AI,TARGET=dummy.tidl,COMMON=/var/lib/cloud9/common
/var/lib/cloud9/common/Makefile:147: GEN_DIR=/tmp/cloud9-examples,CHIP=am57xx,PROC=tidl,PRUN=,PRU_DIR=,EXE=.so
ti-mct-heap-check -c
sudo mjpg_streamer -i "input_opencv.so -r 640x480 --filter ./dummy.tidl.so" -o "output_http.so -p 8080 -w /usr/share/mjpg-streamer/www"
MJPG Streamer Version.: 2.0
i: device........... : default
i: Desired Resolution: 640 x 480
i: filter........... : ./dummy.tidl.so
i: filter args ..... :
o: www-folder-path......: /usr/share/mjpg-streamer/www/
o: HTTP TCP port........: 8080
o: HTTP Listen Address..: (null)
o: username:password....: disabled
o: commands.............: enabled
bind: Address already in use
bind: Address already in use
o: server_thread(): bind(8080) failed
/var/lib/cloud9/common/Makefile:169: recipe for target 'start' failed
make: *** [start] Error 1
debian@beaglebone:/var/lib/cloud9/BeagleBone/AI/tidl$ sudo lsof -i :8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 1832 root 8u IPv4 19568 0t0 TCP *:http-alt (LISTEN)
nginx 1832 root 9u IPv6 19569 0t0 TCP *:http-alt (LISTEN)
nginx 1835 www-data 8u IPv4 19568 0t0 TCP *:http-alt (LISTEN)
nginx 1835 www-data 9u IPv6 19569 0t0 TCP *:http-alt (LISTEN)
nginx 1836 www-data 8u IPv4 19568 0t0 TCP *:http-alt (LISTEN)
nginx 1836 www-data 9u IPv6 19569 0t0 TCP *:http-alt (LISTEN)
work-around: https://github.com/beagleboard/cloud9-examples/commit/55ad6a8d62ded969ff76bba934cc669373a3d97a