Jump to content

Recommended Posts

Posted (edited)

Full root filesystem encryption on an Armbian system

(new, fully rewritten, replaces my earlier tutorial on this topic)

 

MMGen (https://github.com/mmgen)

 

This tutorial provides detailed, step-by-step instructions for setting up full root filesystem encryption on an Armbian system.  The disk can be unlocked remotely via SSH or the serial console, permitting unattended bootup.

 

An automated script that performs the same steps, saving you much time and effort, can be found at https://github.com/mmgen/mmgen-geek-tools

 

Note that unlike my earlier tutorial all steps are performed within a running Armbian system.

 

The tutorial is known to work with the following board/image combinations:

 Orange Pi PC2  Debian Buster mainline / Ubuntu Bionic and Focal legacy
 RockPi 4  Debian Buster mainline / Ubuntu Bionic and Focal legacy
 RockPro 64  Ubuntu Focal mainline
 Odroid HC4  Debian Buster mainline / Ubuntu Focal mainline

 

 

 

 

 

You may have success with other boards/images too. If so, please post the details below (or open an issue in the mmgen-geek-tools Github repository), and I’ll add your board to the list.

 

Requirements:

  • A SoC with a running, upgradeable and Internet-connected Armbian system
  • A blank Micro-SD card and USB card reader, or, alternatively, an eMMC installed on the board
  • The ability to edit text files and do simple administrative tasks on the Linux command line

 

Step 1 - Preliminaries

 

All steps in this tutorial are performed as root user on a running Armbian system (the “host”).

 

The encrypted system (the “target”) will be created on a blank micro-SD card (the “target device”).

 

If the board has an eMMC, it may be used as the target device instead of an SD card. Depending on your platform, you may need to run “armbian-install” and select “Install/Update the bootloader on MTD Flash” (preferable) or “Install/Update the bootloader on eMMC” to enable booting from the eMMC.

 

Architecture of host and target (e.g. 64-bit or 32-bit ARM) must be the same.

 

For best results, the host and target hardware should also be identical or similar.  Building on a host with more memory than the target, for example, may lead to disk unlocking failure on the target.

 

If you’re building the target system for the currently running board and with the currently running image, which is the recommended approach, the two preceding points will be a non-issue.

 

Packages will be installed using APT, so the host machine must be Internet-connected and its clock correctly set.

 

 

Step 2 - Upgrade your system and install the cryptsetup package

 

# apt update && apt upgrade
# apt install cryptsetup

 

Step 3 - Get and unpack the latest Armbian image for your board

 

Create your build directory:

# mkdir armbenc-build && cd armbenc-build

 

Download the Armbian image of your choice for your board, place it in this directory and unpack:

# xz -dv *.img.xz

 

 

Step 4 - Create mount directories and set up the loop mount

 

Create the mount directories:

# mkdir -p mnt boot root

 

Determine your first free loop device:

# losetup -f

 

Associate the image file with the loop device name displayed by the previous command.  This will be '/dev/loop0' in most cases, but if your output was different, substitute that for '/dev/loop0' in the following steps.

# losetup -P /dev/loop0 *.img

 

Examine the disk image using fdisk on the loop device:

# fdisk -l /dev/loop0

 

The output should look something like this:

Device       Boot Start     End Sectors  Size Id Type
/dev/loop0p1      32768 3489791 3457024  1.7G 83 Linux

 

Make a note of the start sector (32768 in this case).  You’ll need this value in the steps below.

 

Now mount the loop device:

# mount /dev/loop0p1 mnt

 

 

Step 5 - Copy the boot loader to the target device

 

If applicable, insert a blank micro-SD card and card reader into a USB port.

 

Determine the target device name using 'dmesg' or 'lsblk'.  We’ll assume it to be '/dev/sda', since that’s the most likely case.  If your device name is different, substitute it for '/dev/sda' in the the following steps.  For an eMMC, the device name will be something like '/dev/mmcblk1'.

 

WARNING: if '/dev/sda' refers to some other storage device, running the following commands unchanged will destroy data on that device, so always remember to substitute the correct device name!!!  The best way to eliminate this danger is to disconnect all unused storage devices on the board before proceeding further.

 

Determine whether your image has a GPT partition table or a legacy MBR (i.e. DOS) one. This can be done by running fdisk -l on the image file and examining the “Disklabel type” entry. For GPT images, also make note of the value in the “Type” column. On ARM devices, it’s likely to be “Linux root (ARM-64)”, for example. You’ll need this information soon when partitioning the target device:

# fdisk -l *.img

 

Copy the image’s boot loader to the target device. With MBR-partitioned images, we use the Start sector value from Step 4 as the argument for 'count', while with GPT ones we skip the first 64 sectors and correspondingly subtract 64 from 'count', reducing the number of copied sectors by 64:

### MBR (DOS) images:
# dd if=$(echo *.img) of=/dev/sda bs=512 count=32768

### GPT images:
# dd if=$(echo *.img) of=/dev/sda bs=512 skip=64 seek=64 count=32704

 

 

Step 6 - Partition the target device

 

# fdisk /dev/sda

 

At the fdisk prompt, create a new disk label with the 'o' command (for MBR images) or 'g' (for GPT images).  Use the 'n' command to create a partition of size +200M beginning at the same Start sector as the disk image (for MBR images, select the “primary” partition type).  Type 'p' to view the partition table, which should now look something like this:

Device      Boot  Start      End  Sectors  Size Id Type
/dev/sda1         32768   442367   409600  200M 83 Linux

 

Use 'n' again to create another partition beginning one sector after the first partition’s end sector and filling the remainder of the device (for MBR, select “primary” again). Type 'p' once more to view the partition table:

Device      Boot  Start      End  Sectors  Size Id Type
/dev/sda1         32768   442367   409600  200M 83 Linux
/dev/sda2        442368 30636031 30193664 14.4G 83 Linux

 

Ensure that the first partition’s Start sector matches that of the disk image (32768 in this example) and that the second partition’s Start sector is one greater than the End sector of the first (442368 and 442367, respectively, in this example).  If you’ve made a mistake, use 'd' to delete a partition and start again.

 

With GPT images, you’ll need to change the partition type of your two partitions to match that of the image. Type 'l' to list the known partition types and find the entry matching the value of the “Type” column you made note of above. Note the entry’s integer code and exit the pager with 'q'. Using the 't' command, change the type of your two partitions using this code. Type 'p' once again to view the partition table, which should now look something like this (depending on your platform):

Device      Boot  Start      End  Sectors  Size Id Type
/dev/sda1         32768   442367   409600  200M 83 Linux root (ARM-64)
/dev/sda2        442368 30636031 30193664 14.4G 83 Linux root (ARM-64)


Once everything looks correct, type 'w' to write the partition table to disk.

 

 

Step 7 - Copy the system to the target device

 

The following commands will create a filesystem on the target device’s boot partition and copy the boot partition data from the image file to it.  Don’t forget to substitute the correct device name if necessary.  If you’re building the system on an eMMC, the boot partition device will be something like '/dev/mmcblk1p1' instead of '/dev/sda1'.

 # mkfs.ext4 /dev/sda1            # or '/dev/mmcblk1p1', for an eMMC target
 # e2label /dev/sda1 CRYPTO_BOOT
 # mount /dev/sda1 boot
 # cp -av mnt/boot/* boot
 # (cd boot; ln -s . boot)

 

Create the encrypted root partition.  When prompted for a passphrase, it’s advisable to choose an easy one like 'abc' for now.  The passphrase can be changed later with the 'cryptsetup luksChangeKey' command (type 'man cryptsetup' for details) once your encrypted system is up and running.

# cryptsetup luksFormat /dev/sda2 # or '/dev/mmcblk1p2', for an eMMC target

 

Activate the encrypted root partition and create a filesystem on it:

# cryptsetup luksOpen /dev/sda2 rootfs  # enter your passphrase from above
# mkfs.ext4 /dev/mapper/rootfs

 

Mount the encrypted root partition and copy the system to it:

# mount /dev/mapper/rootfs root
# (cd mnt && rsync -a --info=progress2 --exclude=boot * ../root)
# sync # be patient, this could take a while
# mkdir root/boot
# touch root/root/.no_rootfs_resize

 

Unmount the boot partition and image and free the loop device:

# umount mnt boot
# losetup -d /dev/loop0

 

 

Step 8 - Prepare the target system chroot

 

# BOOT_PART=($(lsblk -l -o NAME,LABEL | grep CRYPTO_BOOT))
# ROOT_PART=${BOOT_PART%1}2
# ROOT_UUID="$(lsblk --nodeps --noheadings --output=UUID /dev/$ROOT_PART)"
# BOOT_UUID="$(lsblk --noheadings --output=UUID /dev/$BOOT_PART)"

# cd root
# mount /dev/$BOOT_PART boot
# mount -o rbind /dev dev
# mount -t proc proc proc
# mount -t sysfs sys sys

 

Copy '/etc/resolv.conf' and '/etc/hosts' so you’ll have a working Internet connection within the chroot:

# cat /etc/resolv.conf > etc/resolv.conf
# cat /etc/hosts > etc/hosts

 

If you’re using non-default APT repositories, you may need to copy their configuration files as well so that 'apt update' and 'apt install' will use them inside the chroot.  Note that you can only do this if the host and target systems have the same distro/version.  If that’s not the case, you’ll have to edit the target files by hand.

# cat /etc/apt/sources.list > etc/apt/sources.list
# cat /etc/apt/sources.list.d/armbian.list > etc/apt/sources.list.d/armbian.list

 

If you’re using an apt proxy, then copy its configuration file too:

# cp /etc/apt/apt.conf.d/*proxy etc/apt/apt.conf.d/

 

 

Step 9 - Edit or create required configuration files in the target system

 

Perform the editing steps below using a text editor of your choice:

  1. If the file 'boot/armbianEnv.txt' exists, edit it so that the 'rootdev', 'console' and 'bootlogo' lines read as follows.  If you’ll be unlocking the disk via the serial console, then use 'console=serial' instead of 'console=display'. Note that enabling the serial console will make it impossible to unlock the disk from the keyboard and monitor, though unlocking via SSH will still work:

    rootdev=/dev/mapper/rootfs
    console=display
    bootlogo=false
    
  2. If your image lacks an 'armbianEnv.txt' file, you’ll need to edit the file 'boot/extlinux/extlinux.conf' instead. All changes will be made to the line beginning with “append”. Alter the argument beginning with “root=” so that it reads “root=/dev/mapper/rootfs”. If you’ll be unlocking the disk via the serial console, remove the “console=tty1” argument. If not, remove the argument beginning with “console=ttyS...”. Replace the “splash plymouth...” argument with “splash=verbose”. Make sure to read the note about unlocking via serial console in the previous step.

  3. Edit 'etc/initramfs-tools/initramfs.conf'.  If your board will have a statically configured IP, add the following line to the end of the file, substituting the correct IP in place of 192.168.0.88:

    IP=192.168.0.88:::255.255.255.0::end0:off

    If the board will be configured via DHCP, then edit the DEVICE line as follows:

    DEVICE=end0

    If your default network device is eth0, use that instead of end0.

  4. If host and target systems are both Debian buster, you may wish add some key modules to the initramfs to avoid a blank display at bootup time.  The easiest way to do this is to add all currently loaded modules as follows:
    # lsmod | cut -d ' ' -f1 | tail -n+2 > etc/initramfs-tools/modules
    
  5. Retrieve the SSH public key from the remote unlocking host and copy it to the target:

    # mkdir -p etc/dropbear/initramfs
    # rsync yourusername@remote_machine:.ssh/id_*.pub etc/dropbear/initramfs/authorized_keys
    

    If you want to unlock the disk from more than one host, then edit the authorized_keys file by hand, adding the required additional keys.

  6. Create 'etc/crypttab':

    # echo "rootfs UUID=$ROOT_UUID none initramfs,luks" > etc/crypttab
    
  7. Create 'etc/fstab':

    # echo '/dev/mapper/rootfs / ext4 defaults,noatime,nodiratime,commit=600,errors=remount-ro 0 1' > etc/fstab
    # echo "UUID=$BOOT_UUID /boot ext4 defaults,noatime,nodiratime,commit=600,errors=remount-ro 0 2" >> etc/fstab
    # echo 'tmpfs /tmp tmpfs defaults,nosuid 0 0' >> etc/fstab
    
  8. Create the dropbear configuration file:

    # echo 'DROPBEAR_OPTIONS="-p 2222"' > etc/dropbear/initramfs/dropbear.conf
    # echo 'DROPBEAR=y' >> etc/dropbear/initramfs/dropbear.conf
    

     

  9. If the target is Ubuntu bionic, then a deprecated environment variable must be set as follows:

    # echo 'export CRYPTSETUP=y' > etc/initramfs-tools/conf.d/cryptsetup

     

  10. Set up automatic disk unlock prompt. Performing this optional step will cause the disk password prompt to appear automatically when you log in remotely via SSH to unlock the disk. Using your text editor, create the file 'etc/initramfs-tools/hooks/cryptroot-unlock.sh' with the following contents:
    #!/bin/sh
    
    if [ "$1" = 'prereqs' ]; then echo 'dropbear-initramfs'; exit 0; fi
    
    . /usr/share/initramfs-tools/hook-functions
    
    source='/tmp/cryptroot-unlock-profile'
    
    root_home=$(echo $DESTDIR/root-*)
    root_home=${root_home#$DESTDIR}
    
    echo 'if [ "$SSH_CLIENT" ]; then /usr/bin/cryptroot-unlock; fi' > $source
    
    copy_file ssh_login_profile $source $root_home/.profile
    
    exit 0
    

     

  11. Save the file and execute the command:

    chmod 755 'etc/initramfs-tools/hooks/cryptroot-unlock.sh'

     

 

Step 10 - Chroot into the target system, install packages and configure

 

Now chroot into the encrypted system.  All remaining steps will be performed inside the chroot:

# chroot .

 

Install the cryptsetup package and the dropbear SSH server:

# apt update
# echo 'force-confdef' > /root/.dpkg.cfg
# apt --yes install cryptsetup-initramfs dropbear-initramfs # for a buster or focal image
# apt --yes install cryptsetup dropbear-initramfs           # for a bionic image
# rm /root/.dpkg.cfg

 

Make sure everything was included in the initramfs (all three commands should produce output):

# lsinitramfs /boot/initrd.img-* | grep 'usr.*cryptsetup'
# lsinitramfs /boot/initrd.img-* | grep dropbear
# lsinitramfs /boot/initrd.img-* | grep authorized_keys

 

Now regenerate your SSH host keys:

# ssh-keygen -A

 

Your work is finished! Exit the chroot and shut down the board:

# exit
# halt -p

 

Insert your freshly written SD card into the board’s main SD slot (or, if the target is an eMMC, just remove the SD card from that slot) and reboot.


Unlock the disk by executing the following command on your remote unlocking machine, substituting the correct IP address if necessary:

$ ssh -p 2222 root@192.168.0.88

 

If you performed step 9.10 above, the disk password prompt should appear automatically after login.  If not, you must enter the command 'cryptroot-unlock'.

 

You may also unlock the disk from the target board’s console if you wish.  Note, however, that certain disk images (RockPi 4 buster mainline, for example) might give you a blank display at startup, so you’ll have to enter your disk password “blindly”.  This bug will hopefully be fixed in the future.


If all went well, your root-filesystem encrypted Armbian system is now up and running!

Edited by MMGen
GPT support
Posted

This is a very good tutorial. Thank you for posting this here.

 

Armbian build has an option CRYPTROOT_ENABLE=yes that can enable encrypted root system via custom build. See here.

 

Is there some overlap here?

 

-R

 

 

Posted

Thanks for pointing that out!

 

As far as overlap goes, I think this tutorial (and the automated script) has a clear use case, as it creates encrypted Armbian systems without building or compiling anything, which is much easier for most users (the automated script can create a fully configured system on your SD card or eMMC in a matter of minutes).

 

Secondly, the tutorial can be a valuable learning experience for those interested in better understanding disk partitioning, loop devices, LUKS encryption, uBoot, the Linux bootup process, basic administrative commands, etc.

Posted

I am wondering if this script would break nand-sata-install since the base Armbian images are single partition while the new encrypted image on SD card is having a separate Boot and Root partition. 

 

If this is the case then how can we move the image to eMMC from SD?

 

-R

 

Posted

Thanks for the post.
I test the script with Orange Pi zero with the latest Ubuntu Focal image.

Armbian 20.08.1 Focal with Linux 5.8.5-sunxi

After writing to the SD, at booting phase, following error occurs.

 

Starting kernel ...

Uncompressing Linux... done, booting the kernel.

Error: invalid dtb and unrecognized/unsupported machine ID
  r1=0x00001029, r2=0x40000100
  r2[]=05 00 00 00 01 00 41 54 00 00 00 00 00 00 00 00
Available machine support:

ID (hex)        NAME
ffffffff        Generic DT based system
ffffffff        Allwinner suniv Family
ffffffff        Allwinner sun9i Family
ffffffff        Allwinner A83t board
ffffffff        Allwinner sun8i Family
ffffffff        Allwinner sun7i (A20) Family
ffffffff        Allwinner sun6i (A31) Family
ffffffff        Allwinner sun4i/sun5i Families

Please check your kernel config and/or bootloader.

@MMGen anything I need to do additionally to support Orange Pi Zero?

 

Thanks.

Posted
9 hours ago, DevShanky said:

I am wondering if this script would break nand-sata-install since the base Armbian images are single partition while the new encrypted image on SD card is having a separate Boot and Root partition. 

 

If this is the case then how can we move the image to eMMC from SD?

 

-R

 

You don't need nand-sata-install, because the tutorial (and script) create the encrypted system directly on the eMMC. This has been tested successfully on the RockPi 4. Would like to hear from users how it works on other boards.

Posted
4 hours ago, sunzone said:

Thanks for the post.
I test the script with Orange Pi zero with the latest Ubuntu Focal image.

Armbian 20.08.1 Focal with Linux 5.8.5-sunxi

After writing to the SD, at booting phase, following error occurs.

...SNIP....

@MMGen anything I need to do additionally to support Orange Pi Zero?

 

Thanks.

This is not the kind of error I would expect to see. Are you sure you performed all the steps correctly, didn't omit anything? Is the SD card itself in working order? I'll take a look at the Focal Orange Pi Zero image to see if there's anything there that might be causing this error, but I don't have that board to test on, unfortunately.

 

UPDATE: I looked at your image. Some things you might want to check:

 

1) Make sure you're editing armbianEnv.txt correctly. After performing the edits, the file should look like this:

verbosity=1
bootlogo=false
console=display
disp_mode=1920x1080p60
overlay_prefix=sun8i-h3
overlays=usbhost2 usbhost3
rootdev=/dev/mapper/rootfs
rootfstype=ext4

2) In boot.cmd there are two lines beginning with 'setenv rootdev'. Make sure you're deleting the first one.

 

