Linux - Embedded & Single-board computerThis forum is for the discussion of Linux on both embedded devices and single-board computers (such as the Raspberry Pi, BeagleBoard and PandaBoard). Discussions involving Arduino, plug computers and other micro-controller like devices are also welcome.
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 want to understand more how to make design of my own hardware device that will use linux. Are there any tutorials/good books? What rules must I follow? How BIOS must be written? Etc.
I found many sources how to write linux embeded software but very few sources how to design hardware that runs with linux.
Thanks
For one you could look at Data Sheets from manufactures to understand particular chipsets. Or select a embed design/developer kit to see how it is done. Without taking classes you would need to read loads of white papers or data sheets.
Kits are the easy way to get into the hardware end of embeds. You will get tool chain and other support. Unless your into re-inventing the wheel then that would be the best bet.
FYI: I suggest that you look at 'How to Ask Questions the Smart Way' so in the future your queries provide information that will aid us in diagnosis of the problem or query.
HTH!
Last edited by onebuck; 08-01-2011 at 04:04 PM.
Reason: Add mod comment
Arm microprocessors are well supported with linux toolsets including ROM based kernel versions.
Have look at one of the various stand alone systems. These also have a JTAG interface which allows
you to flash the whole system from scratch.
A full linux kernel requires a variant with an MMU an MMU.
The way to make a design is this:
1. Find a marketable product idea & design that.
2. Failing 1 above, master technologies that will make you a marketable commodity when you graduate, and build something to make your knowledge of them manifest. That may get you a job.
You are studying electronics?
Having designed it, & packaged it, you have the mountains of approvals, conformance, & marketing to climb. The Days of guys like Clive Sinclair are over, and it's big business in the main.
There is a huge gap between packaging and marketing a design, and the simple act of creating the circuitry (my interpretation of 'design') that runs the system. If we assume that the OP knows generally what style of system he/she wants to design (relative CPU power, what application emphasis to use, etc), then choosing a CPU early on, along with choices about peripheral chips would define the design at a block-diagram level. Many CPU vendors publish open reference designs for their CPUs and peripheral chips. Choosing silicon that has these reference designs available would certainly make the initial design iterations easier. Choosing peripheral devices that have some existing Linux driver support would also simplify bringing the design to life.
The Linux kernel architecture is generally a core of software modules that have little interaction with external entities, and as long as there is a memory manager and a source of interrupts to drive the scheduler, this part is probably highly portable. Much of the rest is driver code that allows the kernel to control hardware. Again, the choice of silicon with existing software support would make life easier. It is hard to say what, if any, special requirements are imposed by Linux (as compared to other OS's).
As with all embedded systems design, bringing up the initial version can be tedious, as there is concurrent development of software and hardware. Making sure there is adequate support for testing and debugging is a big aid. A serial console is something I would call a must-have, at least for the early testing stages. The use of FPGAs for peripheral support is a big aid as well, as this allows the design to be flexible and also permits incremental design and testing, as well as soft-soldering to fix bugs and add features.
I didn't know this question had any academic, business, or particular other basis. The question does seem a bit naive, but that shouldn't necessarily be a reason not to provide a frank reply.
--- rod.
Having designed it, & packaged it, you have the mountains of approvals, conformance, & marketing to climb. The Days of guys like Clive Sinclair are over, and it's big business in the main.
You would wish her well. It looks like a page put up by an admirer, and she seems to be in retro computing. I stand by what I say, because it's difficult to see where she goes from here. Anything electronic sold in Europe needs a CE mark. Regulation abounds. I've done feasability on several promising products, and the result is always the same: mountains to climb for somewhere between small rewards or huge losses.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.