Can't boot DietPi on the NanoPi R4SE

I’ve successfully installed DietPi on my R5S and it’s working great!

The problem comes when I try to boot a freshly flashed DietPi SD card on my R4SE. I put the SD card in, hold down the Mask button and power it on. After holding the Mask button for 5 seconds, I release it but I get no activity at all on any of the LEDs. The power LED is a solid orange but none of the other light up at all. I’ve checked my DHCP logs and I get no requests for an IP after powering it on. I’ve tried the same process with both the LAN and WAN ports.

I’m not sure if I’m doing something wrong. If I flash openwrt onto the same SD card I can boot into it fine so I don’t think it’s a problem with the SD card or the R4SE.

I’m not sure what to try next!

There was an similiar issue here, but OP stopped answering.

I digged a bit in the NanoPi wiki and came across this:

4.5 The Boot order between eMMC and SD card

By default, the system will be booted from the TF card first, but this is not the case under all conditions. This section will explain all situations in detail;

Refer to rockchip official document [1], there are two types of loader program:

  1. U-Boot TPL/SPL (i.e. upsream U-Boot, also called mainline U-Boot)
  2. Rockchip MiniLoader

Things to note:

  1. FriendlyELEC’s image uses Rockchip MiniLoader
  2. The third-party image usually uses U-Boot TPL/SPL

The following situations will always start from eMMC:
If the system in the eMMC, or the system in the TF card uses the first Loader type U-Boot TPL/SPL, it will always boot from the eMMC;

And if I’m not wrong, our images also use u-boot, which means the device is trying to boot from eMMC instead of the SD card. There is also a nice table in the wiki which summerizes the different combinations of boot priority.
To fix this issue they indicate to run

dd if=/dev/zero of=/dev/mmcblk2 bs=8M count=1

which means you would need to to

  • boot first from SD card with a working OS, like FriendlyWRT, and then
  • run the above dd command
  • shutdown the device and flash DietPi onto the card

Then it should boot from the SD card with the u-boot bootloader?!

Thanks for the reply! Given that I can boot into openwrt from the sd card using the Mask button, I feel like it should work the same for DietPi?

I did think about doing that but when I’m booted into openwrt, I can’t see the emmc device. I’ve also tried flashing the friendlywrt images to the SD card as well but it refuses to load those either. So far, only Openwrt has worked.

Maybe it’s worth giving armbian a shot and seeing if it sees the emmc. If it does I should be able to download the diet pi image and dd it to the emmc :crossed_fingers:

It definitely has emmc as when I first powered it on with no SD card it loaded the preinstalled friendlywrt but I borked that by trying to put openwrt on it.

What openWRT iamge do you use?

I’m using this build I found in a topic from the openwrt forum: GitHub - anaelorlinski/OpenWrt-NanoPi-R2S-R4S-Builds: OpenWRT Builds for NanoPi R2S & R4S from official Openwrt source code with minimal set of patches

It has the friendlywrt u-boot patches to enable it to run on the emmc.

Just tried with armbian and that won’t boot either. Seems openwrt is the only thing I can boot! Maybe there’s something I can do to get it to see the emmc…

What do you mean with, you can’t see it?
Can you boot into openWRT and run df -h.

I can’t see anything that would indicate there was emmc available.

root@OpenWrt:~# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root              1006.7M    346.7M    644.0M  35% /
tmpfs                     1.9G    364.0K      1.9G   0% /tmp
tmpfs                   512.0K         0    512.0K   0% /dev
cgroup                    1.9G         0      1.9G   0% /sys/fs/cgroup
/dev/root              1006.7M    346.7M    644.0M  35% /opt/docker

I installed fdisk and ran that and it only shows me the SD card

root@OpenWrt:~# fdisk -l
Disk /dev/mmcblk1: 59.48 GiB, 63864569856 bytes, 124735488 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
Disklabel type: dos
Disk identifier: 0x5452574f

Device         Boot  Start     End Sectors Size Id Type
/dev/mmcblk1p1 *     65536  147455   81920  40M 83 Linux
/dev/mmcblk1p2      196608 2293759 2097152   1G 83 Linux

I’m pretty sure the emmc should show up as /dev/mmcblk2

following don’t show anything like eMMC as well?

lsblk -o name,fstype,label,size,ro,type,mountpoint,partuuid,uuid

But not sure what we can do on this of the eMMC is not showing up at all.

This is all I see from that command:

root@OpenWrt:~# lsblk -o name,fstype,label,size,ro,type,mountpoint,partuuid,uuid
NAME        FSTYPE LABEL   SIZE RO TYPE MOUNTPOINT PARTUUID                             UUID
mmcblk1                   59.5G  0 disk                                                 
├─mmcblk1p1 ext4   kernel   40M  0 part            5452574f-01                          84173db5-fa99-e35a-95c6-28613cc79ea9
└─mmcblk1p2 ext4   rootfs    1G  0 part /          5452574f-02                          ff313567-e9f1-5a5d-9895-3ba130b4a864

I wish I could find another OS that actually boots on the thing so I can see if it’s just openwrt that doesn’t want to see it but all of them refuse to boot from the SD card.

So far I’ve tried DietPi, Armbian, FriendlyWRT, and OpenWRT but OpenWRT is the only one that loads. All the others just sit there with no activity on any of the LEDs, just a solid power LED.

I’ve bought a USB A-A cable so hopefully I can access it that way!

hopefully eMMC module is available inside your device and not broken or missing.

Hi itmecho.
Using official Dietpi R4S on my R4SE, I suffer from the same behaviour (impossible to see the emmc also with lsblk command)
I finally succeed by using the R4SE image here:
https://filedn.com/lW9xoHwmvjzL7CQ1hrkQobu/DietPi_NanoPiR4SE-ARMv8-Bullseye.7z
Information found on this forum page: Image | NanoPi R4SE · Issue #5712 · MichaIng/DietPi · GitHub

Hope it helps

the only small issue find is the mismatch beetwen LAN and WAN led status (using or connecting LAN port activate WAN led. Using WAN port activate LAN led).
Thus can be configured on some led_status config files, but config don’t stay after reboot (need more investigation from my side)