If that doesn't work, there are other things you might try and see whether you get the same or similar error at bootup:

 

1) Use the automated script instead of the tutorial.

2) Try the Buster image instead of Focal.

Posted
20 hours ago, MMGen said:

This is not the kind of error I would expect to see. Are you sure you performed all the steps correctly, didn't omit anything? Is the SD card itself in working order? I'll take a look at the Focal Orange Pi Zero image to see if there's anything there that might be causing this error, but I don't have that board to test on, unfortunately.

 

UPDATE: I looked at your image. Some things you might want to check:

 

1) Make sure you're editing armbianEnv.txt correctly. After performing the edits, the file should look like this:


verbosity=1
bootlogo=false
console=display
disp_mode=1920x1080p60
overlay_prefix=sun8i-h3
overlays=usbhost2 usbhost3
rootdev=/dev/mapper/rootfs
rootfstype=ext4

2) In boot.cmd there are two lines beginning with 'setenv rootdev'. Make sure you're deleting the first one.

 

If that doesn't work, there are other things you might try and see whether you get the same or similar error at bootup:

 

1) Use the automated script instead of the tutorial.

2) Try the Buster image instead of Focal.

 

1) Checked

2) Applied

Still the same error..

1) Used automated script

2) Used Buster image
Still the same error....

Posted
31 minutes ago, sunzone said:

Also tried with an Opi Zero Plus I had since it is 64bit, following the steps and also using the script.

Boot hangs after 




Starting kernel ...

 

Sorry to hear that. I'm afraid I've run out of options, since I don't have an Opi Zero for testing. If you really need root fs encryption, then you might try building Armbian with the CRYPTROOT_ENABLE option mentioned by @DevShankyin the post above.

 

Posted
On 10/21/2020 at 6:10 PM, MMGen said:

Sorry to hear that. I'm afraid I've run out of options, since I don't have an Opi Zero for testing. If you really need root fs encryption, then you might try building Armbian with the CRYPTROOT_ENABLE option mentioned by @DevShankyin the post above.

 

I will look into that.
Thanks.

Edit: building Armbian with the CRYPTROOT_ENABLE option works :)

Posted

Great step-by-step guide as an alternative to the build option, and also as a training/education for people less familiar with this in general :)

 

I guess it should be safe to assume that if `CRYPTROOT_UNLOCK` works, so should this guide?

 

`CRYPTROOT_ENABLE` confirmed working on:

 

* OdroidC4 (current buster and bullseye tested)

* OdroidHC4 (current buster tested; interactive prompt does not show at boot and seems to stop at "Starting Kernel..." but remote unlock over SSH still works. Additionally, eth0 will only come up again after boot if you issue `ip link set eth0 down; rmmod realtek; sleep 1; modprobe realtek; ip link set eth0 up` after boot)

 

 

Thanks to people in IRC for figuring out the points for the hc4.

 

Posted
12 hours ago, legogris said:

I guess it should be safe to assume that if `CRYPTROOT_UNLOCK` works, so should this guide?

 

No, I wouldn't assume that. See the comments by @sunzone above regarding the Orange Pi Zero.

 

In their case, the problem may be connected with the fact that the OPi Zero requires 'flash-kernel' to set up the boot loader.

 

I think that boards/images that don't depend on flash-kernel should generally work with this tutorial, but I need more test data to confirm that hypothesis.

Posted

Add serial console disk unlocking instructions at step 9.1. Serial console disk unlocking has been added as an option to the automated script as well.

Posted

Thank you for the comprehensive tutorial!

Instead of installing the encrypted system on an SD/eMMC I'd like to move the rootfs to my SSD and keep the boot partition on the SD-card (I'm using the Odroid HC4, unfortunately can't boot directly from SSD). Is it sufficient to edit the armbianEnv.txt-file in the SD-card's boot-partition? Do you have any suggestions on this?

Posted
On 6/7/2021 at 3:30 PM, Bagel said:

Thank you for the comprehensive tutorial!

Instead of installing the encrypted system on an SD/eMMC I'd like to move the rootfs to my SSD and keep the boot partition on the SD-card (I'm using the Odroid HC4, unfortunately can't boot directly from SSD). Is it sufficient to edit the armbianEnv.txt-file in the SD-card's boot-partition? Do you have any suggestions on this?

Yes, this should be doable. Create a LUKS partition and ext4 fs on the SSD, copy the root fs to it,  update /etc/crypttab with the new device UUID, mount, chroot and update the initramfs. I haven't tested this myself though, so other steps might be required. But first you should try the tutorial without modification to make sure it works for your board. If it does, please let me know and I'll add the HC4 to the "supported" list.

Posted
On 6/17/2021 at 12:42 PM, MMGen said:

Yes, this should be doable. Create a LUKS partition and ext4 fs on the SSD, copy the root fs to it,  update /etc/crypttab with the new device UUID, mount, chroot and update the initramfs. I haven't tested this myself though, so other steps might be required. But first you should try the tutorial without modification to make sure it works for your board. If it does, please let me know and I'll add the HC4 to the "supported" list.

Whoop, it works, thanks! I've followed the (non-boot) parts in your tutorial. thus I created a single partition on the SSD, formatted it with LUKS/ext4 and copied the rootfs over to my SSD. I've performed some steps on the original (source) OS as well, such as installing dropbear, copying the authorized keys and editing the crypttab and fstab (basically step 9) + update initramfs.

After rebooting and configuring the new rootfs such as providing new root password etc. I've added two lines to the fstab on the new or target-rootfs:

UUID=old-rootfs-uuid-here /oldfs ext4 defaults,noatime,nodiratime,commit=600,errors=remount-ro 0 2
/oldfs/boot /boot none bind 0 0

Now the new system is aware of the boot folder. When I run update-initramfs on the new rootfs, the boot folder is updated accordingly. Not sure if this is the best way to do it, suggestions and improvements are welcome.

 

When starting the newly copied system for the first time, I noticed that I couldn't use ssh to login for the first time (with root + password "1234"). Is this expected behaviour?

 

 

Posted
On 7/4/2021 at 2:29 PM, Bagel said:

Whoop, it works, thanks! I've followed the (non-boot) parts in your tutorial. thus I created a single partition on the SSD, formatted it with LUKS/ext4 and copied the rootfs over to my SSD. I've performed some steps on the original (source) OS as well, such as installing dropbear, copying the authorized keys and editing the crypttab and fstab (basically step 9) + update initramfs.

After rebooting and configuring the new rootfs such as providing new root password etc. I've added two lines to the fstab on the new or target-rootfs:

UUID=old-rootfs-uuid-here /oldfs ext4 defaults,noatime,nodiratime,commit=600,errors=remount-ro 0 2
/oldfs/boot /boot none bind 0 0

Now the new system is aware of the boot folder. When I run update-initramfs on the new rootfs, the boot folder is updated accordingly. Not sure if this is the best way to do it, suggestions and improvements are welcome.

 

When starting the newly copied system for the first time, I noticed that I couldn't use ssh to login for the first time (with root + password "1234"). Is this expected behaviour?

 

 

Glad everything worked! However, the bind mount wasn't necessary. Since you're still booting from the SD/eMMC, the old fstab would have worked unmodified. Can't say why you couldn't log in via SSH initially, but in any case this is a minor issue.

Posted
13 hours ago, Werner said:

Since we have this as open issue do you want to port your tutorial to the documentation and use this thread as support thread?

Thanks for the offer/request. I'll be busy for the next several days, but when I get some free time I'll look into doing this.

Posted (edited)

Hello and first things first MANY THANKS for this great tutorial!!!

 

And I think I have discovered a small typo which will cause the tutorial to fail at that particular step. See here


Step 8 - Prepare the target system chroot

 

# BOOT_PART=($(lsblk -l -o NAME,LABEL | grep CRYPTO_BOOT))

# ROOT_PART=${BOOT_PART%1}2

# ROOT_UUID="$(lsblk --nodeps --noheadings --output=UUID /dev/$ROOT_PART)"

# BOOT_UUID="$(lsblk --noheadings --output=UUID /dev/$BOOT_PART)"

 

this line here:


# BOOT_PART=($(lsblk -l -o NAME,LABEL | grep CRYPTO_BOOT))

should be correctly

# BOOT_PART=($(lsblk -l -o NAME,LABEL | grep CRYPTO_ROOT))

,,,BOOT should be ,,,ROOT (see commands above for clarification)

 

Unfortunately, I was not successful with the full encryption. I got an ODROID-HC2 as a gift and wanted to try a full encryption with the latest Armbian. I got stuck already at the beginning. In the requirements it says that you have to do it on an already running Armbian host and on the other hand you have to have a free card/reader on the respective host with which you can write to a free SD card.

[

Zitat

 

...all steps are performed within a running Armbian system.

 

The tutorial is known to work with the following board/image combinations:

 Orange Pi PC2 Debian Buster mainline / Ubuntu Bionic and Focal legacy

 RockPi 4 Debian Buster mainline / Ubuntu Bionic and Focal legacy

 RockPro 64 Ubuntu Focal mainline

 Odroid HC4 Debian Buster mainline / Ubuntu Focal mainline

 

Requirements:

A blank Micro-SD card and USB card reader, or, alternatively, a blank eMMC installed on the board

 

 

 

 

 

 

The ODROID-HC2 unfortunately has only one micro-SD slot, but it already has my micro-SD card 1 running on the Armbian Bullseye. I can badly pull out during operation this micro-SD card 1 and instead simply insert the empty micro-SD card 2 :-) I have no external SD-card reader which I could attach to the USB port of my ODROID-HC2. So I tried the following. I just used a USB stick (8GB) instead of the empty SD card 2 (32GB) and wrote all the procedure explained in the tutorial to the USB stick, so the target was the USB stick. After everything was successfully completed I removed the USB stick and the micro-SD2 from the ODROID-HC2 and plugged it into my Linux desktop PC. The USB stick was "sdb" and the microSD card was "sdc". I then cloned the contents of the USB stick I just created to the blank micro-SD card 2.

dd if=/dev/sdb of=/dev/sdc bs=1M && sync

 

but unfortunately it did not work. When I put the microSD card into the ODROID-HC2 and boot then I can neither ping nor connect via dropbear/ssh under the configured port. So it seems that the system is not reachable. I noticed that according to the tutorial you should enter DEVICE=eth0 in boot.ini. However, on my ODROID-HC2 with the Armbian bullseye image, the network interface is enx001e06xxxxxx where the numbers/letters after the prefix enx corresponds to the MAC address of the ODROID-HC2. I wonder if this is the error? Would I then have to enter the hardware MAC address in the boot.ini accordingly so device=enx001e06xxxxxx before I had generated the initram?

 

maybe there are ODROID-HC2 users among you who have already done it and can give help? am curious and looking forward to helpful contributions. Thanks in advance.

 

Edited by g00d
formatting error
Posted

Hi again. The error I complained about in the last post related to CRYPTO_BOOT CRYPTO_ROOT in Step8) s not an error, but had been seen/written incorrectly by me. Was my mistake, sorry.

 

However, I just can't get this to work with full encryption on the ODROID-HC2. Whenever I try to start the ODROID-HC2 with the new created full-encrypted microSD card I never see my ODROID-HC online, no IP in the network, no ping, not possible to ssh into the configured 2222 dropbear port.I have now made the following attempts in the meantime:

 

1) booted with the microSD card, quite normal into the Armbian operating system. Then inserted an empty USB stick and transferred with nand-sata-install the root filesystem to the USB stick. The microSD is now only used for booting the /boot partition, the filesystem was swapped to the USB stick. This allows me to easily "umount /boot" and then remove the microSD card while the Armbian OS is running. Then I inserted the second empty microSD into the slot of the ODROID-HC2 and went through the entire tutorial point by point exactly as indicated. For me, the startup sector is 8192, so I configured it accordingly.

 

2) In Step9.1) I have manually created the boot/armbianEnv.txt and fed it with the three lines. In step 9.2 I tried three things. First with device=eth0 to get the lease via DHCP, but it didn't work. Then I tried the manual IP assignment, also with eth0 specification. Did not work either. And last but not least I switched back to DEVICE=eth0 but replaced eth0 with enx001e06123456 because my running Armbian OS uses this interface name where 123456 is the real MAC address of the NIC. But this did not help either.

 

3) In step 9.8) I was unsure if I need the line. What is meant by "If the target system is an Ubuntu bionic?" that confuses me. Surely the target system is Armbian ??? Anyway, I have tried both possibilities. Once without this line and once with this line. However, neither of them worked.

 

In step 10.2) I installed "cryptsetup-initramfs" and "dropbear-initramfs". Did not work. Then I tried the variant by installing also the package "cryptsetup". But again without success.

 

EDIT: I see on the /boot partition unter /boot/boot.ini those lines:


# this is for mainline only
if test "${board_name}" = "xu4"; then setenv fdtfile "exynos5422-odroidxu4.dtb"; fi
if test "${board_name}" = "xu3"; then setenv fdtfile "exynos5422-odroidxu3.dtb"; fi
if test "${board_name}" = "xu3l"; then setenv fdtfile "exynos5422-odroidxu3-lite.dtb"; fi
if test "${board_name}" = "hc1"; then setenv fdtfile "exynos5422-odroidhc1.dtb"; fi

 

ODROID-HC2 seems missing here. Can that cause the trouble ?

 

I have now prepared dozens of times my microSD as described in the instructions but the ODROIC-HC board just does not come online. The LEDs all light up as usual, nothing inconspicuous here. But no ping, no IP in the subnet (I checked by nmap scans and insight in my network router) and so I can't ping the rebooted system at all first.

The ODROID-HC2 also has no video output, which means I have no way to see where the error is, or where it hangs. What else should I try, where could the worm be buried? Hope someone can help me.

 

Posted

Hello all,

 

meanwhile I purchased the USB UART serial kit to watch the u-boot process. I sticked to the tutorial here, I tried many times and as explained before the odroid-hc2 is not reachable when rebooting.

 

U-Boot serial log:

U-Boot 2017.05-armbian (Oct 08 2021 - 19:51:17 +0000) for ODROID-XU4

CPU:   Exynos5422 @ 800 MHz
Model: Odroid XU4 based on EXYNOS5422
Board: Odroid XU4 based on EXYNOS5422
Type:  unknown
DRAM:  2 GiB
MMC:   EXYNOS DWMMC: 0, EXYNOS DWMMC: 1
MMC Device 0 ( SD ): 29.8 GiB
Card did not respond to voltage select!
mmc_init: -95, time 12
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   No ethernet found.
Press quickly 'Enter' twice to stop autoboot:  0
13370 bytes read in 44 ms (295.9 KiB/s)
## Executing script at 43e00000
57 bytes read in 84 ms (0 Bytes/s)
7337840 bytes read in 816 ms (8.6 MiB/s)
11083175 bytes read in 1153 ms (9.2 MiB/s)
** File not found /boot/.next **
** Unrecognized filesystem type **
** File not found .next **
88701 bytes read in 184 ms (470.7 KiB/s)
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
Kernel image @ 0x40008000 [ 0x000000 - 0x6ff770 ]
## Loading init Ramdisk from Legacy Image at 42000000 ...
   Image Name:   uInitrd
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    11083111 Bytes = 10.6 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 44000000
   Booting using the fdt blob at 0x44000000
   Using Device Tree in place at 44000000, end 44018a7c

Starting kernel ...

Loading, please wait...
Starting version 247.3-6
Begin: Loading essential drivers ... done.
Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Waiting up to 180 secs for eth0 to become available ... Begin: Running /scripts/local-top ... Please unlock disk rootfs:

 

 

as you see, the ODROID-HC2 asks for the rootfs password. The network is NOT up, but I'd expect it to. Without network one cannot connect and unlock the rootfs as explained in the tutorial. Can anyone dig into it and tell us more? How can this be solved? How do we instruct the network to get enabled BEFORE ? thank you

 

EDIT:

while I wrote this post the serial console throwed additional lines, see here


Begin: Mounting root file system ... Begin: Waiting up to 180 secs for eth0 to become available ... Begin: Running /scripts/local-top ... Please unlock disk rootfs: Failure: Interface eth0 e
done.
ipconfig: eth0: SIOCGIFINDEX: No such device
ipconfig: no devices to configure
ipconfig: eth0: SIOCGIFINDEX: No such device
ipconfig: no devices to configure
ipconfig: eth0: SIOCGIFINDEX: No such device
ipconfig: no devices to configure
ipconfig: eth0: SIOCGIFINDEX: No such device
ipconfig: no devices to configure
ipconfig: eth0: SIOCGIFINDEX: No such device
ipconfig: no devices to configure
ipconfig: eth0: SIOCGIFINDEX: No such device
ipconfig: no devices to configure
ipconfig: eth0: SIOCGIFINDEX: No such device
ipconfig: no devices to configure
ipconfig: eth0: SIOCGIFINDEX: No such device
ipconfig: no devices to configure
ipconfig: eth0: SIOCGIFINDEX: No such device
ipconfig: no devices to configure
ipconfig: eth0: SIOCGIFINDEX: No such device
ipconfig: no devices to configure
/scripts/init-premount/dropbear: .: line 329: can't open '/run/net-eth0.conf': No such file or directory

 

why does the system fail to init the ethernet network ? I tried both variants in initramfs.conf, DEVICE=eth0 but also with static IP. The serial log above shows the output when I used DEVICE=eth0

Posted
2 hours ago, g00d said:

