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

Hello.

 

I tried Armbian build based on Ubuntu. Feels better than official friendlyelec's builds, interface is much much more responcive, but I have two problems with Armbian:

 

If I start fullscreen video from youtube (checking on this video) it stucks approximately at 2.5 minute. Picture freezes and repeated sound sample, not responding to anything. Tried it on Chromium, on Firefox and even with Smtube, everytime stucks at approximately same place. What is the problem? Video memory leaking and filling all the place? or what? On official builds I didn't have this problem (but there was plenty others).

 

And second problem - Synaptic. Search in Synaptic is dead slow. It takes about 15 minutes ant uses about 16% of CPU according to the Monitor. When searching and after package installation, when returning to the same search list. Strange thing, but on official builds it works as fast as on desktop. Based on same Ubuntu.

 

Do not know, should I create another topic? As I see all about NanoPC-T4 is happening here for now.

Share this post


Link to post
Share on other sites
2 hours ago, konstantin said:

And second problem - Synaptic. Search in Synaptic is dead slow.


https://forum.armbian.com/topic/8021-orange-pi-one-synaptic-package-manager-search-very-slow/

 

2 hours ago, konstantin said:

If I start fullscreen video from youtube

 

https://forum.armbian.com/topic/8043-orange-pi-one-general-performance-browser-performance/?do=findComment&comment=60618

 

I have to add here that I don't know how is with video acceleration in general with this board, so "playing outside the browser" might not solve anything ... yet.

 

2 hours ago, konstantin said:

should I create another topic?

 

No, but start to use forum search first. We talked about many times:
https://www.armbian.com/search

 


I found both answers in less than 10seconds.

 

Share this post


Link to post
Share on other sites
1 hour ago, Igor said:

I have to add here that I don't know how is with video acceleration in general with this board,

Within the web browser, basically quite as good as RK3288 and XU4. That means that it can play up to 1080p@30 youtube smoothly. Outside the browser, MPV and Gstreamer can play 4K@60 with no problem. But, as is the case for RK3288 and XU4, you need to configure it first; that is what my media scripts do.

 

I already made a media script, but it was 32-bit, based on the RK3288 one (with God's help, I plan to make a 64-bit version, now that the board reached the WIP status). The link for the 32-bit script is a few posts above, together with some test results about the SoC GPU and VPU capabilities: 

 

Share this post


Link to post
Share on other sites

Hi,

 

I tried Armbian on my NanoPC-T4 and installed it to eMMC using ‚armbian-config‘.

I wanted to try the official FriendlyELEC image, but the ‚eflasher‘ utility doesn’t recognise any eMMC.

Then I tried booting from Armbian from SD and using ‚armbian-config‘ again to check if it recognised, but the option for installing to eMMC isn‘t present anymore.

 

I can still boot Armbian from eMMC but can‘t install anything new to eMMC. Are there any advices for fixing the problem?

Share this post


Link to post
Share on other sites
1 hour ago, Malz said:

I can still boot Armbian from eMMC but can‘t install anything new to eMMC. Are there any advices for fixing the problem?

 

Boot priority with Rockchip boards is AFAIK always eMMC first then SD card. So once RK3399 finds a bootloader signature on the eMMC it will boot from there even if a bootable SD card is inserted. If you want to reflash eMMC in this situation you 

  • either need to use Maskrom mode (or how it's called exactly) which requires another host and USB
  • delete the bootloader on the eMMC (can be done from the running system: 'dd if=/dev/null of=/dev/mmcblk1 bs=1M count=64 ; sync')

I successfully bricked my NanoPC-T4 while developing with nand-sata-install and now have working bootloader on the eMMC that is not able to boot a kernel so I'm locked out and would need to try variants 2) or 3) here: http://wiki.friendlyarm.com/wiki/index.php/NanoPC-T4#Flash_Image_to_eMMC (which is not that easy since my physical x86 machines all run macOS and my Linux boxes are all ARM based -- I might try a VM with USB pass-thru soon)

 

I asked @mindee for help but his advice to boot an eflasher image from SD card doesn't work since I have a working bootloader on the eMMC (but an otherwise bricked system).

 

Would be great to temporarily disable the eMMC as it can be done on Rock64 and RockPro64 (a jumper allows the eMMC to be grounded or something like that so you can boot with this jumper set from a bootable SD card inserted and if you remove the jumper within 2 seconds after boot you can even access the eMMC afterwards to flash a new image)

Share this post


Link to post
Share on other sites
1 hour ago, tkaiser said:

either need to use Maskrom mode (or how it's called exactly) which requires another host and USB

did you try https://github.com/rockchip-linux/rkdeveloptool

And then a 'rkdeveloptool ef'  might do it..  As far as I see this is plain c++ without any blobs so you could probably compile it on one of your arm boards as well.. ;) 

chwe@chwe-acer:~$ rkdeveloptool

---------------------Tool Usage ---------------------
Help:			-h or --help
Version:		-v or --version
ListDevice:		ld
DownloadBoot:		db <Loader>
UpgradeLoader:		ul <Loader>
ReadLBA:		rl  <BeginSec> <SectorLen> <File>
WriteLBA:		wl  <BeginSec> <File>
WriteLBA:		wlx  <PartitionName> <File>
WriteGPT:		gpt <gpt partition table>
WriteParameter:		prm <parameter>
PrintPartition:		ppt 
EraseFlash:		ef 
TestDevice:		td
ResetDevice:		rd [subcode]
ReadFlashID:		rid
ReadFlashInfo:		rfi
ReadChipInfo:		rci
ReadCapability:		rcb
PackBootLoader:		pack
UnpackBootLoader:	unpack <boot loader>
TagSPL:			tagspl <tag> <U-Boot SPL>
-------------------------------------------------------

 

Share this post


Link to post
Share on other sites
1 hour ago, tkaiser said:

Boot priority with Rockchip boards is AFAIK always eMMC first then SD card.

Rockchip boot sequence is typically BOOTROM -> u-boot SPL -> u-boot, AFAIK bootrom tries eMMC first, but u-boot SPL tries loading u-boot from SD card first (reference), so if there's a valid SPL on eMMC, you might still have a chance to boot from SD...

Share this post


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

Would be great to temporarily disable the eMMC as it can be done on Rock64 and RockPro64

Is it not what the "boot" button does by shorting the eMMC-D0 line ?

Simply press this "boot" button during "reset" for 2 seconds ....

Share this post


Link to post
Share on other sites
4 hours ago, hjc said:

u-boot SPL tries loading u-boot from SD card first (reference), so if there's a valid SPL on eMMC, you might still have a chance to boot from SD...

 

Doesn't work for me.

 

37 minutes ago, martinayotte said:

Is it not what the "boot" button does by shorting the eMMC-D0 line ?

 

Just tested this too and it also does not work. Quoting the wiki:

Quote

Press BOOT key to prevent the board from eMMC booting, making the board enter MASKROM mode

 

Well, I need to do my homework first. Set up another SBC for serial console access (don't want to install CH340T drivers on my new MacBook), then check for a working USB-C cable and so on...

Share this post


Link to post
Share on other sites
4 minutes ago, martinayotte said:

It did work for me 2 weeks ago, then I've used nand-sata-install ...

 

And you did not use nand-sata-install prior to this? Since then eMMC would've been empty anyway and booting from SD card would be normal behavior even without pressing boot button?

Share this post


Link to post
Share on other sites
1 minute ago, tkaiser said:

And you did not use nand-sata-install prior to this? Since then eMMC would've been empty anyway and booting from SD card would be normal behavior even without pressing boot button?

No, first time, it was booting some other unknown image already present if I remember.

Later, I had a build done from @hjc old branch, and when I wanted to use latest Armbian, I had to press "boot" again this time.

Share this post


Link to post
Share on other sites

Thanks a lot! 

 

I finally fixed my eMMC problem.

Booting into MASKROM and erasing flash by using Chinese Rockchip Tool let me install armbian again to eMMC.

 

I had some problems identifying the device with the Rockchip utility. Switching from Win10 to old Win7 laptop fixed connection issues.

 

Now trying to configure armbian as my new ‚all-in-one‘ livingroom device. Are there experiences with running Kodi on armbian?

Share this post


Link to post
Share on other sites
8 8