Manjaro Linux - KDE-Plasma & XFCE for VIM1

sorry,
once flashed today’s minimal image, it can boot from the SD card, but again, it is not the kernel on the card that is used but the one on the emmc;
this is working correctly in @_no_proxy 's Arch distro.
I did not notice any boot.ini in the BOOT partition, so I have no idea how to force my emmc to take full advantage of your work

@balbes150 Any idea how the Arch Distro is booting with the USB media Kernel ?

maybe you should base your startup on boot.ini mechanism like Arch …

Try to use ‘fatload usb ${x}: ${y} ${load address} file’ to read your file in boot partition
x is device number(1<=x<=your usb device number), y is partition number

@Spikerguy , I just added Arch’s boot.ini in the boot partition of your img in my SDcard and cold started my vim1-pro, here is what happens : bootloop !..

here is what I was able to see in the log:

reading boot.ini
6898 bytes read in 5 ms (1.3 MiB/s)
cfgload: applying boot.ini...
cfgload: echo "Starting boot.ini..."
Starting boot.ini...
cfgload: setenv kernel_loadaddr "0x11000000"
cfgload: setenv dtb_loadaddr "0x1000000"
cfgload: setenv initrd_loadaddr "0x13000000"
cfgload: setenv env_loadaddr "0x20000000"
cfgload: setenv hdmiargs "logo=${display_layer},loaded,${fb_addr},${outputmode} vout=${outputmode},"
cfgload: if test "X$lcd_exist" = "X1"; then setenv panelargs "panel_exist=${lcd_exist} panel_type=$;
cfgload: setenv boot_start booti ${kernel_loadaddr} ${initrd_loadaddr} ${dtb_loadaddr}
cfgload: setenv mmc_devplist "1 5"
cfgload: setenv mmc_devnums "0 1"
cfgload: setenv usb_devplist "1"
cfgload: setenv usb_devnums "0 1 2 3"
cfgload: setenv mark_prefix ""
cfgload: if test "$hostname" = "KVIM1"; then setenv ml_dtb "/dts/amlogic/meson-gxl-s905x-khadas-vim;
cfgload: for dev_num in ${mmc_devnums}; do if ${dev_num} = "1"; then setenv c_load "ext4load"; else;
Unknown command '0' - try 'help'
Scanning mmc 0:1...
reading uInitrd
7247597 bytes read in 453 ms (15.3 MiB/s)
reading zImage
19896328 bytes read in 1231 ms (15.4 MiB/s)
reading dtb.img
** Unable to read file dtb.img **
** No boot file defined **
Scanning mmc 0:5...
** Invalid partition 5 **
Unknown command '1' - try 'help'
Scanning mmc 1:1...
** Unrecognized filesystem type **
Scanning mmc 1:5...
** Unrecognized filesystem type **
"Synchronous Abort" handler, esr 0x96000004
ELR:     77f2c42c
LR:      77f2c480
x0 : 523d4c4542414c22 x1 : 0000000077f3a230
x2 : 0000000000000001 x3 : 0000000077f597e8
x4 : 0000000077f591d8 x5 : 0000000077f597e8
x6 : 0000000077f591d8 x7 : 0000000077f591e8
x8 : 0000000000000001 x9 : 0000000000000000
x10: 000000000000000f x11: 0000000077f34b30
x12: 0000000000000000 x13: 0000000000000000
x14: 0000000000000000 x15: 0000000000000000
x16: 0000000000000000 x17: 0000000000000000
x18: 0000000073e9de28 x19: 523d4c4542414c22
x20: 0000000073e9d840 x21: 0000000077f44085
x22: 0000000077f44029 x23: 0000000001080000
x24: 0000000000000000 x25: 0000000000000000
x26: 0000000000000000 x27: 0000000073eca340
x28: 0000000000000000 x29: 0000000073e9d7e0

Resetting CPU ...

resetting ...

a clever guy should be able to understand how to make the boot.ini file and the partitions on the SD image aligned better…

this precise command

for dev_num in ${mmc_devnums}; do
  if ${dev_num} = "1"; then
    setenv c_load "ext4load";
  else
    setenv c_load "fatload";
  fi;
  for distro_bootpart in ${mmc_devplist}; do
    echo "Scanning mmc ${dev_num}:${distro_bootpart}...";
    if ${c_load} mmc ${dev_num}:${distro_bootpart} ${initrd_loadaddr} uInitrd; then
      if ${c_load} mmc ${dev_num}:${distro_bootpart} ${kernel_loadaddr} zImage; then
        if ${c_load} mmc ${dev_num}:${distro_bootpart} ${dtb_loadaddr} dtb.img || ${c_load} mmc ${dev_num}:${distro_bootpart} ${dtb_loadaddr} ${ml_dtb}; then
           if ${c_load} mmc ${dev_num}:${distro_bootpart} ${env_loadaddr} /boot/env.txt || ${c_load} mmc ${dev_num}:${distro_bootpart} ${env_loadaddr} env.txt; then
             echo "Import env.txt";
             env import -t ${env_loadaddr} ${filesize};
           fi;
      	   if test "X${rootdev}" = "X"; then
      	     echo "rootdev is missing! use default: root=LABEL=ROOTFS!";
      	     setenv rootdev "LABEL=ROOTFS";
      	   fi;
      	   if test "X${custom_ethmac}" != "X"; then
      	     echo "Found custom ethmac: ${custom_ethmac}, overwrite eth_mac!";
      	     setenv eth_mac ${custom_ethmac};
      	   fi;
      	   if test "X${eth_mac}" = "X"; then
      	     echo "Set default mac address to ethaddr: ${ethaddr}!";
      	     setenv eth_mac ${ethaddr};
      	     setenv save_ethmac "yes";
       	   fi;
      	   if ${dev_num} -eq 0 -o test -e mmc ${dev_num}:${boot_env_part} ${mark_prefix}.next; then
      	     echo "Booting mainline kernel...";
      	     setenv condev "console=ttyS0,115200n8 console=tty0 no_console_suspend consoleblank=0";
      	   else
      	     echo "Booting legacy kernel...";setenv condev "console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0";
      	   fi;
      	   if test "X${hwver}" = "XVIM2.V14"; then
      	     fdt addr ${dtb_loadaddr};
      	     fdt resize 65536;
      	     fdt set /fan hwver "VIM2.V14";
      	     fdt set /i2c@c11087c0/khadas-mcu hwver "VIM2.V14";
      	     fdt set /soc/cbus@c1100000/i2c@87c0/khadas-mcu hwver "VIM2.V14";
      	   fi;
      	   setenv bootargs "root=${rootdev} rootflags=data=writeback rw ${condev} ${hdmiargs} ${panelargs} fsck.repair=yes net.ifnames=0 ddr_size=${ddr_size} wol_enable=${wol_enable}  jtag=disable mac=${eth_mac} androidboot.mac=${eth_mac} save_ethmac=${save_ethmac} fan=${fan_mode} hwver=${hwver} coherent_pool=${dma_size}";
      	   run boot_start;
        fi;
      fi;
    fi;
  done;
