Ubuntu 18.04 for UDOO Quad/Dual

Discussion in 'UDOO QUAD' started by Francesco, Sep 25, 2019.

  1. Francesco

    Francesco Active Member

    Joined:
    Jun 23, 2015
    Messages:
    218
    Likes Received:
    106
    Main features:
    * Based on Ubuntu 18.04
    * Mate desktop environment
    * Linux version is 4.1.15
    * U-Boot version is 2015.04
    * iMX firmware v6.0 and Vivante GPU X11 acceleration v6.2.2
    * WiFi firmware updated
    * UDOO services ported to systemd

    Hardware support:
    * UDOO Quad and Dual with all built-in devices

    Known issues:
    * currently none

    The images are (almost fully) untested!
    Please note, this is a bleeding-edge community OS for UDOO. It comes without any kind of warranty, so it is recommended only to experienced users. Using it, your board may be kidnapped, burnt or ate by dark kittens, or it may just produce magic smoke and flames. Use it at your own risk!
    In order to keep the forum clean, please ask questions about this OS only inside this thread. Keep in mind this image is not supported nor provided by the UDOO Team. Support tickets opened about this images will be discarded.

    Download:
    * 4.0 Beta 1 Minimal
    * 4.0 Beta 1 Desktop
     
  2. Theflorianmaas

    Theflorianmaas UDOOer

    Joined:
    Dec 7, 2013
    Messages:
    22
    Likes Received:
    2
    Great job!!
    Grazie
    Franco
     
    Francesco likes this.
  3. sirrab

    sirrab UDOOer

    Joined:
    Jul 26, 2014
    Messages:
    255
    Likes Received:
    30
    Is it possible to outline the steps needed to allows users to do this? ie Bring up a new version of any OS? Or in particular Ubuntu, if the steps are not universal. Thanks!


     
  4. Francesco

    Francesco Active Member

    Joined:
    Jun 23, 2015
    Messages:
    218
    Likes Received:
    106
    Hi, in order to get there there are a lot of steps. Maybe one day I will publish an article. In the meanwhile, here it is an outline:

    1) make the board boot
    This varies among the architecture (x86, ARM, ..) and the specific platform (UDOO Neo, Quad, ..)
    The boot process is about loading the operating system after you power on the hardware. On ARM, 99% of the times is about building a bootloader like U-Boot. The bootloader sets up the hardware, loads the Linux kernel and jumps on that.
    What did I do: bootloader was already there, I changed the way to load the Linux kernel (it changed since the official 14.04, mostly because now the SD card has only ext4 partitions since recent dpkg versions will refuse to work on non-safe partitions like FAT)

    2) build a kernel
    Again, there is a huge difference between x86 and ARM. On the first there is UEFI/ACPI tables/DMI/whatever that sets things up nicely, so you can use just one kernel on totally different x86 machines. On ARM there is a lot of.. "freedom". You need to write the device tree accordingly to the hardware, and patch the kernel to start all the devices correctly.
    What did I do: starting from the NXP kernel 4.1, I applied the patches needed (some developed in the 3.14 era, other found online, others tinkered by me) and updated the device tree to work with Linux 4.1

    3) create a filesystem
    Once you have a bootloader and kernel/dtb, you can potentially start "any" filesystem. It may be Ubuntu, Fedora, Centos, ...
    Basic things will work out of the box - eg, you will probably get a login prompt without further work. If you want more advanced features (eg. GPU acceleration in the desktop) you may need to hack something. For instance, on the iMX6/8 you will need to rebuild libdrm, the xorg, then mesa, then install the Vivante blobs. You may also want to setup some firmware, for instance to use the DMA, or the Wi-Fi, or whatever.
    What did I do: I updated the mkudoobuntu tool, developed in the Udoobuntu 14.04 era, to deboostrap and "correctly" (whatever it means) configure the 18.04 distribution. I also compiled/recompiled some packages to fix broken things (eg. Arduino IDE, x11vnc) or setup platform-specific stuff (eg. udev rules). I also republished packages published by someone else to provide some specific feature (eg. Vivante GPU)

    That's basically 1% of the story. If you want to prepare your own distribution, it is not impossible even without experience. Set your target to a command-line console first, then switch to un-accelerated GUI, then eventually get GPU acceleration. If you start from my bootloader/kernel/dtb the hardest part it's already done.
     
    dcosmin likes this.
  5. sirrab

    sirrab UDOOer

    Joined:
    Jul 26, 2014
    Messages:
    255
    Likes Received:
    30
    Thank you very much! If you get the time and inclination, I look forward to your more detailed write-up. :)
     
  6. Exinferis

    Exinferis UDOOer

    Joined:
    Apr 1, 2016
    Messages:
    14
    Likes Received:
    4
    Im very excited by this, as i hope one of the things fixed in this version is my problem with installing arduino ide 1.8.5 or whaterver i needed for mye 3d printer firmware.

    I have managed to boot into this, but all i had was 2 icons on a Black background, i guess, i have install the other stuff myself?

    I couldnt Even find the terminal, so i light be over my head allready
     
  7. Exinferis

    Exinferis UDOOer

    Joined:
    Apr 1, 2016
    Messages:
    14
    Likes Received:
    4
    Cant seem to edit my own post, so forgive me for the double post...

    I spoke abit too soon on my troubles, after abit of googling i got a gui, and so far it seems to work for my use atleast... (RepRap 3d Printer)

    Will try further testing tonight, with flashing firmware to the arduino etc! :)
     

Share This Page