LEM: a small Embedded Linux distribution
Root    Main Page

LEM    LEM is a small i386 linux distribution -8 Mo- which provides full network and X Server.
What is LEM ? , Download , Installation , Known bugs , History , Todo , Mailing List

Submit your article

  What is LEM ?
LEM an Embedded version of Linux that can fit on less than 8 Meg Disk Partition (Base + Xfree) or any other support like Flash disk IDE and the like.

It is based on Mandrake 6.1 (GLIBC 2.1) and easily scalable to suit your need.

The base version includes all the basics shells command needed to run and administrate a linux system for embedded hardware. Xfree SVGA can also be added to expand the capabilities of your system, it supports all the major SVGA video cards up to 32 bits colors with high resolution, ideal for LCD displays. It is network ready with TCP/IP built in.

The major changes since version 0.3 are:

OK, LEM isn't the smallest linux stuff ever made: Others are smaller  like hal91, trinux, mulinux... see LINKS.  LEM may be used when an X11R6 Server is needed.

LEM V0.6 is made from two files:

  Change Log
V0.61 Bug fixes...
V0.6 XFree 3.3.5, GLIBC 2.1, Tinylogin now used for login process
V0.3 More tools, Downsizing
V0.2 FTP Server bug fix, Downsizing
V0.1 First version


In this version, LEM is a tar.gz archive and is not yet self-installable. you will have some work to do... Sorry. 
So first you need an already installed linux like debian, mandrake, redhat, slack, suse... in alphabetic order : ) wich will permits you to transfer and configure lem for your target hardware. Your target harddrive, diskonchip or other will first be considered as an additional harddrive to your system.

Network / Id - hostname: default is lem 
echo "myhostname" > /yourtarget/etc/config/hostname 
- IP Address: default is 
echo "xxx.xxx.xxx.xxx" > /ytg/etc/config/ipaddr 
- Netmask: default is 
echo "xxx.xxx.xxx.xxx" > /ytg/etc/config/netmask 
- Network: default is 
echo "xxx.xxx.xxx.xxx" > /ytg/etc/config/network 
- Broadcast: default is 
echo "xxx.xxx.xxx.xxx" > /ytg/etc/config/broadcast 
- Gateway if needed: default is 
echo "xxx.xxx.xxx.xxx" > /ytg/etc/config/gateway 
& edit /ytg/etc/init.d/network to uncomment gateway related line.
Kernel & Modules LEM comes with no kernel. It may not match your needs ;). Put a new kernel in /ytg/boot and add your needed modules in /ytg/lib/modules. 
All needed modules must be listed in /ytg/etc/modules, one per line, params and carrier return after each.
Misc. Edit /ytg/etc/fstab to match your hardware. 
and other /ytg/etc well known files if needed... 
Add /ytg/dev/something if needed...
X11R6. LEM comes with xfree86 for svga (XF86_SVGA) 3.3.5 . You may change / replace X server in 
/ytg/usr/X11R6/bin. Some X servers requires more libs. Check it with ldd: ldd yourXserver and add needed libs in /ytg/usr/X11R6/lib. It is better to run config after booting under your new target.

Your Application
Your application Check your application by ldd it. Add necessary libs. run ldconfig.
If your application isn't loaded more than one at a time consider linking libs statically if you need to save space.

Make it bootable
LILO See lilo man page...

And then...
ldconfig Run ldconfig to update the ld cache

  Known bugs
  • Guest anonymous access only with ftp / telnet server. Put a newline at the end of /etc/shells. Thanks to
  • Xterm does not work: libutempter.so.0.5 must be added in /usr/lib, then add ln -s links named libutempter.so.0 and libutempter.so. Thanks to to have corrected this bug
  • LEM does not reboot: relink /sbin/reboot to halt instead of /bin/busybox
  • /proc mounted twice: in rcS.d relink S10checkroot to init.d/chekroot and S30checkfs to init.d/checkfs


  Mailing List

© 1998-2000 ,
last update April 18, 2000.
main site
Linux is a registred trademark of Dr Linus Torvalds