u-boot and root filesystems

Hi,

I have some questions about u-boot for a project I'm working on. The uP is an ARM9.

I am wondering if it's possible to use u-boot to two things in one boot-up:

- to create a root filesystem on an SD card (I'm not interested in the secure digital functionality)

- to boot Linux using a Linux kernel image from inside this newly created root filesystem

Another question is how small can a functional rootfs be? I am hoping I can get it under 20 MB.

And a final question is: Is it possible to have a read-only filesystem? Or do some things (ie. /dev devices) have to be read/write?

Thanks, Pete

Reply to
psommerfeld
Loading thread data ...

You can have a bare bone system in 8M or so. But there is not much you can do other than starting a custom app.

No, /dev can be read-only, but /tmp amd /var must be writable.

Reply to
linnix

You can use U-boot to store a file system, not to create it. Whether you can use your specific ARM9 or not is depending on if u-boot supports the SD-interface on your chip. If it doesn't then you have to write a driver.

May beed modifications to U-boot, but I know of people that have done such modifications.

You can have a complete system with Linux kernel and small file system in 4 MB but you would have very little room for your own application

Yes, in a way, if you use a RAM disk, then the underlying flash image is not writable.

--
Best Regards,
Ulf Samuelsson
ulf@a-t-m-e-l.com
This message is intended to be my own personal view and it
may or may not be shared by my employer Atmel Nordic AB
Reply to
Ulf Samuelsson

In answer to most of your questions, please refer to which is an article I wrote last year on related topics.

It is irksome to run Linux off a write-protected root filesystem. Possible, yes - with tweaking - but it's much easier just to load the root filesystem into a RAMdisk and run entirely out of RAM. Faster, too.

As far as memory footprint goes, are you asking about flash storage requirements or RAM requirements? You can fit a fully functional Linux distribution and applications into 8Mb without difficulty. (The root filesystem can be compressed, remember. I've implemented turnkey x86-based Linux devices on a 4Mb CompactFlash). I would suggest 64Mb RAM, more if you intend to use X. It can be squeezed into less, but again it's irritating.

Reply to
larwe

There are no set rules for flash vs. ram. Very often, it's a trade off between costs and limitations. Nowadays, flash is sometimes cheaper than ram. There are still many systems with limited ram space, but flash is virtually unlimited.

You can compress everything on flash, but need more ram to decompress and run them anyway.

Reply to
linnix

I worked on linux project last year, which may give you some guidelines... We had a very functional rootfs that fit snuggly into

4MB (with JFFS2). We kept our app and additional packages (the most notable large ones were Python and Qt) in a separate partition in flash

- that took up a little over 20MB (also JFFS2, and we got better than

2:1 compression).

Of course, it all depends on what you want...

I'm now again working on a linux project, and I've just the other day used Busybox to get a minimal rootfs (NOTHING, except init and sh). It's only 75K. Of course, the caveat is you need glibc, too, and that's 2MB.

-bri

Reply to
Brian Silverman

Thanks everyone for the answers. Very useful info.

-- Pete

Brian Silverman wrote:

Reply to
psommerfeld

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.