Jump to content

Helios64 - Armbian 23.08 Bookworm issues (solved)


Go to solution Solved by ebin-dev,

Recommended Posts

Posted (edited)
  On 1/14/2024 at 5:19 PM, OdyX said:

I think this is caused by https://github.com/armbian/build/commit/1f4df4c41fe33f9822ca2f42d14a2a445e27aed7 ; Rockchip64's 'edge' kernels were bumped to 6.7.

Expand  

 

Bumping rockchip64 current to linux 6.6 (and edge to 6.7) is actually good news. But I do not think that this explains why the entire beta/pool/main folder disappeared from a mirror (but it does not matter).

 

If nothing else is changed (keep fingers crossed), then the new Armbian built rockchip64 6.6.x and 6.7.y kernels should appear i.e. on imola.armbian.com/beta/pool/main/l/ and reappear on the mirrors.

Edited by ebin-dev
Posted
  On 1/14/2024 at 7:41 PM, ebin-dev said:

on imola.armbian.com/beta/pool/main/l/ and reappear on the mirrors.

Expand  


Another possible infra related issue. This mirror is temporally out of service, possible out of sync / order. You should always start with beta.armbian.com or dl.armbian.com directly. They are behind redirector which gets data from database while (double) checking for health and sync status.

Posted (edited)

Newer kernel versions of the 6.6 branch (6.6.9 to 6.6.12) would not appear to run stable anymore on helios64 (6.6.8 is stable - using the ondemand governor in my use case).

 

In kernel versions 6.6.9 to 6.6.12 energy aware scheduling (EAS) is disabled automatically - it can now only be used combination with the schedutil governor. But using schedutil is currently not a good option.

Edited by ebin-dev
Posted (edited)

@ebin-dev the most stable setting for me is the following, so far the Helios64 has been running for over 92 days...

helios@helios64:~# cat /etc/default/cpufrequtils
ENABLE="true"
GOVERNOR=ondemand
MAX_SPEED=1200000
MIN_SPEED=408000
helios@helios64:~#
helios@helios64:~# uptime
 18:54:55 up 92 days, 21:20,  1 user,  load average: 0.00, 0.00, 0.00

 

Edited by TDCroPower
Posted (edited)

@ebin-dev Am I correct that the 6.6.8 debs you kindly share from your Dropbox do not contain the hs400 mmc speed, extended strobe and CPU cache patches to the DTB?  I worked out how to patch the mmc things but couldn't work out how to apply the cache patches shown in the kernel list dtsi patch set.

 

In other news the 6.6.8 version is probably the best I've had on my system and now typically lasts 3 days between crashes. It was a lot worse until I realised that I was using the gmac ethernet port and not the r8152 2.5Gb one and that was causing a lot more instability. The r8152 does timeout sometimes though even with the mainline firmware and offloading enabled.

 

I do use the system as an NFS server though with several systems connected.

Edited by TheGuv
Fixup link
Posted (edited)
  On 1/23/2024 at 12:31 PM, TheGuv said:

Am I correct that the 6.6.8 debs you kindly share from your Dropbox do not contain the hs400 mmc speed, extended strobe and CPU cache patches to the DTB?

Expand  

 

The 6.6.8 debs were downloaded from an Armbian mirror and are not modified. Everything you need is explained here: in particular that NFS causes trouble with 6.6.x kernels and that 6.1.71 should be used instead or 5.15.93.

 

To implement hs400 and L2 cache information you can use 'dtc'. For your convenience I attached the dtb for 6.6.8 and 5.15.93 (just copy the matching one to /boot/dtb/rockchip/rk3399-kobol-helios64.dtb).

 

It is essential to flash the bootloader to emmc after you have installed the kernel debs, to perform a cold boot and to run 'sbc-bench -r' at least once.

rk3399-kobol-helios64.dtb-5.15.93-L2-hs400 rk3399-kobol-helios64.dtb-6.6.8-L2-hs400

Edited by ebin-dev
Posted (edited)

ebin-dev thank you so much. I now see how to add the l2-cache.

The result is much the same with no more than 3 days of uptime before a random reboot occurs, or (rarely) a frozen box with a red system light. I did indeed flash the bootloader via the armbian-config update bootloader (option 5).

 

I'm using the bootloader from linux-u-boot-edge-helios64_22.02.1_arm64.deb

 

I'm still seeing r8152 USB timeouts like this:

