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:
    220
    Likes Received:
    110
    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:
    264
    Likes Received:
    32
    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:
    220
    Likes Received:
    110
    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.
     
    Joe0x7F and dcosmin like this.
  5. sirrab

    sirrab UDOOer

    Joined:
    Jul 26, 2014
    Messages:
    264
    Likes Received:
    32
    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! :)
     
  8. sapiensl

    sapiensl UDOOer

    Joined:
    Dec 9, 2019
    Messages:
    2
    Likes Received:
    0
    Thank you so much for the image! I was getting very desperate trying to compile QT5 for an older UDOObuntu build^^

    One thing: The touch portion of the LVDS panels for the QUAD are not working right now. Is there any particular reason as to why? It seems that the module is just missing from this image.

    Honestly I am far from an embedded systems expert so I am kind of stuck at this point now.
    Cheers!
     
  9. Francesco

    Francesco Active Member

    Joined:
    Jun 23, 2015
    Messages:
    220
    Likes Received:
    110
    Hi, I do not work anymore for UDOO, and I have no access to a Quad/LVDS screen to reproduce the issue.
    There are several things to be verified for who has the hardware and the skills:
    - are the kernel modules enabled?
    - are the configuration files correctly placed and adequate for 18.04?
    - is the device tree correct?

    Francesco
     
    waltervl likes this.
  10. sapiensl

    sapiensl UDOOer

    Joined:
    Dec 9, 2019
    Messages:
    2
    Likes Received:
    0
    Hi! Sorry for not updating the post. A more experienced friend of me found a way to fix the touch screen. The kernel module was present but X11 was not configured to use it. I will come back for more details on this in a few days (as well as I can with my limited knowledge). Thank you again for the reply!
     
  11. B35a13

    B35a13 UDOOer

    Joined:
    Jun 24, 2014
    Messages:
    10
    Likes Received:
    1
    This is awesome work!
    Do you, by any chance, have a repository with all files required to build this image?
    I would love to be able to tinker with your release.
     
  12. Mario Pieschel

    Mario Pieschel UDOOer

    Joined:
    Jan 3, 2020
    Messages:
    3
    Likes Received:
    1
    CAN bus is not working!
     
  13. Joe0x7F

    Joe0x7F New Member

    Joined:
    Jan 25, 2020
    Messages:
    5
    Likes Received:
    0
    Hi Francesco,

    Great work!

    Is the source available for this build?
    /media/francesco/Incoming/linux_kernel4

    I am trying to do some device driver work and I need the source, please.

    Thank you for your consideration.

    Joe
     
  14. abektes

    abektes New Member

    Joined:
    May 30, 2014
    Messages:
    7
    Likes Received:
    0
    Hello, I tried this image (desktop) here are my problems:
    1- I had experience with the wifi problem. The password prompt window wasn't appearing on the screen.
    2- When I reboot it, the system didn't start and have black screen. When I use udoobuntu 14.04 - everything works fine.

    In november 2019 - 14.04 is end of cycle and do you think that it is safe to use?
     
  15. Joe0x7F

    Joe0x7F New Member

    Joined:
    Jan 25, 2020
    Messages:
    5
    Likes Received:
    0
    Unfortunately, no.
     
  16. abektes

    abektes New Member

    Joined:
    May 30, 2014
    Messages:
    7
    Likes Received:
    0
    Is 18.04 working well in your case? Or do you use something different? What's your experience with 18.04? When I reboot 2-3 time, I got black screen..
     
  17. evaloverde

    evaloverde Administrator Staff Member

    Joined:
    Apr 29, 2019
    Messages:
    236
    Likes Received:
    60
    Dear Abektes,
    this RC lacks visual feedback, please let it run its course and be patient for a few reboots, as they will take a while. We're here should you need anything though :)
     
  18. Joe0x7F

    Joe0x7F New Member

    Joined:
    Jan 25, 2020
    Messages:
    5
    Likes Received:
    0
    Hi abektes,

    I'm working on the upgrades now too. It's not where I need it yet.

    Best wishes,

    Joe
     
  19. Joe0x7F

    Joe0x7F New Member

    Joined:
    Jan 25, 2020
    Messages:
    5
    Likes Received:
    0
    udooer@udoo:~$
    udooer@udoo:~$ uname -a
    Linux udoo 5.4.23 #1 SMP PREEMPT Fri Mar 6 09:01:18 EST 2020 armv7l armv7l armv7l GNU/Linux
    udooer@udoo:~$
    udooer@udoo:~$ ifconfig
    eth0 Link encap:Ethernet HWaddr 00:c0:08:90:01:23
    inet addr:172.16.99.52 Bcast:172.16.99.255 Mask:255.255.255.0
    inet6 addr: fe80::2c0:8ff:fe90:123/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:10022 errors:90 dropped:0 overruns:90 frame:0
    TX packets:5694 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:10490033 (10.4 MB) TX bytes:662297 (662.2 KB)

    lo Link encap:Local Loopback
    inet addr:127.0.0.1 Mask:255.0.0.0
    inet6 addr: ::1/128 Scope:Host
    UP LOOPBACK RUNNING MTU:65536 Metric:1
    RX packets:60 errors:0 dropped:0 overruns:0 frame:0
    TX packets:60 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:5632 (5.6 KB) TX bytes:5632 (5.6 KB)

    udooer@udoo:~$ df -h
    Filesystem Size Used Avail Use% Mounted on
    /dev/root 13G 4.7G 7.4G 40% /
    devtmpfs 342M 4.0K 342M 1% /dev
    none 4.0K 0 4.0K 0% /sys/fs/cgroup
    none 101M 176K 101M 1% /run
    none 5.0M 0 5.0M 0% /run/lock
    none 502M 0 502M 0% /run/shm
    none 100M 0 100M 0% /run/user
    /dev/mmcblk0p1 958M 142M 816M 15% /boot
    tmpfs 20M 0 20M 0% /gpio
    tmpfs 20M 0 20M 0% /sensors
    udooer@udoo:~$ date
    Fri Mar 6 15:35:31 EST 2020
    udooer@udoo:~$ mount
    /dev/mmcblk0p2 on / type ext4 (rw,noatime)
    none on /proc type proc (rw,noexec,nosuid,nodev)
    sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
    devtmpfs on /dev type devtmpfs (rw,mode=0755)
    none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
    none on /sys/fs/cgroup type tmpfs (rw)
    none on /sys/kernel/debug type debugfs (rw)
    none on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
    none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
    none on /run/shm type tmpfs (rw,nosuid,nodev)
    none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
    /dev/mmcblk0p1 on /boot type vfat (rw,noatime)
    binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
    tmpfs on /gpio type tmpfs (rw,size=20m)
    systemd on /sys/fs/cgroup/systemd type cgroup (rw,noexec,nosuid,nodev,none,name=systemd)
    tmpfs on /sensors type tmpfs (rw,size=20m)
    udooer@udoo:~$
    udooer@udoo:~$
    udooer@udoo:~$ lsblk
    NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    mmcblk0 179:0 0 14.6G 0 disk
    ├─mmcblk0p2 179:2 0 12.8G 0 part /
    ├─mmcblk0p3 179:3 0 958M 0 part [SWAP]
    └─mmcblk0p1 179:1 0 958M 0 part /boot
    udooer@udoo:~$
    udooer@udoo:~$ startx
    The program 'startx' is currently not installed. You can install it by typing:
    sudo apt-get install xinit
    udooer@udoo:~$
     
  20. Joe0x7F

    Joe0x7F New Member

    Joined:
    Jan 25, 2020
    Messages:
    5
    Likes Received:
    0
    U-Boot SPL 2020.04-rc3-00037-g8aad169-dirty (Mar 04 2020 - 02:03:18 -0500)
    Trying to boot from MMC1


    U-Boot 2020.04-rc3-00037-g8aad169-dirty (Mar 04 2020 - 02:03:18 -0500)

    CPU: Freescale i.MX6Q rev1.3 at 792 MHz
    Reset cause: POR
    Board: Udoo Quad
    DRAM: 1 GiB
    MMC: FSL_SDHC: 0
    Loading Environment from MMC... OK
    In: serial
    Out: serial
    Err: serial
    Net: using phy at 6
    FEC [PRIME]
     

Share This Page