Building Gadget USB Module
From Openmoko
m |
m |
||
Line 8: | Line 8: | ||
</pre> | </pre> | ||
− | Uncompress /usr/src/linux-source-2.6.##.tar.gz | + | Uncompress /usr/src/linux-source-2.6.##.tar.gz |
+ | <pre> | ||
+ | cd /usr/src/ | ||
+ | sudo tar -xvf /usr/src/linux-source-2.6.##.tar.gz | ||
+ | </pre> | ||
+ | link it to /usr/src/linux | ||
+ | <pre> | ||
+ | sudo ln -s /usr/src/linux-source-2.6.## /usr/src/linux | ||
+ | </pre> | ||
+ | ensure /lib/modules/`uname -r`/build exists, | ||
+ | <pre> | ||
+ | ls /lib/modules/`uname -r`/build | ||
+ | </pre> | ||
+ | then run the following: | ||
<pre> | <pre> | ||
mkdir usb_module_dir | mkdir usb_module_dir |
Revision as of 06:11, 27 July 2007
General Comments
You will most likely need kernel version 2.6.20 or higher
Ubuntu Feisty 7.0.4
To prepare your environment run the following:
sudo apt-get install linux-kernel-source linux-kernel-headers
Uncompress /usr/src/linux-source-2.6.##.tar.gz
cd /usr/src/ sudo tar -xvf /usr/src/linux-source-2.6.##.tar.gz
link it to /usr/src/linux
sudo ln -s /usr/src/linux-source-2.6.## /usr/src/linux
ensure /lib/modules/`uname -r`/build exists,
ls /lib/modules/`uname -r`/build
then run the following:
mkdir usb_module_dir cd usb_module_dir cp -r /usr/src/linux/drivers/usb/* . cd gadget echo "KDIR := /lib/modules/`uname -r`/build" >> Makefile echo "PWD := `pwd`" >> Makefile echo "obj-m := dummy_hcd.o gadgetfs.o" >> Makefile echo "default: " >> Makefile echo -e "\t\$(MAKE) -C \$(KDIR) SUBDIRS=\$(PWD) modules" >> Makefile make
Once the kernel modules ( dummy_hcd.ko and gadgetfs.ko ) are built, you must remove (or move) the gadgetfs and net2280 as follows:
sudo mv /lib/modules/`uname -r`/kernel/drivers/usb/gadget/net2280.ko ./original_net2280.ko sudo mv /lib/modules/`uname -r`/kernel/drivers/usb/gadget/gadget.ko ./original_gadgetfs.ko
and replace them with the new modules:
sudo cp dummy_hcd.ko /lib/modules/`uname -r`/kernel/drivers/usb/gadget/ sudo cp gadgetfs.ko /lib/modules/`uname -r`/kernel/drivers/usb/gadget/ sudo depmod
The net2280 module provides conflicting symbols and causes interference with the dummy_hcd module.