2024-01-30T04:16:06.975984+00:00 helios64 kernel: [42578.782562] r8152 2-1.4:1.0 enx646266d00c4f: Tx timeout
2024-01-30T04:16:06.983800+00:00 helios64 kernel: [42578.786383] r8152 2-1.4:1.0 enx646266d00c4f: Tx status -2
2024-01-30T04:16:06.983874+00:00 helios64 kernel: [42578.786571] r8152 2-1.4:1.0 enx646266d00c4f: Tx status -2
2024-01-30T04:16:06.983886+00:00 helios64 kernel: [42578.786710] r8152 2-1.4:1.0 enx646266d00c4f: Tx status -2
2024-01-30T04:16:06.983897+00:00 helios64 kernel: [42578.786812] r8152 2-1.4:1.0 enx646266d00c4f: Tx status -2
2024-01-30T04:16:09.103853+00:00 helios64 kernel: [42580.906680] r8152-cfgselector 2-1.4: reset SuperSpeed USB device number 4 using xhci-hcd


and I am using the rtl_nic firmware from git.kernel.org.

 

I guess it could be NFS causing problems although the network would have been quiet at 4am.

 

I'll give 5.1.71 a whirl.

Edited by TheGuv
fix link
Posted
  On 1/28/2024 at 7:16 PM, alchemist said:

I am testing kernel 6.7 and I don't have crashes for now. It seems stable. Will confirm it after some weeks of operations.

Expand  

 

I copied the 6.7.2 deb files yesterday (trunk-480) and will test them once I am back home next week.

 

  On 1/30/2024 at 12:56 PM, TheGuv said:

I'll give 5.1.71 a whirl.

Expand  

 

6.1.71 or 5.15.93 should be fine. You could also try 6.7.2 🙂

Posted

Currently testing 6.7.2 and this might be the most reliable kernel for me yet currently on 4 days (!) uptime.

 

The only issue I am experiencing is Tx timeout on the r8152 ethernet port which causes a pause for a couple of seconds e.g.:

[285266.096001] r8152 2-1.4:1.0 enx646266d00c4f: Tx timeout
[285266.100079] r8152 2-1.4:1.0 enx646266d00c4f: Tx status -2
[285266.100157] r8152 2-1.4:1.0 enx646266d00c4f: Tx status -2
[285266.100230] r8152 2-1.4:1.0 enx646266d00c4f: Tx status -2
[285266.100375] r8152 2-1.4:1.0 enx646266d00c4f: Tx status -2
[285268.220401] r8152-cfgselector 2-1.4: reset SuperSpeed USB device number 3 using xhci-hcd

 

I am using firmware from the kernel source tree:

[   13.639966] usbcore: registered new device driver r8152-cfgselector
[   13.853975] r8152-cfgselector 2-1.4: reset SuperSpeed USB device number 3 using xhci-hcd
[   14.076359] r8152 2-1.4:1.0: load rtl8156a-2 v2 04/27/23 successfully
[   14.132728] r8152 2-1.4:1.0 eth0: v1.12.13
[   14.132950] usbcore: registered new interface driver r8152

 

The kernel device tree does not appear to contain the patches for either the eMMC speed and strobe fixes, or the CPU cache. I tried patching them myself and things didn't end well, but I'm no expert and probably things are differen for 6.7.x

 

Posted

May be it is not a fault but an upstream change that leads to issues with hs400 again ?

 

Good to hear that 6.7.x is quite stable. The remaining issue (short timeout) with the mainline r8152 driver can be reduced (eliminated) if other huge tasks do not have to compete with it. You could use taskset to assign other huge tasks to cpu5 and leave cpu4 to handle i/o.

Posted

OK, so I had to reboot soon after the above post due to the server not being responsive. it was still alive with occasional disk activity and the heartbeat LED was happily flashing with the correct cadence. Looks like the r8152 timed out again and could not recover.  Not a lot of info to go on, but I don't think it was a busy server at the time.

 

Are the DMA errors what are normally seen with an overloaded core?

 

2024-02-05T03:08:32.752569+00:00 helios64 kernel: [40379.321499] xhci-hcd xhci-hcd.0.auto: WARN Event TRB for slot 3 ep 3 with no TDs queued?
2024-02-05T03:08:32.752783+00:00 helios64 kernel: [40379.321554] xhci-hcd xhci-hcd.0.auto: WARN Event TRB for slot 3 ep 3 with no TDs queued?
2024-02-05T03:08:32.765068+00:00 helios64 kernel: [40379.337314] xhci-hcd xhci-hcd.0.auto: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 3 comp_code 1
2024-02-05T03:08:32.765234+00:00 helios64 kernel: [40379.337362] xhci-hcd xhci-hcd.0.auto: Looking for event-dma 00000000f5119f70 trb-start 00000000f5119f50 trb-end 00000000f5119f50 seg-start 00000000f5119000 seg-end 00000000f5119ff0
2024-02-05T03:08:32.765245+00:00 helios64 kernel: [40379.337421] xhci-hcd xhci-hcd.0.auto: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 3 comp_code 1
2024-02-05T03:08:32.765299+00:00 helios64 kernel: [40379.337445] xhci-hcd xhci-hcd.0.auto: Looking for event-dma 00000000f5119f80 trb-start 00000000f5119f50 trb-end 00000000f5119f50 seg-start 00000000f5119000 seg-end 00000000f5119ff0
2024-02-05T03:08:32.765396+00:00 helios64 kernel: [40379.337485] xhci-hcd xhci-hcd.0.auto: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 3 comp_code 1
2024-02-05T03:08:32.765466+00:00 helios64 kernel: [40379.337510] xhci-hcd xhci-hcd.0.auto: Looking for event-dma 00000000f5119f90 trb-start 00000000f5119f50 trb-end 00000000f5119f50 seg-start 00000000f5119000 seg-end 00000000f5119ff0
2024-02-05T03:08:32.765473+00:00 helios64 kernel: [40379.337549] xhci-hcd xhci-hcd.0.auto: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 3 comp_code 1
2024-02-05T03:08:32.765476+00:00 helios64 kernel: [40379.337572] xhci-hcd xhci-hcd.0.auto: Looking for event-dma 00000000f5119fa0 trb-start 00000000f5119f50 trb-end 00000000f5119f50 seg-start 00000000f5119000 seg-end 00000000f5119ff0
2024-02-05T03:08:32.765480+00:00 helios64 kernel: [40379.337606] xhci-hcd xhci-hcd.0.auto: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 3 comp_code 1
2024-02-05T03:08:32.765528+00:00 helios64 kernel: [40379.337629] xhci-hcd xhci-hcd.0.auto: Looking for event-dma 00000000f5119fb0 trb-start 00000000f5119f50 trb-end 00000000f5119f50 seg-start 00000000f5119000 seg-end 00000000f5119ff0
2024-02-05T03:08:32.765536+00:00 helios64 kernel: [40379.337663] xhci-hcd xhci-hcd.0.auto: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 3 comp_code 1
2024-02-05T03:08:32.766028+00:00 helios64 kernel: [40379.337686] xhci-hcd xhci-hcd.0.auto: Looking for event-dma 00000000f5119fc0 trb-start 00000000f5119f50 trb-end 00000000f5119f50 seg-start 00000000f5119000 seg-end 00000000f5119ff0
2024-02-05T03:08:32.766039+00:00 helios64 kernel: [40379.337719] xhci-hcd xhci-hcd.0.auto: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 3 comp_code 1
2024-02-05T03:08:32.766043+00:00 helios64 kernel: [40379.337742] xhci-hcd xhci-hcd.0.auto: Looking for event-dma 00000000f5119fd0 trb-start 00000000f5119f50 trb-end 00000000f5119f50 seg-start 00000000f5119000 seg-end 00000000f5119ff0
2024-02-05T03:08:32.766048+00:00 helios64 kernel: [40379.337781] xhci-hcd xhci-hcd.0.auto: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 3 comp_code 1
2024-02-05T03:08:32.766052+00:00 helios64 kernel: [40379.337805] xhci-hcd xhci-hcd.0.auto: Looking for event-dma 00000000f5119fe0 trb-start 00000000f5119f50 trb-end 00000000f5119f50 seg-start 00000000f5119000 seg-end 00000000f5119ff0
2024-02-05T03:08:32.766057+00:00 helios64 kernel: [40379.337839] xhci-hcd xhci-hcd.0.auto: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 3 comp_code 1
2024-02-05T03:08:32.766061+00:00 helios64 kernel: [40379.337862] xhci-hcd xhci-hcd.0.auto: Looking for event-dma 00000000f5119ff0 trb-start 00000000f5119f50 trb-end 00000000f5119f50 seg-start 00000000f5119000 seg-end 00000000f5119ff0
2024-02-05T03:08:32.766065+00:00 helios64 kernel: [40379.337895] xhci-hcd xhci-hcd.0.auto: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 3 comp_code 1
2024-02-05T03:08:32.766069+00:00 helios64 kernel: [40379.337918] xhci-hcd xhci-hcd.0.auto: Looking for event-dma 00000000f511a000 trb-start 00000000f5119f50 trb-end 00000000f5119f50 seg-start 00000000f5119000 seg-end 00000000f5119ff0
024-02-05T03:08:40.392810+00:00 helios64 kernel: [40386.965499] ------------[ cut here ]------------
2024-02-05T03:08:40.392875+00:00 helios64 kernel: [40386.965584] NETDEV WATCHDOG: enx646266d00c4f (r8152): transmit queue 0 timed out 7628 ms
2024-02-05T03:08:40.392883+00:00 helios64 kernel: [40386.965775] WARNING: CPU: 0 PID: 0 at net/sched/sch_generic.c:525 dev_watchdog+0x29c/0x2b4
2024-02-05T03:08:40.395293+00:00 helios64 kernel: [40386.965831] Modules linked in: wireguard libchacha20poly1305 poly1305_neon libcurve25519_generic ip6_udp_tunnel udp_tunnel tls xt_MASQUERADE xt_nat xt_tcpudp iptable_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 iptable_filter bpfilter zram binfmt_misc snd_soc_hdmi_codec snd_soc_rockchip_i2s hantro_vpu rockchip_vdec(C) snd_soc_core v4l2_vp9 snd_compress videobuf2_dma_contig snd_pcm_dmaengine rockchip_rga v4l2_h264 snd_pcm leds_pwm videobuf2_dma_sg v4l2_mem2mem pwm_fan panfrost videobuf2_memops gpio_charger gpu_sched videobuf2_v4l2 videodev drm_shmem_helper videobuf2_common snd_timer snd mc rk_crypto rng_core soundcore gpio_beeper cpufreq_dt sg lm75 ledtrig_netdev nfsd drivetemp auth_rpcgss nfs_acl lockd grace dm_mod sunrpc ip_tables x_tables autofs4 xfs efivarfs raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx raid0 multipath linear cdc_ncm cdc_ether usbnet raid1 r8152 md_mod realtek fusb302 tcpm typec dwmac_rk stmmac_platform stmmac pcs_xpcs adc_keys
2024-02-05T03:08:40.396875+00:00 helios64 kernel: [40386.966750] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G         C         6.7.2-edge-rockchip64 #3
2024-02-05T03:08:40.396885+00:00 helios64 kernel: [40386.966786] Hardware name: Helios64 (DT)
2024-02-05T03:08:40.396891+00:00 helios64 kernel: [40386.966797] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
2024-02-05T03:08:40.396897+00:00 helios64 kernel: [40386.966820] pc : dev_watchdog+0x29c/0x2b4
2024-02-05T03:08:40.396903+00:00 helios64 kernel: [40386.966852] lr : dev_watchdog+0x29c/0x2b4
2024-02-05T03:08:40.396908+00:00 helios64 kernel: [40386.966879] sp : ffff800080003dc0
2024-02-05T03:08:40.396914+00:00 helios64 kernel: [40386.966893] x29: ffff800080003dc0 x28: ffff800080ec96fc x27: ffff800080003ec0
2024-02-05T03:08:40.396920+00:00 helios64 kernel: [40386.966940] x26: ffff800081849008 x25: 0000000000001dcc x24: ffff800081ba7000
2024-02-05T03:08:40.396927+00:00 helios64 kernel: [40386.966986] x23: 0000000000000000 x22: ffff0000f570b41c x21: ffff0000f570b000
2024-02-05T03:08:40.396933+00:00 helios64 kernel: [40386.967030] x20: ffff0000f568aa00 x19: ffff0000f570b4c8 x18: ffffffffffffffff
2024-02-05T03:08:40.396938+00:00 helios64 kernel: [40386.967076] x17: 64656d6974203020 x16: 6575657571207469 x15: 6d736e617274203a
2024-02-05T03:08:40.396944+00:00 helios64 kernel: [40386.967121] x14: 2932353138722820 x13: 0000000000000377 x12: 00000000ffffffea
2024-02-05T03:08:40.397021+00:00 helios64 kernel: [40386.967166] x11: 00000000ffffefff x10: 00000000ffffefff x9 : ffff800081c26668
2024-02-05T03:08:40.397105+00:00 helios64 kernel: [40386.967211] x8 : 0000000000017fe8 x7 : c0000000ffffefff x6 : 0000000005000000
2024-02-05T03:08:40.397115+00:00 helios64 kernel: [40386.967255] x5 : 0000000000000001 x4 : 0000000000000040 x3 : 0000000000000001
2024-02-05T03:08:40.397121+00:00 helios64 kernel: [40386.967298] x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff800081bb4500
2024-02-05T03:08:40.397126+00:00 helios64 kernel: [40386.967344] Call trace:
2024-02-05T03:08:40.397131+00:00 helios64 kernel: [40386.967356]  dev_watchdog+0x29c/0x2b4
2024-02-05T03:08:40.397149+00:00 helios64 kernel: [40386.967387]  call_timer_fn+0x34/0x1c0
2024-02-05T03:08:40.397157+00:00 helios64 kernel: [40386.967420]  __run_timers.part.0+0x228/0x2f4
2024-02-05T03:08:40.397163+00:00 helios64 kernel: [40386.967451]  run_timer_softirq+0x48/0x84
2024-02-05T03:08:40.397168+00:00 helios64 kernel: [40386.967481]  __do_softirq+0x150/0x3e4
2024-02-05T03:08:40.397173+00:00 helios64 kernel: [40386.967505]  ____do_softirq+0x10/0x1c
2024-02-05T03:08:40.397178+00:00 helios64 kernel: [40386.967533]  call_on_irq_stack+0x24/0x4c
2024-02-05T03:08:40.397183+00:00 helios64 kernel: [40386.967558]  do_softirq_own_stack+0x1c/0x2c
2024-02-05T03:08:40.397188+00:00 helios64 kernel: [40386.967584]  irq_exit_rcu+0x9c/0xcc
2024-02-05T03:08:40.397193+00:00 helios64 kernel: [40386.967616]  el1_interrupt+0x38/0x68
2024-02-05T03:08:40.397198+00:00 helios64 kernel: [40386.967644]  el1h_64_irq_handler+0x18/0x24
2024-02-05T03:08:40.397265+00:00 helios64 kernel: [40386.967671]  el1h_64_irq+0x64/0x68
2024-02-05T03:08:40.397277+00:00 helios64 kernel: [40386.967693]  cpuidle_enter_state+0xc4/0x4bc
2024-02-05T03:08:40.397283+00:00 helios64 kernel: [40386.967722]  cpuidle_enter+0x38/0x50
2024-02-05T03:08:40.397287+00:00 helios64 kernel: [40386.967749]  do_idle+0x1fc/0x270
2024-02-05T03:08:40.397292+00:00 helios64 kernel: [40386.967779]  cpu_startup_entry+0x34/0x3c
2024-02-05T03:08:40.397297+00:00 helios64 kernel: [40386.967807]  kernel_init+0x0/0x1e0
2024-02-05T03:08:40.397302+00:00 helios64 kernel: [40386.967835]  arch_post_acpi_subsys_init+0x0/0x8
2024-02-05T03:08:40.397360+00:00 helios64 kernel: [40386.967865]  start_kernel+0x6c4/0x8fc
2024-02-05T03:08:40.397372+00:00 helios64 kernel: [40386.967891]  __primary_switched+0xb4/0xbc
2024-02-05T03:08:40.397377+00:00 helios64 kernel: [40386.967925] ---[ end trace 0000000000000000 ]---
2024-02-05T03:08:40.397383+00:00 helios64 kernel: [40386.967975] r8152 2-1.4:1.0 enx646266d00c4f: Tx timeout
2024-02-05T03:08:45.516397+00:00 helios64 kernel: [40392.085520] xhci-hcd xhci-hcd.0.auto: xHCI host not responding to stop endpoint command
2024-02-05T03:08:45.516458+00:00 helios64 kernel: [40392.085569] xhci-hcd xhci-hcd.0.auto: xHCI host controller not responding, assume dead
2024-02-05T03:08:45.516467+00:00 helios64 kernel: [40392.085685] xhci-hcd xhci-hcd.0.auto: HC died; cleaning up
2024-02-05T03:08:45.516472+00:00 helios64 kernel: [40392.085776] usb 1-1: USB disconnect, device number 2
2024-02-05T03:08:45.516477+00:00 helios64 kernel: [40392.087845] usb 2-1: USB disconnect, device number 2
2024-02-05T03:08:45.516482+00:00 helios64 kernel: [40392.087878] r8152-cfgselector 2-1.4: USB disconnect, device number 3
2024-02-05T03:08:45.516487+00:00 helios64 kernel: [40392.088121] r8152 2-1.4:1.0 enx646266d00c4f: Tx status -108
2024-02-05T03:08:45.516494+00:00 helios64 kernel: [40392.088156] r8152 2-1.4:1.0 enx646266d00c4f: Tx status -108
2024-02-05T03:08:45.516501+00:00 helios64 kernel: [40392.088182] r8152 2-1.4:1.0 enx646266d00c4f: Tx status -2
2024-02-05T03:08:45.516508+00:00 helios64 kernel: [40392.088229] r8152 2-1.4:1.0 enx646266d00c4f: Tx status -108
2024-02-05T03:08:45.516513+00:00 helios64 kernel: [40392.088416] r8152 2-1.4:1.0 enx646266d00c4f: Get ether addr fail

 