why does the system fail to init the ethernet network ? I tried both variants in initramfs.conf, DEVICE=eth0 but also with static IP. The serial log above shows the output when I used DEVICE=eth0

Hi,

Good to see you've got the monitor.  Can you check that the correct .dts is being loaded ?  See if the one you should use is 88701 bytes ?

If not you could override the choice in boot.scr (setenv fdtfile .....).

 

Cheers,

Steven

Posted

in u-boot process with encrypted rootfs I cannot find anything with the string "dts" but I've found the byte size of 88701 in there:

U-Boot 2017.05-armbian (Oct 08 2021 - 19:51:17 +0000) for ODROID-XU4
                                                      
CPU:   Exynos5422 @ 800 MHz                           
Model: Odroid XU4 based on EXYNOS5422                 
Board: Odroid XU4 based on EXYNOS5422                 
Type:  unknown                                        
DRAM:  2 GiB                                          
MMC:   EXYNOS DWMMC: 0, EXYNOS DWMMC: 1               
MMC Device 0 ( SD ): 29.8 GiB                         
Card did not respond to voltage select!               
mmc_init: -95, time 12                                
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   No ethernet found.
Press quickly 'Enter' twice to stop autoboot:  0
13370 bytes read in 44 ms (295.9 KiB/s)
## Executing script at 43e00000
68 bytes read in 84 ms (0 Bytes/s)
7337840 bytes read in 818 ms (8.6 MiB/s)
11083175 bytes read in 1156 ms (9.1 MiB/s)
** File not found /boot/.next **
** Unrecognized filesystem type **
** File not found .next **
88701 bytes read in 185 ms (467.8 KiB/s)
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
Kernel image @ 0x40008000 [ 0x000000 - 0x6ff770 ]
## Loading init Ramdisk from Legacy Image at 42000000 ...
   Image Name:   uInitrd
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    11083111 Bytes = 10.6 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 44000000
   Booting using the fdt blob at 0x44000000
   Using Device Tree in place at 44000000, end 44018a7c

Starting kernel ...

 

That was the serial log after I configured the full-disk-encryption as shown here in the tutorial.

As reference in the following you see the serial u-boot log after 1st boot after I flashed the Armbian bullseye:

U-Boot 2017.05-armbian (Oct 08 2021 - 19:51:17 +0000) for ODROID-XU4

CPU:   Exynos5422 @ 800 MHz
Model: Odroid XU4 based on EXYNOS5422
Board: Odroid XU4 based on EXYNOS5422
Type:  unknown
DRAM:  2 GiB
MMC:   EXYNOS DWMMC: 0, EXYNOS DWMMC: 1
MMC Device 0 ( SD ): 29.7 GiB
Card did not respond to voltage select!
mmc_init: -95, time 11
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   No ethernet found.
Press quickly 'Enter' twice to stop autoboot:  0
** File not found /boot.ini **
## Executing script at 43e00000
Wrong image format for "source" command
13370 bytes read in 27 ms (483.4 KiB/s)
## Executing script at 43e00000
** File not found /boot/armbianEnv.txt **
** Unrecognized filesystem type **
** File not found armbianEnv.txt **
7337840 bytes read in 581 ms (12 MiB/s)
8796977 bytes read in 700 ms (12 MiB/s)
0 bytes read in 20 ms (0 Bytes/s)
Found mainline kernel configuration
87877 bytes read in 79 ms (1.1 MiB/s)
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
Kernel image @ 0x40008000 [ 0x000000 - 0x6ff770 ]
## Loading init Ramdisk from Legacy Image at 42000000 ...
   Image Name:   uInitrd
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    8796913 Bytes = 8.4 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 44000000
   Booting using the fdt blob at 0x44000000
   Using Device Tree in place at 44000000, end 44018744

Starting kernel ...

 

And for better insight, this is the u-boot log with the failing encrypted rootfs at u-boot verbosity=7 configured, so the log level is 7 (maximum):

 

U-Boot 2017.05-armbian (Oct 08 2021 - 19:51:17 +0000) for ODROID-XU4                                                             
                                                                                                                                 
