EBC Exercise 27 BusyBox
Embedded Linux Class by Mark A. Yoder
Contents
Compiling BusyBox
via git
Get the busybox sources from the busybox site
host$ git clone git://busybox.net/busybox.git host$ cd busybox host$ source ~/.oe/crossCompileEnv.sh host$ make help host$ make defconfig host$ make -j9 # use -jX for X-1 cores
Configuring BusyBox
You can now configure BusyBox.
host$ make gconfig
After saving the configuration changes to update the .config file, it is a simple matter of running make.
host$ make -j9
My make took about 1.5 minutes to compile (25 seconds with make -j8!).
Copy it to your Beagle and test it out. Just typing busybox will tell you what commands it knows. Try some of them.
host$ scp busybox root@beagle:. beagle$ busybox beagle$ busybox ls
Try some other commands...
Shrinking BusyBox
How big is the busybox file? Try making it smaller by removing commands you don't use. How big is it if you just have ls? How much bigger is it when you add httpd? Try your own combinations. Report your findings to the class.
Static Linking
Some embedded systems are so small they don't have shared libraries. Recompile busybox to be statically linked. (Hint: look in configuration) How big it is? Does it still work?
Running a Web Server
Configure busybox to be a web server. Look under Networking Untilites, select httpd. How much more space does it take?
beagle$ busybox httpd
Yup, you are now running a web server. Your task is to figure out where to put the web pages it is serving. If you get something interesting going post your Beagle's address here. Hint: find httpd.c.
URL | Name | Notes |
---|---|---|
137.112.41.87/test.html | Mark A. Yoder | My first Beagle web page. |
Embedded Linux Class by Mark A. Yoder