Posted

I tried armbian built 6.7.4 without any modifications but it crashes almost immediately on my system. Even without hs400.

 

The netdev watchdog message looks like the timeout caused by the mainline r8152 driver. Have never seen those events occurring before 'cut here'.

Posted (edited)

Hello @ebin-dev,

 

Should I follow your procedure and therefore install the version Armbian_23.5.4_Helios64_bookworm_current_6.1.36.img.xz or if I install the latest version available Armbian_23.11.1_Helios64_bookworm_current_6.1.63.img.xz this directly corrects the problems ? Currently I have no system on my Helios64 server.

 

Thank you for your help 🙂

Edited by Flolm
Posted (edited)

@FlolmI am currently also reinstalling a Helios64 and following the instructions of  @ebin-dev from here.

As soon as i'm done i'll share a more detailed tutorial for dummies ;)

 

edit:

thx to @ebin-dev for your instructions, I was able to run it successfully on my Helios64 and have written down the individual steps in more detail so that others can also do it without major problems.

 

1. image Armbian_23.5.4_Helios64_bookworm_current_6.1.36 flashing:

Download and flash the image on your microSD with balenaEtcher or something similar...

https://fi.mirror.armbian.de/archive/helios64/archive/Armbian_23.5.4_Helios64_bookworm_current_6.1.36.img.xz

 

2. set CPU limits:

Run armbian-config

-> System

-> CPU

And set:

Min CPU speed = 408000 MHz

Max CPU speed = 1200000 MHz

CPU governor = on demand

 

3. disable Armbian Updates:

you can either rename the source file or deactivate the line in the file with # at the beginning...

root@helios64:~# cd /etc/apt/sources.list.d

root@helios64:/etc/apt/sources.list.d# ls -l
total 4
-rw-rw-r-- 1 root root 117 Jun 30 2023 armbian.list

root@helios64:/etc/apt/sources.list.d# mv armbian.list armbian.list.disabled

root@helios64:/etc/apt/sources.list.d# ls -l
total 4
-rw-rw-r-- 1 root root 117 Jun 30 2023 armbian.list.disabled

root@helios64:/etc/apt/sources.list.d# cat armbian.list.disabled
# deb [signed-by=/usr/share/keyrings/armbian.gpg] http://apt.armbian.com bookworm main bookworm-utils bookworm-desktop

 

4. Download and copy rtl_nic firmware files:

Download this 9 files...

rtl8125b-2.fw
rtl8153a-2.fw
rtl8153a-3.fw
rtl8153a-4.fw
rtl8153b-2.fw
rtl8153c-1.fw
rtl8156a-2.fw
rtl8156b-2.fw
rtl8168h-2.fw

