Hello Joseph,
On Tue, Nov 03, 2015 at 01:31:55AM +0100, Joseph Lee wrote:
I have one more question. i know that ram__fs file system creates a storage area in RAM and will continue using it util the system runs out of RAM. So when i put a large file in the file system it says out of memory. Could you please tell me maybe if there is a way to store a large file into sdcard partition?
First, the RAM quota that may be used by the ram_fs can be configured in the init <start> node with the sub node
<resource name="RAM" quantum="..."/>
but you're right: The file size is limited by the amount of available RAM of the platform, which is not that much on the i.MX53 QSB.
If you target to use an SD card as storage media you'll need a stack of components (bottom-up)
- A driver for the SD card controller and the actual SD card (protocol). We are busy to stabilize our implementation for i.MX53 currently on the following branch
https://github.com/m-stein/genode/commits/1497_usb_armory_demo
but you may give the "make run/sd_card" scenario a try. Please make sure to use a separate SD card for such testing to not corrupt your master card. The SD-card driver provides a Block session to access the contents of the actual card.
- Optionally, you may need a partition-table driver if your card is partitioned, which will be the case if the card is also your boot device. Our implementation is part_blk which supports MSDOS as well as GPT partition tables and provides a Block session for each partition found on the Block session used by the driver.
- Next, you'll need a file-system implementation, which uses the Block session and provides a file-based API. Our implementation for FAT uses the ffat library. Please have a look at
repos/libports/run/libc_ffat.run.
Depending on the use case the file-system library is directly linked to the application or into a File_system server in Genode 15.08. We have still some loose ends here that we're busy to tie up. In the upcoming Genode 15.11, we strive to consolidate all file-system related functionality into the VFS, which renders the use of a file-system server vs. a local plugin instance just a matter of configuration.
To sum it up from the background of your use case I have no ready to use configuration you may just reuse. Therefore, I suggest you walk on step by step and ask specific questions if issues occur. One side note from me: If you could imagine to use ext2 on a second partition of your SD card, you may use the rump_fs server like in
repos/dde_rump/run/rump_ext2.run
which also illustrates how to configure your libc application with a mount point for the file system.
Regards