Article: Update on “Where’s the free beer?”
May 9, 2003 — by LinuxDevices Staff — from the LinuxDevices Archive — 1 viewsWe last reviewed the availability of freely downloadable embedded Linux distributions (distros) over a year ago. In this update article we show that much is still available — some which is quite up-to-date, and some which is not. We also review sources of software pieces that alone are not sufficient to constitute what we would call a distribution.
Embedded Linux distributions
Firstly, an Embedded Linux distro differs from desktop/server distributions in that embedded Linux distros are not intended to be stand-alone development and target solutions. An embedded Linux distro provides development and target support in conjunction with an existing development environment. This existing environment is most frequently a Linux desktop, although some embedded Linux distros work in conjunction with Microsoft Windows or other Unix desktops.
What is “free”?
For the purposes of this article, “free” means freely downloadable — either anonymously or through a free registration procedure. Some freely downloadable software may not be legally usable in commercial products or on more than one system. Read the agreement associated with what you download to see the terms of usage.
We remind readers that the GPL and Open Source, in general, do not require vendors to make their software available free of charge. The intent of the GPL, in this regard, is to make the source available to those who also obtain binary images so that they may read and modify their software. We commend and thank those vendors and other developers that choose to make their efforts available for free download.
Vendor distributions
We chose to examine the offerings of FSMLabs, LynuxWorks, MetroWerks, MontaVista, SnapGear, SYSGO, and TimeSys. Each of these organizations sells comprehensive embedded Linux solutions. Presumably they each make the source code of all GPL (GNU General Public License) and other open source components available to their customers.
A few words about GPL
Without going into a dissertation on GPL, it should be noted the GPL expects companies developing or selling products based on (or containing) embedded Linux make source code to the GPL components used in their products available to their end customers who request it. Therefore, as a consequence of GPL, if you need kernel sources for some specific processor, you ought to be able to buy a device known to be based on that processor, that uses embedded Linux, and then request and obtain source to that processor's kernel from the maker (or supplier) of that device.
Indeed, some device and system manufacturers do make sources to the embedded Linux kernel and other open source software used in their products freely available (by some other means) to their end customers. Unfortunately, however, we have found that many device and system vendors appear to consider themselves “above the law” when it comes to the GPL's source code obligations. For example, the author recently purchased an embedded Linux powered device and, when he asked the vendor's support person how to obtain a copy of the Linux they used, was politely informed that their product uses “a proprietary version of Linux.” Additionally, some developers of kernel loadable module code, such as for device drivers, believe that by packaging their code as a loadable module it need not be released under the GPL. Thus, you might not be able to obtain source to some of the Linux code in your system even if you are one of their customers.
Host environment restrictions
A potential difficulty to keep in mind is that tools that run under Linux have may have many dependencies. The version of the compiler, libraries, or other tools may be problematic. The embedded Linux distributions usually do not provide all of the necessary host pieces — they depend on the developer having already installed, say, a particular version of Red Hat. This is needlessly difficult; instead, a distribution could include an entire directory structure that includes all necessary, and correct, versions of libraries and tools.
Part 1 — Free stuff from commercial vendors
None of vendors listed below make all of their GPL and other open source software available for free download. In addition, vendors are entitled, of course, to choose how they license the proprietary software that they develop. The vendors below are listed in alphabetical order.
- FSM Labs — FSM Labs is known for their hard real-time extension to Linux called RTLinux. FSM Labs provides embedded Linux solutions as well. They make freely available for download their RTLinux/Free product. This consists of the kernel support for RTLinux/Free for alpha, i386, mips, and ppc processors. To download RTLinux/Free, start by filling out this form. FSMLabs provides RTCore, a hard real-time operating system, which forms the basis of their products such as RTLinux/Pro. Incidentally, RTCore also provides real-time support for additional operating systems besides just Linux. FSM Labs provides services such as support and porting as well.
- LynuxWorks — LynuxWorks has provided a proprietary hard real-time embedded operating system (RTOS), LynxOS, for many years. They also provide embedded Linux with their product called BlueCat Linux. They currently make an unsupported “evaluation” version of BlueCat Linux 4.0 for non-commercial use on x86 targets available for free download. To download, fill in the form located here. The download consists of a compressed tar file that includes host RPMs for such things as: gcc, glibc, mkboot, mkrootfs, and several others. RPMs for the target include such as: apache, bash, cracklib, fileutils, glibc, pam, SysVinit, and zlib. In addition, their web site gives links to their documentation. In particular, you may find their 204-page User's Guide informative reading for embedded Linux concepts in general. LynuxWorks' proprietary LynxOS RTOS also provides Linux compatibility and can serve as a (non-Linux) alternative for applications requiring “hard real-time” support.
- MetroWerks — MetroWerks recently acquired Lineo, so www.lineo.com now forwards to an embedded Linux area of MetroWerks' website. This is the place to look for traditional embedded Linux materials, and here you will also find a wealth of freely downloadable software. For example this page provides full embedded Board Support Package implementations for x86, PowerPC (11 different boards), MIPS (6 different boards), ARM (6 different boards), ColdFire (just the Motorola 5272C3), and SH (7 boards, SH3 and SH4). MetroWerks also offers the opportunity to obtain an evaluation copy of their Platform Creation Suite (for info, contact sales@metrowerks.com — naturally). If you follow the links to “downloadable software” from their home page, you may only find a version of CodeWarrior, their commercial IDE, available for download (interestingly, even though this is for embedded Linux development, it is a tool that runs on Microsoft Windows).
- MontaVista Software — MontaVista makes a “Preview Kit” available for free download. The kit provides a Linux kernel plus a variety of tools and other software components. To download, first fill out the form located here, after which you will receive download instructions and a decryption key via email. The preview kits only support Red Hat 7.2, Mandrake 8.1, and SuSE 7.3 as development (host) environments. Versions are available to support x86, mips little and big endian, PowerPC (8xx, 7xx, 74xx, 82xx), arm (ADS Graphics Client Plus / Intrinsyc Cerfboard, Integrator (920t, 720t)), and ssh-4 target hardware. In addition to their free, downloadable offerings, MontaVista also provides commercial versions of Linux products they call Professional Edition, Carrier Grade Edition, and Consumer Electronics Edition, as well as Java and graphics products.
- SnapGear — SnapGear provides an ISO image of kernels and toolchains for a number of embedded Linux systems and devices (some of which have been reviewed at LinuxDevices.com). The toolchain architectures supported are arm-elf, arm-linux, i586-linux, m68k-elf, shlinux, and sparc-elf. As of this writing, SnapGear's download page appears to be quite busy — it may take 2 or 3 days to be able to download their ISO image, but it can be worth the wait. In addition to toolchains and Linux kernels, tools, and applications, there is support for uCLinux — a specialty of SnapGear. The SnapGear freebees are available from snapgear.org (as distinct from their main corporate website, which is snapgear.com).
- SYSGO — SYSGO provides a number of embedded Linux “demos”. Much of their site is in German, but there is also a fair amount in English. Their demos include: Hello World, BusyBox, Webserver, NFS Mount, and RTAI. The demos are floppy images. The place to go for downloads is here, where you will be asked to register. Once you register, you can download embedded Linux distributions for: Pentium, PowerPC (14 boards), ARM (2 boards), XScale (3 boards), Super H (SH-3 and SH-4), Sparc (ultra Sparc), MIPS (6 boards).
- TimeSys — TimeSys specializes in embedded and real-time Linux and Java. In addition to a GPL embedded Linux distribution (and associated BSPs), they also sell various proprietary tools that support real-time Linux system development and analysis. Accessing the free downloads for the TimeSys embedded Linux distros requires free registration. Once registered, you can download versions for: Pentium, PowerPC (14 boards), ARM (2 boards), XScale (3 boards), Super H (SH-3 and SH-4), Sparc (ultra Sparc), MIPS (6 boards). The downloadable images from TimeSys are complete embedded Linux distros; they provide root filesystems, tool chains, kernel source, and the other pieces required to get a target board up and running with Linux.
Developers of embedded Linux based systems and software require a number of components: a Linux kernel, compile-link tool chain, libraries, shells, device drivers, etc. Many of these pieces are freely available by themselves. Indeed, one of the most important services that a Linux vendor offers — whether embedded or desktop/server oriented — is that of collecting together and testing these pieces. You too, can create your own distribution by performing that process yourself. In fact, this effort has been successfully employed by a great many embedded Linux projects — sometimes coupled with training from a consulting firm or assistance from an outside contractor.
Here is a quick list of other related sources of downloadable software (with some help from Building Embedded Linux Systems by Karim Yaghmour) . . .
- kernel.org — x86 and more — The official source of the Linux kernel, available from kernel.org, supports many processor architectures. However, newer versions, or versions with additional capabilities, can be found elsewhere; some of these are listed below. Kernel.org is generally considered the best place to obtain the Linux kernel source for most x86 family processors, including non-Intel (e.g. AMD) processors.
- ARM — The ARM site includes documentation on ARM machines, processors, other ports, resources, problems, options/parameters, howtos, and general Linux info. The site's “developer” section includes info on the kernel, booting, and where to obtain further documentation.
- PowerPC — This Linux PowerPC site is well organized and has a wealth of information. Some of the information pertains to non-embedded platforms such as Macintoshes. However, the site also includes a dedicated section on embedded development resources where you can find useful info on general hardware support, a Linux for PowerPC embedded systems howto, a cross-compiling for PowerPC mini-howto, and even a section on TiVo.
- MIPS — Like the PowerPC, MIPS processors range from those for embedded devices to those for high-end, multi-CPU servers. This site has information appropriate for the whole range. There is information about the kernel, distributions, toolchains, supported hardware, supported CPUs and more.
- SuperH — The SourceForge project site for the SuperH processor is somewhat outdated, but it does have some useful links and other info that may be valuable. Here are additional sources of SuperH Linux software . . .
- M68K — This site provides news, information, and distributions for the Motorola 68K architecture. However, most of its contents seem to be rather old.
Much additional useful information on the Embedded Linux software available from both commercial and noncommercial vendors and projects can be found in the following LinuxDevices.com publications . . .
- Embedded Linux Commercial Distributions
- Open Source Embedded Linux Implementations
- Embedded Linux GUI/Windowing Software
- Real-time Linux Software
About the author: Kevin Dankwardt is a LinuxDevices.com Contributing Editor and is founder and President of K Computing, a training and consulting firm. He has spent most of the last 9 years designing, developing, and delivering technical training for such subjects as Unix system programming, Linux device drivers, real-time programming, and parallel-programming for various organizations world-wide. He received his Ph.D. in Computer Science, in 1988.
Do you have comments or questions on this story? talkback here
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.