Better way to implement firmware upgrade for embedded Linux?

Jul 16, 2004 1 Replies

I'm trying to implement function for firmware upgrade in an embedded linux system. Unlike most other embedded systems, the size of memory required for an embedded linux system is often larger. Take our system for example, the size of a complete firmware ( including kernel and ramdisk image. ) is about 5MB. I've tried both way, either



(1)Overwrite flash on the fly, without checksum. (2)Kill some processes,read it to allocated memory, do checksum,and upgrade.



For the first one, it is dangerous because possible link error or network failure. For the second one, I get OOM killer even after I've allocated memory and calculated checksum. Both of them are a little risky for me.



So here is the question: is there better design strategy for firmware upgrade for an embedded linux system?


Why do you get OOM killer - what's allocating memory? Also, look at /usr/src/linux/mm/oom_kill.c, for reasons why a given process gets killed.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required