Linux, Yocto and Fpgas
Total Page:16
File Type:pdf, Size:1020Kb
Embedded Open Source Experts Linux, Yocto and FPGAs Integrating Linux and Yocto builds into different SoCs From a Linux software perspective: ➤ Increased demand for Linux on FPGAs ➤ Many things to mange, both technical and practical ➤ FPGAs with integrated CPU cores – very similar many other SoCs Here are some experiences and observations... © Codiax 2019 ● Page 2 Why use Linux? ➤ De-facto standard ➤ Huge HW support ➤ FOSS ➤ Flexible ➤ Adaptable ➤ Stable ➤ Scalable ➤ Royalty free ➤ Vendor independent ➤ Large community ➤ Long lifetime Why not Linux? ➤ Too big ➤ Real-time requirements ➤ Certification ➤ Boot time ➤ Licensing ➤ Too open? Desktop Shells: Desktop Display server: Display BrailleDisplay Touch-Screen Mouse & Keyboard Wayland Compositor Wayland + development tools = a lot code!of source Linux system example weston, clayton,mutter,KWin evdev libinput GNOME Shell D radeon nouveau lima etna_viv freedreno tegra-re lima nouveau radeon freedreno etna_viv e libwayland-server libwayland-server s Cinnamon k t o kms p Linux kernel, Linux kernel, Plasma 2 w i (Kernel Mode Setting) Mode (Kernel d g Cairo-Dock e t s drm (Direct Rendering Manager) Rendering (Direct drm cache coherent L2-Caches L2-Caches cache coherent CPU &GPU Enlight. DR19 System libraries: System oflibraries): form (in the Toolkits Interface User µClibc Pango glibc glibc main memory possibly adaptations to Wayland/Mir libwayland / COGL libwayland Cairo Cairo (Xr) GTK+ Clutter 2D Application 2D GModule GThread GThread GLib GObject Glib GIO ATK devicedrivers other& modules System daemons: System systemd libwayland-client Hardware (contains udev) Qt Qt ALSA: emu20k1, ctxfi, hda... emu20k1, ALSA: D-Bus-Daemon ? ? kdbus ? udisks possibly adaptations to Wayland/Mir Media Media Application avahi-daemon libwayland-client EFL Source: https://en.wikipedia.org/wiki/File:Free_and_open-source-software_display_servers_and_UI_toolkits.svg Source: packagekitd kmod-fs-ext4 PulseAudio-d kmod-ltq-atm-vr9 unetwork libwayland-client G-sensor GPS-receiver UMTS/CDMA/LTE NetworkManager SDL Alternative display servers: Alternative X-Server X-Server libxserver X-Win32 Xfree86 possibly adaptations to Wayland/Mir X11.app X.Org 3D Application 3D netfilter manager manager window metacity mutter Compiz KWin ath9k wxWidgets libwayland-client GNUstep Bluetooth 802.11-(abc) Ethernet libX/libXCB FLTK FLTK ... AppArmor libmir-serv TOMOYO TOMOYO SELinux Smack mir mir manager manager window Ubuntu Compiz (Android-forked) Linux kernel binder wakelocks Unity and Plasma libhybris Unity Widgets for Widgets © Codiax 2019 ● Page SurfaceFlinger ashmem SF logger Android libbionic manager manager window pmem AWM ... 5 Linux system open source code ● Linux kernel ~ 20 MLOC + Bootloader + Libraries + System services + FOSS applications + Development tools How to select, integrate, build and maintain? © Codiax 2019 ● Page 6 OpenEmbedded / Yocto - A build system for embedded Linux ● What does such a build system do? – Automates the process of building a target system – Downloads, patches, configures, compiles/cross- compiles ● The Linux kernel ● Applications for a Linux root filesystem – Packages applications – Keeps track of application dependencies – Deploys generated images – Provides an SDK – Provides tools © Codiax 2019 ● Page 7 What is OpenEmbedded? ● OE is the basis for many build systems, including Poky (and e.g. Ångström) ● Is the origin of Bitbake and OpenEmbedded- Core, that are now also part of Yocto Project ● Provides meta data, recipes and layers, for thousands of open source applications (not part of OpenEmbedded-Core) – http://layers.openembedded.org © Codiax 2019 ● Page 8 Build system overview Source: Yocto Project Quick Start manual © Codiax 2019 ● Page 9 OpenEmbedded / Yocto ● Builds all – long build times ● Build caches ● Depends on external archives – Rebuilding old builds? – Local source code storage? – Local meta data mirrors ● FOSS Compliance © Codiax 2019 ● Page 10 FOSS ± Free and Open Source Software FOSS licenses (typically) ensure and regulate ➤ The four basic freedoms – Freedom to use – Freedom to study – Freedom to redistribute – Freedom to modify ➤ Handling of derived works ➤ Proper attribution to copyright owners ➤ And more... The Open Source Definition – http://opensource.org/docs/osd The Free Software Definition – https://www.gnu.org/philosophy/free-sw.html HW oriented adaptations Applications Boot loader Kernel Init Services FS ➤ HW specific BOOT ➤ Device tree (DTS) for boot loader and kernel ➤ Boot loader and kernel drivers ➤ Boot loader and kernel configuration ➤ Mapping of memory areas from kernel to user space process ➤ Real-time configuration + potential RT patches Trends ● Linux and real-time - again ● Virtualization ● Security © Codiax 2019 ● Page 13 ? ? ? ? ? ? Questions? [email protected] www.codiax.se © Codiax 2019 ● Page 14 .