1 1
FRANK333

OPzero boot from external USB2.0 drive (hdd) without any SD

Recommended Posts

Armbianmonitor:

I have an orangepizero (https://www.armbian.com/wp-content/uploads/2018/02/orangepizero.png)
I installed Armbian_5.90_Orangepizero_Ubuntu_bionic_next_4.19.57.7z on 32GB sd.
The pi0 is powered via pin with a 5V/5A power supply, norflash mx25l1606e.
The HDD is a new working 80gb maxtor powered by an external USB 2.0 box.
I have also connected the serial and read the boot information.
I used armbian-config and transferred armbian to HDD and it works, but I have to keep the miniSD plugged in.
I ask you can boot from HDD and not use any SD?
PS I read almost all posts here on the forum and tried the old procedures but it does not work.

Spoiler

=> reset
resetting ...
   
U-Boot SPL 2019.04-armbian (Jul 06 2019 - 00:40:48 +0200)
DRAM: 512 MiB
Trying to boot from sunxi SPI
   
   
U-Boot 2019.04-armbian (Jul 06 2019 - 00:40:48 +0200) Allwinner Technology
   
CPU:   Allwinner H3 (SUN8I 1680)
Model: Xunlong Orange Pi Zero
DRAM:  512 MiB
MMC:   mmc@1c0f000: 0, mmc@1c10000: 1
Loading Environment from EXT4... MMC: no card present
In:    serial
Out:   serial
Err:   serial
Net:   phy interface0
eth0: ethernet@1c30000
starting USB...
USB0:   USB EHCI 1.00
USB1:   USB OHCI 1.0
USB2:   USB EHCI 1.00
USB3:   USB OHCI 1.0
USB4:   USB EHCI 1.00
USB5:   USB OHCI 1.0
scanning bus 0 for devices... 1 USB Device(s) found
scanning bus 1 for devices... 1 USB Device(s) found
scanning bus 2 for devices... 3 USB Device(s) found
scanning bus 3 for devices... 1 USB Device(s) found
scanning bus 4 for devices... 1 USB Device(s) found
scanning bus 5 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found
Autoboot in 1 seconds, press <Space> to stop
MMC: no card present
   
Device 0: Vendor: Maxtor 6 Rev: 0811 Prod: Y080L0
            Type: Hard Disk
            Capacity: 78167.2 MB = 76.3 GB (160086528 x 512)
... is now current device
Scanning usb 0:1...
_sun8i_emac_eth_init: Timeout
missing environment variable: pxeuuid
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/01-02-42-55-5d-02-ae
ethernet@1c30000 Waiting for PHY auto negotiation to complete.......user interrupt!

 

Share this post


Link to post
Share on other sites

I did this as a test in March this year:

 

It did work, but the Zero did need more power to boot via USB (for the USB-Stick) as for the SDCard.

So you need a good powersupply (>2.5A and maybe 5.1V = original Raspberry-PowerSupply)

 

The other problem (the first is power - when the HDD hasnt a own PowerSupply)  could be that your USB-HDD is spnning up to slow that the Zero will find it as boot-device.

 

First try to boot from a USB-Stick to check if USB-Boot does work ;) then check if it does work with the HDD.

 

Did you already program the current/new u-boot-sunxi-with-spl.bin to you spi-chip (you have to enable the overlay spi-jedec-nor in armbian-config for using teh commands to program the chip)?

 

Here some snippets from my personal "documentation":
 

Spoiler

OrangePi Zero SPI / mtd0:
https://forum.armbian.com/topic/8111-orange-pi-zero-plus-spi-nor-flash-anyone-know-how-to-configure-for-booting/
https://forum.armbian.com/topic/5218-spiusb-boot-orange-pi-pc2/

# ------------------------------------------------------------------------------------

nano /boot/armbianEnv.txt

verbosity=1
logo=disabled
console=serial
disp_mode=1920x1080p60
overlay_prefix=sun8i-h3
overlays=analog-codec spi-jedec-nor usbhost2 usbhost3
                                      -------------------
--> param_spinor_spi_bus=0
rootdev=UUID=bdd064ff-99f3-4a5f-b1a8-d47dd5c62ef6
rootfstype=ext4
usbstoragequirks=0x2537:0x1066:u,0x2537:0x1068:u
# ------------------------------------------------------------------------------------

