Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie
Hi all! We have been experiencing an issue on site where threads have been missing the latest postings. The platform host Vanilla are working on this issue. A workaround that has been used by some is to navigate back from 1 to 10+ pages to re-sync the thread and this will then show the latest posts. Thanks, Mike.
Hi there,
There is an issue with role permissions that is being worked on at the moment.
If you are having trouble with access or permissions on regional forums please post here to get access: https://www.boards.ie/discussion/2058365403/you-do-not-have-permission-for-that#latest

Embedded Linux

  • 18-06-2006 3:50am
    #1
    Registered Users Posts: 143 ✭✭


    Hi,
    I have some limited experience with linux and embedded PCs from a few years ago. Basically, I'm a complete novice. I need to get a linux kernel running on an embedded PC. Can anyone recommend a good source of info for a starter. A book or online, anything. I need soemthing that will go through the process involved step by step....
    Thanks

    Lars


Comments

  • Closed Accounts Posts: 22,479 ✭✭✭✭philologos


    whats an embedded PC?


  • Registered Users Posts: 143 ✭✭Lars


    http://www.embeddedarm.com/Manuals/ts-7300-datasheet.pdf

    This is a typical embedded PC that I just found that appears to come with a Linux OS if required.... However, I still need to know about deploying linux on embedded PCs....


  • Registered Users, Registered Users 2 Posts: 37,485 ✭✭✭✭Khannie


    Deploying on an embedded PC is just the same as deploying on any other PC.

    The basic jist of it is that you need to get the OS onto some non-volatile storage. With Standard PC's, you usually do this with a cd copy to a hdd. FOr embedded PC, depending on the platform, this is usually either done with a flash card, or a hard drive, over the network, or with a direct copy at the build machine. For both situations, you usually end up compiling the OS once on a separate (but compatible) machine, then copying to the non-volatile storage multiple times.

    I know this is vague, but it's a vague question, and it's really an OS-deployment question, that's not (really) that specific to linux.


  • Registered Users Posts: 143 ✭✭Lars


    Hi Khannie, thanks. I should clarify what I mean. When running on an embedded system, I know it's possible to remove all elements of linux that you're not running and to simply compile a kernel with the neccesary elements and the target application. It leads to a very small amount of source code and kernel that performs only the operations that are required.That's what I'm trying to find out how to do??
    Do you know what I mean?

    Lars


  • Hosted Moderators Posts: 7,486 ✭✭✭Red Alert


    if you can fit what you want to do in without the recompilation there's no need to slim down.


  • Advertisement
  • Registered Users Posts: 143 ✭✭Lars


    Hi, I do need to reduce the size of the OS and minimise any unnecessary software for a variety of reasons. Do you know anything about doing this??

    Lars


  • Registered Users, Registered Users 2 Posts: 37,485 ✭✭✭✭Khannie


    Part of what you're looking for is a kernel recompile. Have a google for this. It's a relatively straightforward operation these days. As for determining the minimum install....you just need to examine what each distro puts on, and remove what you want until you have a bare installation. You should then make an install image out of that (google g4l).

    A starting point would be DSL (Damn Small Linux). But for a system that's being powered by a non-standard processor (like an arm, or even ppc now) you'll need to shop around.

    To be honest, it sounds like you've a lot to learn before you can achieve what you need to. Are you in a position to hire a contractor perhaps?


  • Registered Users Posts: 143 ✭✭Lars


    Hi Khannie, I'll check that out, thanks. I've found a company that provides an ARM embedded PC along with a debian Kernel ready to run an a development kit so I have a good starting point. However, I still want to learn how to do this as it's something I want to get into. I dont think getting a contractor is an option but I might have to get some help of that sort at some point.
    Thanks again!


  • Closed Accounts Posts: 1,444 ✭✭✭Cantab.


    I would recommend taking a step back from embedded linux for a while and do the following:

    Get yourself a bog-standard 8051 core 8-bit microcontroller and learn assembly. You'll get a nice Atmel AT89C51 development board on www.futurlec.com for about $35. I recommend 'The 8051 Microcontroller and Embedded Systems' by Mazidi & Mazidi - this text is very easy to follow without being too patronising and trivial. There are many open-source assemblers available such as A51, ASM51 and TASM51.

    Once you've got to grips with the fundamental hardware and assembly, you should learn to program in C (delving in to assembly as you need). I recommend 'C and the 8051' by Schultz for this. There is an open-source C compiler called sdcc (small device c compiler) which I highly recommended.

    After all this, you'll have a very good understanding of embedded microcontrollers and communication with periphials. Next you'll need to get to grips with Real-time operating systems (RTOSs) - you are now in the realm of more powerful microcontrollers and may need to go down the ARM route (very expensive development tools for the hobbyist...). There's an open-source RTOS called freeRTOS - www.freertos.org - which has been ported to many microcontrollers (I think Atmel AVRs and AT91s are cool cos they're so cheap and the atmel website has so many free resources).

    At this stage, after maybe having written a tiny kernel of your own, you might start to recompile other people's operating systems (linux etc.) specific to your requirements.

    There's always the overkill option! Buy yourself an ARM + development tools or an Intel + WindowsCE and code away in C++ via a nice IDE (where most coders are afraid to venture outside of!) This solution will be rapid, but grossly inefficient in terms of cost, size and power consumption.

    Get yourself on to amazon.com for books, www.futurlec.com for incredibly cheap development boards and the internet for open-source development tools (A51, sdcc, freeRTOS) and you'll be well on your way to many a happy evening without having to fork out wads of cash to companies such as Keil for the use of their 'intellectual property'


  • Registered Users Posts: 143 ✭✭Lars


    Hi Cantab, thanks for the advice. I'll try that. I'm already proficient at C but you've suggested a good route to proficiency with embedded systems I think.


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 6,630 ✭✭✭gline


    it depends on what you want the embedded system to do i suppose

    at the moment i am playing around with installing open bsd on an embedded system (nokia ip series firewall) - with the help of a boardsie - blowfish, gonna use it for firewall, ids sensor, apache, mysql etc

    one great way to do it is get vmware and make a new image, setup usb redirection to either a usb hdd (2.5") or usb card reader and install linux/unix onto that then transfer it into your embedded system, not much trouble doing it this way

    there are probably pre compiled small kernals available to download for different purposes already


Advertisement