Jetson nano with balena os

Hi @mithundotdas,

Which Jetson Nano do you use?

1 Like

A02 with SD card. Not sure if I am answering your question :slight_smile:

What happens if you remove the docker-compose, bring your Dockerfile up to the root directory, and re-push it @mithundotdas?

@dtischler I started with that :slight_smile: Then moved to docker-compose to add privilege flag to true and host to network.

Aha - gotcha. I’m wondering if CAP_SYS_ADMIN and/or CAP_SYS_RAWIO might be needed when using a Compose. I’m not totally sure, so it would basically be just a “try it and see what happens” test, ha! :joy:

Having some trouble pushing to balena right now. May be my network acting up. Will update when it’s done with above suggested change.

Hi @mithundotdas,

I just thought of something, can you do that and check if it works:

$> whoami
your-username

$> chown -R your-username:your-username ~/.config

I had the same error during a workshop using the Jetson Nano: https://github.com/edgeimpulse/workshop-advantech-jetson-nano

Let me know,

Regards,

Louis

@louis @dtischler I tried both but still same issue. Not sure what I am missing.

root@143a076:/usr/local/cuda-10.2/samples/bin/aarch64/linux/release# whoami
root
root@143a076:/usr/local/cuda-10.2/samples/bin/aarch64/linux/release# chown -R root:root ~/.config
root@143a076:/usr/local/cuda-10.2/samples/bin/aarch64/linux/release# edge-impulse-linux --verbose --disable-microphone
Edge Impulse Linux client v1.3.1
? What is your user name or e-mail address (edgeimpulse.com)? mithundotdas@gmail.com
? What is your password? [hidden]

? To which project do you want to connect this device? Mithun / jetson_nano
Failed to initialize linux tool Error code was not 0: Probing devices...

Failed to start device monitor!

root@143a076:/usr/local/cuda-10.2/samples/bin/aarch64/linux/release# lsusb
Bus 002 Device 002: ID 0bda:0411 Realtek Semiconductor Corp. 
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 045e:0772 Microsoft Corp. LifeCam Studio
Bus 001 Device 002: ID 0bda:5411 Realtek Semiconductor Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

And in docker-compose , I have

version: '2.1'
services: 
        inference:
                build: ./inference
                privileged: true
                restart: always
                network_mode: host
                container_name: inference
                cap_add:
                        - CAP_SYS_ADMIN
                        - CAP_SYS_RAWIO
                ports: 
                        - 8080
                labels:
                        io.balena.features.dbus: '1'
                        io.balena.features.kernel-modules: '1'
                volumes: 
                        - 'shared-data:/var/data'
                        - 'shared-media:/var/media'
                environment:
                        - UDEV=1
                devices:
                        - '/dev:/dev'
        
volumes:
        shared-data:
        shared-media:

I’m not even able to complete the Nano installation for some reason, I am failing on the vips-8.10.5 compilation.

libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../.. -I../../libvips/include -DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -pthread -I/usr/include/glib-2.0 -I/usr/lib/aarch64-linux-gnu/glib-2.0/include -g -O2 -MT im_gradcor.lo -MD -MP -MF .deps/im_gradcor.Tpo -c im_gradcor.c -o im_gradcor.o >/dev/null 2>&1
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../.. -I../../libvips/include -DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -pthread -I/usr/include/glib-2.0 -I/usr/lib/aarch64-linux-gnu/glib-2.0/include -g -O2 -MT im_gaddim.lo -MD -MP -MF .deps/im_gaddim.Tpo -c im_gaddim.c -o im_gaddim.o >/dev/null 2>&1
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../.. -I../../libvips/include -DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -pthread -I/usr/include/glib-2.0 -I/usr/lib/aarch64-linux-gnu/glib-2.0/include -g -O2 -MT vips7compat.lo -MD -MP -MF .deps/vips7compat.Tpo -c vips7compat.c -o vips7compat.o >/dev/null 2>&1
make[3]: Leaving directory '/usr/local/cuda-10.2/samples/bin/aarch64/linux/release/vips-8.10.5/libvips/deprecated'
Makefile:876: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/usr/local/cuda-10.2/samples/bin/aarch64/linux/release/vips-8.10.5/libvips'
Makefile:629: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/usr/local/cuda-10.2/samples/bin/aarch64/linux/release/vips-8.10.5'
Makefile:536: recipe for target 'all' failed
make: *** [all] Error 2

