Difference between revisions of "EBC Exercise 26 Device Drivers"

From eLinux.org
Jump to: navigation, search
m (Start of a new lab)
 
m
Line 4: Line 4:
  
 
== Minimal Device Driver Example ==
 
== Minimal Device Driver Example ==
 +
 +
=== Compiling ===
  
 
Follow the 5 steps given in section 8.1.4 on page 205.  You can get a copy of Listing 8-1 here ([[ECE497_Listings_for_Embedded_Linux_Primer_Chapter_8]]).  Once finished you will have a file called <code>hello1.c</code> in <code>.../drivers/char/examples</code> and have the kernel configure file and Makefile updated for the new driver.  See section 4.4 on page 89 for help with modifying the config files.
 
Follow the 5 steps given in section 8.1.4 on page 205.  You can get a copy of Listing 8-1 here ([[ECE497_Listings_for_Embedded_Linux_Primer_Chapter_8]]).  Once finished you will have a file called <code>hello1.c</code> in <code>.../drivers/char/examples</code> and have the kernel configure file and Makefile updated for the new driver.  See section 4.4 on page 89 for help with modifying the config files.
Line 13: Line 15:
 
$ make modules
 
$ make modules
 
</pre>
 
</pre>
Mine took a while the first time as it appears to compile all the modules.
+
Mine took a while the first time as it appears to compile all the modules. The second it only took 31 seconds.
 +
 
 +
=== Moving to Beagle ===
 +
 
 +
On the beagle edit
 +
 
 +
On the Beagle…Two choices….
 +
My way:
 +
$ cd /lib/modules/2.6.29-omap1
 +
$ edit modules.dep
 +
add:
 +
/lib/modules/2.6.29-omap1/kernel/drivers/char/examples/hello1.ko:
 +
sftp …/drivers/char/examples/hello1.ko
 +
to Beagle
 +
/lib/modules/2.6.29-omap1/kernel/drivers/char/examples/

Revision as of 19:20, 31 March 2011


Chapter 8 of the text [1] gives a nice example of a minimal device driver. The purpose of this lab is to implement that driver.

Minimal Device Driver Example

Compiling

Follow the 5 steps given in section 8.1.4 on page 205. You can get a copy of Listing 8-1 here (ECE497_Listings_for_Embedded_Linux_Primer_Chapter_8). Once finished you will have a file called hello1.c in .../drivers/char/examples and have the kernel configure file and Makefile updated for the new driver. See section 4.4 on page 89 for help with modifying the config files.

Note: There is a typo in Listing 8-2.

If you have created the crossCompileEnv.sh file and sourced it, all you have to do to make the modules is cd to the top of the kernel directory and then:

$ make modules

Mine took a while the first time as it appears to compile all the modules. The second it only took 31 seconds.

Moving to Beagle

On the beagle edit

On the Beagle…Two choices…. My way: $ cd /lib/modules/2.6.29-omap1 $ edit modules.dep add: /lib/modules/2.6.29-omap1/kernel/drivers/char/examples/hello1.ko: sftp …/drivers/char/examples/hello1.ko to Beagle /lib/modules/2.6.29-omap1/kernel/drivers/char/examples/