Download presentation
Presentation is loading. Please wait.
Published byMaximilian Patterson Modified over 8 years ago
1
1 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Embedded Linux System Development Embedded Linux System Development Thomas Petazzoni / Michael Opdenacker Free Electrons http://free-electrons.com/ http://free-electrons.com/ Created with OpenOffice.org 2.xOpenOffice.org
2
2 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Rights to copy Attribution – ShareAlike 2.5 You are free to copy, distribute, display, and perform the work to make derivative works to make commercial use of the work Under the following conditions Attribution. You must give the original author credit. Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one. For any reuse or distribution, you must make clear to others the license terms of this work. Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above. License text: http://creativecommons.org/licenses/by- sa/2.5/legalcodehttp://creativecommons.org/licenses/by- sa/2.5/legalcode © Copyright 2004-2008 Free Electrons feedback@free-electrons.com Document sources, updates and translations: http://free- electrons.com/training/devtoolshttp://free- electrons.com/training/devtools Corrections, suggestions, contributions and translations are welcome!
3
3 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Best viewed with... This document is best viewed with a recent PDF reader or with OpenOffice.org itself!OpenOffice.org Take advantage of internal or external hyperlinks. So, don’t hesitate to click on them! Find pages quickly thanks to automatic search Use thumbnails to navigate in the document in a quick way If you’re reading a paper or HTML copy, you should get your copy in PDF or OpenOffice.org format on http://free- electrons.com/training/devtools!OpenOffice.orghttp://free- electrons.com/training/devtools
4
4 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Training contents (1) C library for the target device C library options GNU / Linux workstation Cross-compiling toolchains Emulators Various tools How to find Free Software for your needs Commercial toolsets and distributions
5
5 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Training contents (2) Target device Busybox http and ssh servers Graphical toolkits Web browsers Text editors Precompiled packages, distributions Choosing filesystems
6
6 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Training contents (3) Annexes Automatic system generation with BitBake / OpenEmbedded
7
7 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Embedded Linux system development C library for the target device C library options
8
8 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 glibc http://www.gnu.org/software/libc/ License: LGPL C library from the GNU project Designed for performance, standards compliance and portability Found on all GNU / Linux host systems Quite big for small embedded systems: about 1.7 MB on Familiar Linux iPAQs ( libc : 1.2 MB, libm : 500 KB)
9
9 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 uClibc http://www.uclibc.org/http://www.uclibc.org/ from CodePoet Consulting License: LGPL Lightweight C library for small embedded systems, with most features though. The whole Debian Woody was ported to it... You can assume it satisfied most needs! Size ( arm ): 4 times smaller than glibc! uClibc: approx. 400 KB ( libuClibc : 300 KB, libm : 55KB) glibc: approx 1700 KB ( libc : 1.2 MB, libm : 500 KB) Now supported by MontaVista, TimeSys and Wind River.
10
10 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Honey, I shrunk the programs!
11
11 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 diet libc http://www.fefe.de/dietlibc/ A C library optimized for small size Designed to compile small statically linked programs, resulting in executables with a fraction of the size of those using glibc. diet libc compiled code size: approximately 70 KB
12
12 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 newlib http://sources.redhat.com/newlib/ Minimal C library for very small embedded systems Lets you remove floating point support wherever you don't need it. Also provides an integer only iprintf() function. Much smaller! Provides single precision math library functions. Much faster than the standard IEEE compliant ones. Extremely portable. Supports most processor architectures. See http://www.embedded.com/story/OEG20011220S0058 for a very good overview.http://www.embedded.com/story/OEG20011220S0058
13
13 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 klibc http://www.kernel.org/pub/linux/libs/klibc/ http://www.kernel.org/pub/linux/libs/klibc/ “Kernel C library” Tiny and minimalistic C library designed for use in an initramfs at boot time (alternative to initrds). Fine for the creation of simple shell scripts. Ships with small executables for use in shells, built with klibc, and a klcc compiler to compile your own applications. Not elaborate enough to support BusyBox applications. Useful details in http://en.wikipedia.org/wiki/Klibchttp://en.wikipedia.org/wiki/Klibc
14
14 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 C library options - Summary GNU C library (glibc) Designed for performance compliance with standards. Best for servers and desktops. uClibc Highly compatible, but implemented for small embedded systems with little storage space and RAM Others: diet libc, newlib, klibc Best suited for tiny systems, or init ramdisks or initramfs.
15
15 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Embedded Linux system development GNU / Linux workstation Cross-compiling toolchains
16
16 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Standalone toolchain build Building a cross-compiling toolchain by yourself is a difficult and painful task! Can take days or weeks! Lots of details to learn. Several components to build (building gcc twice: once for gcc + once for compilers that need the C library). Lots of decisions to make (such as C library version and configuration for your platform) Need kernel headers and C library sources Need to be familiar with current gcc issues and patches on your platform Useful to be familiar with building and configuring tools http://www.aleph1.co.uk/armlinux/docs/toolchain/toolchHOWTO.pdf http://www.aleph1.co.uk/armlinux/docs/toolchain/toolchHOWTO.pdf can show you how fun it can be!
17
17 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Get a precompiled toolchain Can get one from several locations... Just need to know where! Caution Toolchains are not relocatable! Install them in /usr/local/ if they were built for this location. Note: no longer true with gcc 4.x versions. Make sure the toolchain you pick suits your needs: CPU, endianism, C library and compiler versions...
18
18 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 uClibc toolchains Free Electrons uClibc toolchains http://free-electrons.com/community/tools/uclibc http://free-electrons.com/community/tools/uclibc Run on i386 GNU/Linux Supported platforms arm, armeb, i386, m68k, ppc, mips, mipsel, sh
19
19 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Platform specific toolchains (1) ARM Code Sourcery (supports GNU/Linux, EABI and uClinux): http://www.codesourcery.com/gnu_toolchains/arm/ Also available for Windows workstations. http://www.codesourcery.com/gnu_toolchains/arm/ MIPS http://www.linux-mips.org/wiki/Toolchainshttp://www.linux-mips.org/wiki/Toolchains (useful links)
20
20 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Platform specific toolchains (2) Coldfire Code Sourcery (supports ELF, GNU/Linux and uClinux): http://www.codesourcery.com/gnu_toolchains/coldfire http://www.codesourcery.com/gnu_toolchains/coldfire PowerPC Code Sourcery (supports GNU/Linux and EABI) http://www.codesourcery.com/gnu_toolchains/power.ht ml http://www.codesourcery.com/gnu_toolchains/power.ht ml
21
21 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Toolchain building utilities Buildroot: http://buildroot.uclibc.org/http://buildroot.uclibc.org/ Dedicated Makefile to build uClibc based toolchains and even entire root filesystems. Downloads sources and applies patches. Crosstool: http://www.kegel.com/crosstool/http://www.kegel.com/crosstool/ Dedicated script to build glibc based toolchains Doesn’t support uClibc yet. Downloads sources and applies patches.
22
22 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 gcc / glibc / binutils / kernel versions Crosstool build reports: http://kegel.com/crosstool/crosstool- 0.38/buildlogs/http://kegel.com/crosstool/crosstool- 0.38/buildlogs/ Can help you to find a working combination of gcc, glibc, binutils and kernel headers versions!
23
23 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Build your rootfs with buildroot Buildroot supports most architectures It automatically downloads tool sources and applies patches. Except your custom applications, it can build most apps you will need (194 supported in May 2007). Examples: BusyBox, bzip2, Cairo, dbus, Dillo, DirectFB, Dropbear, lighthttpd, Python, Qtopia4, sqlite, thttpd, tinyX, xorg... Very easy to use. Just run: make menuconfig make
24
24 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Scratchbox http://scratchbox.org/http://scratchbox.org/ - A cross-compiling toolkit project Makes it easier to cross-compile a complete embedded Linux system. Works by allowing tools to be cross-compiled in a transparent way, making building tools believe they are doing a native compile job. Supported platforms: arm, x86 Uses the qemu emulator to transparently run built arm binaries. Experimental support for ppc, mips and cris.
25
25 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Scratchbox features Main benefits Chrooted environment: you are still on the host, but you only see the target files. Transparent cross-compiling: the cross-compiler looks like a native one. Transparent execution: either through remote execution on the target. Or through CPU code emulation (qemu). Other features Ships with cross-compiling toolchains and software to create Debian packages. Supports both uClibc and glibc. Very basic root filesystems available.
26
26 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Toolchains - useful resources eLinux.org toolchain page: http://elinux.org/Tool_Chains http://elinux.org/Tool_Chains
27
27 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Cross-compiling toolchains - Summary Building a toolchain by yourself Tough and very long to master. Ready-to-use toolchains Available from several locations for most platforms. Tools to build toolchains: Buildroot and Crosstool. Make it easy to create a toolchain for your exact needs. Build systems: Scratchbox, OpenEmbedded (see annex section) Help you to create and populate root filesystem.annex section
28
28 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Practical lab – Using buildroot Time to start Lab 1! Configure buildroot Run it to build your own cross- compiling toolchain
29
29 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Embedded Linux system development GNU / Linux workstation Emulators
30
30 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 qemu http://fabrice.bellard.free.fr/qemu/ http://fabrice.bellard.free.fr/qemu/ Fast processor emulator using a portable dynamic translator. Full system emulation Emulates the processor and various peripherals Supported: x86, x86_64, ppc, arm, sparc, mips, m68k To know which machine types are supported: qemu-system-arm -M ? i386, x86_64 system emulation: now close to native speeds thanks to the kqemu kernel module (now GPL v2!).
31
31 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 qemu user emulation User emulation (Linux host only) User mode emulation : can run applications compiled for another CPU. Supported: x86, ppc, arm, sparc, mips, m68k Easy to run BusyBox for arm on i386 GNU / Linux: qemu-arm -L /usr/local/arm/3.3.2 \ /home/bart/arm/busybox-1.4.1/busybox ls -L : target C library binaries path (here cross-compiler toolchain path)
32
32 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 ARM emulators Only Free Software, of course! SkyEye: http://skyeye.sourceforge.net Emulates several ARM platforms (AT91, Xscale...) and can boot several operating systems (Linux, uClinux, and others)http://skyeye.sourceforge.net Softgun: http://softgun.sourceforge.net Virtual ARM system with many virtual on-board peripherals. Boots Linux.http://softgun.sourceforge.net SWARM - Software ARM - arm7 emulator http://www.cl.cam.ac.uk/~mwd24/phd/swarm.html Can run uClinux http://www.cl.cam.ac.uk/~mwd24/phd/swarm.html
33
33 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Other emulators ColdFire emulator http://www.slicer.ca/coldfire/ Can boot uClinux http://www.slicer.ca/coldfire/
34
34 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Emulators - Summary System emulators Useful to experiment with a full system, including the kernel qemu: x86, x86_64, arm, sparc, ppc, mips SkyEye: several arm architectures User emulators Useful to run or debug user space binaries for other CPUs qemu: x86, arm, sparc, ppc, mips
35
35 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Embedded Linux system development GNU / Linux workstation Various tools
36
36 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 chroot Available in all GNU/Linux distributions Usage: chroot [command] Runs a command or an interactive shell with a special root directory. Standard usage: Internet servers Services executed in chroot jails: even when compromised, the service cannot gain access to the rest of the system. Usage for embedded system development: Develop and test a new root filesystem on the development host. Very easy to use when the host and target have the same CPU instruction set. Used by LFS (Linux From Scratch). Also used by Scratchbox: Qemu makes the usage of target binaries transparent. / binlibetchttp / libetcbin chroot jail
37
37 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Minicom (1) Definition: serial communication program Available in all GNU / Linux distributions Capabilities (all through a serial link): Serial console to a remote Unix system File transfer Modem control and dial-up Serial port configuration
38
38 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Minicom (2) Start by running minicom -s to setup Minicom A bit austere at first glance, but quickly gets friendly (see the labs for details)
39
39 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Other terminal emulators GTKTerm: http://www.jls-info.com/julien/linux/ Graphical. Less powerful than Minicom, but with a simpler and more attractive interface. Available in recent distros.http://www.jls-info.com/julien/linux/ CuteCom: http://cutecom.sourceforge.net/ Another graphical and user-friendly terminal emulator. Available in recent distros.http://cutecom.sourceforge.net/ GNU Screen: can also be used on a serial console: screen Example: screen /dev/ttyS0 115200
40
40 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Embedded Linux system development GNU / Linux workstation How to find existing Free Software
41
41 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Freshmeat.net http://freshmeat.net/ The number one site for Free Software searches Most free software tools advertised there Easy keyword search Sort by relevance, vitality, popularity, last update... Useful details: license, home page, downloads, screenshot Possible to subscribe to new releases
42
42 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Other ways to find existing free software SourceForge: http://sourceforge.net/ Lots of projects hosted therehttp://sourceforge.net/ FSF / UNESCO Free Software Directory: http://directory.fsf.org/ More than 4300 projects indexed (Nov 2005) http://directory.fsf.org/ Internet search engines (of course!)
43
43 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Embedded Linux system development GNU / Linux workstation Commercial toolsets
44
44 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Commercial toolsets Caution: commercial doesn't mean proprietary! Vendors play fair with the GPL and do make their source code available to their users, and most of the time, to the community. As long as they distribute the sources to their users, the GPL doesn't require vendors to share their sources with any third party. No issue with all the GPL sources developed by or with the community. Graphical toolkits developed by the vendors look proprietary. Their licenses are not advertised on their websites! You have to be a customer to know or get a free preview kit to know.
45
45 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Commercial toolset strengths Technical advantages Well tested and supported kernel and tool versions Including early patches not supported by the mainstream kernel yet Complete development tool sets: kernels, toolchains, utilities, binaries for impressive lists of target platforms Integrated utilities for automatic kernel image, initrd and filesystem generation. Graphical developments tools Development tools available on multiple platforms: GNU / Linux, Solaris, Windows... Support services Useful if you don't have your own support resources Long term support commitment, even for versions considered as obsolete by the community, but not by your users!
46
46 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Montavista http://www.mvista.com/ The market leader Employs some of the most active kernel hackers, in particular on the arm platform. Kernel development eventually shared with the community. kernel. Many drivers merged in mainstream Linux. Graphical development tools are proprietary.
47
47 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 TimeSys http://timesys.com Similar toolset offering as other vendors. Great flexibility available to their LinuxLink TM subscribers Community friendly: they share very interesting and generic technical whitepapers and articles. They also employ key community hackers (Thomas Gleixner, Rob Landley...). Free Software BSPs (Board Support Packages) available. Linux soft and hard real-time OS product. Development tools seem to be proprietary.
48
48 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Wind River Wind River Linux: http://windriver.com/linux/ http://windriver.com/linux/ A lot of embedded and real-time experience from VxWorks. Now say they integrate, test and support Linux as rigorously as they do with VxWorks. Linux development supported with their Workbench integrated development environment, already used for VxWorks. Support standard and recent Linux kernel sources, including real- time preempt patches (Linux 2.6.21). Also offer hard real-time Linux (Real Time Core: formerly RTLinux).
49
49 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Sysgo - Koan Software http://sysgo.com ELinOS development toolset, in particular based on Eclipse and the Linux Trace Toolkit. Includes FreeToolBox, a freely downloadable compiling and rootfs creating toolchain. Supports i386, arm and ppc. Hard real-time support with their own microkernel (PikeOS), an approach similar to RTAI. http://koansoftware.com Makers of KaeilOS (http://koansoftware.com/kaeilos/), a GPL embedded Linux distribution for industrial applications.http://koansoftware.com/kaeilos/ KaeilOS supports i386 and popular arm platforms. Other platforms supported upon request. Includes several graphical toolkits and supports hard real-time (RTAI, Xenomai, preemption patches). Unfortunately, KaeilOS is GPL but not available for public download.
50
50 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Denx Software Engineering http://denx.de Created by Wolfgang Denk, the author of the U-Boot bootloader. Create and support the Embedded Linux Development Kit (ELDK), a complete and well documented development environment. This kit is not only Free Software, it can be downloaded freely by anyone. A great community member and contributor!
51
51 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 BlueCat Linux LynuxWorks BlueCat http://lynuxworks.com/products/bluecat/ http://lynuxworks.com/products/bluecat/ From a traditional RTOS vendor trying to survive the Linux tidal wave. Only advertise features of very early Linux 2.6 kernels! No visible contribution to the development community. Mainly seems to be a way of surfing the Linux wave and attracting customers to their LynxOS RTOS (API compatible with Linux).
52
52 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Contributions from embedded Linux vendors Counted the number of lines in Linux 2.6.23 with both Copyright and the vendor name (case insensitive search) Disclaimer: this is just a very inaccurate indicator!
53
53 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Commercial toolsets - Summary Major vendors: MontaVista, Wind River, TimeSys Involved in Linux development. Smaller vendors: Koan, Sysgo, Denx... Trying to differentiate their products. Community based companies: Denx, CodeSourcery Contribute to community tools. Mainly offer support and development. Traditional RTOS vendors: LynuxWorks Forced to support Linux to retain market share. Strong real-time expertise but lack of community involvement.
54
54 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Embedded Linux system development Tools for the target device BusyBox
55
55 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 General purpose toolbox: BusyBox http://www.busybox.net/ Most Unix command line utilities within a single executable! It even includes a web server! Sizes less than < 500 KB (statically compiled with uClibc) or less than 1 MB (statically compiled with glibc). Easy to configure which features to include. The best choice for Initramfs / initrd with complex scripts Small and medium size embedded systems See http://www-128.ibm.com/developerworks/linux/library/l-busybox/ for a nice introduction.http://www-128.ibm.com/developerworks/linux/library/l-busybox/
56
56 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 BusyBox commands! addgroup, adduser, adjtimex, ar, arping, ash, awk, basename, bunzip2, bzcat, cal, cat, chgrp, chmod, chown, chroot, chvt, clear, cmp, cp, cpio, crond, crontab, cut, date, dc, dd, deallocvt, delgroup, deluser, devfsd, df, dirname, dmesg, dos2unix, dpkg, dpkg-deb, du, dumpkmap, dumpleases, echo, egrep, env, expr, false, fbset, fdflush, fdformat, fdisk, fgrep, find, fold, free, freeramdisk, fsck.minix, ftpget, ftpput, getopt, getty, grep, gunzip, gzip, halt, hdparm, head, hexdump, hostid, hostname, httpd, hush, hwclock, id, ifconfig, ifdown, ifup, inetd, init, insmod, install, ip, ipaddr, ipcalc, iplink, iproute, iptunnel, kill, killall, klogd, lash, last, length, linuxrc, ln, loadfont, loadkmap, logger, login, logname, logread, losetup, ls, lsmod, makedevs, md5sum, mesg, mkdir, mkfifo, mkfs.minix, mknod, mkswap, mktemp, modprobe, more, mount, msh, mt, mv, nameif, nc, netstat, nslookup, od, openvt, passwd, patch, pidof, ping, ping6, pipe_progress, pivot_root, poweroff, printf, ps, pwd, rdate, readlink, realpath, reboot, renice, reset, rm, rmdir, rmmod, route, rpm, rpm2cpio, run-parts, rx, sed, seq, setkeycodes, sha1sum, sleep, sort, start-stop-daemon, strings, stty, su, sulogin, swapoff, swapon, sync, sysctl, syslogd, tail, tar, tee, telnet, telnetd, test, tftp, time, top, touch, tr, traceroute, true, tty, udhcpc, udhcpd, umount, uname, uncompress, uniq, unix2dos, unzip, uptime, usleep, uudecode, uuencode, vconfig, vi, vlock, watch, watchdog, wc, wget, which, who, whoami, xargs, yes, zcat
57
57 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Configuring BusyBox Get the latest stable sources from http://busybox.nethttp://busybox.net Configure BusyBox (creates a.config file): make defconfig Good to begin with BusyBox. Configures BusyBox with all options for regular users. make allnoconfig Unselects all options. Good to configure only what you need. make xconfig (graphical) or make menuconfig (text) Same configuration interfaces as the ones used by the Linux kernel.
58
58 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 BusyBox make xconfig You can choose: the commands to compile, and even the command options and features that you need!
59
59 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Compiling BusyBox If cross-compiling, choose the target CPU architecture and cross-compiler in Makefile (just as in the Linux kernel): ARCH ?= arm CROSS_COMPILE ?= arm-linux- Add the cross-compiler path to the PATH environment variable: export PATH=/usr/local/arm/3.3.2/bin:$PATH Compile BusyBox: make Install it (this creates a Unix directory structure in _install with all the symbolic links to the busybox executable): make install Logged as root, mount the root fs image (e.g. /mnt/rootfs ) rsync -a _install/ /mnt/rootfs/
60
60 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Creating a new BusyBox applet Useful to create your own, lightweight executables Take advantage of all BusyBox facilities (mainly implemented in the libbb/ subdirectory). libbb/ Achieves smaller results than if you made a standalone executable. You also take advantage of the configuring and (cross)compiling facilities brought by BusyBox. Caution: your application license will have to be GPL!
61
61 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 New BusyBox applet - readahead example (1) Added lines... Tested with BusyBox 1.8.2 include/applets.h USE_READAHEAD(APPLET(readahead, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) include/usage.h #define readahead_trivial_usage \ "[FILE]..." #define readahead_full_usage \ "Preloads FILE(s) in RAM cache so that subsequent reads" \ "for those files do not block on disk I/O."
62
62 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 New BusyBox applet - readahead example (2) miscutils/Config.in config CONFIG_READAHEAD bool "readahead" default n depends on LFS help Preload the given list of files in RAM cache so that subsequent reads on these files will not block on disk I/O. This applet just calls the readahead(2) system call on each file. miscutils/Kbuild lib-$(CONFIG_READAHEAD) += readahead.o
63
63 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 New BusyBox applet - readahead example (3) /* * readahead implementation for BusyBox * Copyright (C) 2006 Michael Opdenacker * Licensed under GPLv2 or later, see file License in this tarball for details. */ #include "busybox.h" int readahead_main(int argc, char **argv) { FILE *f; int retval = EXIT_SUCCESS; if (argc == 1) bb_show_usage(); while (*++argv) { if ((f = fopen_or_warn(*argv, "r")) != NULL) { int r, fd=fileno(f); r = readahead(fd, 0, fdlength(fd)); fclose(f); if (r >= 0) continue; } retval = EXIT_FAILURE; } return retval; } miscutils/readahead.c libbb functions
64
64 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Alternative to BusyBox: embutils http://www.fefe.de/embutils/ http://www.fefe.de/embutils/ From the creator of diet libc A similar set of tiny utilities for embedded systems. Version 0.18 (Oct. 2006): 75 common commands are implemented. Can only be built statically with diet libc! Compared to BusyBox: Much less momentum, user and developer base. Still misses key commands and features. But can achieve smaller size than BusyBox on standalone executables.
65
65 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Practical lab – BusyBox Time to start Lab 2! Get familiar with BusyBox capabilities and configuration options Configure BusyBox in a cross- compiling environment Compile and test BusyBox
66
66 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Embedded Linux system development Tools for the target device http and ssh servers
67
67 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 ssh server and client: dropbear http://matt.ucc.asn.au/dropbear/dropbear.html Very small memory footprint ssh server for embedded systems Satisfies most needs. Both client and server! Size: 110 KB, statically compiled with uClibc on i386. (OpenSSH client and server: approx 1200 KB, dynamically compiled with glibc on i386 ) Useful to: Get a remote console on the target device Copy files to and from the target device ( scp or rsync -e ssh ).
68
68 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Benefits of a web server interface Many network enabled devices can just have a network interface Examples: modems / routers, IP cameras, printers... No need to develop drivers and applications for computers connected to the device. No need to support multiple operating systems! Just need to develop static or dynamic HTML pages (possibly with powerful client-side JavaScript). Easy way of providing access to device information and parameters. Reduced hardware costs (no LCD, very little storage space needed)
69
69 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 thttpd Tiny/Turbo/Throttling HTTP server http://acme.com/software/thttpd/ http://acme.com/software/thttpd/ Simple Implements the HTTP/1.1 minimum (or just a little more) Simple to configure and run. Small Executable size: 88K (version 2.25b ), Apache 2.0.52: 264K Very low memory consumption: does not fork and very careful about memory consumption. Portable Compiles cleanly on most Unix-like operating systems Fast About as fast as full-featured servers. Much faster on very high loads (because reduces the server load for the same amount of work) Secure Designed to protect the webserver machine from attacks.
70
70 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Other web servers (1) BusyBox http server: http://busybox.net Tiny: only adds 9 K to BusyBox 1.5 (dynamically linked with glibc on i386, with all features enabled.)! Sufficient features for many devices with a web interface, including CGI, http authentication and script support (like PHP). License: GPLhttp://busybox.net KLone: http://koanlogic.com/kl/cont/gb/html/klone.html Lightweight but full featured web server for embedded systems. Can enclose dynamic (written in C/C++ ) and compressed content all in an executable of an approximate size of 150 KB. License: Dual GPL / Commercial. See also http://linuxdevices.com/news/NS8234701895.htmlhttp://koanlogic.com/kl/cont/gb/html/klone.htmlhttp://linuxdevices.com/news/NS8234701895.html
71
71 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Other web servers (2) Boa: http://www.boa.org/ Designed to be simple, fast and secure. Unlike thttpd, no particular care for memory or disk footprint though. Embedded systems: pretty popular, though not targeted by developers.http://www.boa.org/ lighthttpd: http://lighttpd.net Low footprint server good at managing high loads. May be useful in embedded systems too.http://lighttpd.net
72
72 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Embedded Linux system development Tools for the target device Graphical toolkits
73
73 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Nano-X / Microwindows http://www.microwindows.org/ License: Mozilla Public License. Allows proprietary applications. Very lightweight (< 100 KB) portable graphics library, running on Linux kernel framebuffer, X / Windows, SVGAlib and a few other systems. 2 APIs (C language) Win32 graphics device API: allows easy porting of Windows or WindowsCE programs. Nano-X API: small X server with Xlib-like API API documentation, FAQs and tutorial on the project page. Limitation: lack of skin support.
74
74 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 MiniGUI http://www.minigui.org/ License: GNU GPL Need to get a commercial license to create proprietary software Programming language: C Popular and mature UI toolkit supporting Linux / uClinux, eCos, some proprietary real-time operating systems and also Win32. Supported architectures: x86, arm, ppc, m68k, mips Looks popular in devices made in Asia. Size: approx. 700 KB Introduction: http://linuxdevices.com/articles/AT5520972121.htmlhttp://linuxdevices.com/articles/AT5520972121.html
75
75 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 MiniGUI screenshots Phone Industrial control Browser Set top box
76
76 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 FLTK http://fltk.orghttp://fltk.org - Fast Light ToolKit License: LGPL Pronounce it “fulltick” Cross-platform (Unix X11, Windows and MacOS X) C++ GUI toolkit Modern but without the bloat. Supports 3D graphics (OpenGL). Applications can be prototyped in minutes with the FLUID builder Many applications and examples: http://www.fltk.org/links.php?LC+P22+Q http://www.fltk.org/links.php?LC+P22+Q
77
77 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 FLTK screenshots flPhoto Gmsh Spiral Synth HTMLDOC
78
78 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 SDL http://libsdl.org/http://libsdl.org/ - Simple Directmedia Layer License: LGPL Cross-platform multimedia library (similar usefulness as DirectX) Provides low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. Originally created for writing games. Now also used in embedded systems. Many libraries, applications and demos available. Native C API - Bindings for other programming and scripting languages. Details in http://free-electrons.com/training/multimediahttp://free-electrons.com/training/multimedia
79
79 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 SDL screenshots Pig: a demo arcade game. 7000 lines.QEMU: CPU and system emulator
80
80 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 DirectFB http://www.directfb.org/ http://www.directfb.org/ License: LGPL User space library (C language) developed for the special requirements of embedded devices. Small, powerful, flexible and easy to use. Hardware accelerated graphics support. Software fallbacks for operation not supported by the underlying hardware. Input device handling and abstraction. Windowing system with support for translucent windows. Many applications and demos available. Details in http://free-electrons.com/training/multimediahttp://free-electrons.com/training/multimedia
81
81 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 DirectFB screenshot Demo of the new TextureTriangles() method using existing windows as textures (updated in real time)
82
82 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Qtopia Core http://www.trolltech.com/products/qtopia/qtopia_core/ Formerly Qt Embedded License: GPL Need to get a commercial license to create proprietary software. Language: C++. Same API as Qt Desktop. Easy to port applications. Framebuffer based (instead of X server), with its own windowing system. Customizable look and feel Completely modular to reduce size and memory footprint. Size: from 1.1 to 3 MB (x86). Integrates with several Java VM. Same look and feel as native applications. Tools to test and develop on the desktop.
83
83 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Qtopia http://www.trolltech.com/products/qtopia/ License: GPL (same as Qt Embedded) Full set of Qtopia Core applications for PDAs (PDA Edition) or phones (Phone Edition) Featured applications: PIM, productivity, email, games, media player... Phone interface in the Phone Edition. Synchronization with Qtopia Desktop or MS Outlook. Community, developer resources (tutorials), forum and device list available on http://qtopia.net/http://qtopia.net/
84
84 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Graphical environment and apps: Opie Open Palmtop Integrated Environment, fork from Trolltech's Qtopia License: GPL No X server, framebuffer based Comprehensive software suite for PDAs: Personal Information Management (Contacts, Calendar...) Multimedia: graphics, sound and video players Device configuration interface Misc: games, e-mail, and much more Theme based interface. Attractive icons and interface. Lacks a maintained web browser (old Konqueror port available) http://opie.handhelds.org/
85
85 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Opie screenshots
86
86 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 GTK http://gtk.org/ License: LGPL The exact same toolkit as on the desktop Size: a bit bigger than the others (approx 4-5 MB on glibc / arm ) C native API. Bindings for many other languages (e.g. gtkmm for C++) Usually run with an X server (TinyX / kdrive in embedded systems). Also supports DirectFB (no X server). Based on Cairo for vector graphics since version 2.8.0. Issue for systems with no floating point unit, as a few parts of Cairo rely on floating point computation. Things are improving, this issue is not completely solved yet (Apr. 2007 status).
87
87 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Graphical environment and apps: GPE http://gpe.linuxtogo.org/ GPE = GPE Palmtop Environment, based on the GTK+ toolkit Uses the framebuffer X server from http://freedesktop.org/. Doesn't look heavy. Easy to display applications on a remote (PC) screen.http://freedesktop.org/ Comprehensive set of tools for PDAs: PIM, e-mail, web browser, multimedia, configuration tools, LinPhone... They also have a phone edition: http://gpephone.linuxtogo.org/ http://gpephone.linuxtogo.org/ On screen handwriting recognition Existing GTK applications can be run with few or no changes
88
88 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 GPE screenshots
89
89 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Graphical environment and apps: Emacs A complete environment, user interface and application set for your embedded systems! License: GPL Supports multiple windows Rich application set: mail and news reader, web browser, games, advanced calendar, file browser, development environment, shell... Advanced and powerful scripting language. Extensible through script plug-ins. Even includes a text editor! What else would you need?
90
90 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Use a browser based GUI! Use the Dillo browser (or a lightweight browser based on WebKit ) as your graphical interface! Build it without menus, navigation and URL controls 1 fullscreen application: no window manager needed Extremely fast to develop and deploy! No interface programming Very lightweight solution too. Example: http://www.linuxdevices.com/articles/AT2869412121.html http://www.linuxdevices.com/articles/AT2869412121.html
91
91 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Graphical toolkits - Summary Licenses matter here! Toolkits allowing proprietary applications Nano-X / Microwindows, FLTK, SDL, DirectFB, GTK GPL toolkits (commercial license required for proprietary apps) MiniGUI, Qt Embedded Graphical environments and applications Qtopia, Opie, GPE Web browser based interfaces
92
92 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Embedded Linux system development Tools for the target device Web browsers
93
93 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Fast and tiny web browser: Dillo http://www.dillo.org/ Very fast, lightweight web browser written in C, with a GTK interface. The Dillo binary fits in 350 KB. License: GPL Supports basic features: cookies, images, tables... Extensible through plugins (e.g. ftp) Fits well on small screens Still missing: SSL (https), frames, CSS... MiniGUI based implementation: http://www.minigui.org/app/app- edillo.shtmlhttp://www.minigui.org/app/app- edillo.shtml
94
94 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Dillo screenshots
95
95 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Links http://links.twibright.com/ Portable browser with many features: frames, tables, SSL, Javascript... Runs either in text mode or with several graphical back-ends: X, DirectFB, SDL, SVGAlib. Size: 4 MB (i386, glibc) + shared libraries (libpng, libssl...)
96
96 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Full featured browser: Mozilla Firefox http://www.mozilla.org/products/firefox/ Lightweight and fast browser based on Mozilla Full featured: CSS, SSL, Javascript, tabbed browsing, pop- up blocking..., but very easy to configure. Takes around 40 MB of RAM with 8 tabs open. Need 25 MB of storage space (Sharp Zaurus) Designed to be cross-platform. Already used in embedded systems with sufficient screen resolution (web pads, high- end PDAs) Great for consumers appliances. Looks familiar to consumers: the default theme recalls IE.
97
97 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 WebKit http://webkit.org/ Web browser engine. Application framework that can be used to develop web browsers. License: portions in LGPL and others in BSD. Proprietary applications allowed. Used in Apple's Safari browser. Many applications (browsers, e-mail clients...) are already using WebKit: http://trac.webkit.org/projects/webkit/wiki/Applications%20using%20We bKit http://trac.webkit.org/projects/webkit/wiki/Applications%20using%20We bKit Multiple graphical back-ends: Qt4, GTK... You could use it to create your custom browser.
98
98 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Embedded Linux system development Tools for the target device Text editors
99
99 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Text editors Graphical text editors are fine, but often can't be used on embedded systems when you just have a text console. For small changes, using a text-only editor through a remote connection to the target is much more efficient than editing files on the host and transferring them over and over again. You could use standard text-only editors from the desktop: See http://free- electrons.com/training/intro_unix_linuxhttp://free- electrons.com/training/intro_unix_linux However, none of them are designed to be small in size.
100
100 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 BusyBox vi If you are using BusyBox, adding vi supports only adds 20K. (built with shared libraries, using uClibc). You can select which exact features to compile in. Users hardly realize that they are using a lightweight vi version! Tip: you can learn vi on the desktop, by running the vimtutor command.
101
101 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 e3 editor http://freshmeat.net/projects/e3/ Extremely small text-only text editor: 13K for i386 Linux 35K for arm Linux Written in assembly for i386 and arm. Supports key commands for WordStar, Emacs, Pico, Nedit, or vi. Key help available in the interface. C implementation available for other platforms (only supports WordStar).
102
102 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Embedded Linux system development Tools for the target device Precompiled packages, distributions
103
103 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Distributions Distribute ready to use root filesystems. Can be used by any binary compatible platform. Example: running Familiar Linux on a mobile phone! Can be reused even on an early development phase. No need to create your root filesystem from scratch! Easy to upgrade, remove or add applications through binary packages.
104
104 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Embedded distributions (1) Familiar: http://familiar.handhelds.org/ Targets PDAs and webpads (Siemens Simpad...) Binaries available for arm little endian.http://familiar.handhelds.org/ Rockbox: http://www.rockbox.org/ A distribution for portable media players. Supports a wide range of players and open to new ones!http://www.rockbox.org/
105
105 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Embedded distributions (2) Poky: http://www.pokylinux.org from OpenedHand GNOME-based Linux distribution for mobile devices. Includes a Sato graphical application framework (GTK based). Can be tried with QEMU.http://www.pokylinux.org
106
106 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Embedded distributions (3) Emdebian: http://www.emdebian.org/http://www.emdebian.org/ Supports all embedded platforms Leverages standard Debian package descriptions and sources, but adapts them for embedded systems: uClibc usage, reduced package size (no documentation), removed dependencies, configured with less options... Packages not available yet, but makes it possible to build packages using Debian utilities (such as dpkg- cross ) Still lacks momentum. Contributors are welcome!
107
107 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Ready-made root filesystems Very useful to start porting work. Contain C library, and minimum apps. uClibc http://www.uclibc.org/toolchains.htmlhttp://www.uclibc.org/toolchains.html: i386, arm(eb), mips(el ), i386, ppc, sh4 Images where generated by Buildroot and include a native gcc toolchain ARM http://www.arm.com/linux/linux_download.html http://www.arm.com/linux/linux_download.html Include kernel image, bootloader, and rootfs ( cramfs or packages). Other architectures If some readers know more useful links, they are welcome!
108
108 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Commercial or community solutions? Commercial distributions and toolsets Best if you don't have your own support resources and have a sufficient budget Really help focusing on your real job: making an embedded device. You can even subcontract driver development to the vendor Community distributions and tools Best if you are on a tight budget Best if you are willing to build your own embedded Linux expertise and train your own support resources. In any case, your products are based on Free Software!
109
109 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Practical lab – A tiny embedded system Time to start Lab 3! Create and configure a minimalistic Linux embedded system Install and use BusyBox System startup with /sbin/init Setup a simple web interface
110
110 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Embedded Linux system development Choosing filesystems
111
111 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Block device or MTD filesystems Block devices Floppy or hard disks (SCSI, IDE) Compact Flash (seen as a regular IDE drive) RAM disks Loopback devices Memory Technology Devices (MTD) Flash, ROM or RAM chips MTD emulation on block devices Filesystems are either made for block or MTD storage devices. See Documentation/filesystems/ for details. Documentation/filesystems/
112
112 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Traditional block filesystems Traditional filesystems Hard to recover from crashes. Can be left in a corrupted (“half finished”) state after a system crash or sudden power-off. ext2 : traditional Linux filesystem (repair it with fsck.ext2 ) vfat : traditional Windows filesystem (repair it with fsck.vfat on GNU/Linux or Scandisk on Windows)
113
113 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Journaled filesystems Designed to stay in a correct state even after system crashes or a sudden power-off All writes are first described in the journal before being committed to files Write an entry in the journal Write to file Application Write to file User-space Kernel space (filesystem) Clear journal entry
114
114 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Filesystem recovery after crashes Reboot Journal empty? Execute journal Filesystem OK Yes Thanks to the journal, the filesystem is never left in a corrupted state Recently saved data could still be lost Discard incomplete journal entries No
115
115 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Journaled block filesystems Journaled filesystems ext3 : ext2 with journal extension reiserFS : most innovative (fast and extensible) Caution: needs at least 32 MB! reiser4 : the latest version. Available through patches (not in mainstream yet). Others: JFS (IBM), XFS (SGI) NTFS : now well supported by Linux (in userspace). Also has some journaling.
116
116 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Compressed block filesystems (1) Cramfs Simple, small, read-only compressed filesystem designed for embedded systems. Maximum filesystem size: 256 MB Maximum file size: 16 MB See Documentation/filesystems/cramfs.txt in kernel sources. Documentation/filesystems/cramfs.txt
117
117 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Compressed block filesystems (2) Squashfs: http://squashfs.sourceforge.nethttp://squashfs.sourceforge.net A must-use replacement for Cramfs! Also read-only. Maximum filesystem and file size: 2 64 bytes! Achieves better compression and much better performance. It supports block sizes up to 64 K (instead of 4K) for greater compression, and even detects duplicate files! Actively maintained but released as a separate patch so far. Expect it to be mainlined soon. Successfully tested on i386, ppc, arm and sparc. Benchmarks: (roughly 3 times smaller than ext3, and 2-4 times faster) http://elinux.org/Squash_Fs_Comparisons http://elinux.org/Squash_Fs_Comparisons
118
118 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 ram filesystems Useful to store temporary data not kept after power off or reboot: system log files, connection data, temporary files... Traditional block filesystems: journaling not needed. Many drawbacks: fixed in size. Remaining space not usable as RAM. Files duplicated in RAM (in the block device and file cache)! tmpfs (Config: File systems -> Pseudo filesystems ) Doesn't waste RAM: grows and shrinks to accommodate stored files Saves RAM: no duplication; can swap out pages to disk when needed. See Documentation/filesystems/tmpfs.txt in kernel sources. Documentation/filesystems/tmpfs.txt
119
119 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Mixing read-only and read-write filesystems Good idea to split your block storage into A compressed read-only partition (Squashfs) Typically used for the root filesystem (binaries, kernel...). Compression saves space. Read-only access protects your system from mistakes and data corruption. A read-write partition with a journaled filesystem (like ext3) Used to store user or configuration data. Guarantees filesystem integrity after power off or crashes. Ram storage for temporary files (tmpfs) Squashfs read-only compressed root filesystem ext3 read-write user and configuration data tmpfs read-write volatile data Block Storage RAM
120
120 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 The MTD subsystem MTD Chip drivers Linux filesystem interface CFI flash MTD “User” modules Memory devices hardware Flash Translation Layers for block device emulation Caution: patented algorithms! NFTL FTL INFTL DiskOnChip flash RAM chips ROM chipsNAND flash Block device Virtual memory Virtual devices appearing as MTD devices jffs2Char deviceBlock device Read-only block device yaffs2
121
121 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 MTD filesystems - jffs2 jffs2 : Journaling Flash File System v2 Designed to write flash sectors in an homogeneous way. Flash bits can only be rewritten a relatively small number of times (often < 100 000). Compressed to fit as many data as possible on flash chips. Also compensates for slower access time to those chips. Power down reliable: can restart without any intervention Shortcomings: low speed, big RAM consumption (4 MB for 128 MB of storage).
122
122 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Mounting a jffs2 image Useful to create or edit jffs2 images on your GNU / Linux PC! Mounting an MTD device as a loop device is a bit complex task. Here's an example for jffs2, for your reference: losetup /dev/loop0 root.jffs2 mknod /dev/mtdblock0 b 31 0 (if not done yet) mkdir /mnt/jffs2 (example mount point, if not done yet) modprobe block2mtd echo "/dev/loop0" > /sys/module/block2mtd/parameters/block2mtd mount -t jffs2 /dev/mtdblock0 /mnt/jffs2
123
123 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 MTD filesystems - yaffs2 yaffs2 : Yet Another Flash Filing System, version 2 yaffs2 home: http://www.aleph1.co.uk/yaffsoverviewhttp://www.aleph1.co.uk/yaffsoverview Features: NAND flash only. No compression. Several times faster than jffs2 (mainly significant in boot time). Consumes much less RAM. Also includes ECC and is power down reliable. License: GPL or proprietary Ships outside the Linux kernel. Get it from CVS: http://aleph1.co.uk/cgi-bin/viewcvs.cgi/yaffs2/ http://aleph1.co.uk/cgi-bin/viewcvs.cgi/yaffs2/
124
124 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Filesystem choices for block flash devices Typically for Compact Flash storage Can't use jffs2 or yaffs2 on CF storage (block device). MTD Block device emulation could be used, but jffs2 / yaffs2 writing schemes could interfere with on-chip flash management (manufacturer dependent). Never use block device journaled filesystems on unprotected flash chips! Keeping the journal would write the same sectors over and over again and quickly damage them. Can use ext2 or vfat, with the below mount options: noatime : doesn't write access time information in file inodes sync : to perform writes immediately (reduce power down failure risks)
125
125 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Filesystem choice summary Storage type? choose jffs2 or yaffs2 read-only or read-write Read-only files? MT D Block Contains flash? choose Squashfs read-only choose Squashfs read-only choose ext2 noatime + sync mount options Volatile data? Volatile data? Choose tmpfs Choose ext3, reiser4, XFS or JFS No Yes No Yes No
126
126 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Embedded Linux system development References
127
127 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Linux porting projects Useful to find patches, binaries, documentation, toolchains... Only ports for embedded systems are listed arm : http://www.arm.linux.org.uk/ See also http://www.linux-arm.org/ (from ARM Limited)http://www.arm.linux.org.uk/http://www.linux-arm.org/ avr32 : http://avr32linux.org/http://avr32linux.org/ m68k : http://www.linux-m68k.org/http://www.linux-m68k.org/ mips : http://www.linux-mips.org/http://www.linux-mips.org/ ppc : http://penguinppc.org/embedded/http://penguinppc.org/embedded/ sh : http://linuxsh.sourceforge.net/http://linuxsh.sourceforge.net/ xtensa : http://xtensa.sourceforge.net/http://xtensa.sourceforge.net/
128
128 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Useful reading (1) Embedded Linux System Design and Development P. Raghavan, A. Lad, S. Neelakandan, Auerbach, Dec. 2005. http://free-electrons.com/redirect/elsdd-book.html Very useful book covering most aspects of embedded Linux system development (kernel and tools). http://free-electrons.com/redirect/elsdd-book.html Building Embedded Linux Systems, O'Reilly By Karim Yaghmour, April 2003 http://www.oreilly.com/catalog/belinuxsys/ Useful, but misses 4 years of community progress. http://www.oreilly.com/catalog/belinuxsys/
129
129 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Useful reading (2) http://www.denx.de/wiki/DULG/Manual http://www.denx.de/wiki/DULG/Manual Lots of useful command examples, generic help and advice for embedded Linux systems. See http://www.linuxdevices.com/articles/AT2969812114.html for more books on Linux for embedded systems.http://www.linuxdevices.com/articles/AT2969812114.html
130
130 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Useful web sites LinuxDevices.com: http://linuxdevices.comhttp://linuxdevices.com Weekly newsletter with news and announcements about embedded devices running Linux. Articles, whitepapers, and Linux embedded devices catalog. An excellent site to follow industry news!
131
131 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Training labs Training labs are also available from the same location:http://free-electrons.com/training/devtoolshttp://free-electrons.com/training/devtools They are a useful complement to consolidate what you learned from this training. They don't tell how to do the exercises. However, they only rely on notions and tools introduced by the lectures. If you happen to be stuck with an exercise, this proves that you missed something in the lectures and have to go back to the slides to find what you're looking for.
132
132 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Related documents http://free-electrons.com/training Introduction to Unix and GNU/Linux Embedded Linux kernel and driver development Free Software tools for embedded Linux systems Audio in embedded Linux systems Multimedia in embedded Linux systems http://free-electrons.com/articles Advantages of Free Software in embedded systems Embedded Linux optimizations Embedded Linux from Scratch... in 40 min! Linux USB drivers Real-time in embedded Linux systems Introduction to uClinux Linux on TI OMAP processors Free Software development tools Java in embedded Linux systems Introduction to GNU/Linux and Free Software Linux and ecology What's new in Linux 2.6? How to port Linux on a new PDA All the technical presentations and training materials created and used by Free Electrons, available under a free documentation license (more than 1500 pages!).
133
133 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 How to help If you support this work, you can help... By sending corrections, suggestions, contributions and translations By asking your organization to order training sessions performed by the author of these documents (see http://free- electrons.com/training)http://free- electrons.com/training By speaking about it to your friends, colleagues and local Free Software community. By adding links to our on-line materials on your website, to increase their visibility in search engine results.
134
134 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Embedded Linux system development Annex section Automatic generation of a full system with BitBake / OpenEmbedded
135
135 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 BitBake / OpenEmbedded http://openembedded.org BitBake: general purpose root filesystem / distribution build system. OpenEmbedded: BitBake metadata for building embedded systems. Now official build system for both OpenZaurus and Familiar projects. Already used by many embedded system developers ( arm, powerpc, x86...). Drawbacks Very long runs. Powerful but complex. Long learning curve.
136
136 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 OpenEmbedded packages Package directories ( packages/ / ) Correspond to 1 tool More than 1000 tools supported (March 2005). Should already satisfy most of your needs! Contain package description and patch files. Package description files ( packages/ /*.bb ) Correspond to 1 tool version More than 4500 (March 2005) Describe how to fetch the sources, what patches to apply and how to configure and build the tool. A very nice way for all embedded system developers to share their experience and compete only on the embedded system itself! That's why you are using Free Software / Open Source!
137
137 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 BitBake features (1) Generates everything from scratch, using package descriptions. Implemented in Python. Created from Gentoo's emerge tool. Still many similarities. Fetches sources from the Internet. Applies patches. Configures, compiles and deploys (copies to the root filesystem and creates packages), including the C library. Even builds the compiler and cross-compiler versions you specified, as well as configuration tools (autoconf...).
138
138 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 BitBake features (2) Supports both glibc or uClibc! Can be used to compile for several architectures in parallel. Need to duplicate build directories (just that) though. Supports downloading from mirrors (for GNU, SourceForge...) Supports several package formats:.rpm,.ipk,.deb Can be used to (cross)compile a single package: bitbake dropbear
139
139 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 BitBake requirements RAM: at least 512 MB (1 GB recommended) Otherwise, runs are extremely long (because of swapping) Disk space: at least 5 GB (BitBake doesn't clean up sources after compiling) Software: http://openembedded.org/wiki/RequiredSoftwarehttp://openembedded.org/wiki/RequiredSoftware System: GNU / Linux distribution (doesn't have to be x86 ) Python: 2.3.0 or later Recent versions of standard development tools. Best to use a recent GNU/ Linux distribution ccache: C compiler cache. Psycho: Just In Time Compiler for Python. Time: several hours!
140
140 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Configuring BitBake (1) Full details on http://openembedded.org/wiki/GettingStartedhttp://openembedded.org/wiki/GettingStarted Get the BitBake and OE sources Create and source an environment setting script (example) export PATH=$HOME/oe/bitbake/bin:$PATH export BBPATH=$HOME/oe/openembedded Pick up a machine definition in openembedded/conf/machine/, or create your own. This defines the kernel, modules and low-level user- space tools mandatory to run the system services. Pick up a distribution definition in conf/distro/ or create your own. This defines the user programs that you will use.
141
141 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Configuring BitBake (2) Create a build/ or build- / directory for each target platform Copy openembedded/conf/local.conf.sample to conf/local.conf in the build directory. Override MACHINE, DISTRO and others default OE settings in your conf/local.conf file.
142
142 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Running BitBake Pick up a default system image in openembedded/packages/meta/ or make your own. Several images, such as opie-image (Qt based) or gpe-image (GTK based) can be available for the same core distribution. Run BitBake to create your system image: bitbake Or have BitBake create all available packages: bitbake world Now, be patient! It will take hours for your machine to complete the job.
143
143 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Using BitBake behind a proxy BitBake retrieves sources for a significant number of packages directly through CVS. CVS port often blocked by proxies In this case, can use an HTTP mirror with tarballs generated every day: CVS_TARBALL_STASH = "http://oesources.org/source/current/" Highly protected networks with no outside HTTP access can mirror the above site on their Intranet.
144
144 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 OpenEmbedded weaknesses Too modular Great flexibility and great for development. But too many shell scripts duplicating the same tests (environment variables, existence of files or devices, device information) over and over again, unaware of what has already been tested. Too generic Generic scripts testing things or features which are not present in the system. Still too close to a generic GNU/Linux system. All this costs tens of seconds in boot time! Execution performance is all right though.
145
145 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Tips for improving system performance At the end of development with OE, when everything works fine. Remove unneeded and duplicate tests in init scripts. Even better: replace individual init scripts by a single startup one. Remove any file or executable you do not need. Look for duplicate files. Block storage: put all your programs and libraries in a SquashFS partition! Reading files faster can boost startup time too.
146
146 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 BitBake / OE resources FOSDEM 2005 presentation, by Michael “Mickey” Lauer http://www.vanille.de/tools/FOSDEM2005.pdf http://www.vanille.de/tools/FOSDEM2005.pdf BitBake user manual http://bitbake.berlios.de/manual/ http://bitbake.berlios.de/manual/ BitBake / OpenEmbedded Wiki: http://openembedded.org/wiki http://openembedded.org/wiki OE mailing lists http://www.openembedded.org/contact http://www.openembedded.org/contact
147
147 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com 9/19/2016 Thanks To the OpenOffice.org project, for their presentation and word processor tools which satisfied all my needs.OpenOffice.org To the Handhelds.org community, for giving me so much help and so many opportunities to help.Handhelds.org To the members of the whole Free Software and Open Source community, for sharing the best of themselves: their work, their knowledge, their friendship. To people who sent corrections: Daniel Vidyanto, Jan Veldeman, Matti Aaltonen, Ralph Corderoy
148
Custom Development System integration Embedded Linux demos and prototypes System optimization Linux kernel drivers Application and interface development Free Electrons services Technical Support Development tool and application support Issue investigation and solution follow-up with mainstream developers Help getting started Embedded Linux Training Unix and GNU/Linux basics Linux kernel and drivers development Real-time Linux uClinux Development and profiling tools Lightweight tools for embedded systems Root filesystem creation Audio and multimedia System optimization Consulting Help in decision making System architecture Identification of suitable technologies Managing licensing requirements System design and performance review http://free- electrons.com
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.