views:

451

answers:

7

I want to play around with some embedded linux. I want it to be able to run on an x86 processor (for start, it will be running on my regular PC). I have looked online, but the ones I have found seem hard to setup or lack proper documentation. So what are some good embedded x86 compatible linux distros that are easy to setup or have good documentation on how to get things setup?

+1  A: 

BusyBox

BusyBox is designed to be a small executable for use with the Linux kernel, which makes it ideal for use with embedded devices. It provides a fairly complete environment for any small or embedded system.

psihodelia
A: 

What do you actually mean by "Embedded Linux"? It depends what you want to run on that.

For example you can use OpenWRT, but there are surely others which might better fit your purpose.

If you want to build some multimedia thing, Moblin might be a solution as well.

Michal Čihař
Just as a thought, I was thinking of making a dedicated game machine. Basically a linux that is built specially for 2d or 3d games.
QAH
Then Moblin might be good choice for you. But don't expect something to play 3d games to be really small, because of all required libraries for that.
Michal Čihař
Built especially for 2d or 3d games is kind of tricky, because that implies having opengl drivers and those are not (completely) free and hardware specific - and you'd need Xorg as well.
MarkR
+1  A: 

You may want to take a look at the OpenEmbedded project. It is a meta-distribution, meaning it's more of a distribution construction kit rather than ready distribution. But using it may take effort on your part. The same applies to all embedded solutions, though.

Michael Krelin - hacker
+7  A: 

Since the definition of "embedded" vary depending on who you talk too, what is considered an embedded Linux distribution will also vary.

As other have said, you can go with distribution building tool kit, like :

You can also use any "standard" Linux distribution, which can often be customized for an embedded environment. They have the advantage of being heavily tested in their normal environment. So you can choose any of :

Finally, you can also build your own completely, from source. In that case, BusyBox will probably be helpful since it provide a lot of functionalities and common application. To help you with that, there is the nice 3 parts series : Building Tiny Linux Systems with Busybox (part 1, part 2, and part 3)

Laurent Parenteau
I would add that the "easiest" will also depends. Easiest to install? Easiest to customize (to your need)? Easiest to get support for?
Laurent Parenteau
A: 

I suggest debian

vitaly.v.ch
A: 

I'd start by having a look at the output of the buildroot tool which comes with busybox.

You are suggesting that you want to make your own Linux distribution, this is fine but you really need to know how to use an existing one first. I am assuming you understand fully how Linux boots and works on a basic level. You'll need

  • Some kind of boot media (in some cases this CAN be a rom, but usually isn't) that the firmware can boot from (in most cases the firmware on x86 is some kind of bios, or bios-like - except on things like Macs)
  • A boot loader - I like to use syslinux because it's easy (and boots from a dos filesystem)
  • A kernel
  • A root filesystem of some kind - you can use an initramfs for this in which case, it's loaded by the bootloader and expanded at boot time. Initramfs is cool, it avoids the need for a "real" root fs or block device drivers etc (at the expense of some ram, but ram is easy).
  • A C library (unless all your exes are static linked)
  • Some userspace software

I'd strongly recommend using an emulator (such as vmware) to test this, it reduces turnaround time a lot. A development system will need to have rather a lot of disc space, as you'll probably need to compile everything in the above list, and possibly some other tools as well (such as gcc and C library) which aren't small. Your build box will probably need to be running a proper Linux distribution.

I have done this and it's good fun, but frustrating at times (debugging can be a mission in itself)

Happy hacking :)

MarkR
+1  A: 

You might want to look at the Beagle Board.

It's not x86, but decent community of developers, and it will give a good idea how to build and run embedded Linux.(i.e. flash file system, somewhat limited RAM...) and its real cheap!

I can also recommend these two books:

Building Embedded Linux Systems and

Embedded Linux Primer

simon