Worked around that by just updating to https://github.com/libvips/libvips/releases/tag/v8.12.2 instead.

Camera is definitely detected by the system, but, for some reason EI won’t locate it…

At the end of this giant log below, I just disable camera, and it launches (though this defeats the purpose obviously LOL)

root@37574b37dde9:/usr/local/cuda-10.2/samples/bin/aarch64/linux/releasroot@37574b37dde9:/usr/local/cuda-10.2/samples/bin/aarch64/linux/release# edge-impulse-linux --disable-microphone --verbose
Edge Impulse Linux client v1.3.1

Failed to initialize linux tool Error code was not 0: Probing devices...

Failed to start device monitor!


root@37574b37dde9:/usr/local/cuda-10.2/samples/bin/aarch64/linux/release# gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=1 ! video/x-raw ! videoconvert ! jpegenc ! multifilesink location=test%05d.jpg
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Got EOS from element "pipeline0".
Execution ended after 0:00:02.438842340
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

root@37574b37dde9:/usr/local/cuda-10.2/samples/bin/aarch64/linux/release# ls
clock        node-v12.13.0-linux-arm64           postProcessGL    smokeParticles  vips-8.10.5.tar.gz    vips-8.12.2.tar.gz
deviceQuery  node-v12.13.0-linux-arm64.tar.xz    simpleGL         test00000.jpg   vips-8.10.5.tar.gz.1
jetson.sh    node-v12.13.0-linux-arm64.tar.xz.1  simpleTexture3D  vips-8.10.5     vips-8.12.2
root@37574b37dde9:/usr/local/cuda-10.2/samples/bin/aarch64/linux/release# v4l2-ctl --list-formats-ext --device /dev/video0 
ioctl: VIDIOC_ENUM_FMT
        Index       : 0
        Type        : Video Capture
        Pixel Format: 'YUYV'
        Name        : YUYV 4:2:2
                Size: Discrete 640x480
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.042s (24.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.133s (7.500 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 160x90
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.042s (24.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.133s (7.500 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 160x120
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.042s (24.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.133s (7.500 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 176x144
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.042s (24.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.133s (7.500 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 320x180
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.042s (24.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.133s (7.500 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 320x240
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.042s (24.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.133s (7.500 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                <snip>
                Size: Discrete 1920x1080
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 2304x1296
                        Interval: Discrete 0.500s (2.000 fps)
                Size: Discrete 2304x1536
                        Interval: Discrete 0.500s (2.000 fps)

        Index       : 1
        Type        : Video Capture
        Pixel Format: 'MJPG' (compressed)
        Name        : Motion-JPEG
                Size: Discrete 640x480
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.042s (24.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.133s (7.500 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 160x90
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.042s (24.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.133s (7.500 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 160x120
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.042s (24.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.133s (7.500 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 176x144
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.042s (24.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.133s (7.500 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 320x180
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.042s (24.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.133s (7.500 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 320x240
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.042s (24.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.133s (7.500 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 352x288
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.042s (24.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.133s (7.500 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 432x240
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.042s (24.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.133s (7.500 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 640x360
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.042s (24.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.133s (7.500 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 800x448
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.042s (24.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.133s (7.500 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 800x600
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.042s (24.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.133s (7.500 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 864x480
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.042s (24.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.133s (7.500 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 960x720
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.042s (24.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.133s (7.500 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 1024x576
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.042s (24.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.133s (7.500 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 1280x720
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.042s (24.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.133s (7.500 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 1600x896
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.042s (24.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.133s (7.500 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 1920x1080
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.042s (24.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.133s (7.500 fps)
                        Interval: Discrete 0.200s (5.000 fps)

root@37574b37dde9:/usr/local/cuda-10.2/samples/bin/aarch64/linux/release# GST_DEBUG=2 gst-device-monitor-1.0
Probing devices...

0:00:00.128048333   723   0x557cf82a00 WARN                 default gstdevicemonitor.c:458:gst_device_monitor_start:<devicemonitor0> No filters have been set, will expose all devices found
0:00:00.268884896   723   0x557cf82a00 ERROR                  pulse pulsedeviceprovider.c:439:gst_pulse_device_provider_start:<pulsedeviceprovider0> Failed to connect: Connection refused
Failed to start device monitor!

root@37574b37dde9:/usr/local/cuda-10.2/samples/bin/aarch64/linux/release# gst-device-monitor-1.0
Probing devices...


Device found:

        name  : Logitech Webcam C925e Analog Stereo
        class : Audio/Source
        caps  : audio/x-raw, format=(string){ S16LE, S16BE, F32LE, F32BE, S32LE, S32BE, S24LE, S24BE, S24_32LE, S24_32BE, U8 }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
                audio/x-alaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
                audio/x-mulaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
        properties:
                alsa.resolution_bits = 16
                device.api = alsa
                device.class = sound
                alsa.class = generic
                alsa.subclass = generic-mix
                alsa.name = "USB\ Audio"
                alsa.id = "USB\ Audio"
                alsa.subdevice = 0
                alsa.subdevice_name = "subdevice\ \#0"
                alsa.device = 0
                alsa.card = 2
                alsa.card_name = "Logitech\ Webcam\ C925e"
                alsa.long_card_name = "Logitech\ Webcam\ C925e\ at\ usb-70090000.xusb-2\,\ high\ speed"
                alsa.driver_name = snd_usb_audio
                device.bus_path = platform-70090000.xusb-usb-0:2:1.2
                sysfs.path = /devices/70090000.xusb/usb1/1-2/1-2:1.2/sound/card2
                udev.id = usb-046d_Logitech_Webcam_C925e_279866DF-02
                device.bus = usb
                device.vendor.id = 046d
                device.vendor.name = "Logitech\,\ Inc."
                device.product.id = 085b
                device.product.name = "Logitech\ Webcam\ C925e"
                device.serial = 046d_Logitech_Webcam_C925e_279866DF
                device.form_factor = webcam
                device.string = front:2
                device.buffering.buffer_size = 256000
                device.buffering.fragment_size = 128000
                device.access_mode = mmap+timer
                device.profile.name = analog-stereo
                device.profile.description = "Analog\ Stereo"
                device.description = "Logitech\ Webcam\ C925e\ Analog\ Stereo"
                alsa.mixer_name = "USB\ Mixer"
                alsa.components = USB046d:085b
                module-udev-detect.discovered = 1
                device.icon_name = camera-web-usb
        gst-launch-1.0 pulsesrc device=alsa_input.usb-046d_Logitech_Webcam_C925e_279866DF-02.analog-stereo ! ...


Device found:

        name  : Monitor of Built-in Audio Analog Stereo
        class : Audio/Source
        caps  : audio/x-raw, format=(string){ S16LE, S16BE, F32LE, F32BE, S32LE, S32BE, S24LE, S24BE, S24_32LE, S24_32BE, U8 }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
                audio/x-alaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
                audio/x-mulaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
        properties:
                device.description = "Monitor\ of\ Built-in\ Audio\ Analog\ Stereo"
                device.class = monitor
                alsa.card = 1
                alsa.card_name = tegra-snd-t210ref-mobile-rt565x
                alsa.long_card_name = tegra-snd-t210ref-mobile-rt565x
                device.bus_path = platform-sound
                sysfs.path = /devices/sound/sound/card1
                device.form_factor = internal
                device.string = 1
                module-udev-detect.discovered = 1
                device.icon_name = audio-card
        gst-launch-1.0 pulsesrc device=alsa_output.platform-sound.analog-stereo.monitor ! ...


Device found:

        name  : Built-in Audio Analog Stereo
        class : Audio/Source
        caps  : audio/x-raw, format=(string){ S16LE, S16BE, F32LE, F32BE, S32LE, S32BE, S24LE, S24BE, S24_32LE, S24_32BE, U8 }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
                audio/x-alaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
                audio/x-mulaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
        properties:
                alsa.resolution_bits = 16
                device.api = alsa
                device.class = sound
                alsa.class = generic
                alsa.subclass = generic-mix
                alsa.name = ""
                alsa.id = "ADMAIF1\ CIF\ ADMAIF1-0"
                alsa.subdevice = 0
                alsa.subdevice_name = "subdevice\ \#0"
                alsa.device = 0
                alsa.card = 1
                alsa.card_name = tegra-snd-t210ref-mobile-rt565x
                alsa.long_card_name = tegra-snd-t210ref-mobile-rt565x
                device.bus_path = platform-sound
                sysfs.path = /devices/sound/sound/card1
                device.form_factor = internal
                device.string = front:1
                device.buffering.buffer_size = 32768
                device.buffering.fragment_size = 16384
                device.access_mode = mmap+timer
                device.profile.name = analog-stereo
                device.profile.description = "Analog\ Stereo"
                device.description = "Built-in\ Audio\ Analog\ Stereo"
                module-udev-detect.discovered = 1
                device.icon_name = audio-card
        gst-launch-1.0 pulsesrc device=alsa_input.platform-sound.analog-stereo ! ...


Device found:

        name  : Built-in Audio Analog Stereo
        class : Audio/Sink
        caps  : audio/x-raw, format=(string){ S16LE, S16BE, F32LE, F32BE, S32LE, S32BE, S24LE, S24BE, S24_32LE, S24_32BE, U8 }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
                audio/x-alaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
                audio/x-mulaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
        properties:
                alsa.resolution_bits = 16
                device.api = alsa
                device.class = sound
                alsa.class = generic
                alsa.subclass = generic-mix
                alsa.name = ""
                alsa.id = "ADMAIF1\ CIF\ ADMAIF1-0"
                alsa.subdevice = 0
                alsa.subdevice_name = "subdevice\ \#0"
                alsa.device = 0
                alsa.card = 1
                alsa.card_name = tegra-snd-t210ref-mobile-rt565x
                alsa.long_card_name = tegra-snd-t210ref-mobile-rt565x
                device.bus_path = platform-sound
                sysfs.path = /devices/sound/sound/card1
                device.form_factor = internal
                device.string = front:1
                device.buffering.buffer_size = 32768
                device.buffering.fragment_size = 16384
                device.access_mode = mmap+timer
                device.profile.name = analog-stereo
                device.profile.description = "Analog\ Stereo"
                device.description = "Built-in\ Audio\ Analog\ Stereo"
                module-udev-detect.discovered = 1
                device.icon_name = audio-card
        gst-launch-1.0 ... ! pulsesink device=alsa_output.platform-sound.analog-stereo


Device found:

        name  : Logitech Webcam C925e
        class : Video/Source
        caps  : video/x-raw, format=(string)YUY2, width=(int)2304, height=(int)1536, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)2/1;
                video/x-raw, format=(string)YUY2, width=(int)2304, height=(int)1296, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)2/1;
                video/x-raw, format=(string)YUY2, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)5/1;
                video/x-raw, format=(string)YUY2, width=(int)1600, height=(int)896, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 15/2, 5/1 };
                video/x-raw, format=(string)YUY2, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 10/1, 15/2, 5/1 };
                video/x-raw, format=(string)YUY2, width=(int)960, height=(int)720, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 15/1, 10/1, 15/2, 5/1 };
                video/x-raw, format=(string)YUY2, width=(int)1024, height=(int)576, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 15/1, 10/1, 15/2, 5/1 };
                video/x-raw, format=(string)YUY2, width=(int)800, height=(int)600, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };
                video/x-raw, format=(string)YUY2, width=(int)864, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };
                video/x-raw, format=(string)YUY2, width=(int)800, height=(int)448, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };
                video/x-raw, format=(string)YUY2, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };
                video/x-raw, format=(string)YUY2, width=(int)640, height=(int)360, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };
                video/x-raw, format=(string)YUY2, width=(int)432, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };
                video/x-raw, format=(string)YUY2, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };
                video/x-raw, format=(string)YUY2, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };
                video/x-raw, format=(string)YUY2, width=(int)320, height=(int)180, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };
                video/x-raw, format=(string)YUY2, width=(int)176, height=(int)144, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };
                video/x-raw, format=(string)YUY2, width=(int)160, height=(int)120, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };
                video/x-raw, format=(string)YUY2, width=(int)160, height=(int)90, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };
                image/jpeg, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };
                image/jpeg, width=(int)1600, height=(int)896, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };
                image/jpeg, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 60/1, 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };
                image/jpeg, width=(int)960, height=(int)720, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };
                image/jpeg, width=(int)1024, height=(int)576, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };
                image/jpeg, width=(int)800, height=(int)600, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };
                image/jpeg, width=(int)864, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };
                image/jpeg, width=(int)800, height=(int)448, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };
                image/jpeg, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };
                image/jpeg, width=(int)640, height=(int)360, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };
                image/jpeg, width=(int)432, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };
                image/jpeg, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };
                image/jpeg, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };
                image/jpeg, width=(int)320, height=(int)180, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };
                image/jpeg, width=(int)176, height=(int)144, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };
                image/jpeg, width=(int)160, height=(int)120, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };
                image/jpeg, width=(int)160, height=(int)90, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };
        properties:
                udev-probed = true
                device.bus_path = platform-70090000.xusb-usb-0:2:1.0
                sysfs.path = /sys/devices/70090000.xusb/usb1/1-2/1-2:1.0/video4linux/video0
                device.bus = usb
                device.subsystem = video4linux
                device.vendor.id = 046d
                device.vendor.name = 046d
                device.product.id = 085b
                device.product.name = "Logitech\ Webcam\ C925e"
                device.serial = 046d_Logitech_Webcam_C925e_279866DF
                device.capabilities = :capture:
                device.api = v4l2
                device.path = /dev/video0
                v4l2.device.driver = uvcvideo
                v4l2.device.card = "Logitech\ Webcam\ C925e"
                v4l2.device.bus_info = usb-70090000.xusb-2
                v4l2.device.version = 264588 (0x0004098c)
                v4l2.device.capabilities = 2216689665 (0x84200001)
                v4l2.device.device_caps = 69206017 (0x04200001)
        gst-launch-1.0 v4l2src ! ...



root@37574b37dde9:/usr/local/cuda-10.2/samples/bin/aarch64/linux/release# v4l2-ctl --list-devices
Logitech Webcam C925e (usb-70090000.xusb-2):
        /dev/video0

root@37574b37dde9:/usr/local/cuda-10.2/samples/bin/aarch64/linux/release# edge-impulse-linux --disable-camera --disable-microphone
Edge Impulse Linux client v1.3.1

[WS ] Connecting to wss://remote-mgmt.edgeimpulse.com
[WS ] Connected to wss://remote-mgmt.edgeimpulse.com
? What name do you want to give this device? Nano-2gb
[WS ] Device "Nano-2gb" is now connected to project "Jetson"
[WS ] Go to https://studio.edgeimpulse.com/studio/80308/acquisition/training to build your machine learning model!

Hello @dtischler,

Worked around that by just updating to https://github.com/libvips/libvips/releases/tag/v8.12.2 instead.

This is strange, where did you get the jetson.sh installation script? In our documentation, we changed in december the jetson.sh to use vipsv8.12.1. Maybe I forgot to change the link somewhere…

Unfortunately I don’t have a Jetson Nano with me today so I cannot try. I will try tomorrow on my Jetson Nano 2G and Balena to see if I can reproduce the issue.

Regards,

Louis

2 Likes

Thanks @louis! Looking closer at the versioning issue, that was my bad, I already had jetson.sh on my local machine, and just copied it straight in…Now looking closer at the version sitting at https://cdn.edgeimpulse.com/firmware/linux/jetson.sh I see it has indeed been updated to a newer version. So, that was my bad for going with what I already had, ha!

But yep, once you have your Nano setup, I am curious to see what results you get. :+1:

This is interesting. Someone found similar issue on Raspberry Pi 4 . https://github.com/just4give/balena-edge-impulse-linux/issues/10

1 Like

That someone is a balena team member, :stuck_out_tongue:

1 Like

Yeah, that was Alan :slight_smile:

Apparently Alan found where the issue came from, it requires a PulseAudio server to run:

I have not tried it but @mithundotdas could you try it if you have a Jetson already setup with balena OS?

version: '2'

services:
  audio:
    image: balenablocks/audio
    privileged: true
    ports:
      - 4317:4317
  ei:
    restart: always
    build: .
    privileged: true
    ports:
      - "80:80"
      - "4912:4912"
    environment:
      PULSE_SERVER: tcp:audio:4317
      UDEV: 1
    labels:
      io.balena.features.dbus: '1'
      io.balena.features.kernel-modules: '1'
    devices:
      - "/dev:/dev"

Regards,

Louis

Looks like audio block does not work for Jetson. It says no such image balenablocks/audio:latest built on arm04. I am not able to paste the full log from my virtual box.

There is currently an issue with the Nano using the Audio Block that we haven’t looked into: https://github.com/balenablocks/audio/issues/35

I guess a bigger question is, why do we need Pulse Audio running? I don’t recall it being required in the past? (But could be forgetting). Of course, a workaround is to just install it in the same container with EI, and spawn it as a daemon / background process during a start script.

@louis @mithundotdas

I vaguely remember that some of the asla libraries were removed from debin/rasbian … wondering if that has anything to do with pulse audio. I will manually install on the container and see what happens

1 Like