Skip to content

yrzr/kodi-docker-rk35xx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kodi Docker RK35XX

This project provides a Docker container for running Kodi (GBM mode) on headless RK35XX devices with full hardware transcoding enabled.

Successfully tested hardware decoding and playback of H.264 1080p and H.265 4K HDR10 videos on Rock 5B and Rock 5C. Need more tests information from other devices.

Prerequisites

  • RK35XX devices with video output capability;
  • Rockchip BSP/Vendor kernel 5.10 or 6.1 are need for ffmpeg-rockchip;
  • Docker installed on your system;
  • Docker Compose (optional, for easier management).

Getting Started

Option A. Use docker run command

docker run -d \
  --name kodi-gbm \
  --privileged \
  --network host \
  --restart unless-stopped \
  -e WEBSERVER_ENABLED=true \
  -e WEBSERVER_PORT=8080 \
  -e WEBSERVER_AUTHENTICATION=true \
  -e WEBSERVER_USERNAME=kodi \
  -e WEBSERVER_PASSWORD=kodi \
  -v /etc/localtime:/etc/localtime:ro \
  -v /media:/media:ro \
  -v /path/to/kodi/data:/usr/local/share/kodi/portable_data \
  yrzr/kodi-gbm:rk35xx

Option B. Use docker compose

Checkout the project.

git clone --depth=1 https://github.com/yrzr/kodi-docker-rk35xx.git
cd kodi-docker-rk35xx

Then modify compose.yml and start container with docker compose

edit compose.yml
docker compose up -d

Option C. Build the docker image by your own

Checkout the project.

git clone --depth=1 https://github.com/yrzr/kodi-docker-rk35xx.git
cd kodi-docker-rk35xx

Build the image

docker compose build

Bring up the container

docker compose up -d

Environment Variables

  • WEBSERVER_ENABLED

Whether allow control of Kodi via HTTP

  • WEBSERVER_PORT

The port of Webserver

  • WEBSERVER_AUTHENTICATION

Whether to use HTTP's Basic Access Authentication

  • WEBSERVER_USERNAME

The username of the webserver access authentication

  • WEBSERVER_PASSWORD

The password of the webserver access authentication

Known issue

Unable to see the OSD while playing a movie

See the issue here and dirty fix here

You can also do the fix manually with the following steps.

  • install device-tree-compiler
apt-get update
apt-get install device-tree-compiler 
  • find the dtb file of your machine

It usually located at /boot/dtbs/{your kernel version}/rockchip/rk3588{s}-{your machine model}.dtb, for example it is /boot/dtbs/6.1.75-vendor-rk35xx/rockchip/rk3588s-rock-5c.dtb for my Rock 5C. Then backup the original dtb file.

cd /boot/dtbs/6.1.75-vendor-rk35xx/rockchip/
cp -v rk3588s-rock-5c.dtb rk3588s-rock-5c.dtb.bak
  • extract dtc source file from dtb file
dtc -I dtb -O dts -o rk3588s-rock-5c.dtc rk3588s-rock-5c.dtb
  • edit your dtc file and comment out plane-mask and primary-plane
...
    // rockchip,plane-mask = <0x05>;
    // rockchip,primary-plane = <0x02>;
...
  • compile dts source file to dtb file
dtc -I dts -O dtb -o rk3588s-rock-5c.dtb rk3588s-rock-5c.dts
  • reboot the system
reboot

Contributing

Contributions are welcome! Please open an issue or submit a pull request.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Acknowledgements

  • ffmpeg-rockchip - FFmpeg with async and zero-copy Rockchip MPP & RGA support.