Embedded Linux on Arduino DUE

Hello Arduino Community,

I have worked on arduino UNo board and now i'm migrating onto Arduino DUE .Is there a way where we can run an embedded linux such on an ARDUINO DUE BOARD ? .

If yes please let me know the steps for the same .

Thanks and Regards,
Santhosh

not going to happen

from the kernal FAQ page :

Q: What Hardware Is Supported?
A: A minimal Linux installation requires a machine for which a port exists, at least 2Mb of RAM. {snip}

http://www.tldp.org/FAQ/Linux-FAQ/kernel.html

Why on earth do you want to cripple the Due by running Linux.
It's non real time OS is just rubbish for the sort of things you can do with a Due.

If you want a cheap crippled Linux machine there is always the raspberry Pi.

@Grumpy_Mike: +1

@sanpai: if you really need some high level OS-like functionality, why not thinking about using an RTOS?

Hello Mr Mike and Nathaniel,

Thanks for your suggestion , RTOS might be an good idea . Will start searching them out .

And again thanks for your suggestion.

Actually these guys are quite wrong, you can run Linux on an AVR.

It would be a pretty serious undertaking and the results might not be that pretty/responsive.

Actually, they are quite correct.
The AVR "running" Linux is actually an ARM processor running under emulation on the AVR.

I read a web page where someone ran Linux on an arduino and SD card. It took 5 hours to get to the password prompt so for all Intents and purposes you can't.

It took 5 hours to get to the password prompt

Your point? Just gives me time to remember my password :slight_smile:


Rob

How much slower is the Due compared to a 50-60 MHz PowerPC 750 based board? I have seen Embedded Linux running on such boards before (remember U-boot, Denx Linux, etc.?). This not desktop Linux running 2.26 (?) kernel. You pick and choose the individual software components to build the kernel.

I remember the memory sizes for the boards where I saw embedded Linux and they typically had 8MB onwards of flash for program storage and in excess of 8 MB in SDRAM for data. Not that those boards were much faster or slower but it is the memory of Due that will present problem for embedded Linux.

AWOL:
Actually, they are quite correct.
The AVR "running" Linux is actually an ARM processor running under emulation on the AVR.

Regardless whether it's running an emulator or not, it's still running Linux on it's own h/w.

An emulator is only a translator of sorts after all.

Besides, the question was about the DUE, which has an ARMv7 core. Linux has and does run on the Cortex-M3.

The real issue is the lack of RAM, but the DUE can support external RAM no problem.

Like I said initially, it can be done, but it's probably not worth it.

We can customize the Linux to run on Due.
But what we want to achieve with this?
Any value added that we are getting with this?

Any value added that we are getting with this?

None that I can see.

You'll just wind up with the worse of both worlds, not the best.


Rob

I believe Graynomad is right. It would take way too much effort to do it. Here is why :-

  1. Need to do something about the 8U cpu controlling the PC interface (Programming Port). The 8U has a boot code already programmed in factory. Would it be possible to do it by ourselves? (Then someone could try improving the upload speed!)

  2. Need to attach SDRAM or NAND Flash to the I/O pins of Due. The quality of routing will be inferior to a board designed with the SDRAM/NAND sitting extremely close to the Sam3xA8E part. So, ext memory would suffer from speed issues.

  3. Mem interface requires a good number of pins. Are these pins available in Due pin mapping?

  4. What about power budgeting for the ext memory? (Total 130mA counting all I/O pins)

Did the hardware designers of Due ever envisioned having ext memory for this type of usage?

The principal advantage to a board vendor using embedded Linux is the complete freedom from royalty. That comes at the cost of having extra memory. Memory is generally cheaper than royalty. So, if someone is designing a new board with Sam3xa8e part, it would be a viable solution. With Due, as it is, I doubt it.

Mem interface requires a good number of pins. Are these pins available in Due pin mapping?

No, IMO the Due designers royally cocked up by not implementing the external memory feature, worse still they essentially stopped anyone else from doing so by using one of the pins (A5 or 6?) for no good reason.

I really think that allowing for even just 1MB of external SRAM would have been great, no good for this discussion but more than enough for most embedded Arduino-style applications.


Rob