How to boot Manjaro from NVME with uboot on eMMC
#1
Edited on 27.03.2020 - due to Manjaro not using boot.scr anymore.

I have taken below steps to achieve booting from NVME. It can be probably mirrored on Debian with some small changes since Manjaro is using boot.scr and Debian extlinux.conf.


First download a package: uboot-pinebookpro-2017.09-2-aarch64.pkg.tar.xz. It has uboot files with @pcm720 patches included. Current Manjaro uboot package does not have nvme support enabled. This is subject to change.

1. Extract the files from the package: idbloader.img, trust.img, uboot.img.
2. Write uboot files (pay attention to your device - it has to be eMMC !!! In my case /dev/mmcblk2):

"dd if=idbloader.img of=/dev/mmcblk2 bs=32k seek=1 conv=fsync"
"dd if=uboot.img of=/dev/mmcblk2 bs=64k seek=128 conv=fsync"
"dd if=trust.img of=/dev/mmcblk2 bs=64k seek=192 conv=fsync"

3. Create partition on your NVME drive to rsync filesystem from eMMC.
4. Mount the partition - lets say in /mnt
5. "cd /mnt"
6. "mkdir dev proc sys mnt"
7. "rsync -aHxv --numeric-ids --progress /* /mnt --exclude=/dev --exclude=/proc --exclude=/sys --exclude=/mnt"
8. chroot to your newly synced partition "chroot /mnt".
9. "cd /boot/extlinux"
9. Edit extlinux.conf and change "root=LABEL=ROOT" to "root=/dev/nvme0n1p1" (if your new partition is first on disk).
10. Exit chroot "exit".
11. On eMMC !!! Rename extlinux directory to something else eg. extlinux.old.
12. Reboot machine - you should boot from NVME.
13. After sucessful reboot check "lsblk" it should be something like:

[root@pbp ~]# lsblk
NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
mmcblk2      179:0    0  58.2G  0 disk
└─mmcblk2p1  179:1    0  58.2G  0 part
mmcblk2boot0 179:32   0     4M  1 disk
mmcblk2boot1 179:64   0     4M  1 disk
nvme0n1      259:0    0 894.3G  0 disk
└─nvme0n1p1  259:1    0    20G  0 part /


In case you want to start the system from eMMC just rename extlinux.old to extlinux on eMMC. Opposite to what has been done in step 11.

Enjoy ! Cool
#2
Are you seeing any performance increases?
#3
Not in everyday use. But if I have to move some bigger amount of data between partitions definitely yes.
#4
(01-16-2020, 12:10 PM)as400 Wrote: I have taken below steps to achieve booting from NVME. It can be probably mirrored on Debian with some small changes since Manjaro is using boot.scr and Debian extlinux.conf.


First download a package: uboot-pinebookpro-2017.09-2-aarch64.pkg.tar.xz. It has uboot files with @pcm720 patches included. Current Manjaro uboot package does not have nvme support enabled. This is subject to change.

1. Extract the files from the package: idbloader.img, trust.img, uboot.img.
2. Write uboot files (pay attention to your device - it has to be eMMC !!! In my case /dev/mmcblk2):

"dd if=idbloader.img of=/dev/mmcblk2 bs=32k seek=1 conv=fsync"
"dd if=uboot.img of=/dev/mmcblk2 bs=64k seek=128 conv=fsync"
"dd if=trust.img of=/dev/mmcblk2 bs=64k seek=192 conv=fsync"

