Skip to content
View in the app

A better way to browse. Learn more.

Armbian Community Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Rockchip Rk3318 X88 pro 10 - in progress

Featured Replies

  • 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 by haven

  • 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

  • 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.

  • Author

yes, tried different tv/monitor always with the same problem, solved by disabling video driver in u-boot. 

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 by Миха Тал

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 by Vidhome

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 

  • 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 by haven

  • 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

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.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.