root@opi-zero-99(192.168.6.99):~# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00200000 00001000 "spi0.0"
# ------------------------------------------------------------------------------------
apt install mtd-utils  (for flashcp)
# ------------------------------------------------------------------------------------
--> mtd_debug info /dev/mtd0
root@opi-zero-99(192.168.6.99):~# mtd_debug info /dev/mtd0
mtd.type = MTD_NORFLASH
mtd.flags = MTD_CAP_NORFLASH
mtd.size = 2097152 (2M)
mtd.erasesize = 4096 (4K)
mtd.writesize = 1
mtd.oobsize = 0
regions = 0
# ------------------------------------------------------------------------------------
find / -name u-boot-sunxi-with-spl.bin

find / -name u-boot-sunxi-with-spl.bin
/usr/lib/linux-u-boot-dev-orangepizero_5.75_armhf/u-boot-sunxi-with-spl.bin


ls -l /usr/lib/linux-u-boot-dev-orangepizero_5.75_armhf/u-boot-sunxi-with-spl.bin
-rw-rw-r-- 1 root root 404407 Feb  8 13:34 /usr/lib/linux-u-boot-dev-orangepizero_5.75_armhf/u-boot-sunxi-with-spl.bin
root@orangepi:~# ls -l /usr/lib/linux-u-boot-dev-orangepi-r1_5.77_armhf/u-boot-sunxi-with-spl.bin
-rw-rw-r-- 1 root root 420961 Mar 24 11:38 /usr/lib/linux-u-boot-dev-orangepi-r1_5.77_armhf/u-boot-sunxi-with-spl.bin

# ------------------------------------------------------------------------------------
flash_erase /dev/mtd0 0 256
( mtd.erasesize = 4096 (4K) )
# ------------------------------------------------------------------------------------
nandwrite -p /dev/mtd0 /usr/lib/linux-u-boot-dev-orangepizero_5.75_armhf/u-boot-sunxi-with-spl.bin
nandwrite -p /dev/mtd0 /usr/lib/linux-u-boot-dev-orangepi-r1_5.77_armhf/u-boot-sunxi-with-spl.bin
or
flashcp /usr/lib/linux-u-boot-dev-orangepizero_5.75_armhf/u-boot-sunxi-with-spl.bin /dev/mtd0
# ------------------------------------------------------------------------------------
mtd_debug read /dev/mtd0 0 404407 current.bin
mtd_debug read /dev/mtd0 0 420961 current.bin
Segmentation fault
# ------------------------------------------------------------------------------------
dd if=/dev/mtd0  bs=1 count=404407 of=./current.bin
dd if=/dev/mtd0  bs=1 count=420961 of=./current.bin
404407+0 records in
404407+0 records out
404407 bytes (404 kB, 395 KiB) copied, 65.746 s, 6.2 kB/s
root@opi-zero-99(192.168.6.99):/home/guido# ls -l current.bin
-rw-r--r-- 1 root root 404407 Mar 11 12:26 current.bin
# ------------------------------------------------------------------------------------
cmp /usr/lib/linux-u-boot-dev-orangepizero_5.75_armhf/u-boot-sunxi-with-spl.bin ./current.bin
cmp /usr/lib/linux-u-boot-dev-orangepi-r1_5.77_armhf/u-boot-sunxi-with-spl.bin ./current.bin
# ------------------------------------------------------------------------------------

# ==========================================================================================
nano /boot/armbianEnv.txt
    overlays=analog-codec spi-jedec-nor usbhost2 usbhost3
    param_spinor_spi_bus=0

cat /proc/mtd
apt install mtd-utils
mtd_debug info /dev/mtd0
find / -name u-boot-sunxi-with-spl.bin
ls -l /usr/lib/linux-u-boot-dev-orangepi-r1_5.77_armhf/u-boot-sunxi-with-spl.bin
    -rw-rw-r-- 1 root root 420961 Mar 24 11:38 /usr/lib/linux-u-boot-dev-orangepi-r1_5.77_armhf/u-boot-sunxi-with-spl.bin

