Find the answer to your Linux question:
Results 1 to 9 of 9
I have a mini motherboard, I need to run a OpenCV library in my Linux kernel. I don't want to use the common distros. I wud like to write my ...
Enjoy an ad free experience by logging in. Not a member yet? Register.
  1. #1
    Just Joined!
    Join Date
    May 2012
    Posts
    11

    Question Basic Requirements


    I have a mini motherboard, I need to run a OpenCV library in my Linux kernel. I don't want to use the common distros. I wud like to write my own layer over the kernel. I want to kno what are the components I have code for running basic PC dedicated to image processing. No GUI, only Command line interface. No graphical display needed - the bot just has to process the images and to act accordingly. No network interfaces for now(may be in future). I'm in need of serious help...

  2. #2
    Just Joined!
    Join Date
    May 2012
    Posts
    6
    What's wrong with using a common distro? I think a better place to start is to get a common distro (like Debian) and then start stripping components out of it. Much simpler than trying to build it all yourself. There'll be lots of tools for how to build "custom" debian distro disks. Doing it all yourself from the kernel up is going to be a huge amount of work. Not worth it if the point of the exercise is to get OpenCV running.

  3. #3
    Just Joined!
    Join Date
    May 2012
    Posts
    11

    Lightbulb My Idea changed somehow.

    Quote Originally Posted by mgrosvenor View Post
    What's wrong with using a common distro? I think a better place to start is to get a common distro (like Debian) and then start stripping components out of it. Much simpler than trying to build it all yourself. There'll be lots of tools for how to build "custom" debian distro disks. Doing it all yourself from the kernel up is going to be a huge amount of work. Not worth it if the point of the exercise is to get OpenCV running.
    After some research, it true what u r saying. what are the necessary packages required for an os except the kernel. can u give some list of utilities that I shud compile from Debian(my choice) source.. I'm reading LinuxFromScratch guide. I's like to know the list of necesary packages.

  4. #4
    Just Joined!
    Join Date
    May 2012
    Posts
    6
    Quote Originally Posted by vanangamudi View Post
    After some research, it true what u r saying. what are the necessary packages required for an os except the kernel. can u give some list of utilities that I shud compile from Debian(my choice) source.. I'm reading LinuxFromScratch guide. I's like to know the list of necesary packages.
    Probably all you need is debian base, grub and bash. You can do all your code development on another machine and then copy it over using bash. If you are really hardcore when you are ready for production, you can set the kernel flag init=/bin/your_application to make your application the only thing that runs on the machine. Remember though, the more you take away, the less you get for free.

  5. #5
    Just Joined!
    Join Date
    May 2012
    Posts
    11
    Quote Originally Posted by mgrosvenor View Post
    the more you take away, the less you get for free.
    what do you mean by this.

    Quote Originally Posted by mgrosvenor View Post
    kernel flag init=/bin/your_application to make your application the only thing that runs on the machine
    you mean the system can be completely optimized for my application. You mean I could do that with these packages, eliminating unneccesary apps and drivers???

  6. #6
    Just Joined!
    Join Date
    May 2012
    Posts
    6
    Quote Originally Posted by vanangamudi View Post
    what do you mean by this
    Some things are completely unnecessary. Some things are only unnecessary until you need them. For instance. is "ls" necessary? Not really if everything is working. But it's very necessary if you can't find something.

    Quote Originally Posted by vanangamudi View Post
    you mean the system can be completely optimized for my application. You mean I could do that with these packages, eliminating unneccesary apps and drivers???
    It's possible, of that I have no doubt, but is is worth it? Certainly not! If you want to get really fancy, you could write your application as a module that you compile into the kernel directly. Then you'd need no user space software at all. But is is worth it? No! No! No! Building and debugging kernel modules is really hard. (trust me!)

    Honestly, I think what you need is to simply get a debian installation and remove X-windows and anything that depends on it. That way you'll still have a functional machine with a command line only. You can start your program from bash and you have tools to debug when things go wrong.

    If at some point in the future you want to deploy to production, then sure, you can fight the pain of sliming it down more. But really why bother for development. You're just going to make your life hard and there is no good reason for doing that.

  7. #7
    Just Joined!
    Join Date
    May 2012
    Posts
    11

    Exclamation Reason is

    Quote Originally Posted by mgrosvenor View Post
    Some things are completely unnecessary. Some things are only unnecessary until you need them. For instance. is "ls" necessary? Not really if everything is working. But it's very necessary if you can't find something.



    It's possible, of that I have no doubt, but is is worth it? Certainly not! If you want to get really fancy, you could write your application as a module that you compile into the kernel directly. Then you'd need no user space software at all. But is is worth it? No! No! No! Building and debugging kernel modules is really hard. (trust me!)

    Honestly, I think what you need is to simply get a debian installation and remove X-windows and anything that depends on it. That way you'll still have a functional machine with a command line only. You can start your program from bash and you have tools to debug when things go wrong.

    If at some point in the future you want to deploy to production, then sure, you can fight the pain of sliming it down more. But really why bother for development. You're just going to make your life hard and there is no good reason for doing that.
    I'm going to develop an embedded system, where timing is very important. real-time processing is required, at the same time development should be in a fast pace. OpenCV based image processing is a part of its operation and it has to control its actuators with high response speed. and moreover that is who I am. thats why i'm going for development. anyway you can help me??

    Exactly I want to know what are the things that are completely unnecessary. eliminating them will raise any problem compiling ither packages. i mean are they independent of others??? and I think i have port the kernel to ARM7 platform. can I?? any idea on this?? btw u seem to so experienced..
    Last edited by vanangamudi; 05-25-2012 at 03:13 PM. Reason: Add some more detail

  8. #8
    Just Joined!
    Join Date
    May 2012
    Posts
    6
    Quote Originally Posted by vanangamudi View Post
    I'm going to develop an embedded system, where timing is very important. real-time processing is required, at the same time development should be in a fast pace. OpenCV based image processing is a part of its operation and it has to control its actuators with high response speed. and moreover that is who I am. thats why i'm going for development. anyway you can help me??

    Exactly I want to know what are the things that are completely unnecessary. eliminating them will raise any problem compiling ither packages. i mean are they independent of others??? and I think i have port the kernel to ARM7 platform. can I?? any idea on this?? btw u seem to so experienced..
    OK. As I thought, this is not the right approach. I work on realtime systems where we measure time in nano-seconds. We use a standard linux distribution with the most recent kernels.

    The presence or absence of other applications is not going to change much for you. You'll need standard linux distro, with X-windows and all the other deamon processes (ssh, http, nfs etc etc) uninstalled. Ideally you want a multicore cpu (2 or more, very cheap and easy these days) and you need to set the CPU affinity (google: Linux Setting processor affinity) to make sure your application runs on one core, and everything else runs on another core. This will give you the best performance.

    Currently I'm doing my PhD at Cambridge University. My consultation rate is $250/hr.

  9. #9
    Just Joined!
    Join Date
    May 2012
    Posts
    11
    Quote Originally Posted by mgrosvenor View Post
    OK. As I thought, this is not the right approach. I work on realtime systems where we measure time in nano-seconds. We use a standard linux distribution with the most recent kernels.

    The presence or absence of other applications is not going to change much for you. You'll need standard linux distro, with X-windows and all the other deamon processes (ssh, http, nfs etc etc) uninstalled. Ideally you want a multicore cpu (2 or more, very cheap and easy these days) and you need to set the CPU affinity (google: Linux Setting processor affinity) to make sure your application runs on one core, and everything else runs on another core. This will give you the best performance.

    Currently I'm doing my PhD at Cambridge University. My consultation rate is $250/hr.
    Hurrah!!! thanks for this great advice. and developing the system is not my main intention. I'd like learn more about linux kernel and underlying hardware interaction. yes there are many other ways to learn this. but wht not chose this path?? when I have great people from open source community like you by my side??

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •