NanoPi M4 V2 - M4 Image not working


Recommended Posts

@pask i try the last minimal binary image from piter75.


i take another SD Card but nothing happens

no green LED ,only the Red, no signal on HDMI , nothing on LAN.


I create the card in the console:

sudo dd if=Armbian_5.99_Nanopim4v2_Debian_buster_default_4.4.192_minimal.img of=/dev/sdb bs=1M


what is the problem. should i take out the NVME Modul. or is my Pi broken....i got two. One is in Alu Case number Two is still naked. but no one works


Please Help i need it for the new house from my parents



Link to post
Share on other sites
Donate and support the project!

17 minutes ago, Enrico said:

no green LED ,only the Red, no signal on HDMI , nothing on LAN

Hmm... is it only mine unit that works well with legacy kernel image and latest u-boot?


If you want you can try latest `current` image with 5.4.0 kernel:

 xz -dcv Armbian_19.11.3_Nanopim4v2_buster_current_5.4.0_minimal.img.xz | sudo dd bs=1M of=/dev/sdb

You can use above command line to skip explicit decompression step.


EDIT: Ok. I just saw your latest message.

Link to post
Share on other sites

I rebased my branch onto latest master changes.

Took me some time to make the sound working in kernel 5.4.


Branch is now named nanopi-m4v2-bring-up and supports "legacy", "current" and "dev" targets.

Did not test "legacy" much yet but "current" 5.4 works quite well.

In dev wi-fi is broken, but anyway "current" is much more compelling as it is 5.4 vs. 5.4-rc1 in dev.


Command line for "current":



Link to post
Share on other sites
On 11/28/2019 at 11:40 PM, piter75 said:

Took me some time to make the sound working in kernel 5.4.


Branch is now named nanopi-m4v2-bring-up and supports "legacy", "current" and "dev" targets.


Great job, @piter75!


"current" buster desktop works well for me. The debug ttl console too.

Performance are much better than default friendlyelec 4.4.y kernel's ones, although not overall better than those of the ddr3 version 1 nanopi m4 (see

Memory performance (big.LITTLE cores measured individually):
memcpy: 1880.5 MB/s (0.6%)
memset: 8430.7 MB/s (0.6%)
memcpy: 3729.4 MB/s
memset: 8492.3 MB/s (1.0%)

Complete sbc-bech results here:


Both sd card read and write speeds are good: 70MB/s with a sandisk 32GB extreme pro card


Stability also looks good, but requires more time to be tested.

As soon I'll be able to run some panfrost benchmarks, I'll update. By the way, desktop experience is smooth and stable and sound works too, but lack of acceleration is limiting when watching videos, although the 5.4 kernel improved speed over the 4.4.y is evident.


The only "small" issue I have found so far, is that boot is a bit slow. And for about 30 seconds I do not see any activity, neither on the serial console, nor on hdmi. Perhaps because of  "printk: bootconsole [uart8250] disabled" ?


I'm going to do some usb storage tests, before considering this board ready for replacing the raspberry pi4 I use at the moment as my home nextcloud server.

Link to post
Share on other sites
22 hours ago, pask said:

Great job,

A lot of credit goes also to you :)

Once again thanks for testing the images since the beginning.


As for the slow boot it plaques now all rk3399 boards.

I am tempted to bring the following hack to Armbian:

I am using it for weeks now in my builds and don't regret it ;-)

Link to post
Share on other sites

@Hover I did not test bluetooth much as I find it non essential for the first rollout ;-)


As for the sound you can test this patch:

accompanied by:


in the kernel config file.

Link to post
Share on other sites

@Hover did you change the sound-dai to point to i2s0 in the following line?


T4's codec is connected to a different i2s bus than M4*


You will have to enable i2s0 similar to what I did for i2s1 here:

I think you could probably replace i2s1 -> i2s0 in this node.

Link to post
Share on other sites

Hi, new Problems.


I need the package "Debmatic"


min. Kernel 4.9 and for NanoPi M4 with RPI-RF-MOD (40pin) a Dev kernel 


After this:

apt install pivccu-modules-dkms


comes that: 
Unpacking pivccu-modules-dkms (1.0.36) ...
Setting up pivccu-modules-dkms (1.0.36) ...

Creating symlink /var/lib/dkms/pivccu/1.0.36/source ->

DKMS: add completed.
Error! Your kernel headers for kernel 5.4.0-rockchip64 cannot be found.
Please install the linux-headers-5.4.0-rockchip64 package,
or use the --kernelsourcedir option to tell DKMS where it's located
Created symlink /etc/systemd/system/ → /lib/systemd/system/pivccu-dkms.service.
Created symlink /etc/systemd/system/debmatic.service.wants/pivccu-dkms.service → /lib/systemd/system/pivccu-dkms.service.
Created symlink /etc/systemd/system/pivccu.service.requires/pivccu-dkms.service → /lib/systemd/system/pivccu-dkms.service.
Processing triggers for libc-bin (2.28-10) ...

had some one an idea why kernel headers cannot be found.

i tried it also with armbian config.


The RPI-RF-MOD module is not detected by pivccu -info


please help:(

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

Error! Your kernel headers for kernel 5.4.0-rockchip64 cannot be found.

The headers package is not bundled in Armbian image and when you install it you are actually installing the last "stable" version of them in "current" target - which right now is 5.3.11

NanoPi M4V2 image was never built with 5.3.11 kernel and that's why the installed header do not match the kernel.


One thing you could try as a "creative workaround" would be to upgrade kernel which will actually downgrade it to 5.3.11 and then the kernel and headers packages should match.

I just did it on a freshly downloaded image for NanoPi M4V2 with kernel 5.4.2 from Armbian downloads and it worked fine, however YMMV ;-)

You better test it first on a spare SD card if you already did a lot of tuning to the current install.


EDIT: I assumed you downloaded my image linked a few posts back.

If you did build your own image you can transfer a headers package from "output/debs" folder to you machine and install it there without the need for downgrading kernel.

Link to post
Share on other sites
8 hours ago, Enrico said:

how to downgrade to 5.3.11


40 minutes ago, Werner said:

Run armbian-config. This tool can help you switch between kernels.

That's true but you can also run the following commands.

This will "upgrade" to the latest "current" kernel from Armbian release 19.11.3, which is 5.3.11.

That's why I said you can downgrade via upgrading... ;-)


sudo apt dist-upgrade
sudo reboot


Link to post
Share on other sites


first of all, thanks a lot to the great work.

I have downloaded the server version with 5.4.2 kernel and have some problems with wifi.

At first it works quite well, but after apt-get update, upgrade and rebooting the wifi didn't work anymore.


With the desktop version wifi is working also after upgrading.


So what could cause the problem?




Edited by mad
Link to post
Share on other sites

@mad If you want to upgrade system and keep the wifi working through apt upgrades you can set the following packages to hold:

apt-mark hold armbian-firmware linux-dtb-current-rockchip64 linux-image-current-rockchip64

This will keep the 5.4.2 version of kernel installed.


You have to remember to unhold it when the next Armbian version is released ;):

apt-mark unhold armbian-firmware linux-dtb-current-rockchip64 linux-image-current-rockchip64
Link to post
Share on other sites
19 hours ago, Enrico said:

How to enable i2c on Nanopim4v2

Since NanoPiM4 is exposing I2C2 on header, and that Armbian currently doesn't provide overlay for it (maybe it will be available soon in the future), you need to decompile the Main DTB into DTS, edit it to change "status" of I2C2 node to "okay" instead of "disabled" and then recompile it into new DTB and reboot.


EDIT: In fact, while checking with a fresh build, I2C2 is already enabled in the Main DT. So, it should be working already :

root@nanopim4v2:~# i2cdetect -l
i2c-1	i2c       	rk3x-i2c                        	I2C adapter
i2c-4	i2c       	rk3x-i2c                        	I2C adapter
i2c-2	i2c       	rk3x-i2c                        	I2C adapter
i2c-0	i2c       	rk3x-i2c                        	I2C adapter
i2c-7	i2c       	rk3x-i2c                        	I2C adapter


Link to post
Share on other sites

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.

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.