[beagleboard] SD writing by OS, checking and disabling

Well, log files can happen. Depending on what you're logging, that
could add up depending on your programs. Cron jobs run sometimes, what
do yours do?

Disable swap. Unless you need it, and it sounds like you don't, Linux
may still use it even if it doesn't run out of physical memory. Or at
least set swappiness so swapping doesn't happen unless it has to.

What file system? What kernel? What SD card? How much free space on
the card? Are your partitions aligned to the flash? Have you tried
mounting the SD card partitions read-only and writing to an NFS or
spinning disk?

-Andrew

I log nearly nothing; about one entry every 5 minutes. I noticed that all logging goes to /var/volatile/log. That seems to be a tmpfs according to fstab, but I’m not quite sure how that works because logs are saved to sd…

I can’t find the swap setting on Angstrom, it is not where all search results want me to edit swappiness. I did look at your post earlier and I seem to remember I was able to find the swap setting before and it was set to nearly no swap. (Unfortunately I haven’t written down where to set swap)

About the SD; I saw that you are strongly against many SD cards for quality reasons. I’ve used several, now trying a transcend microSDHC class 4 4gb card (TS4GUSDHC4), but I did not look at quality when purchasing. I ran flashbench to figure out the alignment, but I do not understand the output, for as far as I can tell the alignment is either ok, or completely off

sudo ./flashbench -a /dev/mmcblk0 --blocksize=1024
align 1073741824 pre 510µs on 641µs post 559µs diff 107µs
align 536870912 pre 476µs on 590µs post 501µs diff 101µs
align 268435456 pre 473µs on 592µs post 512µs diff 98.9µs
align 134217728 pre 480µs on 584µs post 504µs diff 91.6µs
align 67108864 pre 475µs on 582µs post 512µs diff 88.5µs
align 33554432 pre 487µs on 602µs post 536µs diff 91µs
align 16777216 pre 496µs on 604µs post 534µs diff 89.6µs
align 8388608 pre 479µs on 597µs post 512µs diff 101µs
align 4194304 pre 499µs on 600µs post 536µs diff 82.9µs
align 2097152 pre 493µs on 603µs post 519µs diff 96.6µs
align 1048576 pre 482µs on 593µs post 517µs diff 93.8µs
align 524288 pre 500µs on 576µs post 531µs diff 60.4µs
align 262144 pre 492µs on 567µs post 514µs diff 63.9µs
align 131072 pre 481µs on 563µs post 516µs diff 64.7µs
align 65536 pre 481µs on 566µs post 522µs diff 64.2µs
align 32768 pre 486µs on 552µs post 502µs diff 57.8µs
align 16384 pre 494µs on 573µs post 530µs diff 60.7µs
align 8192 pre 487µs on 538µs post 529µs diff 30.6µs
align 4096 pre 510µs on 535µs post 541µs diff 10µs
align 2048 pre 505µs on 534µs post 535µs diff 14.4µs

Mounting the fs readonly stops startup where it complains that the fs is readonly and it cannot write certain files. I saw others reporting similar.

Populating dev cachetar: can’t open ‘/etc/dev.tar’: Read-only file system
mv: overwrite ‘/etc/udev/saved.uname’?

I did see someone mentioning squashfs though no details on how to do it, so that will be going to take me a long time to figure out. https://groups.google.com/forum/#!msg/beagleboard/bPMNZ0Qz-rg/69yWxHYqWRQJ

This probably won’t help you much. I wish there was a clear guide or a single source of information for this because problems and solutions are fragmented and difficult to find because there is a lot of other info that seems alike and messes up my search. (That, and it seems I should document better)

-Ruud

I log nearly nothing; about one entry every 5 minutes. I noticed that
all logging goes to /var/volatile/log. That seems to be a tmpfs
according to fstab, but I'm not quite sure how that works because
logs are saved to sd...

I can't find the swap setting on Angstrom, it is not where all search
results want me to edit swappiness. I did look at your post earlier
and I seem to remember I was able to find the swap setting before and
it was set to nearly no swap. (Unfortunately I haven't written down
where to set swap)

About the SD; I saw that you are strongly against many SD cards for
quality reasons. I've used several, now trying a transcend microSDHC
class 4 4gb card (TS4GUSDHC4), but I did not look at quality when
purchasing. I ran flashbench to figure out the alignment, but I do
not understand the output, for as far as I can tell the alignment is
either ok, or completely off

Transcend usually has decent cards. I don't know that card
specifically, but there's good info on Arnd's big list [1] for erase
block sizes, open-au, and such. Check there.

[1]:https://wiki.linaro.org/WorkingGroups/KernelArchived/Projects/FlashCardSurvey

sudo ./flashbench -a /dev/mmcblk0
--blocksize=1024 align 1073741824 pre 510µs on 641µs post
559µs diff 107µs align 536870912 pre 476µs on 590µs post
501µs diff 101µs align 268435456 pre 473µs on 592µs post
512µs diff 98.9µs align 134217728 pre 480µs on 584µs post
504µs diff 91.6µs align 67108864 pre 475µs on 582µs post
512µs diff 88.5µs align 33554432 pre 487µs on 602µs post
536µs diff 91µs align 16777216 pre 496µs on 604µs post
534µs diff 89.6µs align 8388608 pre 479µs on 597µs post
512µs diff 101µs align 4194304 pre 499µs on 600µs post
536µs diff 82.9µs align 2097152 pre 493µs on 603µs post
519µs diff 96.6µs align 1048576 pre 482µs on 593µs post
517µs diff 93.8µs align 524288 pre 500µs on 576µs post
531µs diff 60.4µs align 262144 pre 492µs on 567µs post
514µs diff 63.9µs align 131072 pre 481µs on 563µs post
516µs diff 64.7µs align 65536 pre 481µs on 566µs post
522µs diff 64.2µs align 32768 pre 486µs on 552µs post
502µs diff 57.8µs align 16384 pre 494µs on 573µs post
530µs diff 60.7µs align 8192 pre 487µs on 538µs post
529µs diff 30.6µs align 4096 pre 510µs on 535µs post
541µs diff 10µs align 2048 pre 505µs on 534µs post
535µs diff 14.4µs

Sorry for my email client munging the output, but it looks like 1 MiB
erase blocks from that output. If you align to multiples of 1 MiB for
your partitions, you should be good. Also, don't use ext3 if you do
writes, ext4 or btrfs (or f2fs if you have a modern kernel) should
perform way better than ext3.

Mounting the fs readonly stops startup where it complains that the fs
is readonly and it cannot write certain files. I saw others reporting
similar. Populating dev cachetar: can't open '/etc/dev.tar':
Read-only file system
mv: overwrite '/etc/udev/saved.uname'?

Sorry, I'm not much help here. Mounting root read only is definitely
possible but does require some work to ensure that things that want to
write still can (or don't use those programs).

I did see someone mentioning squashfs though no details on how to do
it, so that will be going to take me a long time to figure out.
https://groups.google.com/forum/#!msg/beagleboard/bPMNZ0Qz-rg/69yWxHYqWRQJ

This probably won't help you much. I wish there was a clear guide or
a single source of information for this because problems and
solutions are fragmented and difficult to find because there is a lot
of other info that seems alike and messes up my search. (That, and it
seems I should document better)

I agree, it'd be great to have a solid, up to date, source for
understanding this stuff quickly. No such thing exists as far as I
know, sorry.

-Andrew