Difference between revisions of "EBC Exercise 27 BusyBox"

From eLinux.org
Jump to: navigation, search
m (installing)
 
(25 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[Category:ECE597]]
+
[[Category:ECE497]]
 
[[Category:BeagleBoard]]
 
[[Category:BeagleBoard]]
 +
{{YoderHead}}
  
We'll attack getting BusyBox like we did getting the kernel ([[ECE597 Configuring the Kernel]]) though the paths will be slightly different.  Make sure you have commented out
+
== Getting BusyBox ==
<pre>
+
=== downloading ===
# INHERIT += " rm_work "
 
</pre>
 
in the '''local.conf''' file.  See [[ECE597 Configuring the Kernel]] for details.
 
  
Check and see what you already have for previous installations:
+
Get the busybox sources from the busybox site
<pre>
 
cd ${OETREE}/angstrom-dev/work/beagleboard-angstrom-linux-gnueabi
 
ls
 
</pre>
 
Do you see '''BusyBox'''?  I didn't.  Do this to find it:
 
<pre>
 
cd ${OETREE}/angstrom-dev/work
 
find . -name "*busybox*"
 
</pre>
 
The <code>find</code> command will find all files and directories that contain the name <code>busybox</code>.
 
BusyBox is not a Beagle specific compile, so it appears in a different location.  Change to the BusyBox directory and look around.  Can you find the source?  If not, try
 
<pre>
 
cd ${OETREE}/openembedded
 
$ bitbake -c clean busybox
 
$ bitbake -f -c busybox
 
</pre>
 
This took just a few minutes on my machine.  Your mileage may vary.  Once done look again for the BusyBox sources.  Hint: they aren't in a git directory.
 
  
You can now configure BusyBox.
+
host$ '''git clone git://busybox.net/busybox.git'''
<pre>
+
host$ '''cd busybox'''
make xconfig
+
 
</pre>
+
=== compiling ===
After saving the configuration changes to update the .config file, it is a simple matter of running make.
+
host$ '''source ~/crossCompileEnv.sh'''
<pre>
+
host$ '''make help'''
$ make
+
host$ '''make defconfig'''
</pre>
+
host$ '''make -j9'''      # use -j''X'' for ''X-1'' cores
 +
 
 +
=== configuring ===
 +
 
 +
You can now configure BusyBox (In the event that none of the graphical tools work you can use "make config" to use the text based tool as a method of last resort). First be sure you have the graphics libraries loaded.
 +
 
 +
host$ '''sudo apt-get install libglade2-dev'''
 +
host$ '''make gconfig'''
 +
 
 +
After saving the configuration changes to update the .config file, it is a simple matter of running make.  
 +
host$ '''make -j4'''
 +
 
 +
My make took about 1.5 minutes to compile (25 seconds with make -j8!).
 +
 
 +
=== installing ===
 +
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'''
 +
beagle$ '''./busybox ls'''
 +
 
 +
What's the difference between running '''busybox''' and '''./busybox'''?
 +
Try some other commands...
 +
 
 +
 
 +
{{YoderFoot}}

Latest revision as of 11:02, 1 November 2013

thumb‎ Embedded Linux Class by Mark A. Yoder


Getting BusyBox

downloading

Get the busybox sources from the busybox site

host$ git clone git://busybox.net/busybox.git
host$ cd busybox

compiling

host$ source ~/crossCompileEnv.sh
host$ make help
host$ make defconfig
host$ make -j9       # use -jX for X-1 cores

configuring

You can now configure BusyBox (In the event that none of the graphical tools work you can use "make config" to use the text based tool as a method of last resort). First be sure you have the graphics libraries loaded.

host$ sudo apt-get install libglade2-dev
host$ make gconfig

After saving the configuration changes to update the .config file, it is a simple matter of running make.

host$ make -j4

My make took about 1.5 minutes to compile (25 seconds with make -j8!).

installing

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
beagle$ ./busybox ls

What's the difference between running busybox and ./busybox? Try some other commands...




thumb‎ Embedded Linux Class by Mark A. Yoder