CPU:   Exynos5422 @ 800 MHz                                                                                                      
Model: Odroid XU4 based on EXYNOS5422                                                                                            
Board: Odroid XU4 based on EXYNOS5422                                                                                            
Type:  unknown                                                                                                                   
DRAM:  2 GiB                                                                                                                     
MMC:   EXYNOS DWMMC: 0, EXYNOS DWMMC: 1                                                                                          
MMC Device 0 ( SD ): 29.8 GiB                                                                                                    
Card did not respond to voltage select!                                                                                          
mmc_init: -95, time 12
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   No ethernet found.
Press quickly 'Enter' twice to stop autoboot:  0 
13370 bytes read in 44 ms (295.9 KiB/s)
## Executing script at 43e00000
68 bytes read in 84 ms (0 Bytes/s)
7337840 bytes read in 818 ms (8.6 MiB/s)
11083175 bytes read in 1156 ms (9.1 MiB/s)
** File not found /boot/.next **
** Unrecognized filesystem type **
** File not found .next **
88701 bytes read in 185 ms (467.8 KiB/s)
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
Kernel image @ 0x40008000 [ 0x000000 - 0x6ff770 ]
## Loading init Ramdisk from Legacy Image at 42000000 ...
   Image Name:   uInitrd
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    11083111 Bytes = 10.6 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 44000000
   Booting using the fdt blob at 0x44000000
   Using Device Tree in place at 44000000, end 44018a7c

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x100
[    0.000000] Linux version 5.4.151-odroidxu4 (root@big-37) (gcc version 8.3.0 (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36))) #21.08.3 SMP PREEMPT Fri Oct 8 19:1
[    0.000000] CPU: ARMv7 Processor [410fc073] revision 3 (ARMv7), cr=10c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Hardkernel Odroid XU3
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] cma: Reserved 128 MiB at 0xb6800000
[    0.000000] Samsung CPU ID: 0xe5422001
[    0.000000] Running under secure firmware.
[    0.000000] percpu: Embedded 20 pages/cpu s51852 r8192 d21876 u81920
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 516928
[    0.000000] Kernel command line: bootsplash.bootfile=bootsplash.armbian console=ttySAC2,115200n8  consoleblank=0 loglevel=7 root=/dev/mapper/rootfs rootfstype=ext4 rootwait rw  smsc95xx. 
[    0.000000] hdmi: using HDMI mode
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:on, heap free:off
[    0.000000] Memory: 1895308K/2074624K available (11264K kernel code, 719K rwdata, 3020K rodata, 1024K init, 297K bss, 48244K reserved, 131072K cma-reserved, 1157120K highmem)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=8, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000]  Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] random: get_random_bytes called from start_kernel+0x36c/0x540 with crng_init=0
[    0.000000] Switching to timer-based delay loop, resolution 41ns
[    0.000000] clocksource: mct-frc: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.000007] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[    0.000032] genirq: irq_chip COMBINER did not update eff. affinity mask of irq 49
[    0.001698] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
[    0.001719] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[    0.001740] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[    0.001753] Ignoring duplicate/late registration of read_current_timer delay
[    0.002347] Console: colour dummy device 80x30
[    0.002396] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[    0.002411] pid_max: default: 32768 minimum: 301
[    0.002580] LSM: Security Framework initializing
[    0.002628] Yama: becoming mindful.
[    0.003008] AppArmor: AppArmor initialized
[    0.003086] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.003108] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.003201] *** VALIDATE tmpfs ***
[    0.003960] *** VALIDATE proc ***
[    0.004321] *** VALIDATE cgroup1 ***
[    0.004336] *** VALIDATE cgroup2 ***
[    0.004398] CPU: Testing write buffer coherency: ok
[    0.005042] CPU0: thread -1, cpu 0, socket 1, mpidr 80000100
[    0.005989] Setting up static identity map for 0x40100000 - 0x40100060
[    0.006306] ARM CCI driver probed
[    0.006898] Exynos MCPM support installed
[    0.007209] rcu: Hierarchical SRCU implementation.
[    0.009734] soc soc0: Exynos: CPU[EXYNOS5800] PRO_ID[0xe5422001] REV[0x1] Detected
[    0.010409] smp: Bringing up secondary CPUs ...
[    0.011472] CPU1: thread -1, cpu 1, socket 1, mpidr 80000101
[    0.012699] CPU2: thread -1, cpu 2, socket 1, mpidr 80000102
[    0.013818] CPU3: thread -1, cpu 3, socket 1, mpidr 80000103
[    0.014961] CPU4: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.014970] CPU4: detected I-Cache line size mismatch, workaround enabled
[    0.014977] CPU4: Spectre v2: firmware did not set auxiliary control register IBE bit, system vulnerable
[    0.016243] CPU5: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.016250] CPU5: detected I-Cache line size mismatch, workaround enabled
[    0.016257] CPU5: Spectre v2: firmware did not set auxiliary control register IBE bit, system vulnerable
[    0.017499] CPU6: thread -1, cpu 2, socket 0, mpidr 80000002
[    0.017506] CPU6: detected I-Cache line size mismatch, workaround enabled
[    0.017513] CPU6: Spectre v2: firmware did not set auxiliary control register IBE bit, system vulnerable
[    0.018723] CPU7: thread -1, cpu 3, socket 0, mpidr 80000003
[    0.018731] CPU7: detected I-Cache line size mismatch, workaround enabled
[    0.018738] CPU7: Spectre v2: firmware did not set auxiliary control register IBE bit, system vulnerable
[    0.018940] smp: Brought up 1 node, 8 CPUs
[    0.018959] SMP: Total of 8 processors activated (384.00 BogoMIPS).
[    0.018967] CPU: All CPU(s) started in HYP mode.
[    0.018974] CPU: Virtualization extensions available.
[    0.020013] devtmpfs: initialized
[    0.041439] VFP support v0.3: implementor 41 architecture 4 part 30 variant f rev 0
[    0.041804] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.041869] futex hash table entries: 2048 (order: 5, 131072 bytes, linear)
[    0.044501] xor: measuring software checksum speed
[    0.139954]    arm4regs  :  1518.000 MB/sec
[    0.239956]    8regs     :  1238.000 MB/sec
[    0.339958]    32regs    :  1233.200 MB/sec
[    0.439955]    neon      :  2214.000 MB/sec
[    0.439966] xor: using function: neon (2214.000 MB/sec)
[    0.440017] pinctrl core: initialized pinctrl subsystem
[    0.442449] NET: Registered protocol family 16
[    0.445947] DMA: preallocated 2048 KiB pool for atomic coherent allocations
[    0.447457] audit: initializing netlink subsys (disabled)
[    0.447704] audit: type=2000 audit(0.440:1): state=initialized audit_enabled=0 res=1
[    0.448546] cpuidle: using governor menu
[    0.449261] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.449273] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.555203] EXYNOS5420 PMU initialized
[    0.653826] random: fast init done
[    0.787471] cryptd: max_cpu_qlen set to 1000
[    0.960001] raid6: neonx8   gen()  1470 MB/s
[    1.129996] raid6: neonx8   xor()  1185 MB/s
[    1.299987] raid6: neonx4   gen()  1342 MB/s
[    1.469980] raid6: neonx4   xor()  1195 MB/s
[    1.640017] raid6: neonx2   gen()  1055 MB/s
[    1.809969] raid6: neonx2   xor()  1335 MB/s
[    1.979980] raid6: neonx1   gen()   719 MB/s
[    2.149970] raid6: neonx1   xor()  1000 MB/s
[    2.319985] raid6: int32x8  gen()   373 MB/s
[    2.490063] raid6: int32x8  xor()   269 MB/s
[    2.660079] raid6: int32x4  gen()   368 MB/s
[    2.830043] raid6: int32x4  xor()   283 MB/s
[    3.000111] raid6: int32x2  gen()   261 MB/s
[    3.170240] raid6: int32x2  xor()   137 MB/s
[    3.340134] raid6: int32x1  gen()   199 MB/s
[    3.510080] raid6: int32x1  xor()   204 MB/s
[    3.510091] raid6: using algorithm neonx8 gen() 1470 MB/s
[    3.510101] raid6: .... xor() 1185 MB/s, rmw enabled
[    3.510112] raid6: using neon recovery algorithm
[    3.512248] iommu: Default domain type: Translated 
[    3.512652] usbcore: registered new interface driver usbfs
[    3.512713] usbcore: registered new interface driver hub
[    3.512772] usbcore: registered new device driver usb
[    3.513456] s3c-i2c 12c60000.i2c: slave address 0x00
[    3.513473] s3c-i2c 12c60000.i2c: bus frequency set to 65 KHz
[    3.514367] s3c-i2c 12c60000.i2c: i2c-5: S3C I2C adapter
[    3.514548] s3c-i2c 12c80000.i2c: slave address 0x00
[    3.514565] s3c-i2c 12c80000.i2c: bus frequency set to 65 KHz
[    3.514808] s3c-i2c 12c80000.i2c: i2c-2: S3C I2C adapter
[    3.515294] mc: Linux media interface: v0.10
[    3.515336] videodev: Linux video capture interface: v2.00
[    3.515832] Advanced Linux Sound Architecture Driver Initialized.
[    3.516401] NetLabel: Initializing
[    3.516413] NetLabel:  domain hash size = 128
[    3.516423] NetLabel:  protocols = UNLABELED CIPSOv4 CALIPSO
[    3.516498] NetLabel:  unlabeled traffic allowed by default
[    3.517142] clocksource: Switched to clocksource mct-frc
[    3.617818] *** VALIDATE bpf ***
[    3.618013] VFS: Disk quotas dquot_6.6.0
[    3.618089] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    3.618194] *** VALIDATE ramfs ***
[    3.618938] AppArmor: AppArmor Filesystem Enabled
[    3.632235] thermal_sys: Registered thermal governor 'step_wise'
[    3.634662] NET: Registered protocol family 2
[    3.634821] IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    3.636004] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[    3.636051] TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    3.636152] TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    3.636309] TCP: Hash tables configured (established 8192 bind 8192)
[    3.636450] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[    3.636498] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[    3.636739] NET: Registered protocol family 1
[    3.637010] Trying to unpack rootfs image as initramfs...
[    4.306349] Freeing initrd memory: 10824K
[    4.308659] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 5 counters available
[    4.309518] hw perfevents: enabled with armv7_cortex_a15 PMU driver, 7 counters available
[    4.311464] Initialise system trusted keyrings
[    4.311516] Key type blacklist registered
[    4.311902] workingset: timestamp_bits=14 max_order=19 bucket_order=5
[    4.321136] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    4.322217] fuse: init (API version 7.31)
[    4.322344] *** VALIDATE fuse ***
[    4.322359] *** VALIDATE fuse ***
[    4.323632] Platform Keyring initialized
[    4.354192] Key type asymmetric registered
[    4.354205] Asymmetric key parser 'x509' registered
[    4.354356] bounce: pool size: 64 pages
[    4.354422] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
[    4.354595] io scheduler mq-deadline registered
[    4.354608] io scheduler kyber registered
[    4.354654] io scheduler bfq registered
[    4.357328] samsung-usb2-phy 12130000.phy: 12130000.phy supply vbus not found, using dummy regulator
[    4.358351] exynos5_usb3drd_phy 12100000.phy: 12100000.phy supply vbus not found, using dummy regulator
[    4.358441] exynos5_usb3drd_phy 12100000.phy: 12100000.phy supply vbus-boost not found, using dummy regulator
[    4.358836] exynos5_usb3drd_phy 12500000.phy: 12500000.phy supply vbus not found, using dummy regulator
[    4.358926] exynos5_usb3drd_phy 12500000.phy: 12500000.phy supply vbus-boost not found, using dummy regulator
[    4.368454] dma-pl330 121a0000.pdma: Loaded driver for PL330 DMAC-241330
[    4.368471] dma-pl330 121a0000.pdma:         DBUFF-32x4bytes Num_Chans-8 Num_Peri-32 Num_Events-32
[    4.371230] dma-pl330 121b0000.pdma: Loaded driver for PL330 DMAC-241330
[    4.371246] dma-pl330 121b0000.pdma:         DBUFF-32x4bytes Num_Chans-8 Num_Peri-32 Num_Events-32
[    4.372128] dma-pl330 10800000.mdma: Loaded driver for PL330 DMAC-241330
[    4.372144] dma-pl330 10800000.mdma:         DBUFF-64x8bytes Num_Chans-8 Num_Peri-1 Num_Events-32
[    4.450863] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    4.453288] 12c00000.serial: ttySAC0 at MMIO 0x12c00000 (irq = 62, base_baud = 0) is a S3C6400/10
[    4.453707] 12c10000.serial: ttySAC1 at MMIO 0x12c10000 (irq = 63, base_baud = 0) is a S3C6400/10
[    4.454115] 12c20000.serial: ttySAC2 at MMIO 0x12c20000 (irq = 64, base_baud = 0) is a S3C6400/10
[    5.529074] printk: console [ttySAC2] enabled
[    5.533769] 12c30000.serial: ttySAC3 at MMIO 0x12c30000 (irq = 65, base_baud = 0) is a S3C6400/10
[    5.543928] exynos-trng 10830600.rng: Exynos True Random Number Generator.
[    5.550902] exynos-mixer 14450000.mixer: Adding to iommu group 0
[    5.577062] brd: module loaded
[    5.579537] libphy: Fixed MDIO Bus: probed
[    5.583049] usbcore: registered new interface driver r8152
[    5.588245] usbcore: registered new interface driver cdc_ether
[    5.594012] usbcore: registered new interface driver cdc_subset
[    5.602256] dma-pl330 3880000.adma: Loaded driver for PL330 DMAC-241330
[    5.607419] dma-pl330 3880000.adma:  DBUFF-4x8bytes Num_Chans-6 Num_Peri-16 Num_Events-6
[    5.612190] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    5.621991] ehci-exynos: EHCI EXYNOS driver
[    5.626466] exynos-ehci 12110000.usb: EHCI Host Controller
[    5.631608] exynos-ehci 12110000.usb: new USB bus registered, assigned bus number 1
[    5.637272] dma-pl330 3880000.adma: PM domain MAU will not be powered off
[    5.639662] exynos-ehci 12110000.usb: irq 84, io mem 0x12110000
[    5.677192] exynos-ehci 12110000.usb: USB 2.0 started, EHCI 1.00
[    5.681986] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.04
[    5.689994] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    5.697179] usb usb1: Product: EHCI Host Controller
[    5.701991] usb usb1: Manufacturer: Linux 5.4.151-odroidxu4 ehci_hcd
[    5.708348] usb usb1: SerialNumber: 12110000.usb
[    5.713525] hub 1-0:1.0: USB hub found
[    5.716679] hub 1-0:1.0: 3 ports detected
[    5.721615] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    5.726793] ohci-exynos: OHCI EXYNOS driver
[    5.731197] exynos-ohci 12120000.usb: USB Host Controller
[    5.736321] exynos-ohci 12120000.usb: new USB bus registered, assigned bus number 2
[    5.744079] exynos-ohci 12120000.usb: irq 84, io mem 0x12120000
[    5.821418] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 5.04
[    5.828235] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    5.835386] usb usb2: Product: USB Host Controller
[    5.840190] usb usb2: Manufacturer: Linux 5.4.151-odroidxu4 ohci_hcd
[    5.846477] usb usb2: SerialNumber: 12120000.usb
[    5.851676] hub 2-0:1.0: USB hub found
[    5.854834] hub 2-0:1.0: 3 ports detected
[    5.861182] mousedev: PS/2 mouse device common for all mice
[    5.867224] i2c /dev entries driver
[    5.891776] vdd_ldo9: Bringing 3300000uV into 3000000-3000000uV
[    5.908577] vddq_mmc2: Bringing 3300000uV into 2800000-2800000uV
[    5.929307] vdd_sd: Bringing 3300000uV into 2800000-2800000uV
[    6.008868] s5m-rtc s2mps14-rtc: registered as rtc0
[    6.012808] s2mps11-clk s2mps11-clk: DMA mask not set
[    6.022333] ina2xx 5-0040: error configuring the device: -6
[    6.026879] ina2xx 5-0041: error configuring the device: -6
[    6.032468] ina2xx 5-0044: error configuring the device: -6
[    6.038015] ina2xx 5-0045: error configuring the device: -6
[    6.051295] s3c2410-wdt 101d0000.watchdog: watchdog inactive, reset disabled, irq disabled
[    6.058760] device-mapper: uevent: version 1.0.3
[    6.063000] device-mapper: ioctl: 4.41.0-ioctl (2019-09-16) initialised: dm-devel@redhat.com
[    6.084203] sdhci: Secure Digital Host Controller Interface driver
[    6.088925] sdhci: Copyright(c) Pierre Ossman
[    6.093424] Synopsys Designware Multimedia Card Interface Driver
[    6.099866] dwmmc_exynos 12200000.mmc: IDMAC supports 32-bit address mode.
[    6.106110] dwmmc_exynos 12200000.mmc: Using internal DMA controller.
[    6.112502] dwmmc_exynos 12200000.mmc: Version ID is 250a
[    6.117902] dwmmc_exynos 12200000.mmc: DW MMC controller at irq 86,64 bit host data width,64 deep fifo
[    6.127382] dwmmc_exynos 12200000.mmc: allocated mmc-pwrseq
[    6.150356] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz, actual 396825HZ div = 63)
[    6.171777] dwmmc_exynos 12220000.mmc: IDMAC supports 32-bit address mode.
[    6.177261] dwmmc_exynos 12220000.mmc: Using internal DMA controller.
[    6.183585] dwmmc_exynos 12220000.mmc: Version ID is 250a
[    6.189040] dwmmc_exynos 12220000.mmc: DW MMC controller at irq 87,64 bit host data width,64 deep fifo
[    6.216799] mmc_host mmc1: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz, actual 396825HZ div = 63)
[    6.241257] s5p-secss 10830000.sss: s5p-sss driver registered
[    6.246173] hidraw: raw HID events driver (C) Jiri Kosina
[    6.269277] exynos-nocp: new NoC Probe device registered: 10ca1000.nocp
[    6.274569] exynos-nocp: new NoC Probe device registered: 10ca1400.nocp
[    6.281189] exynos-nocp: new NoC Probe device registered: 10ca1800.nocp
[    6.287782] exynos-nocp: new NoC Probe device registered: 10ca1c00.nocp
[    6.294715] exynos-ppmu: new PPMU device registered 10d00000.ppmu (ppmu-event3-dmc0_0)
[    6.302262] exynos-ppmu: new PPMU device registered 10d10000.ppmu (ppmu-event3-dmc0_1)
[    6.310518] exynos-ppmu: new PPMU device registered 10d60000.ppmu (ppmu-event3-dmc1_0)
[    6.318039] exynos-ppmu: new PPMU device registered 10d70000.ppmu (ppmu-event3-dmc1_1)
[    6.328059] exynos5-dmc 10c20000.memory-controller: DMC initialized, in irq mode: 0
[    6.334736] exynos-adc 12d10000.adc: IRQ index 1 not found
[    6.345201] samsung-i2s 3830000.i2s-sec: DMA channels sourced from device 3830000.i2s
[    6.353349] mmc_host mmc1: Bus speed (slot 0) = 200000000Hz (slot req 200000000Hz, actual 200000000HZ div = 0)
[    6.364539] mmc1: new ultra high speed SDR104 SDHC card at address 59b4
[    6.364591] NET: Registered protocol family 17
[    6.371330] mmcblk1: mmc1:59b4 EB2MW 29.8 GiB 
[    6.374116] NET: Registered protocol family 15
[    6.381453]  mmcblk1: p1 p2
[    6.382960] Key type dns_resolver registered
[    6.390570] Registering SWP/SWPB emulation handler
[    6.394873] registered taskstats version 1
[    6.398808] Loading compiled-in X.509 certificates
[    6.405808] Loaded X.509 cert 'Build time autogenerated kernel key: 58f88920dc5a2eb8aefa1a83381c42bc4c4ae8b7'
[    6.414536] Key type ._fscrypt registered
[    6.418241] Key type .fscrypt registered
[    6.424961] Btrfs loaded, crc32c=crc32c-generic
[    6.497234] Key type big_key registered
[    6.521892] Key type encrypted registered
[    6.524431] AppArmor: AppArmor sha1 policy hashing enabled
[    6.590261] exynos-asv 10000000.chipid: cpu0 opp0, freq: 1500 missing
[    6.595267] exynos-asv 10000000.chipid: cpu4 opp0, freq: 2100 missing
[    6.604303] OF: graph: no port node found in /soc/hdmi@14530000
[    6.610111] [drm] Exynos DRM: using 14450000.mixer device for DMA mapping operations
[    6.616539] exynos-drm exynos-drm: bound 14450000.mixer (ops 0xc0cb2b28)
[    6.623183] exynos-drm exynos-drm: bound 14530000.hdmi (ops 0xc0cb31ac)
[    6.629732] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    6.636292] [drm] No driver support for vblank timestamp query.
[    6.642252] [drm] Cannot find any crtc or sizes
[    6.647498] [drm] Cannot find any crtc or sizes
[    6.651360] [drm] Initialized exynos 1.1.0 20180330 for exynos-drm on minor 0
[    6.660136] dwc3 12000000.dwc3: Failed to get clk 'ref': -2
[    6.664913] xhci-hcd xhci-hcd.8.auto: xHCI Host Controller
[    6.669727] xhci-hcd xhci-hcd.8.auto: new USB bus registered, assigned bus number 3
[    6.677618] xhci-hcd xhci-hcd.8.auto: hcc params 0x0220f04c hci version 0x100 quirks 0x0000000002010010
[    6.686752] xhci-hcd xhci-hcd.8.auto: irq 165, io mem 0x12000000
[    6.692910] xhci-hcd xhci-hcd.8.auto: xHCI Host Controller
[    6.698136] xhci-hcd xhci-hcd.8.auto: new USB bus registered, assigned bus number 4
[    6.705733] xhci-hcd xhci-hcd.8.auto: Host supports USB 3.0 SuperSpeed
[    6.712424] usb usb3: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.04
[    6.720498] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    6.727686] usb usb3: Product: xHCI Host Controller
[    6.732505] usb usb3: Manufacturer: Linux 5.4.151-odroidxu4 xhci-hcd
[    6.738857] usb usb3: SerialNumber: xhci-hcd.8.auto
[    6.744154] hub 3-0:1.0: USB hub found
[    6.747477] hub 3-0:1.0: 1 port detected
[    6.751954] usb usb4: We don't know the algorithms for LPM for this host, disabling LPM.
[    6.759589] usb usb4: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.04
[    6.767657] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    6.774794] usb usb4: Product: xHCI Host Controller
[    6.779691] usb usb4: Manufacturer: Linux 5.4.151-odroidxu4 xhci-hcd
[    6.785972] usb usb4: SerialNumber: xhci-hcd.8.auto
[    6.791572] hub 4-0:1.0: USB hub found
[    6.794584] hub 4-0:1.0: 1 port detected
[    6.801348] dwc3 12400000.dwc3: Failed to get clk 'ref': -2
[    6.805954] dwc3 12400000.dwc3: changing max_speed on rev 5533200a
[    6.819902] s3c-rtc 101e0000.rtc: rtc disabled, re-enabling
[    6.824216] rtc rtc1: invalid alarm value: 1900-01-01T00:00:00
[    6.830310] s3c-rtc 101e0000.rtc: registered as rtc1
[    6.838340] exynos-bus: new bus device registered: soc:bus_wcore ( 84000 KHz ~ 400000 KHz)
[    6.846242] exynos-bus: new bus device registered: soc:bus_noc ( 67000 KHz ~ 100000 KHz)
[    6.854073] exynos-bus: new bus device registered: soc:bus_fsys_apb (100000 KHz ~ 200000 KHz)
[    6.862267] exynos-bus: new bus device registered: soc:bus_fsys (100000 KHz ~ 200000 KHz)
[    6.870809] exynos-bus: new bus device registered: soc:bus_fsys2 ( 75000 KHz ~ 150000 KHz)
[    6.879392] exynos-bus: new bus device registered: soc:bus_mfc ( 96000 KHz ~ 333000 KHz)
[    6.887256] exynos-bus: new bus device registered: soc:bus_gen ( 89000 KHz ~ 267000 KHz)
[    6.894891] exynos-bus: new bus device registered: soc:bus_peri ( 67000 KHz ~  67000 KHz)
[    6.903952] exynos-bus: new bus device registered: soc:bus_g2d ( 84000 KHz ~ 333000 KHz)
[    6.911730] exynos-bus: new bus device registered: soc:bus_g2d_acp ( 67000 KHz ~ 267000 KHz)
[    6.920114] exynos-bus: new bus device registered: soc:bus_jpeg ( 75000 KHz ~ 300000 KHz)
[    6.928342] exynos-bus: new bus device registered: soc:bus_jpeg_apb ( 84000 KHz ~ 167000 KHz)
[    6.936463] exynos-bus: new bus device registered: soc:bus_disp1_fimd (120000 KHz ~ 200000 KHz)
[    6.945301] exynos-bus: new bus device registered: soc:bus_disp1 (120000 KHz ~ 300000 KHz)
[    6.953534] exynos-bus: new bus device registered: soc:bus_gscl_scaler (150000 KHz ~ 300000 KHz)
[    6.962562] exynos-bus: new bus device registered: soc:bus_mscl ( 84000 KHz ~ 400000 KHz)
[    6.971554] max98090 1-0010: Failed to reset codec: -6
[    6.975416] max98090 1-0010: Failed to read device revision: -1
[    6.981181] max98090 1-0010: ASoC: failed to probe component -1
[    6.987097] odroid-audio sound: ASoC: failed to instantiate card -1
[    6.993587] odroid-audio sound: snd_soc_register_card() failed: -1
[    6.999484] odroid-audio: probe of sound failed with error -1
[    7.008618] s5m-rtc s2mps14-rtc: setting system clock to 2021-10-24T07:20:51 UTC (1635060051)
[    7.069595] ALSA device list:
[    7.071146]   No soundcards found.
[    7.078979] Freeing unused kernel memory: 1024K
[    7.108334] Run /init as init process
Loading, please wait...
Starting version 247.3-6
[    7.915917] gpiomem-exynos 13400000.gpiomem: Initialised: GPIO register area is 3
[    7.924047] input: gpio_keys as /devices/platform/gpio_keys/input/input0
[    7.924083] gpiomem-exynos 13400000.gpiomem: Initialised: Registers at 0x13400000
[    7.937414] gpiomem-exynos 13400000.gpiomem: Initialised: Registers at 0x14010000
[    7.937991] usb 4-1: new SuperSpeed Gen 1 USB device number 2 using xhci-hcd
[    7.947536] gpiomem-exynos 13400000.gpiomem: Initialised: Registers at 0x03860000
[    7.987314] s5p-jpeg 11f50000.jpeg: Adding to iommu group 1
[    7.992579] s5p-jpeg 11f50000.jpeg: encoder device registered as /dev/video0
[    7.994408] mali 11800000.gpu: GPU identified as 0x0620 r0p1 status 0
[    7.994817] usb 4-1: New USB device found, idVendor=152d, idProduct=0578, bcdDevice=31.02
[    7.994824] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    7.994829] usb 4-1: Product: USB to ATA/ATAPI Bridge
[    7.994833] usb 4-1: Manufacturer: JMicron
[    7.994838] usb 4-1: SerialNumber: 0123456789ABCDEF
[    7.999310] s5p-mfc 11000000.codec: Adding to iommu group 2
[    8.004945] s5p-jpeg 11f50000.jpeg: decoder device registered as /dev/video1
[    8.005771] mali 11800000.gpu: Protected mode not available
[    8.007479] mali 11800000.gpu: Probed as mali0
[    8.034044] exynos-gsc 13e00000.video-scaler: Adding to iommu group 3
[    8.039863] s5p-jpeg 11f50000.jpeg: Samsung S5P JPEG codec
[    8.052286] exynos-gsc 13e10000.video-scaler: Adding to iommu group 4
[    8.056844] s5p-jpeg 11f60000.jpeg: Adding to iommu group 5
[    8.060393] s5p-mfc 11000000.codec: preallocated 8 MiB buffer for the firmware and context buffers
[    8.060499] s5p-mfc 11000000.codec: Direct firmware load for s5p-mfc-v8.fw failed with error -2
[    8.060506] s5p_mfc_load_firmware:69: Firmware is not present in the /lib/firmware directory nor compiled in kernel
[    8.060672] s5p-mfc 11000000.codec: decoder registered as /dev/video3
[    8.060763] s5p-mfc 11000000.codec: encoder registered as /dev/video4
[    8.122053] s5p-jpeg 11f60000.jpeg: encoder device registered as /dev/video6
[    8.128431] s5p-jpeg 11f60000.jpeg: decoder device registered as /dev/video7
[    8.135245] s5p-jpeg 11f60000.jpeg: Samsung S5P JPEG codec
[    8.225646] SCSI subsystem initialized
[    8.238568] usbcore: registered new interface driver usb-storage
[    8.252322] scsi host0: uas
[    8.254009] usbcore: registered new interface driver uas
[    8.254934] scsi 0:0:0:0: Direct-Access     JMicron  Generic          3102 PQ: 0 ANSI: 6
[   14.230640] sd 0:0:0:0: [sda] Unit Not Ready
[   14.233462] sd 0:0:0:0: [sda] Sense Key : 0x4 [current] 
[   14.239087] sd 0:0:0:0: [sda] ASC=0x44 <<vendor>>ASCQ=0x81 
[   14.245456] sd 0:0:0:0: [sda] Read Capacity(16) failed: Result: hostbyte=0x00 driverbyte=0x08
[   14.252846] sd 0:0:0:0: [sda] Sense Key : 0x4 [current] 
[   14.258078] sd 0:0:0:0: [sda] ASC=0x44 <<vendor>>ASCQ=0x81 
[   14.264371] sd 0:0:0:0: [sda] Read Capacity(10) failed: Result: hostbyte=0x00 driverbyte=0x08
[   14.272113] sd 0:0:0:0: [sda] Sense Key : 0x4 [current] 
[   14.277400] sd 0:0:0:0: [sda] ASC=0x44 <<vendor>>ASCQ=0x81 
[   14.283539] sd 0:0:0:0: [sda] 0 512-byte logical blocks: (0 B/0 B)
[   14.289098] sd 0:0:0:0: [sda] 0-byte physical blocks
[   14.294770] sd 0:0:0:0: [sda] Test WP failed, assume Write Enabled
[   14.300461] sd 0:0:0:0: [sda] Asking for cache data failed
[   14.305626] sd 0:0:0:0: [sda] Assuming drive cache: write through
[   14.312474] sd 0:0:0:0: [sda] Optimal transfer size 33553920 bytes not a multiple of physical block size (0 bytes)
[   14.314864] random: crng init done
[   14.398777] sd 0:0:0:0: [sda] Unit Not Ready
[   14.401605] sd 0:0:0:0: [sda] Sense Key : 0x4 [current] 
[   14.406884] sd 0:0:0:0: [sda] ASC=0x44 <<vendor>>ASCQ=0x81 
[   14.413925] sd 0:0:0:0: [sda] Read Capacity(16) failed: Result: hostbyte=0x00 driverbyte=0x08
[   14.421021] sd 0:0:0:0: [sda] Sense Key : 0x4 [current] 
[   14.426261] sd 0:0:0:0: [sda] ASC=0x44 <<vendor>>ASCQ=0x81 
[   14.432906] sd 0:0:0:0: [sda] Read Capacity(10) failed: Result: hostbyte=0x00 driverbyte=0x08
[   14.440348] sd 0:0:0:0: [sda] Sense Key : 0x4 [current] 
[   14.445584] sd 0:0:0:0: [sda] ASC=0x44 <<vendor>>ASCQ=0x81 
[   14.454464] sd 0:0:0:0: [sda] Attached SCSI disk
Begin: Loading essential drivers ... [   15.480815] loop: module loaded
[   15.635118] zram: Added device: zram0
[   15.650444] sd 0:0:0:0: Attached scsi generic sg0 type 0
[   15.878131] RPC: Registered named UNIX socket transport module.
[   15.882566] RPC: Registered udp transport module.
[   15.887285] RPC: Registered tcp transport module.
[   15.891926] RPC: Registered tcp NFSv4.1 backchannel transport module.
[   15.952890] NET: Registered protocol family 10
[   15.956652] Segment Routing with IPv6
done.
Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Waiting up to 180 secs for eth0 to become available ... Begin: Running /scripts/local-top ... Please unlock disk rootfs: Failure: Interface eth0 did not appear in time
done.
ipconfig: eth0: SIOCGIFINDEX: No such device
ipconfig: no devices to configure
ipconfig: eth0: SIOCGIFINDEX: No such device
ipconfig: no devices to configure
ipconfig: eth0: SIOCGIFINDEX: No such device
ipconfig: no devices to configure
ipconfig: eth0: SIOCGIFINDEX: No such device
ipconfig: no devices to configure
ipconfig: eth0: SIOCGIFINDEX: No such device
ipconfig: no devices to configure
ipconfig: eth0: SIOCGIFINDEX: No such device
ipconfig: no devices to configure
ipconfig: eth0: SIOCGIFINDEX: No such device
ipconfig: no devices to configure
ipconfig: eth0: SIOCGIFINDEX: No such device
ipconfig: no devices to configure
ipconfig: eth0: SIOCGIFINDEX: No such device
ipconfig: no devices to configure
ipconfig: eth0: SIOCGIFINDEX: No such device
ipconfig: no devices to configure
/scripts/init-premount/dropbear: .: line 329: can't open '/run/net-eth0.conf': No such file or directory

 

 

 

