Yes I think your right, i will make some more changes and I will have to use the accurate dtb for my boards.
I will fetch dtb from official image and reuse it over ipfire image for testing and see if I can get ipfire to start if that works then it will me a simple fix with dts patch of their device.
Secondly, I would like to propose to move all devices to extconfig to make booting process very simple and easy to maintain, as most of the devices are already supported by mainline linux and it can read extlinux where we can define all the parameters for boot which can look grub.
Let me know your thoughts on extlinux idea, as maintaining boot script for devices is alot of work.
I was able to pass the issue which was the board getting stuck at Starting kernel it was for to missing config for rockchip boards.
Now it seems to fail with mmc initialisation as I assume it is due to difference in the dtb. To solve this I will have to patch the kernel with the right dtb which is my next step maybe during this weekend.
I have also received Rock64 to cross verify my builds as the default kernel have rock64 dtb present so it is easier to test.
We should be getting more support for arm64 boards in 2021.
Because some workarounds that were necessary for the espressobin seem to be more generally useful for a universal image that can boot on different devices and from different media, I link the topic from here:
I tried to boot on rock64 and it seem that the sdcard is not visible to the linux kernel so I assume I must have missed a config for the rk sdmmc in the kernel.
I have asked for help from the rockchip developer, I will try to rebuild the kernel once I receive some response from them.
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci-pci: EHCI PCI platform driver
ehci-platform: EHCI generic platform driver
ehci-orion: EHCI orion driver
orion-ehci d005e000.usb: EHCI Host Controller
orion-ehci d005e000.usb: new USB bus registered, assigned bus number 1
orion-ehci d005e000.usb: irq 21, io mem 0xd005e000
orion-ehci d005e000.usb: USB 2.0 started, EHCI 1.00
usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: EHCI Host Controller
usb usb1: Manufacturer: Linux 5.10.50-ipfire ehci_hcd
usb usb1: SerialNumber: d005e000.usb
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
ohci-pci: OHCI PCI platform driver
ohci-platform: OHCI generic platform driver
uhci_hcd: USB Universal Host Controller Interface driver
usbcore: registered new interface driver uas
usbcore: registered new interface driver usb-storage
mousedev: PS/2 mouse device common for all mice
device-mapper: uevent: version 1.0.3
device-mapper: ioctl: 4.43.0-ioctl (2020-10-01) initialised: dm-devel@redhat.com
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci-pltfm: SDHCI platform and OF driver helper
ledtrig-cpu: registered to indicate activity on CPUs
SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
hid: raw HID events driver (C) Jiri Kosina
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
Initializing XFRM netlink socket
NET: Registered protocol family 10
Segment Routing with IPv6
NET: Registered protocol family 17
Bridge firewalling registered
Key type dns_resolver registered
registered taskstats version 1
Loading compiled-in X.509 certificates
Loaded X.509 cert 'IPFire.org: Build time autogenerated kernel key: 93d1af1ed46df6ac1d424ba06163f5b29d2eb8c9'
d0012000.serial: ttyMV0 at MMIO 0xd0012000 (irq = 0, base_baud = 1562500) is a mvebu-uart
printk: console [ttyMV0] enabled
md: Waiting for all devices to be available before autodetect
md: If you don't use raid, use raid=noautodetect
md: Autodetecting RAID arrays.
md: autorun ...
md: ... autorun DONE.
Waiting for root device /dev/sda3...
HERE I PLUG FROM USB3 TO USB2…
usb 1-1: new high-speed USB device number 2 using orion-ehci
usb 1-1: New USB device found, idVendor=0951, idProduct=1666, bcdDevice= 0.01
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1: Product: DataTraveler 3.0
usb 1-1: Manufacturer: Kingston
usb 1-1: SerialNumber: E0D55EA5741CF420193535BC
usb-storage 1-1:1.0: USB Mass Storage device detected
scsi host0: usb-storage 1-1:1.0
scsi 0:0:0:0: Direct-Access Kingston DataTraveler 3.0 PQ: 0 ANSI: 6
sd 0:0:0:0: Attached scsi generic sg0 type 0
sd 0:0:0:0: [sda] 60437492 512-byte logical blocks: (30.9 GB/28.8 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
sda: sda1 sda2 sda3
sd 0:0:0:0: [sda] Attached SCSI removable disk
EXT4-fs (sda3): warning: mounting unchecked fs, running e2fsck is recommended
EXT4-fs (sda3): mounted filesystem without journal. Opts: (null)
VFS: Mounted root (ext4 filesystem) on device 8:3.
devtmpfs: mounted
Freeing unused kernel memory: 5120K
Checked W+X mappings: passed, no W+X pages found
Run /sbin/init as init process
random: fast init done
INIT: version 2.25 booting
INIT: No inittab.d directory found
stty: 'standard input': unable to perform all requested operations
[ OK ] kernel-based file systems: /proc /sys /run
[ OK ]kernel runtime parameters...
[ OK ]aarch64-kernel runtime parameters...
[ OK ]modules: ac battery button fan processor
[ OK ] LVM2 Metadata Daemon...
Populating /dev with device nodes...
[ OK ] udev daemon...
[ OK ] root file system in read-only mode...
Checking file systems...
/dev/sda3 was not cleanly unmounted, check forced.
/dev/sda3: 23478/104832 files (1.4% non-contiguous), 377685/419254 blocks
dosfsck 3.0.9, 31 Jan 2010, FAT32, LFN
/dev/sda1: 503 files, 41525/63355 clusters
dosfsck 3.0.9, 31 Jan 2010, FAT32, LFN
[ WARN ]2: 3 files, 76/16343 clusters
WARNING:
File system errors were found and have been corrected. You may want to double-check that everything was fixed properly.
[ OK ]ng root file system in read-write mode...
[ OK ]etc/mtab...
[ OK ] remaining file systems...
[ OK ]ng all swap files/partitions...
Re-sizing root partition...
resize2fs 1.44.4 (18-Aug-2018)
Filesystem at /dev/sda3 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 4
The filesystem on /dev/sda3 is now 7513653 (4k) blocks long.
[ OK ] ramdisk file systems: /var/lock
However, just looking at the specs, this system would have to be very cheap to be a viable alternative to for example the IPFire Mini Appliance. Although it will be cheaper, I am not sure whether it is worth having only two interfaces with no chance for extension (I do not count USB as an option for networking).
The two NICs that are onboard seem to be at least be connected with PCIe which is a lot better than any USB hacks.
Unfortunately, I do not own the R4S.
I was not aware of the problem. Since there are OpenWRT images, I thought that IPFire was also possible with some work.