Composite video output on AML-S905X-CC, Le Potato

  • I just got a Libre Computer AML-S905X-CC, Le Potato (https://libre.computer/products/aml-s905x-cc/). I am planning to use it as a video player/HTPC for the kids to use in the car. Our car only has composite (RCA) audio/video inputs, which is part of the reason I chose Le Potato, as it supports native composite output. I would like to avoid using an HDMI to composite adapter if possible.


    I decided to install LibreELEC for this project. I downloaded the latest nightly from the link in this document: https://test.libreelec.tv/11.0/Amlogic/lepotato/. I downloaded the “LibreELEC-AMLGX.arm-11.0-nightly-20221223-a0bd737-lepotato.img” image and imaged it to an SD card using the LibreELEC card imager.


    Everything booted up and seems to work fine with HDMI video output. However, when I connect the composite video plug instead and boot up, I do get video and audio, but the Kodi interface never shows up. All I see from the video output is the LibreELEC splash screen, with the build number up in the top left corner. Interestingly, I do think Kodi is actually loading up because I can hear the audio output. For example, if I start pressing arrow keys on my keyboard, I here the Kodi interface navigation sounds. For some reason, the interface just won’t show up on the screen.


    I have tried searching in your forums and wiki, but have not found information specific to my situation. A lot of the information in the forums seems to revolve around raspberry pi specifically. Some of the info in the wiki seems to be either outdated or not specific to this build of the software. For example, this document (https://wiki.libreelec.tv/configuration/config_txt) says I should be able to find the config.txt file in /flash/config.txt, but when I SSH into it, no such file exists there.


    Also, I am generally a Linux novice, so it is entirely possible that I am just not understanding something correctly.


    If you could provide any guidance, it would be most appreciated! Please let me know if you have any additional questions or need more information. Thank you for your time!

  • The config.txt file passes instructions to the boot firmware of a Raspberry Pi board. It doesn't exist on other hardware platforms.


    Run "journalctl | paste" and share the URL please.

  • Code
    echo "<advancedsettings version=\"1.0\">" > /storage/.kodi/userdata/advancedsettings.xml
    echo "  <loglevel hide=\"false\">1</loglevel>" >> /storage/.kodi/userdata/advancedsettings.xml
    echo "</advancedsettings>" >> /storage/.kodi/userdata/advancedsettings.xml
    reboot
    cat /storage/.kodi/temp/kodi.log | paste

    ^ The advancedsettings.xml file content puts Kodi into debug mode. Then share the URL so we can see what DRM properties Kodi can see?

  • Code
    info <general>: Found resolution 1280x720 with 1280x720 @ 50.000000 Hz
    debug <general>: CGBMUtils::CreateSurface - created surface with size 1280x720

    Kodi is started and apart from there being only a single resolution ^ available ([email protected]) everything looks normal. I guess the head-unit is expecting some other resolution as input? - so you may need to force the CVBS output to something else using kernel boot params.


    e.g. something like "video=TV-1:[email protected]" added to params in /flash/extlinux/extlinux.conf


    NB: I'm not 100% sure of the connector name (TV-1) or what resolutions are possible.

  • Excellent! Thank you! That info gave me the last puzzle piece! It is working now. Thank you so much for all the help. Below, I am going to try to give full details for anyone else who may run into this.


    I found the following command in a stack exchange forum post (https://unix.stackexchange.com…-all-display-output-ports) that let me list out the video devices: find /sys/devices -name "edid". It gave the following output:

    Code
    /sys/devices/platform/soc/d0100000.vpu/drm/card0/card0-HDMI-A-1/edid
    /sys/devices/platform/soc/d0100000.vpu/drm/card0/card0-Composite-1/edid

    So that told me that "Composite-1" is the video device name.


    I already knew the resolution for NTSC video over composite is [email protected] Using that didn't work at first, but I remembered this forum post I had seen while researching (RE: Composite Video in LE10 on RPi4) that mentioned you had to use an "e" at the end to force enable it, because composite video doesn't support sensing a connection.


    So I looked up how to edit the /flash/extlinux/extlinux.conf file, as you recommended. I found the details here:

    https://wiki.libreelec.tv/configuration/edid#editing-the-extlinux.conf-or-syslinux.cfg


    I ran the following command to remout the flash partition as read/write (it is read only by default):

    Code
    mount -o remount,rw /flash

    Then I ran the following command to edit the /flash/extlinux/extlinux.conf file in nano:

    Code
    nano /flash/extlinux/extlinux.conf

    Then you need to add the following to the end of the "APPEND" line video=Composite-1:[email protected]. In my file it was the bottom line. You don't need a comma separator, just a space. My /flash/extlinux/extlinux.conf file now looks like this:

    Code
    LABEL LibreELEC
    LINUX /KERNEL
    FDT /meson-gxl-s905x-libretech-cc.dtb
    APPEND boot=LABEL=LIBREELEC disk=LABEL=STORAGE quiet systemd.debug_shell=ttyAML0 console=ttyAML0,115200n8 console=tty0 video=Composite-1:[email protected]

    Then I just save the file and rebooted. Now the composite video output it working!


    Once again chewitt , thank you so much for your help! I don't think I would have figured that one out on my own. Your help is very much appreciated!

  • Glad that you got it working :)


    If you're only going to be playing SD media I'd suggest that you disable hardware decoding in Kodi playback settings. The upstream decoding drivers are fine with H264 but aren't perfect with older codecs or HEVC. However the S905X chip never runs particularly hot and small filesize media isn't too challenging to software decode, which will avoid hardware decoding glitches.