Linux - HardwareThis forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I'm developing a communication system for use in the marine industry which will be incorporating a 10.4" VGA TFT with a GUI to allow the operator to control the system. The GUI development is inhand and underway, the problem I may have is that we are gong to be running the GUI on a single board computer, current spec of celeron 300Mhz, 128Mb SDRam and a compact flash based HDD. I'm going to need to install a version of Linux on the compact flash card which will allow the GUI to run under it. Does anybody know of a suitably small version of Linux which will allow the GUI to run, offer LAN connectivity, and be able to recognise USB devices? I'd like to use the smallest CF card as possible, so preferably 256Mb, but I can use larger if necessary.
Re: Minimum HDD space requirements for Linux install
Well, given that Tomsrtbt fits onto a 3.5" floppy (albeit overburned to about 1.7Mb), and it will do everything you require except the GUI, I'm sure you can find a GUI which runs in less than 253Mb ;-)
Is it possible to add more RAM into that device using higher-density chips? If so I highly recommend going with 256MB at the absolute minimum if you're going to be doing any multitasking, since you won't have enough space for swap. Failing that, can your board supplier add a CF slot (you didn't specify whether your CF device was a standard removable CF card, or a fixed CF device) and let you go with a large removable CF card (which will be seen as an ATAPI HDD)? That will give you some breathing room by allocating some of the CF card as swap. Incidentally, if you do go the removable vs. fixed CF solution, it can make for providing plug & play "firmware" upgrades for your clients/users.
The reason is this: if you run out of RAM on *nix, your programs just quit without warning, losing any unsaved data.
I used to run Linux on a 386 with 80MB HDD and 4MB of RAM so it can definitely be done with older distributions - or newer ones if you care to prune the installation down manually. For a window manager you may want to go with the original, undressed FVWM or possibly even twm. This won't limit your application in any way; it would only limit window management, but in a dedicated environment where only embedded apps are allowed to run in a specific way, window decorates can be eliminated, further reducing RAM consumption.
Of course if your embedded device will not allow the user to open additional apps or multiple instances of apps, AND your programs have been fully profiled and reviewed for memory leaks, the above points are moot.
I'd check out Slackware for prototyping, and prune down everything you don't need once you've established all of your dependencies. Once the dependencies are established, there is nothing barring you from building your own distribution completely from scratch, compiling only exactly what your appliance needs into the kernel, placing only exactly your minimum requirements into the filesystem, and so forth.
Also, make sure you define cron jobs to maintain /tmp in a sane way so any temp files the OS or your applications create don't end up filling the storage chip/card completely.
The board is in PC104 format and the CF slot is viewed as an APATI HDD so I can use any value of CF card, but as I have absolutely no idea of what minimum size Linux I could install I put my finger in the air and guessed 256Mb would suffice, but I could increase that to around a Gb, Again with memory, the board will take 512Mb so 256Mb is easily achievable, I'm just trying to watch the costs, the rest of the hardware I'm using is pushing the cost up pretty high already.
The removable CF cards will indeed allow the firmware to be upgraded easily, and also allow any of the storage of our system data (very small sizes)
On another note, what is Linux like for USB plug and play device recognition? We're looking at allowing data to be downloaded from the CF (which will be internal to the system casing a so not easily accessible to standard user) onto a USB memory stick so that the data can e-mailed back to us for fault finding and future updates, Do you need to keep installing drivers for every type of USB memory stick (as in windows 98) **sorry for the MS reference, or is there a generic driver for them (as in windows XP) **again, sorry...
With USB memory sticks, "YMMV" - I'd recommend testing the hotplug driver on a normal desktop with various sticks - some work, some don't, note which driver loads, then include the specific modules in your embedded solution along with an HCL in the release notes to "CYA"
Originally posted by KimVette The reason is this: if you run out of RAM on *nix, your programs just quit without warning, losing any unsaved data.
If your apps use up all your RAM but still need more, then the system will write out memory pages to the swap space. That's what it's there for, but your system shouldn't crash. If it does, then I'd suspect some other issue. Granted, things may have been different on a 386 with 4Mg RAM, but on any relatively modern PC (Pentium or better, 64Mg of RAM or more) if you put a very high system load on your machine, the worst case scenario will just be reduced performance. -- J.W.
That's true JW but the apps still crash when they run out of swap - and on a 256MB CF device with 128MB of RAM, it's easy to run out of resources be it RAM or swap or /tmp space.
Agreed, but just to clarify, my point is just that if RAM is entirely used up, the system will start using swap; it won't automatically crash which is what the original comment seemed to imply. In other words, running out of RAM and swap (or any other resources) is a very different thing than just running out of RAM.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.