3 3
tkaiser

NanoPC T4

Recommended Posts

Okay, I've been able to boot an Armbian and I'm now trying to get a mainline kernel working.

 

I've been able to get a seemingly working HDMI output, but I got no Ethernet and the logs were spammed about some iio.device and dwmc3 devices badly configured, in my port of @hjc DTSI and DTS.

Also getting to X11 takes at least 30 seconds.

Anyway here are the issues I encountered https://github.com/Miouyouyou/RockMyy64/issues

 

I'll play with the RK3399 again next week. Meanwhile, I guess I'll take a tour of all the others repositories mentioned, see if at least I could solve a few issues.

 

Also, since my repository also generates fragmentation, I guess I should add in the README that, yes, you can take, and modify, my patches and do whatever you want with them.

 

Share this post


Link to post
Share on other sites

I actively rebase my kernel on top of rockchip-linux to keep a list of patches somehow compact. My current workflow is not very good for community contribution, still: this is rebase of commit history, but I'm happy to change that.

One thing that is probably unique about my kernel that I release a new kernel version after every: https://gitlab.com/ayufan-repos/rock64/linux-kernel/ and https://github.com/ayufan-rock64/linux-kernel and this is released as debian packages that you can put on any distro and apt-get install: http://deb.ayufan.eu/ayufan-rock64/linux-kernel. In my latest builds, I effectively moved from building kernel each time to installing kernel/u-boot package for simplicity and split of responsibility (single resp repository).

 

Anyway. I don't want to be a bottleneck, so I would say that the best would be to start a new common repo branch and rebase all our work on this branch, give a few people review/merging capabilities and based the work on the good will of people. I know that being alone and reviewing/accepting is a job that can get boring, as you also need to ensure the quality, splitting the responsibility here is desirable. Now, I do all the stuff there myself, but also I only have to check rock64/rockpro64 which is to be fair not a lot of hurdle for me, but with more dependence on this work we simply need more people.

 

I somehow like the rebase workflow that we always keep a small number of patches, but I'm fine with merge workflow too :)

 

Share this post


Link to post
Share on other sites

Hey guys, since I've recently got a couple of RK3399 boards (FriendlyARM NanoPC-T4, Firefly RK3399 and OrangePi RK3399),  I'm trying to get the best option for my use cases that is server workloads in a Kubernetes cluster lab to test new technologies. There are a couple of articles on https://medium.com/@carlosedp.

 

The Linux distributions the manufacturers create are usually bloated (with desktop software) and with missing Kernel options and modules so I've been in a crusade to build the kernels suited to these boards.

 

The first thing I've found is that each board have it's own kernel tree and lots of DTSs and DTSIs differ from each other. I've built the base Rockchip kernel for both but had to fiddle and replace files to build the DTBs for each board.

 

Do you guys have any news on integrating all this mess maybe into Rockchip or the Mainline kernel trees? Is there anything that I can help?

 

Thanks!

Share this post


Link to post
Share on other sites

I have to boot it and I have one NvME SAMSUNG MZVKW512HMJP (960 PRO OEM 512GB) drive lying around so I did some tests with:

iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2

CPU settings were the same.

 

FriendlyARM Bionic image:   

                                                              random    random
              kB  reclen    write  rewrite    read    reread    read     write
          102400       4    41338    78901    99988   100857    45198    78653
          102400      16   139298   214581   231273   233098   104223   208826
          102400     512   484706   533139   479387   489203   430695   533633
          102400    1024   528153   570248   501469   511199   477028   567310
          102400   16384   566544   586036   563672   576738   573686   582514

Armbian from here https://github.com/hjc4869/armbian-build/issues/1 (could not build my own - have to try again later) 

                                                              random    random
              kB  reclen    write  rewrite    read    reread    read     write
          102400       4    49152    74567    92929    93279    41268    69268
          102400      16   156724   234831   294344   254141   101716   236869
          102400     512   958208  1027143   952072   983620   582711  1044034
          102400    1024  1064030  1127356  1007844  1036058   743726  1123484
          102400   16384  1127636  1189732  1097192  1139916  1107548  1071900

Why is Armbian I/O so much faster?

Share this post