Posted

Hi,

In one of your previous posts you listed some U-Boot code that changed the fdtfile variable depending on the board name and you noted that your board wasn't mentioned.  The U-Boot log shows it is loading a flattened device tree file that is 88701 bytes long.  Can you check in your /boot/dts directory and check if the .dts file for your board is 88701 bytes ?  Somefile.dts files provide hardware details for the drivers and using the wrong one might cause all sorts of problems.  What I.m checking here is that U-Boot is loading the correct .dts file for your board.

 

-- Steven

Posted

Hi Steven,

 

my /boot partition contains following files:

root@myhost:/boot# ls -lh
insgesamt 40760
-rw-r--r-- 1 root root       69 24. Okt 10:12 armbianEnv.txt
-rw-r--r-- 1 root root     1536  8. Okt 22:11 armbian_first_run.txt.template
lrwxrwxrwx 1 root root        1 23. Okt 18:49 boot -> .
-rw-r--r-- 1 root root    38518  8. Okt 22:10 boot.bmp
-rw-r--r-- 1 root root    13370  8. Okt 22:11 boot.ini
-rw-r--r-- 1 root root   169628  8. Okt 21:52 config-5.4.151-odroidxu4
lrwxrwxrwx 1 root root       21  8. Okt 22:10 dtb -> dtb-5.4.151-odroidxu4
drwxr-xr-x 3 root root     3072  8. Okt 22:10 dtb-5.4.151-odroidxu4
-rw------- 1 root root 11083111 23. Okt 19:07 initrd.img-5.4.151-odroidxu4
-rw-r--r-- 1 root root  8796913  8. Okt 22:12 initrd.img-5.4.151-odroidxu4.bak
drwx------ 2 root root    12288 23. Okt 18:49 lost+found
-rw-r--r-- 1 root root  3193792  8. Okt 21:52 System.map-5.4.151-odroidxu4
lrwxrwxrwx 1 root root       25 23. Okt 19:07 uInitrd -> uInitrd-5.4.151-odroidxu4
-rw-r--r-- 1 root root 11083175 23. Okt 19:07 uInitrd-5.4.151-odroidxu4
-rwxr-xr-x 1 root root  7337840  8. Okt 21:52 vmlinuz-5.4.151-odroidxu4
lrwxrwxrwx 1 root root       25  8. Okt 22:10 zImage -> vmlinuz-5.4.151-odroidxu4

 

the original boot.ini of the Armbian Bullseye image at the end looks like that:

[...]

# this is for mainline only
if test "${board_name}" = "xu4"; then setenv fdtfile "exynos5422-odroidxu4.dtb"; fi
if test "${board_name}" = "xu3"; then setenv fdtfile "exynos5422-odroidxu3.dtb"; fi
if test "${board_name}" = "xu3l"; then setenv fdtfile "exynos5422-odroidxu3-lite.dtb"; fi
if test "${board_name}" = "hc1"; then setenv fdtfile "exynos5422-odroidhc1.dtb"; fi

# legacy shares a single DT for all boards
if ext4load mmc 0:1 0x00000000 "/boot/.next" || fatload mmc 0:1 0x00000000 ".next"  || ext4load mmc 0:1 0x00000000 ".next"; then echo "Found mainline kernel configuration"; else setenv fdtfile "exynos5422-odroidxu3.dtb"; fi
ext4load mmc 0:1 0x44000000 /boot/dtb/${fdtfile} || fatload mmc 0:1 0x44000000 dtb/${fdtfile} || ext4load mmc 0:1 0x44000000 dtb/${fdtfile}

# set FDT address
fdt addr 0x44000000

 

As I understand the above code it should detect the correct board and assign the corresponding dtb to the boot process. Nevertheless, to ensure the correct .dtb file is used during the boot process I did following. First I backed up the original ./dtb folder that contained following files and folder:

-rw-r--r-- 1 root root  40978  8. Okt 21:52 exynos3250-artik5-eval.dtb
-rw-r--r-- 1 root root  52553  8. Okt 21:52 exynos3250-monk.dtb
-rw-r--r-- 1 root root  58000  8. Okt 21:52 exynos3250-rinato.dtb
-rw-r--r-- 1 root root  60049  8. Okt 21:52 exynos4210-origen.dtb
-rw-r--r-- 1 root root  56580  8. Okt 21:52 exynos4210-smdkv310.dtb
-rw-r--r-- 1 root root  62387  8. Okt 21:52 exynos4210-trats.dtb
-rw-r--r-- 1 root root  63638  8. Okt 21:52 exynos4210-universal_c210.dtb
-rw-r--r-- 1 root root 101479  8. Okt 21:52 exynos4412-i9300.dtb
-rw-r--r-- 1 root root 101479  8. Okt 21:52 exynos4412-i9305.dtb
-rw-r--r-- 1 root root  75175  8. Okt 21:52 exynos4412-itop-elite.dtb
-rw-r--r-- 1 root root  99301  8. Okt 21:52 exynos4412-n710x.dtb
-rw-r--r-- 1 root root  73351  8. Okt 21:52 exynos4412-odroidu3.dtb
-rw-r--r-- 1 root root  73348  8. Okt 21:52 exynos4412-odroidx2.dtb
-rw-r--r-- 1 root root  73159  8. Okt 21:52 exynos4412-odroidx.dtb
-rw-r--r-- 1 root root  72354  8. Okt 21:52 exynos4412-origen.dtb
-rw-r--r-- 1 root root  64137  8. Okt 21:52 exynos4412-smdk4412.dtb
-rw-r--r-- 1 root root  62778  8. Okt 21:52 exynos4412-tiny4412.dtb
-rw-r--r-- 1 root root 101532  8. Okt 21:52 exynos4412-trats2.dtb
-rw-r--r-- 1 root root  62905  8. Okt 21:52 exynos5250-arndale.dtb
-rw-r--r-- 1 root root  58414  8. Okt 21:52 exynos5250-smdk5250.dtb
-rw-r--r-- 1 root root  64437  8. Okt 21:52 exynos5250-snow.dtb
-rw-r--r-- 1 root root  64474  8. Okt 21:52 exynos5250-snow-rev5.dtb
-rw-r--r-- 1 root root  60444  8. Okt 21:52 exynos5250-spring.dtb
-rw-r--r-- 1 root root  22636  8. Okt 21:52 exynos5260-xyref5260.dtb
-rw-r--r-- 1 root root  44973  8. Okt 21:52 exynos5410-odroidxu.dtb
-rw-r--r-- 1 root root  33750  8. Okt 21:52 exynos5410-smdk5410.dtb
-rw-r--r-- 1 root root  78923  8. Okt 21:52 exynos5420-arndale-octa.dtb
-rw-r--r-- 1 root root  87616  8. Okt 21:52 exynos5420-peach-pit.dtb
-rw-r--r-- 1 root root  73226  8. Okt 21:52 exynos5420-smdk5420.dtb
-rw-r--r-- 1 root root  82592  8. Okt 21:52 exynos5422-odroidhc1.dtb
-rw-r--r-- 1 root root  88701  8. Okt 21:52 exynos5422-odroidxu3.dtb
-rw-r--r-- 1 root root  88210  8. Okt 21:52 exynos5422-odroidxu3-lite.dtb
-rw-r--r-- 1 root root  87877  8. Okt 21:52 exynos5422-odroidxu4.dtb
-rw-r--r-- 1 root root  88102  8. Okt 21:52 exynos5800-peach-pi.dtb
drwxr-xr-x 2 root root   1024  8. Okt 22:10 overlays

 

then I wiped the /boot/dtb content except the correct .dtb which is the odroidxu4.dtb for my board ODROID-HC2, I also kept the overlay folder in that directory. That being said, my /boot/dtb looks like that:

root@myhost:/boot/dtb]# ls -lh *
-rw-r--r-- 1 root root  86K 24. Okt 10:31 exynos5422-odroidxu4.dtb

 

overlays:
-rw-r--r-- 1 root root 1,7K 24. Okt 10:33 ads7846.dtbo
-rw-r--r-- 1 root root 1,3K 24. Okt 10:33 hktft32.dtbo
-rw-r--r-- 1 root root 1,8K 24. Okt 10:33 hktft35.dtbo
-rw-r--r-- 1 root root 1,5K 24. Okt 10:33 hktft-cs-ogst.dtbo
-rw-r--r-- 1 root root  224 24. Okt 10:33 i2c0.dtbo
-rw-r--r-- 1 root root  226 24. Okt 10:33 i2c1.dtbo
-rw-r--r-- 1 root root  417 24. Okt 10:33 onewire.dtbo
-rw-r--r-- 1 root root  691 24. Okt 10:33 spi0.dtbo
-rw-r--r-- 1 root root  792 24. Okt 10:33 sx865x-i2c1.dtbo
-rw-r--r-- 1 root root  227 24. Okt 10:33 uart0.dtbo

 

now when I boot the u-boot serial log throws these errors:

U-Boot 2017.05-armbian (Oct 08 2021 - 19:51:17 +0000) for ODROID-XU4

CPU:   Exynos5422 @ 800 MHz
Model: Odroid XU4 based on EXYNOS5422
Board: Odroid XU4 based on EXYNOS5422
Type:  unknown
DRAM:  2 GiB
MMC:   EXYNOS DWMMC: 0, EXYNOS DWMMC: 1
MMC Device 0 ( SD ): 29.8 GiB
Card did not respond to voltage select!
mmc_init: -95, time 11
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   No ethernet found.
Press quickly 'Enter' twice to stop autoboot:  0
13370 bytes read in 45 ms (290 KiB/s)
## Executing script at 43e00000
69 bytes read in 86 ms (0 Bytes/s)
7337840 bytes read in 813 ms (8.6 MiB/s)
11083175 bytes read in 1149 ms (9.2 MiB/s)
** File not found /boot/.next **
** Unrecognized filesystem type **
** File not found .next **
** File not found /boot/dtb/exynos5422-odroidxu3.dtb **
** Unrecognized filesystem type **
** File not found dtb/exynos5422-odroidxu3.dtb **
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
No FDT memory address configured. Please configure
the FDT address via "fdt addr <address>" command.
Aborting!
Kernel image @ 0x40008000 [ 0x000000 - 0x6ff770 ]
## Loading init Ramdisk from Legacy Image at 42000000 ...
   Image Name:   uInitrd
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    11083111 Bytes = 10.6 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
ERROR: Did not find a cmdline Flattened Device Tree
Could not find a valid device tree
13370 bytes read in 62 ms (210 KiB/s)
## Executing script at 43e00000
69 bytes read in 86 ms (0 Bytes/s)
7337840 bytes read in 815 ms (8.6 MiB/s)
11083175 bytes read in 1178 ms (9 MiB/s)
** File not found /boot/.next **
** Unrecognized filesystem type **
** File not found .next **
** File not found /boot/dtb/exynos5422-odroidxu3.dtb **
** Unrecognized filesystem type **
** File not found dtb/exynos5422-odroidxu3.dtb **
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
No FDT memory address configured. Please configure
the FDT address via "fdt addr <address>" command.
Aborting!
Kernel image @ 0x40008000 [ 0x000000 - 0x6ff770 ]
## Loading init Ramdisk from Legacy Image at 42000000 ...
   Image Name:   uInitrd
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    11083111 Bytes = 10.6 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
ERROR: Did not find a cmdline Flattened Device Tree
Could not find a valid device tree
** File not found /boot.scr **
## Executing script at 43e00000
69 bytes read in 86 ms (0 Bytes/s)
7337840 bytes read in 813 ms (8.6 MiB/s)
11083175 bytes read in 1149 ms (9.2 MiB/s)
** File not found /boot/.next **
** Unrecognized filesystem type **
** File not found .next **
** File not found /boot/dtb/exynos5422-odroidxu3.dtb **
** Unrecognized filesystem type **
** File not found dtb/exynos5422-odroidxu3.dtb **
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
No FDT memory address configured. Please configure
the FDT address via "fdt addr <address>" command.
Aborting!
Kernel image @ 0x40008000 [ 0x000000 - 0x6ff770 ]
## Loading init Ramdisk from Legacy Image at 42000000 ...
   Image Name:   uInitrd
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    11083111 Bytes = 10.6 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
ERROR: Did not find a cmdline Flattened Device Tree
Could not find a valid device tree
Unknown command '�ኧ' - try 'help'
Failed to mount ext2 filesystem...
** Unrecognized filesystem type **
## Executing script at 43e00000
69 bytes read in 87 ms (0 Bytes/s)
7337840 bytes read in 811 ms (8.6 MiB/s)
11083175 bytes read in 1147 ms (9.2 MiB/s)
** File not found /boot/.next **
** Unrecognized filesystem type **
** File not found .next **
** File not found /boot/dtb/exynos5422-odroidxu3.dtb **
** Unrecognized filesystem type **
** File not found dtb/exynos5422-odroidxu3.dtb **
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
No FDT memory address configured. Please configure
the FDT address via "fdt addr <address>" command.
Aborting!
Kernel image @ 0x40008000 [ 0x000000 - 0x6ff770 ]
## Loading init Ramdisk from Legacy Image at 42000000 ...
   Image Name:   uInitrd
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    11083111 Bytes = 10.6 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
ERROR: Did not find a cmdline Flattened Device Tree
Could not find a valid device tree
Unknown command '�ኧ' - try 'help'
Failed to mount ext2 filesystem...
** Unrecognized filesystem type **
## Executing script at 43e00000
69 bytes read in 87 ms (0 Bytes/s)
7337840 bytes read in 817 ms (8.6 MiB/s)
11083175 bytes read in 1151 ms (9.2 MiB/s)
** File not found /boot/.next **
** Unrecognized filesystem type **
** File not found .next **
** File not found /boot/dtb/exynos5422-odroidxu3.dtb **
** Unrecognized filesystem type **
** File not found dtb/exynos5422-odroidxu3.dtb **
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
No FDT memory address configured. Please configure
the FDT address via "fdt addr <address>" command.
Aborting!
Kernel image @ 0x40008000 [ 0x000000 - 0x6ff770 ]
## Loading init Ramdisk from Legacy Image at 42000000 ...
   Image Name:   uInitrd
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    11083111 Bytes = 10.6 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
ERROR: Did not find a cmdline Flattened Device Tree
Could not find a valid device tree
Unknown command '�ኧ' - try 'help'
Failed to mount ext2 filesystem...
** Unrecognized filesystem type **
## Executing script at 43e00000
69 bytes read in 86 ms (0 Bytes/s)
7337840 bytes read in 815 ms (8.6 MiB/s)
11083175 bytes read in 1148 ms (9.2 MiB/s)
** File not found /boot/.next **
** Unrecognized filesystem type **
** File not found .next **
** File not found /boot/dtb/exynos5422-odroidxu3.dtb **
** Unrecognized filesystem type **
** File not found dtb/exynos5422-odroidxu3.dtb **
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
No FDT memory address configured. Please configure
the FDT address via "fdt addr <address>" command.
Aborting!
Kernel image @ 0x40008000 [ 0x000000 - 0x6ff770 ]
## Loading init Ramdisk from Legacy Image at 42000000 ...
   Image Name:   uInitrd
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    11083111 Bytes = 10.6 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
ERROR: Did not find a cmdline Flattened Device Tree
Could not find a valid device tree
Unknown command '�ኧ' - try 'help'
mmc_init: -110, time 121
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
starting USB...
USB0:   USB EHCI 1.00
USB1:   Register 2000140 NbrPorts 2
Starting the controller
USB XHCI 1.00
USB2:   Register 2000140 NbrPorts 2
Starting the controller
USB XHCI 1.00
scanning bus 0 for devices... 1 USB Device(s) found
scanning bus 1 for devices... cannot reset port 1!?
1 USB Device(s) found
scanning bus 2 for devices... 2 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
       scanning usb for ethernet devices... 1 Ethernet Device(s) found

USB device 0: unknown device
Waiting for Ethernet connection... done.
BOOTP broadcast 1

 

Now it's clear, that it is trying to find the wrong odroidxu3 although my board ODROID-HC2 should be discovered as an odroidxu4. Well, I compared the u-boot serial log of the unencrypted initial Armbian Bullseye image which outputs the string "Found mainline kernel configuration". This string is generated by the boot.ini script, means that the board was discovered correctly and the correct image file was set as result. However, after the encryption it looks to me that this test fails somehow and the legacy image odroidxu3 is assigned, which is wrong of course.

 

I modified the boot.ini and manually assigned the odroidxu4.dtb file to see what happens:

