Thanks for giving me a reason to re-evaluate Armbian.
First things first: Is switching to armbian going to solve my problem?
I really need very few “features” other than a headless board:
be able to install openocd
be able to control SPI (possibly via python but C is OK)
I picked up banana pi exactly to use as much as possible a stock Debian.
Mainly because it’s the distro I use everyday, it is a big player and I don’t have to worry that much it will disappear and installation process is as standard as possible.
I’ve to admit I probably didn’t even follow the most debianish way to make my M2U running, since I followed
Probably, but A40 chip is different enough from the rest of the Allwinner family that SPI could somehow be broken. I never tested it, but probably it works. Certainly its not as easy as with others: armbian-config - > system -> hardware “enable this and that”, but you will need to fiddle with device tree configuration. Similar way as with this proprietary “Debian” fex2bin / bin2fex way.
There is not much relationship between Debian and private “Debian” from board vendor you are trying to use and “standards” you are seeing are from Allwinner and will never be adopted to Debian. On the other side, Armbian has standards across all boards. Which is extremely difficult to achieve due to extreme hardware diversity, absence of any standards and very little support.
Armbian is official Debian derivative which provides Debian (or Ubuntu if you prefer) without the need to break your teeth trying bringing it up. Plus it has many advances on the hardware support side that might never reach Debian or anything else.
The easy and not very important part - applications and scripts - which probably plays no role in the problem you / people have - are coming from Debian. The same way as at Armbian.
Finally I got the BPI image working without HDMI cable plugged in.
Possibly some problem with power supply.
Unfortunately current armbian image can’t start the kernel.
I’ve tried with a suggested microsd (sandisk extreme pro) and a cheap Kensington (the one that works for BPI image).
What I get is this over and over…
U-Boot SPL 2021.04-armbian (May 06 2021 - 16:44:35 +0000)
DRAM: 2048 MiB
Trying to boot from MMC1
U-Boot 2021.04-armbian (May 06 2021 - 16:44:35 +0000) Allwinner Technology
CPU: Allwinner R40 (SUN8I 1701)
Model: Banana Pi BPI-M2-Ultra
I2C: ready
DRAM: 2 GiB
MMC: mmc@1c0f000: 0, mmc@1c10000: 2, mmc@1c11000: 1
Loading Environment from FAT... OK
In: serial@1c28000
Out: serial@1c28000
Err: serial@1c28000
Net: phy interface7
eth0: ethernet@1c50000
starting USB...
Bus usb@1c19000: ehci_generic usb@1c19000: failed to get usb phy
Port not available.
Bus usb@1c19400: ohci_generic usb@1c19400: failed to get usb phy
Port not available.
Bus usb@1c1c000: ehci_generic usb@1c1c000: failed to get usb phy
Port not available.
Bus usb@1c1c400: ohci_generic usb@1c1c400: failed to get usb phy
Port not available.
Autoboot in 2 seconds, press <Space> to stop
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot/boot.scr
3967 bytes read in 2 ms (1.9 MiB/s)
## Executing script at 43100000
U-boot loaded from SD
Boot script loaded from mmc
154 bytes read in 2 ms (75.2 KiB/s)
9931681 bytes read in 493 ms (19.2 MiB/s)
7973464 bytes read in 395 ms (19.2 MiB/s)
Found mainline kernel configuration
34090 bytes read in 5 ms (6.5 MiB/s)
Failed to load '/boot/dtb/overlay/sun8i-r40-fixup.scr'
## Loading init Ramdisk from Legacy Image at 43300000 ...
Image Name: uInitrd
Image Type: ARM Linux RAMDisk Image (gzip compressed)
Data Size: 9931617 Bytes = 9.5 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
## Flattened Device Tree blob at 43000000
Booting using the fdt blob at 0x43000000
Loading Ramdisk to 49687000, end 49fffb61 ... OK
Loading Device Tree to 49616000, end 49686fff ... OK
Starting kernel …
-Boot SPL 2021.04-armbian (May 06 2021 - 16:44:35 +0000)
DRAM: 2048 MiB
Trying to boot from MMC1