Report about Amlogic S905X4 HK1 RBOX X4

If you check the dts for sc2(S905X4) in CoreELEC’s kernel (inherently Amlogic’s 4.9 Linux kernel), it uses “amlogic, g12a-eth-dwmac” as the compatible string

While the dtb used for 5.4 Android kernel uses “amlogic,meson-axg-dwmac” as the compatible string:

And if you check the dwmac-meson (it reports to kernel as dwmac-meson6) and dwmac-meson8b in the kernel, of these two compatible strings only g12a- matches a driver and it’s dwmac-meson

And since it’s written in mesonsc2.dtsi which is included by all Aml dev boards (like ah212) and CE devices’ dtb, I don’t think the meson8b driver is ready to be used in 4.9 kernel… You could try to modify the compatible string in the dtb (just dtc decompile and compile) but I don’t think the driver will work

1 Like

7Jj, thanks for this explaination, even if i will need some time to understand that, i think it is something you developers already thinked about, and maybe the problem is elsewhere.

What i might try in the next days, is to hook up a USB3 HDD to the box, and transfer massive amounts of data over smb shares to and from it, i want to test, how fast and stable it is on android.

I now finished this test. I generated 512GiB file with random data, and transferred it over Gb LAN to FTP-server on android. Then i send it back from ftp-server over the network again. The md5sum of recieved file is still the same, so no error occoured. This at least proves, that the hardware can work without faults, even if i was not satisfied with the speed of ftp-server.

md5sum testfile >> testfile.md5 
[....@XXX-KDE Downloads]$ cat testfile.md5 
a6750e2cda3ae33318d5c3fffdb299e4  testfile
a6750e2cda3ae33318d5c3fffdb299e4  testfile

This is why I said we should wait for the 5.4 kernal that CE team is working on for the other devices. The new dtb didn’t change anything for me.

Holy Cow Batman, the CoreELEC group has added the last piece to this awesome firmware. I just noticed that there is now a “Reboot from eMMC/NAND”, and it works.
I thought this would be impossible to implement on the S905X4 processors.
Now this inexpensive device does everything except shine my shoes.

Now, I am trying to use the included Docker to create an HDHomeRun DVR engine. It is already running a Tvheadend DVR server.

A truly amazing piece of code for these boxes.
Kudos to the whole crew.

1 Like

@clarkss12 You know you can use HDHR tuners in TV Headend?

What does the HDHR DVR service do that TV Headend doesn’t? (Apologies - off topic for this thread)

I am running the Tvheadend server on this device already.

I just want to run the Hdhomerun DVR, to see if I can. Just to learn how to do it.

I use the full generic image below, it works.
Full kernel log:

1000M wire networ >> yes
5GHz WiFi works >> yes
Stock IR remote work >> NO
Front power LED turn green? >> NO

CoreELEC:****~ # dmesg | grep ‘eth%d: PHY ID’
[ 0.598280@0]- eth%d: PHY ID 937c4032 at 0 IRQ POLL (stmmac-0:00) active
[ 0.598284@0]- eth%d: PHY ID 937c4032 at 7 IRQ POLL (stmmac-0:07)

1 Like

Nice! This is the first report of a working JL2101 on a S905X4 box, would you mind also testing Portisch’s test image (just put it in the update folder and reboot) without the official driver?

The IR remote will not work natively, as intended, you need to download corresponding config from the repo or make one by yourself if none is found :

The LED though, it can’t work and there’s no workaround.

Use Portisch’s test image , kernel log:
1000M wire networ >> yes
5GHz WiFi works >> yes


Ethernet DHCP can not be accessed,The IP address obtained is169.

Please read this.

There are other reports of the built in 100Mb ethernet working so this is probably not a JL2101

[ 18.421444@0]d meson6-dwmac fdc00000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx

Sorry, the above feedback is not entirely correct.
The network cable I used for yesterday’s test has only 7 cores connected (total 8 cores), it may only work at 100M network speed, but it does get the correct IP.
But today when I tested with another 1 Gigabit Ethernet cable, I found that HK1 could not get the correct LAN IP address, even if I manually set the IP, it could not connect to the network.

kernel log(ssh with 5G WIFI):

  1. 19.5-Matrix_rc2 (Stable) CoreELEC-Amlogic-ng.arm-19.5-Matrix_rc2-Generic.img :
  2. CoreELEC-Amlogic-ng.arm-19.5-Matrix_devel_20220728001259-Generic.img (JLport – Google Drive):

It’s the JL2101 PHY working at 100Mbps, the PHY is indeed JL2101 if you check the PHY id, just not working at 1Gbps due to a faulty cable

Also from @empa43 's further test, the PHY at least works at 100Mbps, so you can at least get a working ethernet on a S905X4 box with JL2101PHY, even it’s only 100Mbps. Just use a 4-wire cable or connect it to a 100Mbps switch/router port, or limit it to 100Mbps through ethtool.

Although this might get the end-users confused (using 1gbit dtb for 100m ethernet), but it at least works now instead of not working at all

hi 7Ji,thanks for your help.
I’m new to COREELEC and can only do simple tests.
Do you think it’s possible to fix this problem to make the JL2101 work at 1000M?
Or is there anything else I can do.

I can confirm my device works at 100Mbs but I cannot confirm that is using the JL2101 and not the internal device. This does need the patches to control the eth0 device

I also changed the mac to the Android mac as I don’t like “fake” devices on my network so my /storage/.config/ look like

CoreELEChk:~ # cat .config/
ethtool -s eth0 speed 100 duplex full autoneg off
ifconfig eth0 down
ifconfig eth0 hw ether mac:address up

It’s not possible to use the internal PHY when there’s an external PHY as

  1. The MAC is physically wired to the JL2101 PHY, then to the RJ45 port, the internal PHY is not wired to the port at all (you can try to desolder the JL2101 PHY and use the dtb with internal PHY, the ethernet will not work at all since the RJ45 port is not connected to any PHY)
  2. The dtb defines the external PHY control GPIOs and other things, the internal PHY won’t be invoked with these operations, it’s not initialized at all


You still need the patch to properly initialize the MAC so it is delayed enough until JL2101 is ready. The delay in the driver is not needed only when the bootup itself is slow enough (for the first boot, since some files need to be written first before network is started; or you have a pretty slow drive)

I didn’t know that the internal phy was not available thanks. This eth0 interface is not that stable with dropped packets over 50Mbs though using generic phy.

Been testing the ability of this X4 device, and it seems to be very capable. Using the power of CoreELEC, this device can run the Tvheadend DVR server, and the Emby server at the same time.
For testing, I used the $20 USD onn. Android TV 4K UHD Streaming Device (only available in the US). Emby server running under CE, plays everything except LIVE TV. Perhaps I am missing a setting.
Also, most of my media is on external HDDs connected to a miniPC, so I had to mount those drives (what a pain).

Did some boring tests.
You can use a USB network card (RTL8156B, 2.5G) to connect to the network. May be running at 1000M rate.