# this is for mainline only
#if test "${board_name}" = "xu4"; then setenv fdtfile "exynos5422-odroidxu4.dtb"; fi
#if test "${board_name}" = "xu3"; then setenv fdtfile "exynos5422-odroidxu3.dtb"; fi
#if test "${board_name}" = "xu3l"; then setenv fdtfile "exynos5422-odroidxu3-lite.dtb"; fi
#if test "${board_name}" = "hc1"; then setenv fdtfile "exynos5422-odroidhc1.dtb"; fi
setenv fdtfile "exynos5422-odroidxu4.dtb"

 

# legacy shares a single DT for all boards
#if ext4load mmc 0:1 0x00000000 "/boot/.next" || fatload mmc 0:1 0x00000000 ".next"  || ext4load mmc 0:1 0x00000000 ".next"; then echo "Found mainline kernel configuration"; else setenv fdtfile "exynos5422-odroidxu3.dtb"; fi
if ext4load mmc 0:1 0x00000000 "/boot/.next" || fatload mmc 0:1 0x00000000 ".next"  || ext4load mmc 0:1 0x00000000 ".next"; then echo "Found mainline kernel configuration"; else echo "manually set fdtfile to exynos5422-odroidxu4.dtb"; fi
ext4load mmc 0:1 0x44000000 /boot/dtb/${fdtfile} || fatload mmc 0:1 0x44000000 dtb/${fdtfile} || ext4load mmc 0:1 0x44000000 dtb/${fdtfile}

 

Now see here, seems we have the correct .dtb file loaded. Looks good...

U-Boot 2017.05-armbian (Oct 08 2021 - 19:51:17 +0000) for ODROID-XU4

