Posts by gsuser

    I would like to test video rendering on my current devboard (and maybe on above mentioned single core version) using GPU.


    Using gstreamer I was unable to play any video, as I always get error messages about codecs. For the moment I have h264 sample video (I also tried different codecs in the past) in target board and gstreamer can’t find appropriate codecs, even while h264 plugin is installed:

    gst-launch-1.0 playbin uri=file:/root/ava.avi

    Setting pipeline to PAUSED ...

    Pipeline is PREROLLING ...

    Missing element: MPEG-1 Layer 3 (MP3) decoder

    WARNING: from element /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0: No decoder available for type 'audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)1, layer=(int)3, rate=(int)48000, channels=(int)2, parsed=(boolean)true'.

    Additional debug info:

    gsturidecodebin.c(921): unknown_type_cb (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0

    Missing element: ITU H.264 (Main Profile) decoder

    WARNING: from element /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0: No decoder available for type 'video/x-h264, variant=(string)itu, framerate=(fraction)25/1, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)81/256, interlace-mode=(string)progressive, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, parsed=(boolean)true, stream-format=(string)avc, alignment=(string)au, profile=(string)main, level=(string)4.1, codec_data=(buffer)014d4029ffe1001b674d4029e980a00b77fe00a2020020000003002000000641e3062701000468efbc80'.

    Additional debug info:

    gsturidecodebin.c(921): unknown_type_cb (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0

    ERROR: from element /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0: Your GStreamer installation is missing a plug-in.

    Additional debug info:

    gsturidecodebin.c(988): no_more_pads_full (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0:

    no suitable plugins found:

    gstdecodebin2.c(4643): gst_decode_bin_expose (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0:

    no suitable plugins found:

    Missing decoder: MPEG-1 Layer 3 (MP3) (audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)1, layer=(int)3, rate=(int)48000, channels=(int)2, parsed=(boolean)true)

    Missing decoder: ITU H.264 (Main Profile) (video/x-h264, variant=(string)itu, framerate=(fraction)25/1, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)81/256, interlace-mode=(string)progressive, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, parsed=(boolean)true, stream-format=(string)avc, alignment=(string)au, profile=(string)main, level=(string)4.1, codec_data=(buffer)014d4029ffe1001b674d4029e980a00b77fe00a2020020000003002000000641e3062701000468efbc80)



    So for now I use vlc, which can’t find OpenGL API:

    egl_wl gl error: cannot select OpenGL API

    So I believe it renders video using CPU. On quad core I get approx 17% CPU usage from VLC, so it would probably work even on single core CPU – maybe even on NANO.

    Can you help with vlc rendering on GPU with Open GL?


    I also noticed, that if I use gstreamer with sink waylandsink, all I get is green square.

    If I use fbdevsink, it renders contents properly, despite weston being loaded.

    Why is that, if weston is running?

    ...

    There are more options available. The GUI can either use Wayland or render directly to the framebuffer. X11 was available for previous boards, but NXP does not have any X11 support with i.MX8 CPUs anymore. So Wayland is usually the way to go. But on top of this, you are free to use your environment. For example GTK+ is also possible, or Enlightenment or DirectFB.


    But even if you go with Qt, you are not necessarily required to buy a commercial license, as long as you restrict your software to Qt modules that are also released under the LGPL. This typically happens after a couple of years. If you do not need the newest 3D stuff and the newest internet protocols, this may still be sufficient for a pleasant application.

    ...

    I have more question regarding QT licensing - see above comment. Are you sure it is correct regarding QT?

    I assume we'd need Qt for Device Creation package to develop GUI for fsimx8mm.

    This package is available only under commercial license according to QT Licensing .

    Thank you for extensive feedback on my basic questions. I'm sure I'll have some more, however I'm now studying some more documentation (including Buildroot's).

    Meanwhile, if it's not too much trouble, I'd appreciate your help in solving bootloader issue.

    I suspect it will take some time until new DevKit comes (specially as it will probably be equipped with different display by Datamodul), so meanwhile I'd need something usable to test, what I learn .

    Small update.

    I managed to load and save all 4 images (Uboot, Kernel, FDT and Buildroot) and after reset it seems Uboot is stuck reading from NAND:

    U-Boot SPL 2018.03 (Oct 22 2019 - 14:17:10 +0200)

    DDRINFO: start lpddr4 ddr init

    DRAM PHY training for 3000MTS

    check ddr4_pmu_train_imem code

    check ddr4_pmu_train_imem code pass

    check ddr4_pmu_train_dmem code

    check ddr4_pmu_train_dmem code pass

    Training PASS

    DRAM PHY training for 3000MTS

    check ddr4_pmu_train_imem code

    check ddr4_pmu_train_imem code pass

    check ddr4_pmu_train_dmem code

    check ddr4_pmu_train_dmem code pass

    Training PASS

    DRAM PHY training for 400MTS

    check ddr4_pmu_train_imem code

    check ddr4_pmu_train_imem code pass

    check ddr4_pmu_train_dmem code

    check ddr4_pmu_train_dmem code pass

    Training PASS

    DRAM PHY training for 100MTS

    check ddr4_pmu_train_imem code

    check ddr4_pmu_train_imem code pass

    check ddr4_pmu_train_dmem code

    check ddr4_pmu_train_dmem code pass

    Training PASS

    DDRINFO:ddrphy calibration done

    DDRINFO: ddrmix config done

    Normal Boot

    Trying to boot from NAND



    Can something be done? As I mentioned my devboard is older version - so this might be a problem here.

    I transferred these files from my build folder

    fsimx8mm-B2020.08-pre/test1/buildroot-2019.05.3-fsimx8mm-B2020.08/output/images/:

    Image picocoremx8mm.dtb rootfs.ubifs u-boot.nb


    g

    Hi,


    I am new to embedded Linux (but do have experiences as user of Linux on PC, RPI, Armbian, VPS, ...), so my questions will be very basic.

    I hope I can ask in this thread and get help.

    I currently have 1 development system PicoCore™MX8MM and according to Uboot has following:

    CPU: Freescale i.MX8MMQ rev1.0 1800 MHz (running at 1200 MHz)

    CPU: Commercial temperature grade (0C to 95C) at 57C

    Reset cause: POR

    Model: FSL i.MX8MM PCoreMX8MM board

    DRAM: 1 GiB

    PMIC: BD71847 Rev. 0xa0

    NAND: 512 MiB

    MMC: FSL_SDHC: 0, FSL_SDHC: 1

    Loading Environment from NAND... OK

    auto-detected panel NT35521_OLED

    Display: NT35521_OLED (720x1280)

    Video: 720x1280x24

    It appears to be an older version, as it's debug UART isn't where it's supposed to be in any documentation. I was promised to get new one, but am currently working with what I have.

    Our companies short term goal is to develop user interface for white goods appliance (Gorenje) with SOM/SOC.

    As we don't have such experience, I am learning how to do this.


    I am working with following documents FSiMX8MM_FirstSteps_eng.pdf, LinuxOnFSBoards_eng.pdf, FSiMX8_FirstSteps_eng.txt.

    I am using Fedora VM, which I loaded with 20201106 fsimx8mm-B2020.08-pre.tar.bz2.

    Following guides in mentioned documents, I managed to succesfully build complete system SW (Uboot, Kernel and Buildroot).

    Now I am trying to transfer it via TFTP & Uboot to the board.


    Meanwhile I have few questions (more will follow).

    1. Most important one and very confusing to me. I haven't yet grasped the process development for Embedded Linux. In MCU apps you develop code, compile, flash to MCU, test and then flash in serial production. I am not sure how it is done with Linux. So I have Linux Kernel, Buildroot (or Yocto,...) FS, FDT (which I will have to adapt to my peripherals later) and Uboot. I need to develop GUI application - let's say with Qt, custom FDT. How I then join everything together into 1 binary to use in serial production? Do I (simplified description) first upload System Software to devboard using Uboot and application via network, set up everything and then download all binaries via Uboot+TFTP and get image, which is to be used in serial production programming. Or how everything is integrated together? I haven't seen this described anywhere and it seems it isn't addressed in any of your workshops.


    2. Developing GUI. It seems that with F&S our only option is to use Qt. Since this option requires licensing I am asking, if there are any FOSS options, which can be used in commercial applications and still supported by F&S platform.


    3. Building FDT. Are there any guides how to build FDT with specific HW - for example I don't think my currently used display (NT35521_OLED) is supported in any of the device trees in 20201106 fsimx8mm-B2020.08-pre.tar.bz2. How to add more devices - like touchscreen, I2S sound sink... I assume Linux drivers are required for all such devices (unless some slow peripherals, with which we can work directly over (serial) data buses).


    4. Buildroot and Yocto. Which one to choose - what are the factors for the selection (as far as I know Yocto is newer).


    As you see these are beginner questions. Hopefully someone can help. Maybe via MS Teams meeting if not here.


    Gregor