How to autorun applications in uClinux

Good day to all,

Hi, in my previous question I asked how one can configure u-boot to automatically load the kernel (uimage) after booting in my BF537 board. Thanks to the help that I received I was able to do so. However, another problem arose. After doing some research and readings from different sources, I still haven't found the answer to how one can configure the uimage to automatically run the application I have done. As an example, say I want to run the simple "Hello World" application written in C, I need to do lrz to transfer it to the board then run ./helloworld (or whatever file name I have set it); now I am wondering what are the methods I need to do in order for my "Hello World" application to run after the uimage has boot without me having to manually input the commands to run it.

As added info, I believe that one can incorporate the application to the image file through 'make', but still the question remains how I can have that application run automatically. Also, I am unsure if etc/rc or etc/inittab is the right way to go, if so are there any documents that can guide me to set this up? Any form of help would be greatly appreciated!

Thank you in advance!

-Angelo

  • Angelo,

    You can use /etc/rc to run your application.  The init application needs to be setup; and usually isn't used or defaults to the command shell for start-up.

    Some notes:

    a)  If you want a blocking process, or one that takes a long time, to run in the background use the '&' postfix to the command to spawn it in the background.

    b)  Path and environment variables usually are not visible in /etc/rc; so, you need to specify the full path for most commands.

    c)  You can also include the application as part of the image (uImage) file as well.  Look in the uclinux/Documentation/Adding-User-Apps-HOWTO file.

  • I see, thank you for that. Just to make it clear, my the rc in /etc/rc is not a directory, and so I would need to edit it or add some commands for me to be able to run the application I need? so for example, the helloworld BFLT file is now saved to my uimage file, I can simply edit my rc to have the codes to navigate through the directories and run the application?

  • just a follow up question to my previous post, supposing I can edit the rc file already, every time I would make the image file, it would go back to how it was before, the unedited one. How can I save this with the corresponding changes that I have made in the rc file?

  • Look in the uclinux/Documentation/Adding-Platforms-HOWTO and the uclinux/vendors directory... you will see a directory for AnalogDevices there.  in AnalogDevices/common there is the rc file that gets loaded for all the AnalogDevices boards.  But, I'm assuming you are using an AnalogDevices board.

  • Very nice, I have looked on these documents, and I have figured out how the rc dot file works. so let's say I tried adding the command, "./hello" to my rc dot file, I assumed it would run the "hello" executable I incorporated to my board (Analog devices BF537), but it didn't. obviously I am not doing this correctly. I don't really know where else to look for guides on the proper way to write an init code to automatically call the program/application I put in my board through 'make' . I'm hoping someone could help me. Thank you!