November 27, 20241 yr Author Just in case you want to build your own kernel and choose a specific version (es 23.11): git clone --depth=1 --branch=v23.11 https://github.com/armbian/build Choose edge or current ./compile.sh kernel BOARD=rk3318-box EXPERT="yes" INSTALL_HEADERS=yes RELEASE=jammy BRANCH=edge Optional you can choose specific kernel version using KERNELBRANCH: ./compile.sh kernel BOARD=rk3318-box EXPERT="yes" INSTALL_HEADERS=yes RELEASE=jammy BRANCH=edge KERNELBRANCH="tag:v6.6.2" Compile is quite fast (few minutes). In folder you will find the deb pckgs to be installed: ls output/debs/ linux-dtb-edge-rockchip64_23.11.0-trunk_arm64__6.6.2-Sa06c-Df461-P65a8-C40f3Hfe66-HK01ba-Vc222-B1743-R448a.deb linux-headers-edge-rockchip64_23.11.0-trunk_arm64__6.6.2-Sa06c-Df461-P65a8-C40f3Hfe66-HK01ba-Vc222-B1743-R448a.deb linux-image-edge-rockchip64_23.11.0-trunk_arm64__6.6.2-Sa06c-Df461-P65a8-C40f3Hfe66-HK01ba-Vc222-B1743-R448a.deb Install all and reboot: sudo dpkg -i * Optional - compile u-boot: ./compile.sh uboot BOARD=rk3318-box EXPERT="yes" BRANCH=edge Edited November 27, 20241 yr by haven
November 29, 20241 yr Author The HDMI audio problem was a great opportunity to study how HDMI is detected and handled in rk3318 box! Initially I supposed it was a kernel problem and tried with many kernel version 6.1.63 - 6.2 - 6.6.2 - 6.6.39 - 6.6.47 - 6.6.60 (current or edge no matters), with poor results. Then discovered If I boot with HDMI cable disconnected and connect the cable after BOOT (15s after power-up) -> HDMI sound ok This pointed me towards the investigation of the boot process: if HDMI is connected after the u-boot process, it works like charm! How to disable HDMI detection in u-boot config? Get armbian sources and tools: git clone --depth=1 --branch=v23.11 https://github.com/armbian/build I used branch 23.11 to match kernel 6.6.2 Turned out that U-boot config can be changed only with a patch. ./compile.sh uboot-patch BOARD=rk3318-box BRANCH=edge Attached the patch I created for include/configs/evb_rk3328.h to dIsable video output in u-boot and use only console. u-boot-rockchip64-edge.patch +#define ROCKCHIP_DEVICE_SETTINGS \ + "stdin=serial,usbkbd\0" \ + "stdout=serial,vidconsole\0" \ + "stderr=serial,vidconsole\0" + Placed the patch in: build/patch/u-boot/u-boot-rockchip64 Then rebuild u-boot only: ./compile.sh uboot ARTIFACT_IGNORE_CACHE=yes BOARD=rk3318-box BRANCH=edge During the process you will see which patches are applied, hopefully without any error. This will create a deb package in build/output/debs: linux-u-boot-rk3318-box-edge_23.11.0-trunk_arm64__2022.07-Se092-P44dd-H8c72-Ve9d0-B1179-R448a.deb Install with dpkg: sudo dpkg -i linux-u-boot-rk3318-box-edge_23.11.0-trunk_arm64__2022.07-Se092-P44dd-H8c72-Ve9d0-B1179-R448a.deb This will create 2 files: ls /usr/lib/linux-u-boot-edge-rk3318-box/ idbloader.img u-boot.itb Last step - need to flash the new u-boot into boot partition ( /dev/mmcblk0 ) sudo dd if=idbloader.img of=/dev/mmcblk0 seek=64 conv=notrunc sudo dd if=u-boot.itb of=/dev/mmcblk0 seek=16384 conv=notrunc Done! Reboot and I see a black screen during u-boot. Soon after the kernel is loaded, HDMI is activated and works properly, both video and audio. u-boot-rockchip64-edge.patch
November 30, 20241 yr Author Modified instruction for H96 Max rk3318, with armbian installed to internal emmc (/dev/mmcblk2) kernel 6.60 current git clone --depth=1 --branch=main https://github.com/armbian/build Create patch: ./compile.sh uboot-patch BOARD=rk3318-box BRANCH=current During patch process, modify config: cd build/cache/sources/u-boot-worktree/u-boot/v2024.07/configs sudo nano rk3318-box_defconfig CONFIG_VIDEO=n After creation, move patch: mv build/output/patch/u-boot-rockchip64-current.patch build/patch/u-boot/v2024.07/ Compile u-boot: ./compile.sh uboot ARTIFACT_IGNORE_CACHE=yes BOARD=rk3318-box BRANCH=current Install with dpkg: cd output/debs sudo dpkg -i linux-u-boot-rk3318-box-current_24.11.0-trunk_arm64__2024.07-S3f77-P1c9c-H4674-Vfe58-Bda0a-R448a.deb Flash uboot to boot partition: cd /usr/lib/linux-u-boot-current-rk3318-box/ sudo dd if=idbloader.img of=/dev/mmcblk2 seek=64 conv=notrunc sudo dd if=u-boot.itb of=/dev/mmcblk2 seek=16384 conv=notrunc Done! Reboot and I see a black screen during u-boot.
December 1, 20241 yr @haven did you just try a different TV/monitor to see if the missing audio persists? In my case I tested and checked I have HDMI audio working even with u-boot video output enabled.
December 22, 20241 yr Author yes, tried different tv/monitor always with the same problem, solved by disabling video driver in u-boot.
January 16, 20251 yr Apparently I installed the wrong armbian image directly on EMMC and now the TV box won't start. The multitool also won't start from the SD card. How do I reset it? I read that I can short-circuit some contacts, but where can I find them specifically on our device? Edited January 16, 20251 yr by Миха Тал
March 14, 20251 yr @Миха Тал I had to short pins and I wrote this guide for myself https://github.com/CtrlValCanc/X88-pro-10-unbrick-linux let me know if you find it useleful (if you still need it)
May 18, 20251 yr Good afternoon jock! I'm asking for your help again. The X88 pro 10 128 Gb(X88 PRO-B-RK3318-D4-V1.6) box does not want to work with an LED screen. Arabian-config led-config2 is set, the screen does not respond. There is no display folder in the /sys/class/leds directory. When installing the led-config5, the service works, the check starts, but the display does not light up at all! How do I set it up? Box H96 max It works great on this version and led-config5. 4.036378] spi_gpio i2c-aux-display: cs36 >= max 1 [ 4.036421] spi_master spi0: spi_device register error /i2c-aux-display/aux-display-controller@24 [ 4.036471] spi_master spi0: Failed to create SPI device for /i2c-aux-display/aux-display-controller@24 v24.11 rolling for RK3318 Box running Armbian Linux 6.11.5-edge-rockchip64 Packages: Debian stable (bookworm) Support: for advanced users (rolling release) Performance: Load: 32% Up time: 12 min Memory usage: 17% of 3.88G CPU temp: 59°C Usage of /: 6% of 114G I attached a photo of the led display chip (the outputs from the led display go to it) AIP16283BT35 (maybe it tm1628 ?) IMG_4802.heic Edited May 19, 20251 yr by Vidhome
November 9, 2025Nov 9 Looking for help getting mine running I have a very basic understanding of this device and am learning Linux on my own if someone could message me so we can work through this I would love to get this running
September 16Sep 16 Author Update on a H96 box Rk3318 and openvfd. After disassembly of the original android firmware i have: Controller/display: FD628 Interfaccia: 2-wire CLK: GPIO2_22 = GPIO86 DAT: GPIO2_21 = GPIO85 STB/CS: not used Bit order: MSB first START/STOP: type I²C Android sequence: correctly relpicated H96 Max use a protocol FD628 2-wire H96 Max RK3318 / HS2734C Controller : FD628 Bus : Proprietary 2-wire CLK : GPIO2_22 = GPIO86 DAT : GPIO2_21 = GPIO85 STB/CS : None Bit order : MSB first Digit positions: 0x6E → digit 1 0x6C → digit 2 0x6A → digit 3 0x68 → digit 4 Segments: bit0 = A bit1 = B bit2 = C bit3 = D bit4 = E bit5 = F bit6 = G Verified examples: 1 = 0x06 2 = 0x5B 3 = 0x4F 4 = 0x66 BOOT: b = 0x7C o = 0x5C t = 0x78 ``` Therefore, the GPIO pins, bit order, communication protocol, digit addresses, and segment mapping are now confirmed to be correct. continues.. Edited September 16Sep 16 by haven
September 19Sep 19 Author So on H96Max 3318, the working configuration file for Openvfd is: /etc/modprobe.d/openvfd.conf options openvfd vfd_gpio_clk="4,0x16,0" options openvfd vfd_gpio_dat="4,0x15,0" options openvfd vfd_gpio_stb="0,0,0xFF" options openvfd vfd_chars="0,4,3,2,1" options openvfd vfd_dot_bits="0,1,3,2,4,5,6" #ID Display type #0x03 A display like on the A95X R2 (or the Abox A1 Max). <-- #.2 Reserved - must be 0. #.3 flags #.4 0 - > FD628 and compatible controllers options openvfd vfd_display_type="0x02,0x00,0x00,0x06" But GPIO2_22 (global GPIO86) is claimed by the spi-gpio driver for the Device Tree node i2c-aux-display Device Tree │ └── /i2c-aux-display compatible = "spi-gpio" │ ▼ kernel spi_gpio driver │ ├── GPIO2_19 → SCK ├── GPIO2_22 → MOSI ← GPIO86 is claimed here └── GPIO2_18 → CS i2c-aux-display { compatible = "spi-gpio"; sck-gpios = <... 0x13 ...>; /* GPIO2_19 */ mosi-gpios = <... 0x16 ...>; /* GPIO2_22 */ cs-gpios = <... 0x12 ...>; /* GPIO2_18 */ }; So we have to unbind with: echo i2c-aux-display | sudo tee /sys/bus/platform/drivers/spi_gpio/unbind before 0x15 → GPIO2_21 → unused 0x16 → GPIO2_22 → "mosi" [used] after GPIO2_21 → unused GPIO2_22 → unused we might want to modify the DTS or just unbind it before loading the openvfd module: /lib/systemd/system/openvfd.service [Unit] Description=OpenVFD Service ConditionPathExists=/proc/device-tree/openvfd/ [Service] ExecStart=/bin/sh -c '[ `cat /proc/device-tree/openvfd/compatible` = "open,vfd" ] && echo i2c-aux-display | sudo tee /sys/bus/platform/drivers/spi_gpio/unbind; /sbin/modprobe openvfd; /usr/sbin/OpenVFDService' ExecStop=/bin/kill -TERM $MAINPID ExecStopPost=-/usr/sbin/rmmod openvfd RemainAfterExit=yes [Install] WantedBy=basic.target Attached OpenVfd.c for this box. OpenVFDService.c
September 19Sep 19 @haven openvfd is long time deprecated. Armbian images have tm16xx driver which is far better and superior and x88 pro is supported out of the box via device tree overlay.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.