[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Install on Orange Pi Plus eMMC work but no reboot

Le 06. 10. 16 à 15:26, Karsten Merker a écrit :
The raw MLC NAND flash that was commonly used as fixed storage on
sunxi-based boards isn't yet properly supported in the mainline
kernel and sunxi-based systems with eMMC storage are a fairly
recent development.  Therefore until recently, on sunxi-based
devices installation was only possible to either the SD card that
the system was booted from and on which therefore a u-boot was
already installed, or to a SATA disk (on SoCs that have a SATA
controller), or to a USB mass storage device.  As no Allwinner
SoC can boot directly from SATA nor from USB mass storage
devices, in all cases u-boot still had to be loaded from the SD
card because there was no other way and u-boot was already
present there, so there was no need to install u-boot somewhere
as a part of the installation process.

Right. For my curiosity I tested the netboot SD card image of the Debian installer and tried to tell it to partition, format and install Debian into the very same SD card the installer booted from. To my great surprise this worked flawlessly (just need a power cycle as the reboot simply hang). This work only with the netboot image. The hd-media require an other partition with the ISO file making the partition/format fail because the SD card device is busy. I don't know at this stage if the boot stage is a residual of the image creation on the SD card or if it was wrote by the installer. Yet the result is simply amazing already.

With boards becoming
available now which use eMMC instead of raw MLC NAND flash, the
situation changes indeed.  AFAIK you are actually the first
person reporting about a Debian installation to eMMC on
sunxi-based boards.

If we can get this working, I am certain that this will become a popular way to install Debian on that kind of board. I observe a trend in the industry toward eMMC. The price is very low with the advantage solve tricky wearing management and compatibility details. From my personal point of view raw NAND are dead already.

For booting the system please see below. If that doesn't work,
you could try running a rescue shell from the installer. Once
you have a shell, get the following file and gunzip it:


To write it to the eMMC, please run

   dd bs=1k seek=8 if=u-boot-sunxi-with-spl.bin of=/dev/YOUR_TARGET_DEVICE

with YOUR_TARGET_DEVICE being the first regular (i.e. non-boot)
eMMC partition; in your case probably /dev/mmcblk1p1.
Unfortunately I don't know how the H3 BROM handles the
eMMC-specific hardware boot partitions (/dev/mmcblk1boot0 and
/dev/mmcblk1boot1), i.e. whether it tries to load the u-boot SPL
from the first regular partition or from the first hardware boot
partition.  If the latter, this would probably need extra support
in u-boot which to my knowledge isn't there yet.

So I have followed this procedure:
* Reinstalled the SD card with the netboot SD card image of the Debian installer and powered up the board.
* Interrupted U-Boot with some space characters.
* Issued the command "run bootcmd_mmc1" into U-Boot and the Debian system on the eMMC started as expected instead of the installer on the SD card.
* Logged as root.
* Downloaded the file with this command: wget https://d-i.debian.org/daily-images/armhf/daily/u-boot/orangepi_plus/u-boot-sunxi-with-spl.bin.gz
* Uncompress the file with: gunzip u-boot-sunxi-with-spl.bin.gz
* Wrote the file with: dd bs=1k seek=8 if=u-boot-sunxi-with-spl.bin of=/dev/mmcblk2
* Issued the "sync" command.
* Removed the SD card.
* Reboot / power cycle.
* Welcome to Debian on H3 from eMMC :-)

Many thanks for your effective explanations ! This worked perfectly well.
I have neither access to a H3-based system nor to any other
sunxi-based device with eMMC, so unfortunately I cannot do any
tests in this regard.

I have some motivation to do that for you on my Orange Pi Plus as long as I found the time to do it.

Installing u-boot from within the debian-installer can be a
rather dangerous operation on many systems which is why the
installer doesn't try to do that yet.  The problem is that u-boot
isn't only a bootloader like GRUB but more like a PC BIOS and
nobody would expect the debian-installer to flash BIOS-updates on
a PC ;-).  There are quite a number of systems where writing
u-boot to internal storage going wrong completely bricks the
system, i.e the system is electronics garbage afterwards. Most
sunxi-based systems still have a way to trigger SD boot or FEL
boot as a way to manually restore the firmware, but not all of
them do, and on many non-sunxi-platforms a broken u-boot write is
completely unrecoverable except by unsoldering the flash or - if
one is lucky - by accessing it via JTAG, but both are methods
that are inaccessible for a normal user.

I understand, but the SD card image of the Debian installer is specifically targeted for the Orange Pi Plus board so it can take advantage of it.

I'll put looking into support for installing u-boot from within
the installer at least on certain systems onto my (unfortunately
already way too long) todo list, but that will surely take quite
some time. I'm also CCing Vagrant Cascadian, the Debian u-boot
maintainer for some further input on this topic.

Good idea. The installer could at least ask the user to install the boot on the target memory after a warning message.


Reply to: