# Embedded FreeBSD preventative maintenance



## codesweat (Sep 27, 2011)

Hello,

I am not sure where to put this so I stuck it in General. I am about to build an appliance with FreeBSD installed. The prototype will just be a minicomputer but I will be getting smaller once I have proof of concept. The appliance (including the prototype/1st version) will be in a harsh operating environment with many power issues from a generator. I am planning on buying a voltage regulator/ups to put on all the appliances, however while brainstorming I am still running into some concerns. 

There are already some appliances in my field that will do what I need them to do but they aren't SPECIFICALLY meant to do what I am doing with them; I apologize for my vagueness. Because of the nature of the job reboots of the equipment are possible. Reboots are done by untrained personnel and consist of the "reboot your router and modem" type of support. In other words they just unplug the modem and appliance, wait about ten seconds and plug them back in. I am having to go with a no login on the appliance and for when they reboot there won't be any shutdown process. There will be no keyboard, mouse, monitor, etc.. hooked up to the appliance. All configuration will be done through ssh, or a web based configuration tool via the internet. The reboots won't be because of the appliance hanging up but because of the nature of the equipment used to put the appliance online.

Now that you have a little background, here are my questions. 

How do I keep file system corruption from being an issue when the appliance is simply unplugged and no reboot signal is sent. I will be using a flash disk for now, and possibly a disk on chip later. I am also an amateur when it comes to embedded systems. 

Thoughts:

The file system should be loaded into ram, along with all functionality of the appliance. Configuration changes will be done through the ssh, web based tool and "submitted" to give the shutdown/reboot order so they can take effect. Am I on the right path here?

Brian 

p.s.
What would be the best tool (I have looked at tinybsd, pico, etc..) for stripping down FreeBSD current to just what I need to reside on the appliance?


Edit: http://www.freebsd.org/doc/en/articles/solid-state/article.html has information about solid state drives and loading file systems into memory so I am on the right path there. Now I have to figure out how to strip FreeBSD for use in an embedded system. I will continue to update this post until I have everything solved. Just in case someone else needs the same info. A problem that I'm having is that all the tutorials I have found for tinyBSD and such are old. I know that probably won't matter a whole lot but does anyone know of any tutorials out there that are newer than 2008?

Edit: Yeah I know I should have done my homework, but I didn't so here is the solution on the one I feel is best for appliances. http://www.freebsd.org/doc/en_US.ISO8859-1/articles/nanobsd/article.html So for the meantime, unless someone has something to add. We can consider this solved.

Brian


----------



## lme@ (Sep 28, 2011)

Use nanobsd and mount everything possible read-only, so you can safely switch off the box.


----------



## mix_room (Oct 6, 2011)

lme@ said:
			
		

> Use nanobsd and mount everything possible read-only, so you can safely switch off the box.



nanobsd has the added benefit of having two partitions, which allows for quite nice updating.


----------