Link to post
Share on other sites
11 hours ago, Igor said:

Why is Armbian I/O so much faster?

 

Since https://forum.armbian.com/topic/7310-rockpro64/?do=findComment&comment=56184

 

There's PCIe link training but if DT defines a conservative link speed then no higher speeds will be negotiated. Checking lspci output is mandatory in such cases (and that's the reason why I added this to our hardware logging. But I don't remember whether lspci is present on Armbian images by default or not)

 

Edit: the kernel version and settings matter too of course. With RK's 4.4 there's /sys/module/pcie_aspm/parameters/policy which defaults to powersave.

 

Share this post


Link to post
Share on other sites
18 hours ago, Igor said:

Why is Armbian I/O so much faster?

 

BTW: in case you re-test can you please test also with a much larger test data size?

iozone -e -I -a -s 1000M -r 1024k -r 16384k -i 0 -i 1

 

See https://forum.armbian.com/topic/1925-some-storage-benchmarks-on-sbcs/?do=findComment&comment=51350 -- with your SSD combined with RK3399 and mainline kernel when using the 'right' benchmark even 1.6GB/s can be measured.

 

Here ayufan's scores from RockPro64 also using the same Samsung SSD: https://gist.github.com/ayufan/30c46381c5e4e5c5264a834a752946db

 

Share this post


Link to post
Share on other sites
11 hours ago, tkaiser said:

Did you prefix the iozone call with 'taskset -c 4-5 '?


Now I did.  K4.4 until mainline is not sorted out. Better!

 

Spoiler

                                                            
              kB  reclen    write  rewrite    read    reread
         1024000    1024  1279569  1307621  1243836  1252293
         1024000   16384  1292840  1322563  1267157  1272861

 

 

 

Share this post


Link to post
Share on other sites
On 6/18/2018 at 12:26 AM, tkaiser said:
  • heatsink too small for continous loads

 

Are the heatsink mounting holes compatible with "every Northbridge cooler with a mounting hole distance of 60 mm" as for the RockPro64?

Share this post


Link to post
Share on other sites
15 hours ago, tkaiser said:

decided to use another kernel

 

We'll, there's very little difference in them fundamentally, it should take very little work to say Ayufan instead of Rockchip.  I can try it and we can just swap.  Same for RK3288

Share this post


Link to post
Share on other sites

I know this is irrelevant, but it's too cool for me not share:  (Rockchip kernel 4.4 via HJC's work, Samsung 256 GB

 

Disk /dev/nvme0n1: 238.5 GiB, 256060514304 bytes, 500118192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
	Command line used: iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
	Output is in kBytes/sec
	Time Resolution = 0.000001 seconds.
	Processor cache size set to 1024 kBytes.
	Processor cache line size set to 32 bytes.
	File stride size set to 17 * record size.
                                                              random    random     bkwd    record    stride                                    
              kB  reclen    write  rewrite    read    reread    read     write     read   rewrite      read   fwrite frewrite    fread  freread
          102400       4    63148    98717   117726   103704    32253    74841                                                          
          102400      16   200588   282047   286796   312951    89631   242632                                                          
          102400     512   472102   577041   458541   430672   540748   557106                                                          
          102400    1024   506514   560837   485540   455210   498891   576875                                                          
          102400   16384   951626   994023   920260   996905   973086   994344  
	Command line used: iozone -e -I -a -s 1000M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
	Output is in kBytes/sec
	Time Resolution = 0.000001 seconds.
	Processor cache size set to 1024 kBytes.
	Processor cache line size set to 32 bytes.
	File stride size set to 17 * record size.
                                                              random    random     bkwd    record    stride                                    
              kB  reclen    write  rewrite    read    reread    read     write     read   rewrite      read   fwrite frewrite    fread  freread
         1024000       4    72776    85094   109072   121242    34017    98562                                                          
         1024000      16   221422   302439   331772   333805    88144   290576                                                          
         1024000     512   565209   639164   465860   473754   602073   599450                                                          
         1024000    1024   759673   793099   669950   684237   721181   748267                                                          
         1024000   16384  1045977  1095899  1070003  1079163  1075869  1066718  

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
3 3