done;

gives these err msgs:
Unknown command ‘0’ - try ‘help’
Scanning mmc 0:1…
reading uInitrd
7247597 bytes read in 453 ms (15.3 MiB/s)
reading zImage
19896328 bytes read in 1231 ms (15.4 MiB/s)
reading dtb.img
** Unable to read file dtb.img **
** No boot file defined **
Scanning mmc 0:5…
** Invalid partition 5 **
Unknown command ‘1’ - try ‘help’
Scanning mmc 1:1…
** Unrecognized filesystem type **
Scanning mmc 1:5…
** Unrecognized filesystem type **
“Synchronous Abort” handler, esr 0x96000004

good news ! :smiley::star_struck::love_you_gesture: I managed to boot manjaro and its kernel 5.0.2-1 from SD card using a custom boot.ini I deployed on the BOOT partition of the SD, compared to Arch’s boot.ini,
I had to change a couple of things, see here https://notepad.pw/ezsx3ru1

Manjaro Linux 5.0.2-1 (ttyAML0)

manjar0 login:    raxy
Password: 
Welcome to Manjaro-ARM
~~Website: https://manjaro.org
~~Forum:   https://forum.manjaro.org/c/manjaro-arm
~~IRC:     #manjaro-arm on irc.freenode.net
~~Matrix:  #manjaro-arm-public:matrix.org
Last login: Tue Jul  9 16:04:51 on ttyAML0
[raxy@manjar0 ~]$ uname -a
Linux manjar0 5.0.2-1 #1 SMP PREEMPT Wed Apr 10 18:00:42 +03 2019 aarch64 GNU/Linux
1 Like

Good News :smiley:

Now you can finally test all my builts :stuck_out_tongue: and share the feedback :wink:

Now, which command to type to install the wifi drivers (.tar.xz) on top of the minimal distro ?

Use this command and reboot

Maybe I should try to boot your kernel, that kernel error is so werid.

this is not enough, after pacman and reboot,

[raxy@manjar0 ~]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether be:bf:b4:83:08:28 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 44:2c:05:b6:bd:fe brd ff:ff:ff:ff:ff:ff
[raxy@manjar0 ~]$ sudo wifi-menu
[sudo] password for raxy: 
Scanning for networks... You need to install 'wpa_supplicant'
failed
No networks found

Do you need the Kernel 5.0.2 ?

You should install wpa_supplicant and dialog before using wifi-menu

Yes as the Minimal image doesnt have this package

sudo pacman -S wpa_supplicant

Yes, I’m download your minimal image.

I was impatient, so I plugged an ethernet cable instead of copying each and all needed package onto the SD, but
i think we also have here the same DNS issue as the Arch distro…

[raxy@manjar0 ~]$ sudo pacman-mirrors -g -c Germany
:: Querying servers, this may take some time...
Germany
-> ..... https://manjaro-arm.moson.eu/stable/$arch/$repo
Error: Failed to reach the server: [Errno -2] Name or service not known
:: Generated and saved '/etc/pacman.d/mirrorlist' mirrorlist.
[raxy@manjar0 ~]$ sudo pacman -Sy
:: Synchronizing package databases...
error: failed retrieving file 'core.db' from manjaro-arm.moson.eu : Could not resolve host: manjarou
error: failed to update core (invalid url for server)
error: failed retrieving file 'extra.db' from manjaro-arm.moson.eu : Could not resolve host: manjaru
error: failed to update extra (invalid url for server)
error: failed retrieving file 'community.db' from manjaro-arm.moson.eu : Could not resolve host: mau
error: failed to update community (invalid url for server)
error: failed to synchronize all databases

 [raxy@manjar0 ~]$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=55 time=31.1 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=55 time=30.5 ms

--- 8.8.8.8 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 2ms
rtt min/avg/max/mdev = 30.515/30.816/31.117/0.301 ms
[raxy@manjar0 ~]$ ping www.google.com
ping: www.google.com: Name or service not known

This is what Helped me

yes, the disable trick + reboot helped the eth0 to work ok w/ DNS and pacman can sync and get packages from the mirrors now…

I’ve just managed to do a full system update
pacman -Syu

1 Like

Great. Let me know how the minimal built is working with Wifi and the tools you need it for