... from here...

https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/rtl_nic

... and copy & replace the files to the directory /lib/firmware/rtl_nic on your helios64.

 

5. Upgrade kernel to 6.6.8:

Download the 6.6.8 deb files from here...

https://www.dropbox.com/scl/fi/9s2saibn9oezqmhfwyu3i/debs-6.6.8.zip?rlkey=hkkrxjelitsto0f0zw6wft6pq&dl=1

... and copy the 3 files to your helios64.

Execute these 4 commands one after the other...

apt install libelf-dev
dpkg -i linux-dtb-edge-rockchip64_24.2.0-trunk.225_arm64__6.6.8-S4c96-Dbc51-Pb65c-C891dHfe66-HK01ba-Vc222-B1743-R448a.deb
dpkg -i linux-image-edge-rockchip64_24.2.0-trunk.225_arm64__6.6.8-S4c96-Dbc51-Pb65c-C891dHfe66-HK01ba-Vc222-B1743-R448a.deb
dpkg -i linux-headers-edge-rockchip64_24.2.0-trunk.225_arm64__6.6.8-S4c96-Dbc51-Pb65c-C891dHfe66-HK01ba-Vc222-B1743-R448a.deb

 

6. update bootloader on eMMC:

Download the deb file from here...

https://imola.armbian.com/apt/pool/main/l/linux-u-boot-helios64-edge/linux-u-boot-edge-helios64_22.02.1_arm64.deb

... and copy the file to your helios64.

Execute these 6 commands one after the other...

dpkg -x linux-u-boot-edge-helios64_22.02.1_arm64.deb linux-u-boot-edge-helios64_22.02.1_arm64/
cd linux-u-boot-edge-helios64_22.02.1_arm64/usr/lib/linux-u-boot-edge-helios64_22.02.1_arm64/
dd if=idbloader.bin of=/dev/mmcblk1 seek=64 conv=notrunc
dd if=uboot.img of=/dev/mmcblk1 seek=16384 conv=notrunc
dd if=trust.bin of=/dev/mmcblk1 seek=24576 conv=notrunc
reboot now

 

7. Set nic offload options:

Select the LAN port you are using...

For end0 - 1 GB Port: ethtool -K end0 tso on gso on gro on

For eth1 - 2,5 GB Port: ethtool -K eth1 tso on gso on gro on

... and change the value in the ethtool command after the "-K".

Execute the command ...

root@helios64:~# ethtool -K end0 tso on gso on gro on
Actual changes:
tx-tcp-segmentation: off [requested on]
tx-tcp-ecn-segmentation: off [requested on]
tx-tcp-mangleid-segmentation: off [requested on]
tx-tcp6-segmentation: off [requested on]

 

8. Fix hs400 support and L2 cache information:

Download the dtb file from here...

https://www.dropbox.com/scl/fi/nif2k0027whxky25djqll/rk3399-kobol-helios64.dtb-6.6.8-L2-hs400.zip?rlkey=zq7zw91oem4ugmgmaqfyuxqsa&dl=1

... extract the rk3399-kobol-helios64.dtb-6.6.8-L2-hs400.zip

... rename rk3399-kobol-helios64.dtb-6.6.8-L2-hs400 to rk3399-kobol-helios64.dtb 

... copy & replace the rk3399-kobol-helios64.dtb into /boot/dtb/rockchip

 

9. execute sbc-bench script:

Execute these 3 commands one after the other...

wget https://raw.githubusercontent.com/ThomasKaiser/sbc-bench/master/sbc-bench.sh
chmod +x sbc-bench.sh
./sbc-bench.sh -r

 