CPU:   Exynos5422 @ 800 MHz
Model: Odroid XU4 based on EXYNOS5422
Board: Odroid XU4 based on EXYNOS5422
Type:  unknown
DRAM:  2 GiB
MMC:   EXYNOS DWMMC: 0, EXYNOS DWMMC: 1
MMC Device 0 ( SD ): 29.8 GiB
Card did not respond to voltage select!
mmc_init: -95, time 11
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   No ethernet found.
Press quickly 'Enter' twice to stop autoboot:  0
13651 bytes read in 44 ms (302.7 KiB/s)
## Executing script at 43e00000
69 bytes read in 86 ms (0 Bytes/s)
7337840 bytes read in 813 ms (8.6 MiB/s)
11083175 bytes read in 1149 ms (9.2 MiB/s)
** File not found /boot/.next **
** Unrecognized filesystem type **
** File not found .next **
manually set fdtfile to exynos5422-odroidxu4.dtb
87877 bytes read in 107 ms (801.8 KiB/s)
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
Kernel image @ 0x40008000 [ 0x000000 - 0x6ff770 ]
## Loading init Ramdisk from Legacy Image at 42000000 ...
   Image Name:   uInitrd
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    11083111 Bytes = 10.6 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 44000000
   Booting using the fdt blob at 0x44000000
   Using Device Tree in place at 44000000, end 44018744

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x100
[    0.000000] Linux version 5.4.151-odroidxu4 (root@big-37) (gcc version 8.3.0 (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36))) #21.08.3 SMP PREEMPT Fri Oct 8 19:1
[    0.000000] CPU: ARMv7 Processor [410fc073] revision 3 (ARMv7), cr=10c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Hardkernel Odroid XU4
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] cma: Reserved 128 MiB at 0xb6800000
[    0.000000] Samsung CPU ID: 0xe5422001
[    0.000000] Running under secure firmware.
[    0.000000] percpu: Embedded 20 pages/cpu s51852 r8192 d21876 u81920
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 516928
[    0.000000] Kernel command line: console=ttySAC2,115200n8  consoleblank=0 loglevel=7 root=/dev/mapper/rootfs rootfstype=ext4 rootwait rw  smsc95xx.macaddr=00:1e:06:61:7a:55 governor=perf
[    0.000000] hdmi: using HDMI mode
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:on, heap free:off
[    0.000000] Memory: 1895308K/2074624K available (11264K kernel code, 719K rwdata, 3020K rodata, 1024K init, 297K bss, 48244K reserved, 131072K cma-reserved, 1157120K highmem)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=8, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000]  Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] random: get_random_bytes called from start_kernel+0x36c/0x540 with crng_init=0
[    0.000000] Switching to timer-based delay loop, resolution 41ns
[    0.000000] clocksource: mct-frc: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.000007] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[    0.000031] genirq: irq_chip COMBINER did not update eff. affinity mask of irq 49
[    0.001683] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
[    0.001704] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[    0.001725] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[    0.001738] Ignoring duplicate/late registration of read_current_timer delay
[    0.002325] Console: colour dummy device 80x30
[    0.002374] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[    0.002390] pid_max: default: 32768 minimum: 301
[    0.002560] LSM: Security Framework initializing
[    0.002608] Yama: becoming mindful.
[    0.002986] AppArmor: AppArmor initialized
[    0.003064] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.003087] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.003179] *** VALIDATE tmpfs ***
[    0.003929] *** VALIDATE proc ***
[    0.004297] *** VALIDATE cgroup1 ***
[    0.004312] *** VALIDATE cgroup2 ***
[    0.004372] CPU: Testing write buffer coherency: ok
[    0.005015] CPU0: thread -1, cpu 0, socket 1, mpidr 80000100
[    0.005964] Setting up static identity map for 0x40100000 - 0x40100060
[    0.006277] ARM CCI driver probed
[    0.006875] Exynos MCPM support installed
[    0.007185] rcu: Hierarchical SRCU implementation.
[    0.009710] soc soc0: Exynos: CPU[EXYNOS5800] PRO_ID[0xe5422001] REV[0x1] Detected
[    0.010387] smp: Bringing up secondary CPUs ...
[    0.011449] CPU1: thread -1, cpu 1, socket 1, mpidr 80000101
[    0.012686] CPU2: thread -1, cpu 2, socket 1, mpidr 80000102
[    0.013838] CPU3: thread -1, cpu 3, socket 1, mpidr 80000103
[    0.014989] CPU4: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.014998] CPU4: detected I-Cache line size mismatch, workaround enabled
[    0.015005] CPU4: Spectre v2: firmware did not set auxiliary control register IBE bit, system vulnerable
[    0.016272] CPU5: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.016279] CPU5: detected I-Cache line size mismatch, workaround enabled
[    0.016286] CPU5: Spectre v2: firmware did not set auxiliary control register IBE bit, system vulnerable
[    0.017529] CPU6: thread -1, cpu 2, socket 0, mpidr 80000002
[    0.017537] CPU6: detected I-Cache line size mismatch, workaround enabled
[    0.017543] CPU6: Spectre v2: firmware did not set auxiliary control register IBE bit, system vulnerable
[    0.018756] CPU7: thread -1, cpu 3, socket 0, mpidr 80000003
[    0.018764] CPU7: detected I-Cache line size mismatch, workaround enabled
[    0.018770] CPU7: Spectre v2: firmware did not set auxiliary control register IBE bit, system vulnerable
[    0.018971] smp: Brought up 1 node, 8 CPUs
[    0.018989] SMP: Total of 8 processors activated (384.00 BogoMIPS).
[    0.018998] CPU: All CPU(s) started in HYP mode.
[    0.019005] CPU: Virtualization extensions available.
[    0.020050] devtmpfs: initialized
[    0.041271] VFP support v0.3: implementor 41 architecture 4 part 30 variant f rev 0
[    0.041633] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.041696] futex hash table entries: 2048 (order: 5, 131072 bytes, linear)
[    0.044334] xor: measuring software checksum speed
[    0.139951]    arm4regs  :  1515.600 MB/sec
[    0.239955]    8regs     :  1237.200 MB/sec
[    0.339955]    32regs    :  1231.600 MB/sec
[    0.439953]    neon      :  2208.000 MB/sec
[    0.439964] xor: using function: neon (2208.000 MB/sec)
[    0.440014] pinctrl core: initialized pinctrl subsystem
[    0.442413] NET: Registered protocol family 16
[    0.445901] DMA: preallocated 2048 KiB pool for atomic coherent allocations
[    0.447421] audit: initializing netlink subsys (disabled)
[    0.447665] audit: type=2000 audit(0.440:1): state=initialized audit_enabled=0 res=1
[    0.448507] cpuidle: using governor menu
[    0.449204] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.449216] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.555213] EXYNOS5420 PMU initialized
[    0.653846] random: fast init done
[    0.787353] cryptd: max_cpu_qlen set to 1000
[    0.959977] raid6: neonx8   gen()  1468 MB/s
[    1.129983] raid6: neonx8   xor()  1187 MB/s
[    1.299984] raid6: neonx4   gen()  1342 MB/s
[    1.469975] raid6: neonx4   xor()  1193 MB/s
[    1.639973] raid6: neonx2   gen()  1051 MB/s
[    1.809979] raid6: neonx2   xor()  1335 MB/s
[    1.979993] raid6: neonx1   gen()   719 MB/s
[    2.149981] raid6: neonx1   xor()  1001 MB/s
[    2.320084] raid6: int32x8  gen()   378 MB/s
[    2.490081] raid6: int32x8  xor()   269 MB/s
[    2.660062] raid6: int32x4  gen()   368 MB/s
[    2.830047] raid6: int32x4  xor()   283 MB/s
[    3.000146] raid6: int32x2  gen()   267 MB/s
[    3.170037] raid6: int32x2  xor()   263 MB/s
[    3.340124] raid6: int32x1  gen()   180 MB/s
[    3.510061] raid6: int32x1  xor()   204 MB/s
[    3.510072] raid6: using algorithm neonx8 gen() 1468 MB/s
[    3.510082] raid6: .... xor() 1187 MB/s, rmw enabled
[    3.510092] raid6: using neon recovery algorithm
[    3.512153] iommu: Default domain type: Translated
[    3.512549] usbcore: registered new interface driver usbfs
[    3.512609] usbcore: registered new interface driver hub
[    3.512667] usbcore: registered new device driver usb
[    3.513291] s3c-i2c 12c80000.i2c: slave address 0x00
[    3.513309] s3c-i2c 12c80000.i2c: bus frequency set to 65 KHz
[    3.513580] s3c-i2c 12c80000.i2c: i2c-2: S3C I2C adapter
[    3.514044] mc: Linux media interface: v0.10
[    3.514087] videodev: Linux video capture interface: v2.00
[    3.514572] Advanced Linux Sound Architecture Driver Initialized.
[    3.515155] NetLabel: Initializing
[    3.515167] NetLabel:  domain hash size = 128
[    3.515177] NetLabel:  protocols = UNLABELED CIPSOv4 CALIPSO
[    3.515251] NetLabel:  unlabeled traffic allowed by default
[    3.515858] clocksource: Switched to clocksource mct-frc
[    3.616211] *** VALIDATE bpf ***
[    3.616390] VFS: Disk quotas dquot_6.6.0
[    3.616467] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    3.616577] *** VALIDATE ramfs ***
[    3.617320] AppArmor: AppArmor Filesystem Enabled
[    3.630635] thermal_sys: Registered thermal governor 'step_wise'
[    3.633044] NET: Registered protocol family 2
[    3.633206] IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    3.634376] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[    3.634422] TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    3.634524] TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    3.634681] TCP: Hash tables configured (established 8192 bind 8192)
[    3.634817] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[    3.634867] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[    3.635119] NET: Registered protocol family 1
[    3.635387] Trying to unpack rootfs image as initramfs...
[    4.306869] Freeing initrd memory: 10824K
[    4.308804] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 5 counters available
[    4.309649] hw perfevents: enabled with armv7_cortex_a15 PMU driver, 7 counters available
[    4.311610] Initialise system trusted keyrings
[    4.311660] Key type blacklist registered
[    4.311893] workingset: timestamp_bits=14 max_order=19 bucket_order=5
[    4.321163] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    4.322205] fuse: init (API version 7.31)
[    4.322330] *** VALIDATE fuse ***
[    4.322346] *** VALIDATE fuse ***
[    4.323623] Platform Keyring initialized
[    4.355450] Key type asymmetric registered
[    4.355464] Asymmetric key parser 'x509' registered
[    4.355608] bounce: pool size: 64 pages
[    4.355655] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
[    4.355903] io scheduler mq-deadline registered
[    4.355915] io scheduler kyber registered
[    4.355963] io scheduler bfq registered
[    4.358539] samsung-usb2-phy 12130000.phy: 12130000.phy supply vbus not found, using dummy regulator
[    4.359548] exynos5_usb3drd_phy 12100000.phy: 12100000.phy supply vbus not found, using dummy regulator
[    4.359638] exynos5_usb3drd_phy 12100000.phy: 12100000.phy supply vbus-boost not found, using dummy regulator
[    4.360037] exynos5_usb3drd_phy 12500000.phy: 12500000.phy supply vbus not found, using dummy regulator
[    4.360123] exynos5_usb3drd_phy 12500000.phy: 12500000.phy supply vbus-boost not found, using dummy regulator
[    4.369469] dma-pl330 121a0000.pdma: Loaded driver for PL330 DMAC-241330
[    4.369486] dma-pl330 121a0000.pdma:         DBUFF-32x4bytes Num_Chans-8 Num_Peri-32 Num_Events-32
[    4.372235] dma-pl330 121b0000.pdma: Loaded driver for PL330 DMAC-241330
[    4.372251] dma-pl330 121b0000.pdma:         DBUFF-32x4bytes Num_Chans-8 Num_Peri-32 Num_Events-32
[    4.373141] dma-pl330 10800000.mdma: Loaded driver for PL330 DMAC-241330
[    4.373156] dma-pl330 10800000.mdma:         DBUFF-64x8bytes Num_Chans-8 Num_Peri-1 Num_Events-32
[    4.445675] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    4.448097] 12c20000.serial: ttySAC2 at MMIO 0x12c20000 (irq = 62, base_baud = 0) is a S3C6400/10
[    5.486059] printk: console [ttySAC2] enabled
[    5.492027] exynos-trng 10830600.rng: Exynos True Random Number Generator.
[    5.498946] exynos-mixer 14450000.mixer: Adding to iommu group 0
[    5.524639] brd: module loaded
[    5.526974] libphy: Fixed MDIO Bus: probed
[    5.530626] usbcore: registered new interface driver r8152
[    5.535790] usbcore: registered new interface driver cdc_ether
[    5.541661] usbcore: registered new interface driver cdc_subset
[    5.549702] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    5.554761] ehci-exynos: EHCI EXYNOS driver
[    5.559315] exynos-ehci 12110000.usb: EHCI Host Controller
[    5.564384] exynos-ehci 12110000.usb: new USB bus registered, assigned bus number 1
[    5.572398] exynos-ehci 12110000.usb: irq 79, io mem 0x12110000
[    5.598026] dma-pl330 3880000.adma: Loaded driver for PL330 DMAC-241330
[    5.603154] dma-pl330 3880000.adma:  DBUFF-4x8bytes Num_Chans-6 Num_Peri-16 Num_Events-6
[    5.605969] exynos-ehci 12110000.usb: USB 2.0 started, EHCI 1.00
[    5.617498] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.04
[    5.625423] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    5.632655] usb usb1: Product: EHCI Host Controller
[    5.636423] dma-pl330 3880000.adma: PM domain MAU will not be powered off
[    5.637509] usb usb1: Manufacturer: Linux 5.4.151-odroidxu4 ehci_hcd
[    5.650583] usb usb1: SerialNumber: 12110000.usb
[    5.655772] hub 1-0:1.0: USB hub found
[    5.658961] hub 1-0:1.0: 3 ports detected
[    5.663812] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    5.669062] ohci-exynos: OHCI EXYNOS driver
[    5.673365] exynos-ohci 12120000.usb: USB Host Controller
[    5.678589] exynos-ohci 12120000.usb: new USB bus registered, assigned bus number 2
[    5.687077] exynos-ohci 12120000.usb: irq 79, io mem 0x12120000
[    5.760139] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 5.04
[    5.766950] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    5.774103] usb usb2: Product: USB Host Controller
[    5.778906] usb usb2: Manufacturer: Linux 5.4.151-odroidxu4 ohci_hcd
[    5.785194] usb usb2: SerialNumber: 12120000.usb
[    5.790400] hub 2-0:1.0: USB hub found
[    5.793548] hub 2-0:1.0: 3 ports detected
[    5.799834] mousedev: PS/2 mouse device common for all mice
[    5.805735] i2c /dev entries driver
[    5.830650] vdd_ldo9: Bringing 3300000uV into 3000000-3000000uV
[    5.847421] vddq_mmc2: Bringing 3300000uV into 2800000-2800000uV
[    5.867605] vdd_sd: Bringing 3300000uV into 2800000-2800000uV
[    5.947748] s5m-rtc s2mps14-rtc: registered as rtc0
[    5.951700] s2mps11-clk s2mps11-clk: DMA mask not set
[    5.967904] s3c2410-wdt 101d0000.watchdog: watchdog inactive, reset disabled, irq disabled
[    5.975316] device-mapper: uevent: version 1.0.3
[    5.979703] device-mapper: ioctl: 4.41.0-ioctl (2019-09-16) initialised: dm-devel@redhat.com
[    6.000736] sdhci: Secure Digital Host Controller Interface driver
[    6.005430] sdhci: Copyright(c) Pierre Ossman
[    6.010026] Synopsys Designware Multimedia Card Interface Driver
[    6.016434] dwmmc_exynos 12200000.mmc: IDMAC supports 32-bit address mode.
[    6.022654] dwmmc_exynos 12200000.mmc: Using internal DMA controller.
[    6.029035] dwmmc_exynos 12200000.mmc: Version ID is 250a
[    6.034419] dwmmc_exynos 12200000.mmc: DW MMC controller at irq 81,64 bit host data width,64 deep fifo
[    6.043924] dwmmc_exynos 12200000.mmc: allocated mmc-pwrseq
[    6.066076] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz, actual 396825HZ div = 63)
[    6.087379] dwmmc_exynos 12220000.mmc: IDMAC supports 32-bit address mode.
[    6.092923] dwmmc_exynos 12220000.mmc: Using internal DMA controller.
[    6.099354] dwmmc_exynos 12220000.mmc: Version ID is 250a
[    6.104710] dwmmc_exynos 12220000.mmc: DW MMC controller at irq 82,64 bit host data width,64 deep fifo
[    6.132708] mmc_host mmc1: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz, actual 396825HZ div = 63)
[    6.156260] s5p-secss 10830000.sss: s5p-sss driver registered
[    6.161030] hidraw: raw HID events driver (C) Jiri Kosina
[    6.179340] exynos-nocp: new NoC Probe device registered: 10ca1000.nocp
[    6.184654] exynos-nocp: new NoC Probe device registered: 10ca1400.nocp
[    6.191266] exynos-nocp: new NoC Probe device registered: 10ca1800.nocp
[    6.197823] exynos-nocp: new NoC Probe device registered: 10ca1c00.nocp
[    6.204665] exynos-ppmu: new PPMU device registered 10d00000.ppmu (ppmu-event3-dmc0_0)
[    6.212830] exynos-ppmu: new PPMU device registered 10d10000.ppmu (ppmu-event3-dmc0_1)
[    6.220382] exynos-ppmu: new PPMU device registered 10d60000.ppmu (ppmu-event3-dmc1_0)
[    6.228121] exynos-ppmu: new PPMU device registered 10d70000.ppmu (ppmu-event3-dmc1_1)
[    6.239867] exynos5-dmc 10c20000.memory-controller: DMC initialized, in irq mode: 0
[    6.246857] exynos-adc 12d10000.adc: IRQ index 1 not found
[    6.256216] samsung-i2s 3830000.i2s-sec: DMA channels sourced from device 3830000.i2s
[    6.262099] mmc_host mmc1: Bus speed (slot 0) = 200000000Hz (slot req 200000000Hz, actual 200000000HZ div = 0)
[    6.270342] NET: Registered protocol family 17
[    6.275185] mmc1: new ultra high speed SDR104 SDHC card at address 59b4
[    6.277067] NET: Registered protocol family 15
[    6.285110] mmcblk1: mmc1:59b4 EB2MW 29.8 GiB
[    6.288026] Key type dns_resolver registered
[    6.295639]  mmcblk1: p1 p2
[    6.297407] Registering SWP/SWPB emulation handler
[    6.304296] registered taskstats version 1
[    6.308242] Loading compiled-in X.509 certificates
[    6.317358] Loaded X.509 cert 'Build time autogenerated kernel key: 58f88920dc5a2eb8aefa1a83381c42bc4c4ae8b7'
[    6.326160] Key type ._fscrypt registered
[    6.329760] Key type .fscrypt registered
[    6.336676] Btrfs loaded, crc32c=crc32c-generic
[    6.432044] Key type big_key registered
[    6.455404] Key type encrypted registered
[    6.458007] AppArmor: AppArmor sha1 policy hashing enabled
[    6.516643] exynos-asv 10000000.chipid: cpu0 opp0, freq: 1500 missing
[    6.521639] exynos-asv 10000000.chipid: cpu4 opp0, freq: 2100 missing
[    6.530480] OF: graph: no port node found in /soc/hdmi@14530000
[    6.536160] [drm] Exynos DRM: using 14450000.mixer device for DMA mapping operations
[    6.542710] exynos-drm exynos-drm: bound 14450000.mixer (ops 0xc0cb2b28)
[    6.549391] exynos-drm exynos-drm: bound 14530000.hdmi (ops 0xc0cb31ac)
[    6.555932] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    6.562470] [drm] No driver support for vblank timestamp query.
[    6.568432] [drm] Cannot find any crtc or sizes
[    6.573522] [drm] Cannot find any crtc or sizes
[    6.577584] [drm] Initialized exynos 1.1.0 20180330 for exynos-drm on minor 0
[    6.586452] dwc3 12000000.dwc3: Failed to get clk 'ref': -2
[    6.591389] xhci-hcd xhci-hcd.8.auto: xHCI Host Controller
[    6.596068] xhci-hcd xhci-hcd.8.auto: new USB bus registered, assigned bus number 3
[    6.604001] xhci-hcd xhci-hcd.8.auto: hcc params 0x0220f04c hci version 0x100 quirks 0x0000000002010010
[    6.613119] xhci-hcd xhci-hcd.8.auto: irq 159, io mem 0x12000000
[    6.619316] xhci-hcd xhci-hcd.8.auto: xHCI Host Controller
[    6.624428] xhci-hcd xhci-hcd.8.auto: new USB bus registered, assigned bus number 4
[    6.632085] xhci-hcd xhci-hcd.8.auto: Host supports USB 3.0 SuperSpeed
[    6.638778] usb usb3: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.04
[    6.646816] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    6.653970] usb usb3: Product: xHCI Host Controller
[    6.658856] usb usb3: Manufacturer: Linux 5.4.151-odroidxu4 xhci-hcd
[    6.665148] usb usb3: SerialNumber: xhci-hcd.8.auto
[    6.670624] hub 3-0:1.0: USB hub found
[    6.673756] hub 3-0:1.0: 1 port detected
[    6.678089] usb usb4: We don't know the algorithms for LPM for this host, disabling LPM.
[    6.685820] usb usb4: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.04
[    6.693955] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    6.701137] usb usb4: Product: xHCI Host Controller
[    6.705996] usb usb4: Manufacturer: Linux 5.4.151-odroidxu4 xhci-hcd
[    6.712288] usb usb4: SerialNumber: xhci-hcd.8.auto
[    6.717868] hub 4-0:1.0: USB hub found
[    6.720902] hub 4-0:1.0: 1 port detected
[    6.727603] dwc3 12400000.dwc3: Failed to get clk 'ref': -2
[    6.732559] xhci-hcd xhci-hcd.9.auto: xHCI Host Controller
[    6.737219] xhci-hcd xhci-hcd.9.auto: new USB bus registered, assigned bus number 5
[    6.745190] xhci-hcd xhci-hcd.9.auto: hcc params 0x0220f04c hci version 0x100 quirks 0x0000000002010010
[    6.754291] xhci-hcd xhci-hcd.9.auto: irq 160, io mem 0x12400000
[    6.760557] xhci-hcd xhci-hcd.9.auto: xHCI Host Controller
[    6.765582] xhci-hcd xhci-hcd.9.auto: new USB bus registered, assigned bus number 6
[    6.773242] xhci-hcd xhci-hcd.9.auto: Host supports USB 3.0 SuperSpeed
[    6.779961] usb usb5: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.04
[    6.787978] usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    6.795122] usb usb5: Product: xHCI Host Controller
[    6.800028] usb usb5: Manufacturer: Linux 5.4.151-odroidxu4 xhci-hcd
[    6.806337] usb usb5: SerialNumber: xhci-hcd.9.auto
[    6.811922] hub 5-0:1.0: USB hub found
[    6.814916] hub 5-0:1.0: 1 port detected
[    6.819340] usb usb6: We don't know the algorithms for LPM for this host, disabling LPM.
[    6.827069] usb usb6: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.04
[    6.835070] usb usb6: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    6.842308] usb usb6: Product: xHCI Host Controller
[    6.847154] usb usb6: Manufacturer: Linux 5.4.151-odroidxu4 xhci-hcd
[    6.853440] usb usb6: SerialNumber: xhci-hcd.9.auto
[    6.859569] hub 6-0:1.0: USB hub found
[    6.862053] hub 6-0:1.0: 1 port detected
[    6.867494] s3c-rtc 101e0000.rtc: rtc disabled, re-enabling
[    6.871824] rtc rtc1: invalid alarm value: 1900-01-01T00:00:00
[    6.877679] s3c-rtc 101e0000.rtc: registered as rtc1
[    6.885788] exynos-bus: new bus device registered: soc:bus_wcore ( 84000 KHz ~ 400000 KHz)
[    6.893781] exynos-bus: new bus device registered: soc:bus_noc ( 67000 KHz ~ 100000 KHz)
[    6.901518] exynos-bus: new bus device registered: soc:bus_fsys_apb (100000 KHz ~ 200000 KHz)
[    6.909693] exynos-bus: new bus device registered: soc:bus_fsys (100000 KHz ~ 200000 KHz)
[    6.918301] exynos-bus: new bus device registered: soc:bus_fsys2 ( 75000 KHz ~ 150000 KHz)
[    6.926886] exynos-bus: new bus device registered: soc:bus_mfc ( 96000 KHz ~ 333000 KHz)
[    6.934676] exynos-bus: new bus device registered: soc:bus_gen ( 89000 KHz ~ 267000 KHz)
[    6.942716] exynos-bus: new bus device registered: soc:bus_peri ( 67000 KHz ~  67000 KHz)
[    6.951101] exynos-bus: new bus device registered: soc:bus_g2d ( 84000 KHz ~ 333000 KHz)
[    6.959012] exynos-bus: new bus device registered: soc:bus_g2d_acp ( 67000 KHz ~ 267000 KHz)
[    6.967348] exynos-bus: new bus device registered: soc:bus_jpeg ( 75000 KHz ~ 300000 KHz)
[    6.975531] exynos-bus: new bus device registered: soc:bus_jpeg_apb ( 84000 KHz ~ 167000 KHz)
[    6.983792] exynos-bus: new bus device registered: soc:bus_disp1_fimd (120000 KHz ~ 200000 KHz)
[    6.992521] exynos-bus: new bus device registered: soc:bus_disp1 (120000 KHz ~ 300000 KHz)
[    7.000804] exynos-bus: new bus device registered: soc:bus_gscl_scaler (150000 KHz ~ 300000 KHz)
[    7.009829] exynos-bus: new bus device registered: soc:bus_mscl ( 84000 KHz ~ 400000 KHz)
[    7.020000] odroid-audio sound: snd-soc-dummy-dai <-> samsung-i2s mapping ok
[    7.025651] odroid-audio sound: i2s-hifi <-> snd-soc-dummy-dai mapping ok
[    7.034398] odroid-audio sound: snd-soc-dummy-dai <-> samsung-i2s-sec mapping ok
[    7.045782] s5m-rtc s2mps14-rtc: setting system clock to 2021-10-24T08:53:25 UTC (1635065605)
[    7.114040] ALSA device list:
[    7.115545]   #0: Odroid-XU4
[    7.120282] Freeing unused kernel memory: 1024K
[    7.167798] Run /init as init process
Loading, please wait...
Starting version 247.3-6
[    7.826339] usb 4-1: new SuperSpeed Gen 1 USB device number 2 using xhci-hcd
[    7.858202] usb 4-1: New USB device found, idVendor=152d, idProduct=0578, bcdDevice=31.02
[    7.864907] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    7.872351] usb 4-1: Product: USB to ATA/ATAPI Bridge
[    7.877154] usb 4-1: Manufacturer: JMicron
[    7.881130] usb 4-1: SerialNumber: 0123456789ABCDEF
[    7.899000] SCSI subsystem initialized
[    7.905981] usbcore: registered new interface driver usb-storage
[    7.921246] scsi host0: uas
[    7.922973] usbcore: registered new interface driver uas
[    7.924229] scsi 0:0:0:0: Direct-Access     JMicron  Generic          3102 PQ: 0 ANSI: 6
[    7.994115] gpiomem-exynos 13400000.gpiomem: Initialised: GPIO register area is 3
[    8.000409] gpiomem-exynos 13400000.gpiomem: Initialised: Registers at 0x13400000
[    8.007615] gpiomem-exynos 13400000.gpiomem: Initialised: Registers at 0x14010000
[    8.015015] gpiomem-exynos 13400000.gpiomem: Initialised: Registers at 0x03860000
[    8.020226] input: gpio_keys as /devices/platform/gpio_keys/input/input0
[    8.026675] usb 6-1: new SuperSpeed Gen 1 USB device number 2 using xhci-hcd
[    8.067280] usb 6-1: New USB device found, idVendor=0bda, idProduct=8153, bcdDevice=30.00
[    8.073980] usb 6-1: New USB device strings: Mfr=1, Product=2, SerialNumber=6
[    8.081156] usb 6-1: Product: USB 10/100/1000 LAN
[    8.085795] usb 6-1: Manufacturer: Realtek
[    8.089989] usb 6-1: SerialNumber: 000001000000
[    8.333169] usb 6-1: reset SuperSpeed Gen 1 USB device number 2 using xhci-hcd
[    8.427393] r8152 6-1:1.0 eth0: v1.10.11
[   13.905832] sd 0:0:0:0: [sda] Unit Not Ready
[   13.908731] sd 0:0:0:0: [sda] Sense Key : 0x4 [current]
[   13.913941] sd 0:0:0:0: [sda] ASC=0x44 <<vendor>>ASCQ=0x81
[   13.921040] sd 0:0:0:0: [sda] Read Capacity(16) failed: Result: hostbyte=0x00 driverbyte=0x08
[   13.928171] sd 0:0:0:0: [sda] Sense Key : 0x4 [current]
[   13.933371] sd 0:0:0:0: [sda] ASC=0x44 <<vendor>>ASCQ=0x81
[   13.940043] sd 0:0:0:0: [sda] Read Capacity(10) failed: Result: hostbyte=0x00 driverbyte=0x08
[   13.947462] sd 0:0:0:0: [sda] Sense Key : 0x4 [current]
[   13.952695] sd 0:0:0:0: [sda] ASC=0x44 <<vendor>>ASCQ=0x81
[   13.959185] sd 0:0:0:0: [sda] 0 512-byte logical blocks: (0 B/0 
[   13.964392] sd 0:0:0:0: [sda] 0-byte physical blocks
[   13.970345] sd 0:0:0:0: [sda] Test WP failed, assume Write Enabled
[   13.975808] sd 0:0:0:0: [sda] Asking for cache data failed
[   13.981023] sd 0:0:0:0: [sda] Assuming drive cache: write through
[   13.988112] sd 0:0:0:0: [sda] Optimal transfer size 33553920 bytes not a multiple of physical block size (0 bytes)
[   14.097183] sd 0:0:0:0: [sda] Unit Not Ready
[   14.100005] sd 0:0:0:0: [sda] Sense Key : 0x4 [current]
[   14.105289] sd 0:0:0:0: [sda] ASC=0x44 <<vendor>>ASCQ=0x81
[   14.112257] sd 0:0:0:0: [sda] Read Capacity(16) failed: Result: hostbyte=0x00 driverbyte=0x08
[   14.119362] sd 0:0:0:0: [sda] Sense Key : 0x4 [current]
[   14.124600] sd 0:0:0:0: [sda] ASC=0x44 <<vendor>>ASCQ=0x81
[   14.131381] sd 0:0:0:0: [sda] Read Capacity(10) failed: Result: hostbyte=0x00 driverbyte=0x08
[   14.138739] sd 0:0:0:0: [sda] Sense Key : 0x4 [current]
[   14.143963] sd 0:0:0:0: [sda] ASC=0x44 <<vendor>>ASCQ=0x81
[   14.153152] sd 0:0:0:0: [sda] Attached SCSI disk
[   14.166228] random: crng init done
[   14.268414] s5p-jpeg 11f50000.jpeg: Adding to iommu group 1
[   14.270695] s5p-mfc 11000000.codec: Adding to iommu group 2
[   14.279505] s5p-jpeg 11f50000.jpeg: encoder device registered as /dev/video0
[   14.289846] s5p-jpeg 11f50000.jpeg: decoder device registered as /dev/video1
[   14.290503] mali 11800000.gpu: GPU identified as 0x0620 r0p1 status 0
[   14.295438] s5p-jpeg 11f50000.jpeg: Samsung S5P JPEG codec
[   14.302333] mali 11800000.gpu: Protected mode not available
[   14.308586] s5p-jpeg 11f60000.jpeg: Adding to iommu group 3
[   14.319227] s5p-jpeg 11f60000.jpeg: encoder device registered as /dev/video2
[   14.319428] exynos-gsc 13e00000.video-scaler: Adding to iommu group 4
[   14.320070] mali 11800000.gpu: Probed as mali0
[   14.326194] s5p-jpeg 11f60000.jpeg: decoder device registered as /dev/video3
[   14.331369] s5p-mfc 11000000.codec: preallocated 8 MiB buffer for the firmware and context buffers
[   14.331447] s5p-mfc 11000000.codec: Direct firmware load for s5p-mfc-v8.fw failed with error -2
[   14.331454] s5p_mfc_load_firmware:69: Firmware is not present in the /lib/firmware directory nor compiled in kernel
[   14.331608] s5p-mfc 11000000.codec: decoder registered as /dev/video4
[   14.331702] s5p-mfc 11000000.codec: encoder registered as /dev/video5
[   14.342766] exynos-gsc 13e10000.video-scaler: Adding to iommu group 5
[   14.343277] s5p-jpeg 11f60000.jpeg: Samsung S5P JPEG codec
[   14.748723] usb 6-1: reset SuperSpeed Gen 1 USB device number 2 using xhci-hcd
[   14.832905] r8152 6-1:1.0 eth0: v1.10.11
[   14.871564] r8152 6-1:1.0 enx001e06380848: renamed from eth0
Begin: Loading essential drivers ... [   15.872455] loop: module loaded
[   16.027989] zram: Added device: zram0
[   16.059202] sd 0:0:0:0: Attached scsi generic sg0 type 0
[   16.280580] RPC: Registered named UNIX socket transport module.
[   16.285013] RPC: Registered udp transport module.
[   16.289789] RPC: Registered tcp transport module.
[   16.294372] RPC: Registered tcp NFSv4.1 backchannel transport module.
[   16.369570] NET: Registered protocol family 10
[   16.373465] Segment Routing with IPv6
done.
Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Waiting up to 180 secs for eth0 to become available ... Begin: Running /scripts/local-top ... Please unlock disk rootfs: Failure: Interface eth0 e
done.
ipconfig: eth0: SIOCGIFINDEX: No such device
ipconfig: no devices to configure
ipconfig: eth0: SIOCGIFINDEX: No such device
ipconfig: no devices to configure
ipconfig: eth0: SIOCGIFINDEX: No such device
ipconfig: no devices to configure
ipconfig: eth0: SIOCGIFINDEX: No such device
ipconfig: no devices to configure
ipconfig: eth0: SIOCGIFINDEX: No such device
ipconfig: no devices to configure
ipconfig: eth0: SIOCGIFINDEX: No such device
ipconfig: no devices to configure
ipconfig: eth0: SIOCGIFINDEX: No such device
ipconfig: no devices to configure
ipconfig: eth0: SIOCGIFINDEX: No such device
ipconfig: no devices to configure
ipconfig: eth0: SIOCGIFINDEX: No such device
ipconfig: no devices to configure
ipconfig: eth0: SIOCGIFINDEX: No such device
ipconfig: no devices to configure
/scripts/init-premount/dropbear: .: line 329: can't open '/run/net-eth0.conf': No such file or directory

 

as you see the network is trying to get initialized:

Zitat

 


[   14.832905] r8152 6-1:1.0 eth0: v1.10.11
[   14.871564] r8152 6-1:1.0 enx001e06380848: renamed from eth0

 

but the pre-init scripts are looking for a device called eth0. The armbian image however changed the NIC name from eth0 to enx001e06380848. I guess that is the next issue because the network is not initialized correctly and timed-out?

 

how to solve this? Well, to overcome this in the configuration file /etc/initramfs-tools/initramfs.conf I changed DEVICE=eth0 to DEVICE=enx001e06380848 and then executed in the chroot'ed environment "update-initramfs -u". After this it works like a charm, YES!!!!!!

 

[...]

[   14.371201] s5p-mfc 11000000.codec: decoder registered as /dev/video4
[   14.380114] exynos-gsc 13e10000.video-scaler: Adding to iommu group 5
[   14.383972] s5p-mfc 11000000.codec: encoder registered as /dev/video6
[   14.767167] usb 6-1: reset SuperSpeed Gen 1 USB device number 2 using xhci-hcd
[   14.870308] r8152 6-1:1.0 eth0: v1.10.11
[   14.915306] r8152 6-1:1.0 enx001e06380848: renamed from eth0
Begin: Loading essential drivers ... [   15.870227] loop: module loaded
[   16.030971] zram: Added device: zram0
[   16.046077] sd 0:0:0:0: Attached scsi generic sg0 type 0
[   16.272513] RPC: Registered named UNIX socket transport module.
[   16.276980] RPC: Registered udp transport module.
[   16.281628] RPC: Registered tcp transport module.
[   16.286343] RPC: Registered tcp NFSv4.1 backchannel transport module.
[   16.343674] NET: Registered protocol family 10
[   16.367678] Segment Routing with IPv6
done.
Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Waiting up to 180 secs for enx001e06380848 to become available ... Begin: Running /scripts/local-top ... done.
Please unlock disk rootfs: IP-Config: enx001e06380848 hardware address 00:1e:06:36:09:49 mtu 1500 DHCP RARP
IP-Config: no response after 2 secs - giving up
IP-Config: enx001e06380848 hardware address 00:1e:06:36:09:49 mtu 1500 DHCP RARP
IP-Config: enx001e06380848 complete (dhcp from 192.168.0.1):
 address: 192.168.0.123      broadcast: 192.168.0.255     netmask: 255.255.255.0
 gateway: 192.168.0.1      dns0     : 192.168.0.1       dns1   : 0.0.0.0
 domain : my.domain
 rootserver: 192.168.0.1 rootpath:
 filename  :
Begin: Starting dropbear ...

 

Now I can ssh -p222 root@192.168.0.123 into the temporary dropbear sheel and enter my LUKS password. Then the boot process continues ...

 

[...]

Begin: Starting dropbear ...

cryptsetup: rootfs: set up successfully
done.
Begin: Running /scripts/local-premount ... Scanning for Btrfs filesystems
done.
Begin: Will now check root file system ... fsck from util-linux 2.36.1
[  324.064270] mmc_host mmc1: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz, actual 396825HZ div = 63)
[  324.124907] mmc_host mmc1: Bus speed (slot 0) = 200000000Hz (slot req 200000000Hz, actual 200000000HZ div = 0)
[/sbin/fsck.ext4 (1) -- /dev/mapper/rootfs] fsck.ext4 -a -C0 /dev/mapper/rootfs
/dev/mapper/rootfs: recovering journal
/dev/mapper/rootfs: clean, 42398/1941504 files, 442853/7762688 blocks
done.
[  325.557610] EXT4-fs (dm-0): mounted filesystem with ordered data mode. Opts: (null)
done.
[  325.715647] mmc_host mmc1: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz, actual 396825HZ div = 63)
[  325.777619] mmc_host mmc1: Bus speed (slot 0) = 200000000Hz (slot req 200000000Hz, actual 200000000HZ div = 0)
[  326.226748] blk_update_request: I/O error, dev mmcblk1, sector 451552 op 0x0:(READ) flags 0x80700 phys_seg 4 prio class 0
Begin: Running /scripts/local-bottom ... done.
Begin: Running /scripts/init-bottom ... Begin: Stopping dropbear ... done.
Begin: Bringing down enx001e06380848 ... done.
Begin: Bringing down lo ... done.
[  326.482381] mmc_host mmc1: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz, actual 396825HZ div = 63)
[  326.546330] mmc_host mmc1: Bus speed (slot 0) = 200000000Hz (slot req 200000000Hz, actual 200000000HZ div = 0)
[  327.117351] blk_update_request: I/O error, dev mmcblk1, sector 62551488 op 0x0:(READ) flags 0x80700 phys_seg 8 prio class 0
done.
[  327.657825] mmc_host mmc1: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz, actual 396825HZ div = 63)
[  327.720084] mmc_host mmc1: Bus speed (slot 0) = 200000000Hz (slot req 200000000Hz, actual 200000000HZ div = 0)

