59 59
balbes150

Armbian for Amlogic S9xxx kernel 5.x

Recommended Posts

Hello guys,

 

I have a amlogic s905x 2/16gb from X96,armbian working from SD card with no problem and i want it to boot from eMMC.

The command ./install.sh worked properly tried to boot without SD and nothing...just a black screen and no network connection.

I though well...maybe if i use armbian-config to transfer the OS to eMMC it might work,it did not...having the same issue.

I have access to root_emmc and boot_emmc when booted from SD card.

The files from BOOT_EMMC have the following commands in them:

exlinux.conf:

LABEL Armbian
  LINUX /zImage
  INITRD /uInitrd
  FDTDIR /dtb
#  FDT /dtb/meson-gxl-s905x-khadas-vim.dtb
  APPEND root=LABEL=ROOTFS rootflags=data=writeback rw console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0 

uEnv.ini:

dtb_name=/dtb/meson-gxl-s905x-khadas-vim.dtb
bootargs=root=LABEL=ROOT_EMMC rootflags=data=writeback rw console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0

 

I am not sure why it doesn't boot and i did research before writing this message.

 

 

 

Share this post


Link to post
Share on other sites
Want Armbian t-shirt or a cup?

On 11/17/2019 at 11:58 AM, Spyelite said:

Hello guys,

 

I have a amlogic s905x 2/16gb from X96,armbian working from SD card with no problem and i want it to boot from eMMC.

The command ./install.sh worked properly tried to boot without SD and nothing...just a black screen and no network connection.

I though well...maybe if i use armbian-config to transfer the OS to eMMC it might work,it did not...having the same issue.

I have access to root_emmc and boot_emmc when booted from SD card.

The files from BOOT_EMMC have the following commands in them:

exlinux.conf:

LABEL Armbian
  LINUX /zImage
  INITRD /uInitrd
  FDTDIR /dtb
#  FDT /dtb/meson-gxl-s905x-khadas-vim.dtb
  APPEND root=LABEL=ROOTFS rootflags=data=writeback rw console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0 

uEnv.ini:

dtb_name=/dtb/meson-gxl-s905x-khadas-vim.dtb
bootargs=root=LABEL=ROOT_EMMC rootflags=data=writeback rw console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0

 

I am not sure why it doesn't boot and i did research before writing this message.

 

double check if dtb is correct one and present

exlinux.conf root LABEL must perhaps also be ROOT_EMMC

 

 

 

Share this post


Link to post
Share on other sites

New image DEFAULT Armbian 5.99_201122

 

I pay attention, in the future I will release versions of NEXT and DEV only in the format of the universal image (which can be run on all devices at once).

Share this post


Link to post
Share on other sites

I downloaded the image Armbian_5.97_Aml-g12_Ubuntu_bionic_default_5.3.0_20190923.img.xz and flashed it to a 16g TF card to run on my R3300-L box (S905L, 1g/8g, RTL8189). The system can boot up but wlan is missing.

Before this version I have tried Armbian_5.44_S9xxx_Ubuntu_bionic_3.14.29_server_20180729.img.xz, which works perfectly with wlan.

I am wondering if there are any operations or commands need to be done to enable the wlan?

So far I have tried modprobe dhd, modprobe wifi_dummy, modprobe wlan, but none works.

 

ps I am using the dtb "meson-gxl-s905x-p212.dtb"

Share this post


Link to post
Share on other sites

Hello and @balbes150  thank you for everything.
I installed Armbian_5.99_Aml-g12_Ubuntu_disco_default_5.3.0_desktop_20191122 on an sd card, i have booted untill starting desktop enviroment and then it is only showned a black screen with cursor on the to left corner.
KIII PRO box.

Philips PFL32 TV, tested on samsung tv, the same.
I read about this...

Quote

Setup HDMI out.

 

The configure script video output hdmi.sh reside in a directory on a FAT partition (on a running system, this partition is automatically mounted to the /boot directory). This script can be changed. To change the screen resolution from 720p to 1080p, you need to uncomment the line "#mode=1080p60hz" and comment out the line "mode=720p60hz". Similarly, you can change the color depth from the default 24 to 32 (bpp=24). Note that with 32 bit color significantly changes the desktop. In this script you can place the commands you want to run WebMin , Doker, ask line to run the USB port (if necessary), configure, sound card, etc.


But i could realy need some step by step guidance please.
Can i provide you with some logs?

Share this post


Link to post
Share on other sites
23 hours ago, Milton said:

S905L

not support.

 

22 hours ago, DimitrisLamia said:

Can i provide you with some logs?

Show the output of the UART console and describe in detail what steps does what systems were previously running on this device.

