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
