Skip to content
View in the app

A better way to browse. Learn more.

Armbian Community Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Is it possible to boot Armbian from SD card only?

Featured Replies

Hello there!

I have a generic S805 TV box which, I assume, has a dead NAND memory chip. It doesn't boot  and only outputs the following message over UART:

 

QA5:B;SVN:B72;POC:3FF;STS:0;BOOT:0;INIT:0;READ:82;BOOT:1;INIT:10;USB:3;SERIAL:4;STS:0;BOOT:0;INIT:0;READ:82;BOOT:1;INIT:10;USB:3;

 

I found firmware for a similar TV box online and extracted the bootloader.bin file from it. I then wrote it to the beginning of an SD card using dd like this:

 

sudo dd if=bootloader.bin of=/dev/sdX 

 

Where sdX is my SD card. 

Now, at least, the box is trying to boot from the SD card and I can get into U-Boot.

Here are the logs I see now:
 

Spoiler


QA5:B;SVN:B72;POC:3FF;STS:0;BOOT:0;INIT:0;READ:82;BOOT:1;INIT:0;READ:0;CHECK:0;PASS:1;
no sdio debug board detected 
TE : 197117
BT : 10:16:17 Mar 25 2015
PMU:NONE
##### VDDEE voltage = 0x044c

CPU clock is 792MHz

DDR mode: 32 bit mode
DDR size: 1GB (auto)
DDR check: Pass!
DDR clock: 636MHz with 2T mode
DDR pll bypass: Disabled
DDR init use : 14843 us

HHH
SD_boot_type: 00000001
card_type: 00000001
0x0000009f
check SD_boot_type:0x1	card_type:0x1
ucl decompress...pass
0x12345678
Boot from external device 
TE : 553106

System Started


U-boot-00000-g27f8ec3(m8b_m201_v1@new_s85_netxeon) (Mar 25 2015 - 10:16:07)

clr h-ram
DRAM:  1 GiB
relocation Offset is: 2fecc000
show partition table: 
part: 0, name :       logo, size : 2000000
part: 1, name :   recovery, size : 2000000
part: 2, name :       misc, size : 2000000
part: 3, name :       boot, size : 2000000
part: 4, name :     system, size : 40000000
part: 5, name :      cache, size : 20000000
part: 6, name :       data, size : end 
aml_card_type=0x100
MMC:   [mmc_register] add mmc dev_num=0, port=1, if_type=6
[mmc_register] add mmc dev_num=1, port=2, if_type=6
SDIO Port B: 0, SDIO Port C: 1
power init
out reg=c110804c,value=dfffffff
out reg=c8100024,value=bfff3fff
IR init done!
register usb cfg[0][1] = 3ff73894
register usb cfg[2][0] = 3ff76418
NAND:  NAND BOOT: boot_device_flag 1
Nand PHY driver Version: 1.01.001.0004 (c) 2013 Amlogic Inc.
amlnf_phy_init : amlnf init flag 0
NAND device id: ad 73 ad 73 ad 73 ad 73
no matched id
get_chip_type and ret:fffffffd
get_chip_type and ret:fffffffd
chip detect failed and ret:fffffffd
nandphy_init failed and ret=0xfffffff1
get_boot_device_flag: init_ret -1
get_boot_device_flag NAND BOOT: 
NAND BOOT,nand_env_relocate_spec : env_relocate_spec 49 
uboot env amlnf_env_read : ####
*** Warning - bad CRC, using default environment

NAND BOOT,nand_saveenv :saveenv 94 
uboot env amlnf_env_save : ####
nand_saveenv : Successful!
set_storage_device_flag: store 0
set_storage_device_flag: set  store to 1
NAND BOOT,nand_saveenv :saveenv 94 
uboot env amlnf_env_save : ####
nand_saveenv : Successful!
nand get nftl dev boot  failed
nftl_dev be NULL
nand cmd read failed 
nand cmd store failed 
Err imgread(L123):Fail to read 0x1000B from part[boot] at offset 0
check dts: FDT_ERR_BADMAGIC, load default vpu parameters
vpu clk_level = 3
set vpu clk: 182150000Hz, readback: 182150000Hz(0x701)
Net:   Meson_Ethernet
msg:====>upgrade_step=0<=====
[mmc_init] SDIO Port B:0, if_type=7, initialized OK!
Device: SDIO Port B
Manufacturer ID: 0
OEM: 0
Name: Tran Speed: 20000000
Rd Block Len: 512
SD version 2.0
High Capacity: Yes
Capacity: 7780433920
Boot Part Size: 0
Bus Width: 4-bit