[...]

[...]and so on

[...]

[  OK  ] Started Network Manager.
[  OK  ] Reached target Network.
[  OK  ] Reached target Network is Online.
         Starting chrony, an NTP client/server...
         Starting LSB: Advanced IEEE 802.11 management daemon...
         Starting OpenVPN service...
         Starting /etc/rc.local Compatibility...
         Starting OpenBSD Secure Shell server...
         Starting Permit User Sessions...
[  OK  ] Started Unattended Upgrades Shutdown.
[  OK  ] Started vnStat network traffic monitor.
[  OK  ] Started chrony, an NTP client/server.
[  OK  ] Started LSB: Advanced IEEE 802.11 management daemon.
[  OK  ] Finished OpenVPN service.
[  OK  ] Started /etc/rc.local Compatibility.
[FAILED] Failed to start OpenBSD Secure Shell server.
See 'systemctl status ssh.service' for details.
[  OK  ] Finished Permit User Sessions.
[  OK  ] Reached target System Time Synchronized.
[  OK  ] Started Daily apt download activities.
[  OK  ] Started Daily apt upgrade and clean activities.
[  OK  ] Started Periodic ext4 Onli…ata Check for All Filesystems.
[  OK  ] Started Discard unused blocks once a week.
[  OK  ] Started Daily rotation of log files.
[  OK  ] Started Daily man-db regeneration.
[  OK  ] Started Run system activit…ounting tool every 10 minutes.
[  OK  ] Started Generate summary o…esterday's process accounting.
[  OK  ] Reached target Timers.
[  OK  ] Started Getty on tty1.
[  OK  ] Started Serial Getty on ttySAC2.
[  OK  ] Reached target Login Prompts.
         Starting Hostname Service...
[  419.494756] proc: Bad value for 'hidepid'
[  OK  ] Started Dispatcher daemon for systemd-networkd.
[  OK  ] Stopped OpenBSD Secure Shell server.
         Starting OpenBSD Secure Shell server...
[FAILED] Failed to start OpenBSD Secure Shell server.
See 'systemctl status ssh.service' for details.
[  OK  ] Started Hostname Service.
[  OK  ] Reached target Multi-User System.
[  OK  ] Reached target Graphical Interface.
         Starting Update UTMP about System Runlevel Changes...

[  OK  ] Stopped OpenBSD Secure Shell server.
         Starting OpenBSD Secure Shell server...
[FAILED] Failed to start OpenBSD Secure Shell server.
See 'systemctl status ssh.service' for details.
[  420.014917] IPv6: ADDRCONF(NETDEV_CHANGE): enx001e06380848: link becomes ready
[  420.021531] r8152 6-1:1.0 enx001e06380848: carrier on
[  OK  ] Finished Update UTMP about System Runlevel Changes.
         Starting Network Manager Script Dispatcher Service...
[  OK  ] Stopped OpenBSD Secure Shell server.
         Starting OpenBSD Secure Shell server...
[FAILED] Failed to start OpenBSD Secure Shell server.
See 'systemctl status ssh.service' for details.
[  OK  ] Started Network Manager Script Dispatcher Service.

Armbian 21.08.3 Bullseye ttySAC2

odroidxu4 login:

 

But ... as you see in the log, the OpenSSH server is not up. I cannot login "ssh root@192.168.0.1" although the device is reachable through network via ICMP ping. I have no idea why the OpenSSH server is failing now. Well, made some steps to mitigate the issue.

 

Here's the conclusion so far:

Issue 1)

After introducing the encryption setup as shown here on that tutorial the boot.ini discovering mechanism for the correct board and corresponding image seems to fail. As I suspect the ODROID-HC2 board is not discovered correctly during the test/board_name commands in boot.ini. The default Armbian<foo>.img containt the hidden flag file .next in the boot partition, that's why the boot.ini assigns the correct exynos5422-odroidxu4.dtb for the boot process. However, after introducing the encryption as shown here on the tutorial, this flag file .next was not in the boot partition any more that's why the recognition and aassignment of the needed dtb file fails.

Workaround: either by manually forcing boot.ini to load the odroidxu4.dtb image which will work for the ODROID-HC2 board or better and simple --> don't touch the boot.ini at all and leave it as it is, but simply touch a new zero-byte hidden file called .next into the boot partition. If filename /boot/.next exists it will trigger as mainline configuration and the legacy odroidxu3 won't start and conflict with the HC-2 board thus as result the correct odroidxu4.dtb is loaded which is the correct one for the ODROID-HC2 board.

 

Issue 2)

The configuration line DEVICE=eth0 initially configured as instructed by the tutorial in "/etc/initramfs-tools/initramfs.conf" will fail, because Armbian OS changes the device name in boot process from "eth0" to "enx<mac-address>"

Workaround:  changing the configuration line "DEVICE=eth0" to "DEVICE=enx<mac-address-being-used-in-boot-process>"

 

Issue 3)

As first instance the Dropbear SSH server is executed through initramfs. You can login to it through port 2222 and you're prompted to enter the LUKS password for decrypting /dev/mapper/rootfs. Right after you enter the correct keyphrase, the network interface enx... gets dropped and the dropbear ssh connection is resetted as result. The boot process continues, but OpenSSH won't start.

Workaround: the journal of ssh.service said that no hostkeys were available. I had to use the USB serial UART console for the first initial root login on the ODROID-HC2. After that I was prompted to change the root password and the Armbian setup was finished. I guess this was important, so the hostkeys were generated. After that, the OpenSSH were accessible as expected. Here's the output of the ssh.service journal:

-- Journal begins at Sun 2021-10-24 09:28:27 UTC, ends at Sun 2021-10-24 10:18:52 UTC. --
Okt 24 09:29:09 odroidxu4 systemd[1]: Starting OpenBSD Secure Shell server...
Okt 24 09:29:10 odroidxu4 sshd[1782]: sshd: no hostkeys available -- exiting.
Okt 24 09:29:10 odroidxu4 systemd[1]: ssh.service: Control process exited, code=exited, status=1/FAILURE
Okt 24 09:29:10 odroidxu4 systemd[1]: ssh.service: Failed with result 'exit-code'.
Okt 24 09:29:10 odroidxu4 systemd[1]: Failed to start OpenBSD Secure Shell server.
Okt 24 09:29:11 odroidxu4 systemd[1]: ssh.service: Scheduled restart job, restart counter is at 1.
Okt 24 09:29:11 odroidxu4 systemd[1]: Stopped OpenBSD Secure Shell server.
Okt 24 09:29:11 odroidxu4 systemd[1]: Starting OpenBSD Secure Shell server...
Okt 24 09:29:11 odroidxu4 sshd[1793]: sshd: no hostkeys available -- exiting.
Okt 24 09:29:11 odroidxu4 systemd[1]: ssh.service: Control process exited, code=exited, status=1/FAILURE
Okt 24 09:29:11 odroidxu4 systemd[1]: ssh.service: Failed with result 'exit-code'.
Okt 24 09:29:11 odroidxu4 systemd[1]: Failed to start OpenBSD Secure Shell server.
Okt 24 09:29:11 odroidxu4 systemd[1]: ssh.service: Scheduled restart job, restart counter is at 2.
Okt 24 09:29:11 odroidxu4 systemd[1]: Stopped OpenBSD Secure Shell server.
Okt 24 09:29:11 odroidxu4 systemd[1]: Starting OpenBSD Secure Shell server...
Okt 24 09:29:11 odroidxu4 sshd[1795]: sshd: no hostkeys available -- exiting.
Okt 24 09:29:11 odroidxu4 systemd[1]: ssh.service: Control process exited, code=exited, status=1/FAILURE
Okt 24 09:29:11 odroidxu4 systemd[1]: ssh.service: Failed with result 'exit-code'.
Okt 24 09:29:11 odroidxu4 systemd[1]: Failed to start OpenBSD Secure Shell server.
Okt 24 09:29:11 odroidxu4 systemd[1]: ssh.service: Scheduled restart job, restart counter is at 3.
Okt 24 09:29:11 odroidxu4 systemd[1]: Stopped OpenBSD Secure Shell server.
Okt 24 09:29:11 odroidxu4 systemd[1]: Starting OpenBSD Secure Shell server...
Okt 24 09:29:11 odroidxu4 sshd[1800]: sshd: no hostkeys available -- exiting.
Okt 24 09:29:11 odroidxu4 systemd[1]: ssh.service: Control process exited, code=exited, status=1/FAILURE
Okt 24 09:29:11 odroidxu4 systemd[1]: ssh.service: Failed with result 'exit-code'.
Okt 24 09:29:11 odroidxu4 systemd[1]: Failed to start OpenBSD Secure Shell server.
Okt 24 09:29:11 odroidxu4 systemd[1]: ssh.service: Scheduled restart job, restart counter is at 4.
Okt 24 09:29:11 odroidxu4 systemd[1]: Stopped OpenBSD Secure Shell server.
Okt 24 09:29:11 odroidxu4 systemd[1]: Starting OpenBSD Secure Shell server...
Okt 24 09:29:11 odroidxu4 sshd[1808]: sshd: no hostkeys available -- exiting.
Okt 24 09:29:11 odroidxu4 systemd[1]: ssh.service: Control process exited, code=exited, status=1/FAILURE
Okt 24 09:29:11 odroidxu4 systemd[1]: ssh.service: Failed with result 'exit-code'.
Okt 24 09:29:11 odroidxu4 systemd[1]: Failed to start OpenBSD Secure Shell server.
Okt 24 09:29:12 odroidxu4 systemd[1]: ssh.service: Scheduled restart job, restart counter is at 5.
Okt 24 09:29:12 odroidxu4 systemd[1]: Stopped OpenBSD Secure Shell server.
Okt 24 09:29:12 odroidxu4 systemd[1]: ssh.service: Start request repeated too quickly.
Okt 24 09:29:12 odroidxu4 systemd[1]: ssh.service: Failed with result 'exit-code'.
Okt 24 09:29:12 odroidxu4 systemd[1]: Failed to start OpenBSD Secure Shell server.
Okt 24 09:29:40 odroidxu4 systemd[1]: Starting OpenBSD Secure Shell server...
Okt 24 09:29:40 odroidxu4 sshd[2278]: Server listening on 0.0.0.0 port 22.
Okt 24 09:29:40 odroidxu4 sshd[2278]: Server listening on :: port 22.
Okt 24 09:29:40 odroidxu4 systemd[1]: Started OpenBSD Secure Shell server.
Okt 24 09:29:40 odroidxu4 sshd[2278]: Received signal 15; terminating.
Okt 24 09:29:40 odroidxu4 systemd[1]: Stopping OpenBSD Secure Shell server...
Okt 24 09:29:40 odroidxu4 systemd[1]: ssh.service: Succeeded.
Okt 24 09:29:40 odroidxu4 systemd[1]: Stopped OpenBSD Secure Shell server.
Okt 24 09:29:40 odroidxu4 systemd[1]: Starting OpenBSD Secure Shell server...
Okt 24 09:29:40 odroidxu4 sshd[2285]: Server listening on 0.0.0.0 port 22.
Okt 24 09:29:40 odroidxu4 sshd[2285]: Server listening on :: port 22.

Okt 24 09:29:40 odroidxu4 systemd[1]: Started OpenBSD Secure Shell server.

 

Are issues 1+2 a bug in the current release or is this a bug somewhere happen during this FDE tutorial? If so, do you think they are addressable? Maybe there are some devs in here watching this thread and hopefully can give some insight? Hope the provided u-boot serial console log can assist if needed. Thanks to Steven, who showed me the right direction to nail down the issue(s)

Posted

Hi,

Great news that you've got somewhere.

 

With the "eth0" name being changed to "eth............", this occurs because the kernel (or udev or something) wants to include the MAC address in the name.  This can be stopped by adding "net.ifnames=0" in the kernel bootargs command line.

 

I was chasing a bad idea because I figured your board was an "HC2" and U-Boot was intended for an "xu4".  But apparently they're the same or compatible at least.   But note the single line "if" test under the 4 lines that set fdtfile for various boards.  It's a long line that checks for a file called ".next" and if it's not found the code sets fdtfile to ".....xu3".  The check for whatever file was 88701 bytes was a clue.  As you say, adding a dummy file called ".next" to your /boot directory probably would solve the problem here.

 

From a software distribution viewpoint I would add the "net.ifnames=0" to the bootargs so the DEVICE= clause doesn't have to be changed for every board and the standard "DEVICE=eth0" should work for all boards.  Also I don't see why the ".next" file is missing.  Most Armbian distributions contain such a file (size 0) and this is detected by the U-Boot script and tells it to use the mainline kernel (and ....dtb in your case).

 

But it's great that it's working now so I'd leave things as they are and all the work you've done will help anybody else that hits the same problems.

 

Cheers,

Steven

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...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines