Armbian self-builded image with btrfs root not bootable on oDroud-N2


Recommended Posts

TL;DR

Where in armbian build system correctly can be make N2-only related changes:

1. /boot ext4 volume have to have symlink  . as boot, can be created with command ln -s ./ boot

2. kernel env variable set in boot.ini contain part but it shouldn't. This substring need to be removed if btrfs choosen.

3. /boot ext4 partition have only 4 MB free. I am not sure but think it's too small; for example there no space to run update-initramfs -u. I think it should be larger, like 500 MB.

 

Long:

I want to run my oDroid-N2 with root on BTRFS filesystem.

I use manual on armbian image build and did

time ./compile.sh BOARD=odroidn2 BRANCH=current RELEASE=focal BUILD_MINIMAL=no BUILD_DESKTOP=no KERNEL_ONLY=no KERNEL_CONFIGURE=yes ROOTFS_TYPE=btrfs INSTALL_HEADERS=no BUILD_KSRC=no

then image Armbian_20.08.0-trunk_Odroidn2_focal_current_5.7.16.img was written to microSD card with BalenaEtcher program, inserted into N2 with serial console connected.

cap1.log

 

Then I create simlink ./ boot on boot volume, and get cap2.log

 

Then I remove rootflags=data=writeback from bootargs and successfully boot into shell prompt, cap3.log

changes:

diff -u boot.ini.org boot.ini.run 
--- boot.ini.org	2020-08-20 23:08:36.000000000 +0300
+++ boot.ini.run	2020-08-20 23:26:29.000000000 +0300
@@ -20,7 +20,7 @@
 fi
 
 # Default Console Device Setting
-setenv condev "console=${uartconsole} console=tty1 loglevel=1"   # on both
+setenv condev "console=${uartconsole} console=tty1 loglevel=5"   # on both
 
 # Auto Detection of Monitor settings based on your Screen information
 setenv display_autodetect "true"
@@ -115,7 +115,7 @@
 if ext4load mmc ${devno}:1 0x44000000 /boot/armbianEnv.txt || fatload mmc ${devno}:1 0x44000000 armbianEnv.txt || ext4load mmc ${devno}:1 0x44000000 armbianEnv.txt; then env import -t 0x44000000 ${filesize}; fi
 
 # Boot Args
-setenv bootargs "root=${rootdev} rootwait rootflags=data=writeback rw rootfstype=${rootfstype} ${condev} ${amlogic} no_console_suspend fsck.repair=yes net.ifnames=0 elevator=noop hdmimode=${hdmimode} cvbsmode=576cvbs max_freq_a53=${max_freq_a53} max_freq_a73=${max_freq_a73} maxcpus=${maxcpus} voutmode=${voutmode} ${cmode} disablehpd=${disablehpd} ${bootsplash} cvbscable=${cvbscable} overscan=${overscan} consoleblank=0"
+setenv bootargs "root=${rootdev} rootwait rw rootfstype=${rootfstype} ${condev} ${amlogic} no_console_suspend fsck.repair=yes net.ifnames=0 elevator=noop hdmimode=${hdmimode} cvbsmode=576cvbs max_freq_a53=${max_freq_a53} max_freq_a73=${max_freq_a73} maxcpus=${maxcpus} voutmode=${voutmode} ${cmode} disablehpd=${disablehpd} ${bootsplash} cvbscable=${cvbscable} overscan=${overscan} consoleblank=0"
 
 # Set load addresses
 setenv dtb_loadaddr "0x1000000"

 

cap1.log cap2.log cap3.log

Link to post
Share on other sites
Armbian is a community driven open source project. Do you like to contribute your code?

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