flash_erase /dev/mtd0 0 256
nandwrite -p /dev/mtd0 /usr/lib/linux-u-boot-dev-orangepi-r1_5.77_armhf/u-boot-sunxi-with-spl.bin
dd if=/dev/mtd0  bs=1 count=420961 of=./current.bin
cmp /usr/lib/linux-u-boot-dev-orangepi-r1_5.77_armhf/u-boot-sunxi-with-spl.bin ./current.bin
# ==========================================================================================

 

Share this post


Link to post
Share on other sites

hello guidol,
I'd already read your post (and Martinayotte's) and tried your solutions.
I can only start with the sd connected, if I take it off it crashes and goes into a loop as you see in the spoiler above.

Share this post


Link to post
Share on other sites

It does found your device

Device 0: Vendor: Maxtor 6 Rev: 0811 Prod: Y080L0
            Type: Hard Disk
            Capacity: 78167.2 MB = 76.3 GB (160086528 x 512)
... is now current device
Scanning usb 0:1...

but couldnt boot....

 

So it seems only the problem how did you make the device bootable?

Which utility/command do you used to transfer the armbian-image to your HDD?

Share this post


Link to post
Share on other sites

I used armbian-config (https://docs.armbian.com/User-Guide_Getting-Started/#how-to-install-to-emmc-nand-sata-usb) option no. 3

I have the impression that without the sd the boot files that are on the HDD are read but that later on they are discarded because they are not appropriate.

The problem is how to edit them correctly (I tried to edit the cmd with /dev/sda1 and recompile, but it does not work)

Below in the spoiler there is the boot log when I delete the SD

Spoiler

U-Boot SPL 2019.04-armbian (Jul 06 2019 - 00:40:48 +0200)
DRAM: 512 MiB
Trying to boot from sunxi SPI
   
   
U-Boot 2019.04-armbian (Jul 06 2019 - 00:40:48 +0200) Allwinner Technology
   
CPU:   Allwinner H3 (SUN8I 1680)
Model: Xunlong Orange Pi Zero
DRAM:  512 MiB
MMC:   mmc@1c0f000: 0, mmc@1c10000: 1
Loading Environment from EXT4... MMC: no card present
In:    serial
Out:   serial
Err:   serial
Net:   phy interface0
eth0: ethernet@1c30000
starting USB...
USB0:   USB EHCI 1.00
USB1:   USB OHCI 1.0
USB2:   USB EHCI 1.00
USB3:   USB OHCI 1.0
USB4:   USB EHCI 1.00
USB5:   USB OHCI 1.0
scanning bus 0 for devices... 1 USB Device(s) found
scanning bus 1 for devices... 1 USB Device(s) found
scanning bus 2 for devices... 3 USB Device(s) found
scanning bus 3 for devices... 1 USB Device(s) found
scanning bus 4 for devices... 1 USB Device(s) found
scanning bus 5 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found
Autoboot in 1 seconds, press <Space> to stop
MMC: no card present
   
Device 0: Vendor: Maxtor 6 Rev: 0811 Prod: Y080L0
            Type: Hard Disk
            Capacity: 78167.2 MB = 76.3 GB (160086528 x 512)
... is now current device
Scanning usb 0:1...
Found U-Boot script /boot/boot.scr
data abort
pc : [<5ffa9612>]          lr : [<5ffa905d>]
reloc pc : [<4a02b612>]    lr : [<4a02b05d>]
sp : 5bf570e8  ip : 00000003     fp : 00000005
r10: 5bfbaf78  r9 : 5bf5dee0     r8 : 00000001
r7 : 5bf60e48  r6 : 5af56040     r5 : 5bf57110  r4 : 00000022
r3 : 0000005c  r2 : 5af560a3     r1 : 5bf60eb4  r0 : 5af5609f
Flags: nzCv  IRQs off  FIQs off  Mode SVC_32
Code: 4630fd7f 81f0e8bd e7d84606 bf082b2f (f822235c)
Resetting CPU ...

resetting ...

U-Boot SPL 2019.04-armbian (Jul 06 2019 - 00:40:48 +0200)

 

Share this post


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.

Guest
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.

Loading...
1 1