sbc-bench output..

  Reveal hidden contents

 

10. boot from eMMC:

Run armbian-config

-> System

-> Install

-> 2 Boot from eMMC

-> erase eMMC: Yes

-> 1 ext4

-> poweroff

-> remove microSD

-> boot hopefully from eMMC

 

11. update Debian packages:

apt update && apt upgrade

 

Edited by TDCroPower
Posted

Has anyone tried to install OMV 7 with the modified image from @ebin-dev?
When installing via OMV install script some things go wrong and you get some "Segmentation fault" and "free(): invalid pointer" messages in the log.

 

Here the complete OMV log...

  Reveal hidden contents

 

Posted (edited)
  On 2/21/2024 at 6:00 PM, Flolm said:

Should I follow your procedure and therefore install the version Armbian_23.5.4_Helios64_bookworm_current_6.1.36.img.xz or if I install the latest version available Armbian_23.11.1_Helios64_bookworm_current_6.1.63.img.xz this directly corrects the problems ? Currently I have no system on my Helios64 server.

Expand  

 

I did not test the procedure with more recent images. It would be very helpful if you could start from the 6.1.63 image and test it as it is (with rtl_nic firmware updated). In case of stability issues, change u-boot to the version recommended. 

 

If you are still having issues with linux 6.1.63 try linux 6.6.8, 6.1.71, or 5.15.93 instead and follow the procedure described - and please post your observations here in this thread.

Edited by ebin-dev
Posted

@ebin-dev are these OMV problems or are they caused by the Helios64 installation, which is not yet clear to me.
Many successful installations with RC1 have already been reported and unfortunately we currently have no chance of installing OMV 6 with Bullseye, as we can no longer install Bullseye properly on Helios64.

Posted (edited)

@prahal I don't quite understand the status of the issues.
They are closed or merged so far, would we have to flash a higher kernel or something else on u-boot?

 

when I look at the commit only one entry in the config was changed...

- BOOT_SCENARIO="blobless"
+ BOOT_SCENARIO="tpl-blob-atf-mainline"

 

Do we then have to explicitly start a build?

Edited by TDCroPower
Posted (edited)
  On 2/27/2024 at 11:15 AM, TDCroPower said:

I don't quite understand the status of the issues.

Expand  

 

Are you sure that you have flashed linux-u-boot-edge-helios64_22.02.1_arm64 (it contains the rockchip ddr blob) to emmc and not accidentally to sd ?

emmc may be accessed as either /dev/mmcblk1p1 or as /dev/mmcblk0p1. If you started your system from emmc 'df -h' is your friend.

So obviously the path has to be adapted accordingly for flashing u-boot to that device: either 'of=/dev/mmcblk1' or 'of=/dev/mmcblk0'.

 

 

Edited by ebin-dev
Posted (edited)

@ebin-dev I have just booted from the SD again.
The SD partition is on mmcblk0, so mmcblk1 should be the eMMC partition, right?

 

root@helios64:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            1.8G     0  1.8G   0% /dev
tmpfs           380M  6.2M  374M   2% /run
/dev/mmcblk0p1   59G  2.3G   56G   4% /
tmpfs           1.9G     0  1.9G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           1.9G     0  1.9G   0% /tmp
/dev/zram1       47M  1.7M   42M   4% /var/log
tmpfs           380M     0  380M   0% /run/user/0

 

booted from eMMC...

root@helios64:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            1.8G     0  1.8G   0% /dev
tmpfs           380M  1.3M  379M   1% /run
/dev/mmcblk1p1   15G  2.6G   11G  20% /
tmpfs           1.9G     0  1.9G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           1.9G     0  1.9G   0% /tmp
tmpfs           380M     0  380M   0% /run/user/0

 

i think the u-boot version on eMMC is correct...

root@helios64:~# strings /dev/mmcblk1p1 | grep U-Boot
U-Boot version:        %s
6U-Boot Env
6U-Boot
U-Boot TPL 2022.07-armbian (Jun 28 2023 - 19:50:29)
U-Boot SPL 2022.07-armbian (Jun 28 2023 - 19:50:29 +0000)
U-Boot
FIT image for U-Boot with bl31 (TF-A)
U-Boot (64-bit)
%U-Boot
** Invalid partition type "%.32s" (expect "U-Boot")
scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Found U-Boot script ${prefix}${script}; run boot_a_script; echo SCRIPT FAILED: continuing...; fi; done
U-Boot.armv8
U-Boot console
U-Boot 2022.07-armbian
*** U-Boot Boot Menu ***
U-Boot
U-Boot 2022.07-armbian (Jun 28 2023 - 19:50:29 +0000)
  - boot a sample Hello World application stored within U-Boot
^C

 

booted from SD the python3 check fails...

