Windows Mobile 2003 ipaq Driver
From SynCE-Wiki
For those running a kernel version prior to version 2.6.9, you must install this driver to get the ipaq kernel module.
Contents |
Download Driver
Note: You must have your Kernel Headers installed to install this driver.
Through Subversion
The driver from Subversion is the newest, and should be used in favour of the SourceForge package. To download the driver, you must have Subversion installed, and execute:
svn co https://svn.sourceforge.net/svnroot/synce/branches/legacy/kernel-2.6-driver cd kernel-2.6-driver/
SourceForge Package
If you are unable to download the driver through Subversion, download this file: kernel-2.6-driver.tar.gz
Un-tar the archive, and enter the directory:
tar zxf kernel-2.6-driver.tar.gz cd kernel-2.6-driver/
Suse Users
Note: If you run Suse, you must follow these instructions. Everyone else can skip to the next section.
Suse users must install the kernel-syms package:
yast -i kernel-syms
and should make sure that all kernel-* packages are the same version. First, find your kernel version by executing:
uname -r
TODO: Is this correct?
This will give an output something like 2.6.5-7.95. Then execute the following, replacing KERNELVERSION with your kernel version you just found:
rpm -q kernel-default kernel-source kernel-syms kernel-default-KERNELVERSION kernel-source-KERNELVERSION kernel-syms-KERNELVERSION
Subversion Driver
Note: Those who downloaded the Subversion version of the driver must follow these instructions. Those who downloaded the package can skip to the next section.
For those who downloaded the Subversion version of the driver, you must now select which version you want to install.
- Open up the file, Makefile in your favourite text editor.
- Make sure the line linking to your kernel source is correct. Most of the time, it will already be correct.
- If your kernel version is greater than 2.6.15:
- Make sure the line containing VERSION = 2.6.15 is uncommented (remove all # characters at the very beginning of the line).
- Make sure the line containing VERSION = 2.6.13.3 is commented (add a # to the very beginning of the line).
- but if your kernel version is less than or equal to 2.6.15:
- Make sure the line containing VERSION = 2.6.13.3 is uncommented (remove all # characters at the very beginning of the line).
- Make sure the line containing VERSION = 2.6.15 is commented (add a # to the very beginning of the line).
- Save the file, and exit your text editor.
Compile
Run the following command to compile the driver:
make
Troubleshooting
WARNING: Symbol version dump
If you get an error like this:
WARNING: Symbol version dump /usr/src/linux-2.6.5-7.95-obj/i386/default/Module.symvers is missing, modules will have CONFIG_MODVERSIONS disabled.
then the instructions for Suse users above failed.
Can't find directory
If you get an error like this:
Can't find directory /usr/src/linux-2.6.10-5-686/drivers/usb/serial
then you either:
- haven't got your Kernel Headers installed
- or
- haven't specified the correct kernel source variable in the Makefile (for users who downloaded the Subversion driver). Go back up to that step, edit the file, and try again.
error: unknown field 'owner' & error: tty->flip.count
... /home/jonny/kernel-2.6-driver/ipaq.c:555: error: unknown field 'owner' specified in initializer ...
Two changes in ipaq.c have to be done:
After the line
static struct usb_driver ipaq_driver = {
Replace line
.owner = THIS_MODULE,
with
// .owner = THIS_MODULE,
Replace line
if(tty->flip.count >= TTY_FLIPBUF_SIZE) {
with
if(tty->max_flip_cnt >= TTY_FLIPBUF_SIZE) {
Load Driver
First, remove the current ipaq kernel module. Run this as root:
rmmod ipaq
(Ignore the message ERROR: Module ipaq does not exist in /proc/modules)
Now load the new module (as root):
modprobe usbserial insmod ./ipaq.ko
Test Driver
Go back to the Windows Mobile 2003 Support page and try and install your device for use with SynCE. If everything works as planned, then you can install the driver:
Install Driver
Execute, as root:
make install
