F2FS support for latest linux sunxi (source linked)

Started by isidoro, December 19, 2013, 08:27:54 PM

Previous topic - Next topic



following Micko ( http://01micko.com/blog/blog/2013/07/12/f2fs-booting-linux-on-an-f2fs-flash-drive/ )
I applied the patch from https://github.com/nowcomputing/f2fs-backports and tried it on my A20 on a 13.10 ubuntu root fs found at http://cdimage.ubuntu.com/ubuntu-core/releases/13.10/release/ubuntu-core-13.10-core-armhf.tar.gz

Looks quite good.
So, here's the kernel sources (3.4.67 sunxi):


I've testing a 4Gb img with fs root under F2FS,


Hi isidoro,

Thanks for your work on this, I'm also interested to use it on a project.

I've successfully downloaded your kernel source, cross-compiled the kernel/modules and installed it on my A20.  I have converted the root filesystem /dev/mmcblk0p2 (aka /dev/root) to be f2fs.

dmesg reports:
[   14.295812] VFS: Mounted root (f2fs filesystem) readonly on device 179:2.
...although it appears to be mounted read/write:
root@A20:~# mount
/dev/root on / type f2fs (rw,relatime,background_gc=on,user_xattr,acl,active_logs=6)

Everything appears to be good so far.

Hopefully it will be good for a number of logfiles being written every few minutes. 
It also needs to be tolerant ungracious shutdown once per day (i.e. the power being cut without proper shutdown, which I have no control to prevent in my application).  However, it is acceptable/easy for me to write the whole sd-card again, from a backup image, if it does get screwed by this.
Time will tell!

Cheers & seasons salutations  :)


Hi Chris,

having done some tests,I've tried some small improvements,
so here are some suggestions:

make partition in f2fs mode with this parameters:

mkfs.f2fs -l f2fsonssd -o 3 /dev/mmcblk0p2

put this line in fstab to reduce read write access on fs:
/dev/mmcblk0p2  /  f2fs    defaults,noatime,discard  0 0

and finally add this line in uEnv.txt:



A quick update: I'm still using this A20 configured with F2FS, and after 8 or 9 months, it still works perfectly.  Sometimes it is left running for a few days.  Other times it is powered down without a proper shutdown command.

It uses the standard olimex supplied 4gb card, with debian, a custom kernel, and some unrequired services removed. 
Using "iotop", on an average day, there is ~350mb written to the micro-sd card.  There is ~1.2gb of free space.  The data is mainly written into logfiles which are rotated, so there is always ~1.2gb of free space.

Therefore in this case, it takes approximately 3.5 days for all the free space to be written to 1 time.  Since I started the project, that would be approximately 72 writes across the whole of the free space, in 8/9 months.