root@helios64:~# for i in $(seq 1 100);do python3 -c "import pkg_resources" || break;done
free(): invalid pointer
Aborted

 

Edited by TDCroPower
Posted

Why don't you flash linux-u-boot-edge-helios64_22.02.1_arm64 to both devices mmcblk0 and mmcblk1 and perform the python3 check after a cold start ?

 

# messages output to the terminal while booting

DDR Version 1.25 20210517
In
soft reset
SRX
channel 0
CS = 0
MR0=0x18
MR4=0x1
MR5=0x1
MR8=0x10
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 1
CS = 0
MR0=0x18
MR4=0x1
MR5=0x1
MR8=0x10
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 0 training pass!
channel 1 training pass!
change freq to 416MHz 0,1
Channel 0: LPDDR4,416MHz
Bus Width=32 Col=10 Bank=8 Row=16 CS=1 Die Bus-Width=16 Size=2048MB
Channel 1: LPDDR4,416MHz
Bus Width=32 Col=10 Bank=8 Row=16 CS=1 Die Bus-Width=16 Size=2048MB
256B stride
channel 0
CS = 0
...

 

Posted (edited)

I flashed to both as you recommended....

root@helios64:~/bootloader/linux-u-boot-edge-helios64_22.02.1_arm64/usr/lib/linux-u-boot-edge-helios64_22.02.1_arm64# dd if=idbloader.bin of=/dev/mmcblk1 seek=64 conv=notrunc
424+1 records in
424+1 records out
217372 bytes (217 kB, 212 KiB) copied, 0.0135302 s, 16.1 MB/s
root@helios64:~/bootloader/linux-u-boot-edge-helios64_22.02.1_arm64/usr/lib/linux-u-boot-edge-helios64_22.02.1_arm64# dd if=uboot.img of=/dev/mmcblk1 seek=16384 conv=notrunc
8192+0 records in
8192+0 records out
4194304 bytes (4.2 MB, 4.0 MiB) copied, 0.539218 s, 7.8 MB/s
root@helios64:~/bootloader/linux-u-boot-edge-helios64_22.02.1_arm64/usr/lib/linux-u-boot-edge-helios64_22.02.1_arm64# dd if=trust.bin of=/dev/mmcblk1 seek=24576 conv=notrunc
8192+0 records in
8192+0 records out
4194304 bytes (4.2 MB, 4.0 MiB) copied, 0.485736 s, 8.6 MB/s
root@helios64:~/bootloader/linux-u-boot-edge-helios64_22.02.1_arm64/usr/lib/linux-u-boot-edge-helios64_22.02.1_arm64# dd if=idbloader.bin of=/dev/mmcblk0 seek=64 conv=notrunc
424+1 records in
424+1 records out
217372 bytes (217 kB, 212 KiB) copied, 0.037369 s, 5.8 MB/s
root@helios64:~/bootloader/linux-u-boot-edge-helios64_22.02.1_arm64/usr/lib/linux-u-boot-edge-helios64_22.02.1_arm64# dd if=uboot.img of=/dev/mmcblk0 seek=16384 conv=notrunc
8192+0 records in
8192+0 records out
4194304 bytes (4.2 MB, 4.0 MiB) copied, 0.399514 s, 10.5 MB/s
root@helios64:~/bootloader/linux-u-boot-edge-helios64_22.02.1_arm64/usr/lib/linux-u-boot-edge-helios64_22.02.1_arm64# dd if=trust.bin of=/dev/mmcblk0 seek=24576 conv=notrunc
8192+0 records in
8192+0 records out
4194304 bytes (4.2 MB, 4.0 MiB) copied, 0.405223 s, 10.4 MB/s

 

Test booted from SD...

root@helios64:~# for i in $(seq 1 100);do python3 -c "import pkg_resources" || break;done
root@helios64:~#

 

Test booted from eMMC...

root@helios64:~# for i in $(seq 1 100);do python3 -c "import pkg_resources" || break;done
root@helios64:~#

 

It now looks as if this has worked.
I'll transfer the status of the SD to the eMMC and try to install OMV 7 RC1 again.

 

edit:

after transfer SD to eMMC the check fails with "Segmentation fault"...

root@helios64:~# for i in $(seq 1 100);do python3 -c "import pkg_resources" || break;done
Segmentation fault

 

I'll try to reflash the bootloader booted from the eMMC to see if that helps.

 

edit2:

Ok after I booted from the eMMC and flashed the bootloader into both partitions again the test works...

root@helios64:~# for i in $(seq 1 100);do python3 -c "import pkg_resources" || break;done
root@helios64:~#

 

Let's try the OMV 7 RC1 installation now !!

 

edit3:

Finally... the OMV 7 installation was success !

We now have a stable Bookworm image version with which OMV 7 can also be installed.
Thank you both for your help!
I will extend the instructions above with further tips so that everyone can set it up in the same way.

Edited by TDCroPower

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

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines