Rock Pi 4C Android Booting SPI + NVME

Hello All,

I am a bit of a newb at this so please bare with me. her is what i am trying to do. I am trying to create a Rock Pi 4C tablet runnning Andoid 10 off of the NVME. I have the following:

Rock Pi 4C v1.2
NVME board v1.6
NVME SSD Western Digital Blue SN550
Android 10 from Radxa’s website and written to the NVME using etcher.

I have got it to boot from SD card running Ubuntu 20.14
when i have it running, i run through the steps in this guide --> https://wiki.radxa.com/Rockpi4/Linux_system_runs_on_M.2_NVME_SSD
and as i have found to erase the SPI with the command sudo /usr/local/sbin/rockpi_erase_spi_flash.sh and then sudo /usr/local/sbin/rockpi4c_write_spi_flash.sh

After going through all of this and have just the NVME in, i get a solid green and blue light.

“Please help Obi Wan your my only hope.”

AFAIK, I don’t think booting from NVMe on Android 10 is possible on RockPi4C.

Running Android on NVMe is supported. Please check the Android Q guide:

[ROM][Android10][RockPI 4] Android Q Firmware Release

Flash the SPI image for Android from the link above, the SPI image for Android and Linux are different.

1 Like

Thanks Jack,
like i said i am a bit of a newb here, so i would like to ask for some step by step instructions. Can this be done right on the RockPi with a running ubuntu server on a SD card or do i need to use a USB male to male cord to do this. Sorry for the hand holding here.

You can do this on ROCK Pi or with PC.

If with PC, just download the Android SPI image and write it with rkdeveloptool.

If on ROCK Pi, you can replace the

/usr/lib/u-boot-rockpi4[bc]/spi/uboot-trust-spi.img

with the Android SPI image, keep the name the same. and run

/usr/local/sbin/rockpi4[bc]_upgrade_bootloader.sh

manually.

Then write the gpt android image to NVMe on ROCK Pi with dd or on PC with NVMe reader.

hello,
@jack

Dose this means it only can boot Android?
I flashed Spi, and now can boot android 10 from USB, but twisterOS armbian with mainline kernel on nvme not booting anymore. Can the SPI image for android also boot linux? And if so what i have to do?

Android booting is quite different from Linux, we can only try to boot them one by one, ie checking if there is bootable Android on all media, then checking if there is bootable Linux on all media. It will take long to check all the booting media with both. It’s possible for one bootloader to boot all, the cost is longer booting time.

hello jack.
Before i flashed spi with android-uboot-trust-spi.img :
TwisterOS armbian 5.8.17 kernel on nvme - boots with spi
android 9 on emmc -boot when shorten pin 23+25

Now with flashed android-uboot-trust-spi.img it boots android9 on emmc with spi, android10 boots on usb (but do not recognise nvme in system)
I have now tested usb-boot raxda-debian-strech and buster and it dont boot.
So in my case it semms to boot only android!
It would be nice to have a test usb-port for testing new (all)images.

If there is only nvme and emmc is shorten pin 23+25 ,it has only to look on one media.

By the way, you have not answered my question, but i did it myself. so next question:
Is it possible in the future to get a spi-loader that can boot linux and android (with the cost of longer booting time)?
maybe like Petitboot,
and thank you for the quick reply

Jack, I followed your instructions to download the new SPI firmware and renamed and replaced with the old then ran the command sudo /usr/local/sbin/rockpi4[bc]_upgrade_bootloader.sh. After i did that i removed the SD card and tried booting to the NVMEand got a solid greenlight. so i decided to wipe the SPI with sudo /usr/local/sbin/rockpi_erase_spi_flash.sh and the write it with sudo /usr/local/sbin/rockpi4c_write_spi_flash.sh.
When i do the write _si_fash.sh i get the following error about Verification of ‘rockpi4c-rk-ubootimg’ failed. (Screenshot below)

Any help would be much appreciated.

I’m trying to follow this same procedure and have gotten the identical response:

linaro@linaro-alip:/usr/local/sbin$ sudo rockpi4c_write_spi_flash.sh 
Doing this will overwrite data stored on SPI Flash.

    Type YES to continue or Ctrl-C to abort.
    YES
    debsums: changed file /usr/lib/u-boot-rockpi4c/spi/uboot-trust-spi.img (from rockpi4c-rk-ubootimg package)
    Verification of 'rockpi4c-rk-ubootimg' failed.
    Your disk might have got corrupted.

Now I did manage to get past this by modifying the rockpi4c_write_spi_flash.sh script and commenting out the checksum check (I know, I know).

However now, with only the nvme installed, the spi bootloader seems to be working, as I get a “Rockchip” splash on screen (which wasn’t there with the earlier nvme bootloader I was using), but it’s not booting into android.

Anyone have any idea where to go from here?

As an extra bit of info:

  1. With flashed SPI and android on the nvme I get a ‘Rockchip’ splash, then it appears to halt
  2. With flashed SPI and android on an SD card I get the Rockchip splash, and then the work ‘kernel’ is added before it boots into android as expected.