3. Create partition on your NVME drive to rsync filesystem from eMMC.
4. Mount the partition - lets say in /mnt
5. "cd /mnt"
6. "mkdir dev proc sys mnt"
7. "rsync -aHxv --numeric-ids --progress /* /mnt --exclude=/dev --exclude=/proc --exclude=/sys --exclude=/mnt"
8. chroot to your newly synced partition "chroot /mnt".
9. "cd /boot"
9. Edit boot.txt and change "root=PARTUUID=${uuid}" to "root=/dev/nvme0n1p1" (if your new partition is first on disk).
10. Run "./mkscr" (you might have to chmod +x if it's not executable).
11. Exit chroot "exit".
12. On eMMC !!! Rename boot directory to something else eg. boot.old.
13. Reboot machine - you should boot from NVME.
14. After sucessful reboot check "lsblk" it should be something like:

[root@pbp ~]# lsblk
NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
mmcblk2      179:0    0  58.2G  0 disk
└─mmcblk2p1  179:1    0  58.2G  0 part
mmcblk2boot0 179:32   0     4M  1 disk
mmcblk2boot1 179:64   0     4M  1 disk
nvme0n1      259:0    0 894.3G  0 disk
└─nvme0n1p1  259:1    0    20G  0 part /


In case you want to start the system from eMMC just rename boot.old to boot on eMMC. Opposite to what has been done in step 12.

Enjoy ! Cool

I have got this working.  Thanks for the tutorial!  Does boot from SD work with this?  I'm having some issues booting from SD.  The PBP boots, then I get a black sreen when the SD card is inserted.  I'm trying to use the Chromium image from the PBP wiki.

Thanks again!
-Josh
#5
(01-16-2020, 12:10 PM)as400 Wrote: First download a package: uboot-pinebookpro-2017.09-2-aarch64.pkg.tar.xz. It has uboot files with @pcm720 patches included. Current Manjaro uboot package does not have nvme support enabled. This is subject to change.

I'm curious, is this your own modified u-boot, or is the package included by any of the current OS options? Also, what's its boot priority?
#6
@mamboman777 I have no problems booting from sd card whatsoever with this uboot.

@tophneal this package was offered once by Manjaro team. Patches are by @pcm720. So all credits go to them. Sd card has priority on boot.
#7
(01-29-2020, 10:32 AM)as400 Wrote: @mamboman777 I have no problems booting from sd card whatsoever with this uboot.

@tophneal this package was offered once by Manjaro team. Patches are by @pcm720. So all credits go to them. Sd card has priority on boot.

Oh, is this the one they used right before switching to the latest u-boot that has USB boot?

Was the boot priority ever changed from SD>NVMe>eMMC?
#8
(01-29-2020, 10:49 AM)tophneal Wrote: Oh, is this the one they used right before switching to the latest u-boot that has USB boot?

Was the boot priority ever changed from SD>NVMe>eMMC?

Yes. The one from the first post is last before they switched to mainline uboot.

Actually, right now I am using the one from @pcm720 and booting off SPI flash.
#9
(01-29-2020, 11:27 AM)as400 Wrote:
(01-29-2020, 10:49 AM)tophneal Wrote: Oh, is this the one they used right before switching to the latest u-boot that has USB boot?

Was the boot priority ever changed from SD>NVMe>eMMC?

Yes. The one from the first post is last before they switched to mainline uboot.

Actually, right now I am using the one from @pcm720 and booting off SPI flash.

I had to write it back to my CrOS install last night, and noticed for SPI its a simple one line command now. Freaking awesome sauce!I think I might mess around and flash it on mine, since I'm about to get an ANSI. That u-boot would be a nice little surprise to someone if I sell the ISO.
#10
(01-29-2020, 11:32 AM)tophneal Wrote: I had to write it back to my CrOS install last night, and noticed for SPI its a simple one line command now. Freaking awesome sauce!I think I might mess around and flash it on mine, since I'm about to get an ANSI. That u-boot would be a nice little surprise to someone if I sell the ISO.

I suggest using rkdeveloptool to write it to SPI. I tried dd method on Manjaro (which is recommended) but it didn't work.
Check out this thread ----> https://forum.pine64.org/showthread.php?tid=8927. Note my little correction at the end. It's kind of important Smile

Edit: and it's not needed to press power button fro 10 seconds. It's enough to remove sd card, turn off eMMC and just press power button to get into maskrom mode.


Possibly Related Threads…
Thread Author Replies Views Last Post
  Install Tow-Boot on the SPI Shad0w 12 7,575 09-03-2023, 02:55 AM
Last Post: Spamiswak
Question Can't Boot from MicroSD (What Am I Missing) falken 10 3,625 04-28-2023, 04:26 PM
Last Post: pinemouth
  Building PPSSPP with Manjaro AUR LivingLinux 0 1,109 06-11-2022, 05:07 PM
Last Post: LivingLinux
  How to update Manjaro to 20.10 pineitup 8 13,327 07-31-2021, 04:44 AM
Last Post: jiyong
  How to rewrite uboot to emmc pineitup 5 8,685 12-27-2020, 10:35 AM
Last Post: nightranger73
  How to install Ubuntu to eMMC and to install KDE (Neon) Wizzard 66 97,675 12-22-2020, 03:05 PM
Last Post: Wizzard
  Make your own Manjaro image flatulent_piney 0 3,186 11-07-2020, 03:30 AM
Last Post: flatulent_piney
  Manjaro ARM, Cryptomator, and MEGA Sync dp1kinobe 3 7,017 10-24-2020, 06:38 AM
Last Post: pineitup
  Tutorial: Run Debian off NVMe hive 4 6,119 10-19-2020, 10:09 AM
Last Post: hive
  Downgrading packages on Manjaro ARM (on the example of boinc) wrzomar 0 3,378 10-02-2020, 12:20 PM
Last Post: wrzomar

Forum Jump:


Users browsing this thread: 1 Guest(s)