Share this post


Link to post
Share on other sites
On 11/19/2019 at 8:17 AM, balbes150 said:

 

Yes i changed those dtb to s90x-212.dtb and nexbox-a95x.dtb in exlinux.conf and uEnv.ini before posting and they both didn't post,so i reflashed the whole system and ignored that part completely.That is when i decided to post on the forum and that's why it appears as s905-khadas-vim.dtb . So the answer might be i am addressing the wrong .dtb file :(

Share this post


Link to post
Share on other sites

The new version 20191125. It uses a kernel with exactly the same configuration as the generic images for all platforms from this theme.

 

 

Share this post


Link to post
Share on other sites

First of all, thank you very much balbes150 and other devs, It's a great project.

I've just come to install Armbian 5.99_Aml-g12_Ubuntu_disco_default_5.3.0_desktop_20191120.img.xz on a S912 DEALDIG BOXD6 (clone of Beelink GT1 Ultimate). For that I've used the beelink dtb and it works great.
At the beginning I thought it could be difficult because this TV Box was running initially on its eMMC CoreELEC. But there was no issue at all with the toothpick method. I managed to install Armbian following the instructions on the eMMC, it went like a charm.
Therefore to be able to run Xfce, I've modified /etc/X11/xorg.conf.d/01-armbian-defaults.conf like this:

Section "ServerFlags"
        Option  "AutoAddGPU" "off"
        Option "Debug" "dmabuf_capable"
EndSection

Section "OutputClass"
        Identifier "Lima"
        MatchDriver "meson"
        Driver "modesetting"
        Option "PrimaryGPU" "true"
EndSection

Section "Monitor"
    Identifier "LVDS"
    Option "PreferredMode" "1920x1080"
EndSection

Not sure if it's right but it works.

 

Thank you again guys.

Edited by Sagittarius

Share this post


Link to post
Share on other sites

A new designation of the version number for Armbian.
The current version is 19.11.3 (20191126).
All previous images are moved to the OLD directory.
For the starter kit, I expanded the list of available images.

Stretch
Buster
Xenial
Bionic
Disco
Eoan

Share this post


Link to post
Share on other sites
On 11/25/2019 at 2:28 PM, balbes150 said:

not support.

I see. Actually the issue is the driver for wireless chip RTL8189FTV is missing. The driver existed in the early versions but was removed. Will it be added back? Or how to do this so that I can build it locally?

Thanks!

 

 

Share this post


Link to post
Share on other sites
On 11/19/2019 at 7:17 AM, balbes150 said:

 

Just want to ask I want flash armbian to emmc still old steps are valid? Just for my understanding image flashed to eMMC will use mainline u-boot and armbian kernel to boot? or still android ones are used? Thanks.

Share this post


Link to post
Share on other sites
30 minutes ago, MarekBelisko said:

Just want to ask I want flash armbian to emmc still old steps are valid? Just for my understanding image flashed to eMMC will use mainline u-boot and armbian kernel to boot? or still android ones are used? Thanks.

The script saves the regular u-boot-2015.

Share this post


Link to post
Share on other sites

Thank you for all your good work.

Running Debian Buster converted to Devuan Beowulf (debian without systemd) on Mecool KM9 using meson-g12a-sei510.dtb

Wifi and BT are not working. Everything else is working I think.

 

I have one major issue.

Looks like IPv6 is disabled in kernel (at least in 5.99, that is the latest in the repo). That is not good. I would like to see it enabled. IPv6 is essential feature that should not be disabled.

I am unable to connect to some services because of that.

If for some reason you want to disable IPv6, do it in sysctl.conf. That way we can enable it without replacing/compiling kernel.

At the moment there is no /proc/sys/net/ipv6/* so not possible to enable.

 

I had one other problem but that just got sorted... Yandex disk over quota and MEGA out of date.

MEGA is updated again and all is fine :)

Share this post


Link to post
Share on other sites
43 minutes ago, srx said:

Looks like IPv6 is disabled in kernel (at least in 5.99, that is the latest in the repo). That is not good. I would like to see it enabled. IPv6 is essential feature that should not be disabled.

 

 

According to /boot/config-5.3.0-aml-g12 in Ubuntu Disco, CONFIG_IPV6=m and can confirm ./kernel/net/ipv6/ipv6.ko is built. Can't see why the kernel would vary on this release.

Share this post


Link to post
Share on other sites
10 hours ago, balbes150 said:

The script saves the regular u-boot-2015.

OK so it still use android u-boot. Is there some u-boot which work on this platform (I need to patch it). Thanks.

Share this post


Link to post
Share on other sites
4 hours ago, dbsharpe said:

 

According to /boot/config-5.3.0-aml-g12 in Ubuntu Disco, CONFIG_IPV6=m and can confirm ./kernel/net/ipv6/ipv6.ko is built. Can't see why the kernel would vary on this release.

Well, you are correct. Did not check that first. 

But there is something wrong with modules then...

I've never needed to load ipv6 manually and when i try it, it fails. Not sure why.

$ modprobe ipv6
modprobe: ERROR: could not insert 'ipv6': Unknown symbol in module, or unknown parameter (see dmesg)

$ dmesg
[16158.815595] nf_defrag_ipv6: Unknown symbol __ll_sc_arch_atomic64_add (err -2)
[16158.854186] nf_defrag_ipv6: Unknown symbol __ll_sc_arch_atomic64_add (err -2)
[16173.695401] nf_defrag_ipv6: Unknown symbol __ll_sc_arch_atomic64_add (err -2)

Installed kernel package:
ii  linux-image-aml-g12                  5.99                                arm64        Linux kernel, version 5.3.0-aml-g12

$ uname -a
Linux aml 5.3.0-aml-g12 #5.99 SMP PREEMPT Sat Nov 9 17:44:28 MSK 2019 aarch64 GNU/Linux

 

EDIT:

I must add that I did update kernel (because there was update available in package manager). I guess it did come from apt.armbian.com repo.

So it is not the same kernel that was in SD card image.

Edited by srx
added info

Share this post


Link to post
Share on other sites

armbian devs, I'm really impressed by the job you've done!!!


If possible I'd like to know how to update from cli to the new armbian version? Do we need to use the new image?
It seems it's not the same as on a regular debian/ubuntu distribution. Because well, in such case the system tells me it can't update the linux-image-aml-g12 package (my TV Box DEALDIG BOXD6 runs Armbian 5.99_Aml-g12_Ubuntu_disco_default_5.3.0_desktop_20191120).

 

 

 

 

Share this post


Link to post
Share on other sites

I downloaded the latest image, 19.11.3. Extracted kernel, ramdisk, /lib/modules and transplanted those into my installation and now everything is fine.

IPv6 is working. So inside the SD image everything is fine.

 

Not sure why it broke.

Maybe something went wrong when updating kernel and modules from old and new got mixed or something like that.

Share this post


Link to post
Share on other sites
18 minutes ago, Sagittarius said:

system tells me it can't update the linux-image-aml-g12 package

That is because /boot is on FAT32 filesystem but update wants to make hardlinks and FAT32 does not support it.

For it to work /boot needs to be on ext filesystem but uBoot needs FAT32. So you can not covert it to ext.

 

Other than that it is just as every other Debian/Ubuntu and updating is the same.

 

How I did get around it?

* Make alternate boot directory somewhere else

* copy/rsync contents of /boot into that directory

* umount /boot

* bind mount new directory to /boot

* update kernel

* umount /boot

* mount normal /boot again

* copy/rsync contents of alternate boot to /boot

 

In the end you have updated kernel...

If you read my posts above, you see that I had some problems and I think that something went wrong when I updated kernel last time.

So there is some risk involved.

 

I am not sure if there is any way to make it possible to update kernel without any such workarounds.

Share this post


Link to post
Share on other sites
13 hours ago, MarekBelisko said:

OK so it still use android u-boot. Is there some u-boot which work on this platform (I need to patch it). Thanks.

If you need other u-boot (like the official version 2019.10), build it and use it (if it can work with your hardware).

The only difference is that you need to configure dtb in the file (extlinux.conf), everything else works exactly the same.

 

 

Share this post


Link to post
Share on other sites
16 hours ago, srx said:

Thank you for all your good work.

Running Debian Buster converted to Devuan Beowulf (debian without systemd) on Mecool KM9 using meson-g12a-sei510.dtb

Wifi and BT are not working. Everything else is working I think.

 

I have one major issue.

Looks like IPv6 is disabled in kernel (at least in 5.99, that is the latest in the repo). That is not good. I would like to see it enabled. IPv6 is essential feature that should not be disabled.

I am unable to connect to some services because of that.

If for some reason you want to disable IPv6, do it in sysctl.conf. That way we can enable it without replacing/compiling kernel.

At the moment there is no /proc/sys/net/ipv6/* so not possible to enable.

 

I had one other problem but that just got sorted... Yandex disk over quota and MEGA out of date.

MEGA is updated again and all is fine :)

Hi, i have the same device and use it with x96max iii dtb. I previously used the same dtb as you. Did you manage to install it on the emmc ?? It failed at boot and i have to restore it to android to make it works again. Thanks.

 

 

Share this post


Link to post
Share on other sites
18 minutes ago, balbes150 said:

If you need other u-boot (like the official version 2019.10), build it and use it (if it can work with your hardware).

The only difference is that you need to configure dtb in the file (extlinux.conf), everything else works exactly the same.

 

 

OK so on x96-mini should work stock u-boot and I don't need old android one then? Just out of curiosity is there any chance to recover if 2019.10 will hang? Also is there any reason why mainline is not used in current amlogic armbian releases? Thanks.

Share this post


Link to post
Share on other sites
4 hours ago, Peyton said:

Hi, i have the same device and use it with x96max iii dtb. I previously used the same dtb as you. Did you manage to install it on the emmc ?? It failed at boot and i have to restore it to android to make it works again. Thanks.

I have never tried it. I am running it from SD card. That way it is much easier to manage.

microSD cards cost so little these days. Just make sure you pick up a good one, like Sandisk Extreme (Pro), Samsung Pro or something like that. Samsung Evo+ is not too bad either.

Generic cards, like cheap Kingston ones, are extremely slow. Specially when dealing with lot of small files. If you try to extract something like linux source or headers, which contain lot of small files, it takes ages. Goods cards have much higher IOPS and work quite well.

Class 10, UHS-I and other markings are quite useless. The most important number is IOPS. Higher IOPS means much better performance when running OS on it. You can not find official IOPS specification for any cards. But internet is full of benchmarks and for some cards that information can be found unofficially.

 

When booting kernel looks for partition labeled ROOTFS to mount as "/" and it can be on any storage device visible to kernel. So you can put it on USB stick or external HDD or any other device kernel recognizes, including emmc.

 

I am not sure if it works but in theory you could partition mmcblk2 (I think it is emmc on our  box), make one ext4 (or maybe f2fs) partition on it and label it ROOTFS (or anything else but then you need to update boot files accordingly).

Copy entire SDcard contents there (except /boot, /sys, /proc, /dev - just make empty directories).

If you labeled your partition ROOTFS then relabel your SD partition to something else. So you have only one partition labeled ROOTFS.

After reboot you should boot from emmc.

Then your boot partition remains on SD card but everything else is on emmc. You still need SD card to boot but entire system except kernel (which is only read once when booting) will be on emmc. And that SD card can be any old slow card.

I think I would try something like that.

 

I do not know if emmc contains something important for booting. If you completely erase it and re-partition you might make your box unbootable/(soft)bricked.

So in theory it will work. But if emmc contains something important for booting, it will not.

You will not see Android partitions on emmc because Android does not use partition table. Android uses partition definition file or something like that. That is essentially external partition table stored somewhere else. So linux kernel and partition tools know nothing about existing partitions because emmc has no partition table and looks like empty - but it is not.

 

About DTB... I think I tried meson-g12a-x96-max.dtb and meson-g12a-x96-max-rmii.dtb but I do not think either one worked.

If I remember correctly I tried all g12a DTB files but only one worked.

Do you have BT and/or WiFi working? I do not care much about WiFi (I use cable anyway) but BT would be good - I could use keyboard/mouse without external dongle.

 

EDIT:

meson-g12a-x96-max.dtb and meson-g12a-x96-max-rmii.dtb do not work on my box. Tried both.

Mecool KM9, 4GB RAM, 32GB ROM, 1Gb ethernet, S905x2 CPU

Share this post


Link to post
Share on other sites
On 11/28/2019 at 11:12 PM, srx said:

That is because /boot is on FAT32 filesystem but update wants to make hardlinks and FAT32 does not support it.

For it to work /boot needs to be on ext filesystem but uBoot needs FAT32. So you can not covert it to ext.

 

Other than that it is just as every other Debian/Ubuntu and updating is the same.

 

How I did get around it?

* Make alternate boot directory somewhere else

* copy/rsync contents of /boot into that directory

* umount /boot

* bind mount new directory to /boot

* update kernel

* umount /boot

* mount normal /boot again

* copy/rsync contents of alternate boot to /boot

 

In the end you have updated kernel...

If you read my posts above, you see that I had some problems and I think that something went wrong when I updated kernel last time.

So there is some risk involved.

 

I am not sure if there is any way to make it possible to update kernel without any such workarounds.


Thank you very much srx for the detailed and logical explanation.
I am very impressed by the possibility of launching on eMMC a desktop environment on a TV box for less than 30€ (here a DEALDIG BOXD6 S912) with everything working (WiFi, Bluetooth, ethernet). So good project.
So I'll follow your guide to update the kernel.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
59 59