Hi,
On Friday 28 March 2008 14:23:43 thijs.raven wrote:
> I'm new to the whole embedded platform systems, but for my graduation
> project i have build a movable robot/car, which has the FOX 832 with
> the Axis 100LX processor on it. For this project it must be possible
> to control the robot from a distance, using a Wi-Fi connection between
> a pc and the FOX Board. The robot will also be equipped with an USB
> camera (the Hercules Webcam Deluxe).
>
> My problem is, i don't know how to add drivers for the WiFi USB
> adapter, which i'll be using, and for the camera.

> Do i need to include these drivers into the firmware image and then
> flash the image into the board, or can i install those drivers
> directly onto the board? 
If you have the sources for the drivers you can add them to the SDK, so they 
get compiled when building the image. 

I did this for a custom driver by including the driver-sources into the SDK 
itself with adding an option in the kernel-configuration. So that "make 
menuconfig" shows a new option under "Driver settings" for the module.

Here are the  step-by-step instructions for my own driver, "iowarrior". This 
module consists of only two source-files "iowarrior.h" and "iowarrior.c". 
Since the iowarrior is an USB-device it also needs a few device-nodes to be 
created in the FoxBoard-image . I think it should not be too difficult to 
adapt the procedure to another Kernel Module.

----------------------------------------------------------------------------------------------------
HowTo : Install the iowarrior driver on the foxboard SDK

Here is a short description of how to add the iowarrior kernel-modul as a 
build-option to the FoxBoard-SDK. 
 
In this document "FOX_HOME" refers to the directory where the SDK is 
installed, in other words the directory from which install_svn_sdk.sh was 
run. 

1) Create a directory for the new driver: 
mkdir 
FOX_HOME/devboard-R2_01/os/linux-2.6-tag--devboard-R2_01-1/drivers/fox-normal/iowarrior

2) Copy the driver sources into that directory
cp iowarrior.h 
FOX_HOME/devboard-R2_01/os/linux-2.6-tag--devboard-R2_01-1/drivers/fox-normal/iowarrior/iowarrior.h
cp iowarrior.c 
FIOX_HOME/devboard-R2_01/os/linux-2.6-tag--devboard-R2_01-1/drivers/fox-normal/iowarrior/iowarrior.c

3) Create a compile-option for the iowarrior
add a "FOX_IOWARRIOR" tag to the file 
"FOX_HOME/devboard-R2_01/os/linux-2.6-tag--devboard-R2_01-1/drivers/fox-normal/Kconfig"

----- snip -----
config FOX_IOWARRIOR
        bool "IOWarrior"
----- snap -----
Should look like the FOX_ROTARY-entry in this file

4) Create the Makefile for the iowarrior sources 
Create a new file 
"FOX_HOME/devboard-R2_01/os/linux-2.6-tag--devboard-R2_01-1/drivers/fox-normal/iowarrior/Makefile"
with this one line as content
----- snip -----
obj-$(CONFIG_FOX_IOWARRIOR) += iowarrior.o
----- snap -----

5) Edit the Makefile at  
"FOX_HOME/devboard-R2_01/os/linux-2.6-tag--devboard-R2_01-1/drivers/fox-normal/Makefile"
add this line to the end of the file
----- snip -----
obj-$(CONFIG_FOX_IOWARRIOR)     += iowarrior/
----- snap -----

6) Create a few static device nodes for the iowarrior
Edit file 
"FOX_HOME/devboard-R2_01/packages/devices/acme/Makefile"
these four lines will create device-nodes for 2 iowarrior (each device needs 2 
nodes)
add these lines to the bottom of the file
----- snip -----
        $(MKNOD) -m 0666           $(DEV)/usb/iowarrior0 c 180 208      
        $(MKNOD) -m 0666           $(DEV)/usb/iowarrior1 c 180 209
        $(MKNOD) -m 0666           $(DEV)/usb/iowarrior2 c 180 210
        $(MKNOD) -m 0666           $(DEV)/usb/iowarrior3 c 180 211      
----- snap -----

7) Add a config option for configure
Edit file
"FOX_HOME/devboard-R2_01/configure-files/common/AC_common"
afdd these lines to the file 
----- snip -----
config ACME_IOWARRIOR
        bool "IOWarrior USB driver"
        default "n"
----- snap -----
(Use the ACME_ROTARY-entry as a template)

8) Compile the module
run "make menuconfig"
and select the new option "IOWarrior USB driver" in
"Driver Settings"

run "./configure " and "make " to compile the module and update your foxboard 
to install it.

-------------------------------------------

Hope this helps a bit

Eberhard Fahle

Reply via email to