1. Welcome to the official forum for MINIX devices!
    Dismiss Notice

Towards Ubuntu on Minix X6: DTD File

Discussion in 'NEO X6 Custom ROMs, Kernels and Discussion' started by dagelf, Dec 25, 2015.

  1. dagelf

    dagelf New Member

    So, a few months ago when I started this, I ran into the problem of the available kernel source being too old to support device trees, and instead required patches to a 3.0.6- or 3.0.11 kernel for it to work on a certain platform. Thankfully things have changed! (Thanks Linaro!!!) (Read more about the Device Tree here: http://xillybus.com/tutorials/device-tree-zynq-1)

    So, it's holiday time again, so here I am. This time around, many other Linux distributions have gotten support for the ODroid C1 which uses the same platform.

    Information on the tools to work with device trees are also much more widely available, and it seems this time around a feasible solution is in sight! Who knows, I might have a functioning Linux desktop on X6 pretty soo...

    I extracted and decompiled the dtd file supplied with the Minix X6 003 Android firmware (from www.minixforum.com/threads/x6-003-firmware-20141225.3066/ as per instructions at http://www.cnx-software.com/2014/05...device-tree-file-from-android-firmware-files/) - and compared it to the base dtb files (from source here: https://github.com/hardkernel/linux.git).

    The closest match to the Minix DTB file is meson8b_m201_1G. Which seems to align with what's published on Amlogic's site here: http://openlinux.amlogic.com/wiki/index.php/Arm/Platform_Info

    Comparing just the "compatible:" lines from the dtb files:

    diff -b minix-x6-003.dtd.x meson8b_m201_1G.dtd.x

    The changes are:

    Added to Minix X6:

    < compatible = "amlogic,aml_sdhc"; // commented out in default meson8b_m201_1G
    < compatible = "amlogic, aml_pmu_prober";
    < compatible = "axp_mfd";
    < compatible = "rtc8563";

    Added to meson8b_m201_1G: (not in X6)

    > compatible = "amlogic,adc_keypad"; // evidently not present on the Minix X6
    > compatible = "amlogic,meson-rng"; // support for hardware rnd added in newer kernel?
    > compatible = "amlogic,wifi_power";

    > // compatible = "amlogic,amlvideo2";
    > // compatible = "amlogic,amvdec_656in";
    > // compatible = "amlogic,crypto-device";
    > // compatible = "amlogic,vdin";
    > // compatible = "amlogic,vdin";
    > // compatible = "amlogic,vm";

    Seeing as that the ODroid C1 is the S805 platform that's had the most work done on it, lets see how it differs from the Minix X6:

    The Minix X6 has these, that the C1 dtb file doesn't:

    < compatible = "amlogic,aml_broadcm_wifi";
    < compatible = "amlogic,aml_i2c";
    < compatible = "amlogic,aml_keys";
    < compatible = "amlogic,aml_nand";
    < compatible = "amlogic, aml_pmu_prober";
    < compatible = "amlogic,bt-dev";
    < compatible = "amlogic,cams_prober";
    < compatible = "amlogic,gpio_keypad";
    < compatible = "amlogic,m8_audio_codec";
    < compatible = "amlogic, meson_vcck_dvfs";
    < compatible = "amlogic,pcm2BT-codec";
    < compatible = "amlogic,unifykey";
    < compatible = "axp_mfd";
    < compatible = "rtc8563";

    The ODroid C1 has these:

    > compatible = "amlogic,spicc";
    > compatible = "gpio-leds";
    > compatible = "spidev";

    So, based on that, assuming the files are up-to-date, the obvious differences can be seen - the different Wi-Fi device, as well as a different bluetooth device and real time clock. Plus a few other things to dig into later.

    In a nutshell, it looks like trying to boot an ODroid C1 kernel will leave you without quite a bit of functionality. I wonder if simply swopping out the DTB file and compiling the missing drivers would do the trick so you don't need to recompile the whole kernel and can leverage off Hardkernel's ODroid work.

    A lot of useful information here:

    To be continued...
  2. sammo

    sammo New Member

    Hey dagelf did you ever end up getting Ubuntu or LibreElec running on an X6? Did you get anywhere trying out the DTD file?