** Unable to use mmc 0:1 for fatload **
init suspend firmware done. (ret:0)
cvbs trimming.1.v5: 0xa0, 0x0
hdmi tx power init
mode = 8  vic = 16
set HDMI vic: 16
mode is: 8
viu chan = 1
config HPLL
config HPLL done
reconfig packet setting done
nand get nftl dev logo  failed
nftl_dev be NULL
nand cmd read failed 
nand cmd store failed 
Err imgread(L448):Fail to read 0x100000B from part[logo] at offset 0
Err imgPack(L72):magic of oldest img not item header!
Err imgPack(L115):Err res header.
There is no valid bmp file at the given address
reboot_mode=charging
efuse version is not selected.
Hit Enter key to stop autoboot -- :  1 tstc enter
 0 
exit abortboot: 0
Booting...
 error: image data is not a fdt
key_unify_init:364,unify key config table parse fail
Err key(L47):fail in key_drv_init
nand get nftl dev boot  failed
nftl_dev be NULL
nand cmd read failed 
nand cmd store failed 
Err imgread(L323):Fail to read 0x100000B from part[boot] at offset 0
Wrong Image Format for bootm command
ERROR: can't get kernel image!
enter recovery
Device: SDIO Port B
Manufacturer ID: 0
OEM: 0
Name: Tran Speed: 20000000
Rd Block Len: 512
SD version 2.0
High Capacity: Yes
Capacity: 7780433920
Boot Part Size: 0
Bus Width: 4-bit

** Unable to use mmc 0:1 for fatload **
(Re)start USB(0)...
USB:   dwc_usb driver version: 2.94 6-June-2012
USB (1) peri reg base: c1108820
USB (1) use clock source: XTAL input
USB (1) base addr: 0xc90c0000
dwc_otg: usb_lowlevel_init: Bad value for SNPSID: 0x00000000

Error, couldn't init Lowlevel part

** Invalid boot device **
nand get nftl dev recovery  failed
nftl_dev be NULL
nand cmd read failed 
nand cmd store failed 
Err imgread(L323):Fail to read 0x100000B from part[recovery] at offset 0
no recovery in flash
m8b_m201_1G#

 

So, is it possible to run Armbian without a NAND chip?
I can’t write the system image to the SD card because the bootloader has to be placed at the beginning of the card, and it’s quite large — it overwrites the partition table of the SD card.

I tried writing the system image to a USB flash drive instead, but as you can see from the logs, U-Boot can’t initialize USB.

 

(Re)start USB(0)...
USB:   dwc_usb driver version: 2.94 6-June-2012
USB (1) peri reg base: c1108820
USB (1) use clock source: XTAL input
USB (1) base addr: 0xc90c0000
dwc_otg: usb_lowlevel_init: Bad value for SNPSID: 0x00000000

Error, couldn't init Lowlevel part

 

Is this a problem with an incompatible U-Boot, or is the SoC already in very bad shape?

So when writing the u-boot to SD card, you need to follow a special process to "skip" over some bytes to prevent trashing the partition table.

 

see https://www.cnx-software.com/2016/11/19/how-to-create-a-bootable-recovery-sd-card-for-amlogic-tv-boxes/

TLDR, something like:

sudo umount /dev/sdX*
sudo dd if=aml_sdc_burn.UBOOT of=/dev/sdX bs=1 count=442
sudo dd if=aml_sdc_burn.UBOOT of=/dev/sdX seek=1 skip=1 bs=512
sync

 

Edited by Jens J.

  • Author

Jens J, woah, I didn't know that you can just split bootloader like that!

I did that, and so far, it looks good! TV Box boots into u-boot with this SD card, and it has a partition table. 

Thank you so much! 

Now I'll try to make an SD card with system on it

 

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

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.