1.2.1 GPL (GNU General Public License)    
2.0/5 3
Etlinux is a complete Linux-based system designed to run on very small industrial computers.




etLinux is an embedded linux distribution, intended for PC/104 boards with flash disk (like M-Systems DiskOnChip) with very little memory and disk space (starting from 2Mb of RAM and 2Mb of flash disk).

Subsequently we'll refer to the development platform as the "host system" and to the target machine (the one on which etLinux will run) ad the "target system".

Etlinux is a complete Linux-based system designed to run on very small industrial computers. It has been designed to be small, modular, flexible and complete.

Its reduced memory and disk requirements make it ideal for all cost-sensitive situations, while at the same time its modularity and completeness give the full power of unix even for embedded applications.

Etlinux is ideal in all embedded system applications where advanced unix facilities are a must: preemptive multitasking, multithreading, memory protection, fast I/O, enhanced reliability, speed, ...

Moreover, source code availability is a guarantee for the longevity of Etlinux based products.
But perhaps the greatest advantage over competitors is given by the enormous and proven availability of advanced development tools, documentation and sources, giving an effective edge to the developer and reducing the time to market.

In fact the availability of constantly updated quality C/C++ compilers, debuggers, libraries, interpreted languages, and other tools is the most compelling reason to switch away from old proprietary embedded development environments.

Here are some key features of "Etlinux":

· embedded cgi-capable WEB server
· a telnet server
· an email server, with the ability to execute commands sent by email from a remote site
· CORBA support
· easy-to-use remote file management
· the powerful Tcl scripting language
· a flexible package selection scheme, allowing an easy customization of the system
· source code available for every component


· Intel-compatible 386SX processor (or better)
· 2MB of RAM
· 2MB of disk (HD or M-Systems DiskOnChip)

Needed files:

From (or a mirror):

- clean linux kernel 2.0.38 source

From and

- etlinux-root-1.2.x-2MB.tar.gz (xxx Kb)
- linux-2.0.38.doc.patch.gz (2 Kb)
- flash_doc.tar.gz (24 Kb)
- linux-2.0.38.pc104.patch.gz (39 Kb)

(linux-2.0.38.doc.patch.gz is derived from M-Systems patch, modified to ease the compilation and upgraded to 2.0.38 kernel version).


These are the actions that need to be performed on the host system in order to get a functional etlinux system.

1) [Only if DiskOnChip support is required]

Unpack 2.0.38 linux kernel sources in a suitable place.
Apply the linux-2.0.38.doc.patch.gz.
Extract the binary DiskOnChip driver, flash_doc.tar.gz
For example, supposing you have the kernel source file linux-kernel-2.0.38.tar.gz and all the other relevant files in the ~/etlinux directory, the following commands will do:

$ cd ~/etlinux
$ tar xvfz linux-kernel-2.0.38.tar.gz
$ mv linux linux-2.0.38.doc
$ cd linux-2.0.38.doc
$ gzip -cd ../linux-2.0.38.doc.patch.gz | patch -p1
$ tar xvfz ../flash_doc.tar.gz
$ make mrproper
$ make menuconfig
... chose M-Systems DiskOnChip support ...
... configure other options ...
$ make dep; make clean
$ make zImage

Finally, install the compiled kernel image on the host system, as described in the kernel README file and in the Kernel-HOWTO, depending on your system setup.

2) [Only if DiskOnChip support is required]

Add the DiskOnChip device nodes in /dev:

$ su
... give root password ...
$ mknod /dev/fla b 62 0
$ mknod /dev/fla1 b 62 1
$ mknod /dev/fla2 b 62 2
$ mknod /dev/fla3 b 62 3
$ mknod /dev/fla4 b 62 4

Now you should be able to format a DiskOnChip and mount a filesystem on it.
For example, to format a DiskOnChip as minix and mounting it under /mnt:

$ mkfs.minix -c /dev/fla1
$ mount /dev/fla1 /mnt

3) Prepare a kernel source for the target system. This means decompressing again a clean 2.0.38 kernel source and applying the linux-2.0.38.pc104.patch.gz patch:

$ cd ~/etlinux
$ mv linux linux-orig
$ tar xvfz linux-kernel-2.0.38.tar.gz
$ mv linux linux-2.0.38.pc104
$ cd linux-2.0.38.pc104
$ gzip -cd ../linux-2.0.38.pc104.patch.gz | patch -p1
$ tar xvfz ../flash_doc.tar.gz
$ make mrproper
$ make menuconfig
... if you want VGA support, select it (otherwise you'll get
only serial line console ...
... if you don't want FPU support, select ET-Linux no-fpu ...
... chose M-Systems DiskOnChip support ...
... configure other options ...
$ make dep; make clean
$ make zImage
$ cp arch/i386/boot/zImage ../zImage.pc104

Keep the newly compiled kernel, you'll use it in a while...

4) [Only if DiskOnChip support is required]

Decompress the etlinux filesystem etlinux-root-1.2.x-2MB.tar.gz on mounted DiskOnChip.
Copy in it the previously compiled kernel.
Run plilo in order to allow target system booting from the DiskOnChip.
Here it is:

$ su
$ mount -t /dev/fla1 /mnt
$ cd /mnt
$ tar xvfz ~/etlinux/etlinux-root-1.2.x-2MB.tar.gz
$ cp ~/etlinux/zImage.pc104 .
$ rdev zImage.pc104 /dev/fla1
$ sbin/plilo -r /mnt
$ cd
$ umount /mnt

Now you can halt the host system, extract the DiskOnChip from its socket and place it in the target system.
Power on the target system and select from bios the option to boot from DiskOnChip (or similar, if present).
Reset and you should be all set.
Enjoy !

Like every product released by Prosa Srl, Etlinux is free software and is distributed with full source code. Our code is released under the GENERAL PUBLIC LICENSE (GPL) (some accompanying packages have different licenses, but they all qualify as Open Source).
Last updated on May 11th, 2005

0 User reviews so far.