= How do I compile a 3rd party device driver ? = As an example on how to compile a 3rd party device driver for the 2.6 kernel, lets look at how to compile the [[http://www.hawkingtech.com//support/details.php?CatID=19&FamID=33&ProdID=175&Rev=Z2|HWU54G]] Wireless driver for Fedora Core. == kernel-devel == First, you need to make sure you have the kernel-devel package for your kernel installed. If your kernel is up to date, simply doing a `yum install kernel-devel` should be enough. Verify that you have a kernel-devel package of the same version as your currently running kernel! {{{ # yum install kernel-devel # uname -a # rpm -q kernel-devel }}} If the versions of your currently running kernel and kernel-devel package do not match, you should probably upgrade the kernel and reboot into that new kernel. == Unpack and build driver == The vendor usually ships the driver in a .zip or .tar.gz format, or even has a .tar.gz with source code inside a .zip; anything is possible for packaging. In the case of the HWU54G driver, the zip file contains documentation and a tarball named `ZD1211LnxDrv_2_0_0_0.tar.gz`. First, we unpack the driver. {{{ # mkdir zd # cd zd # tar xzf /path/to/wherever/you/put/ZD1211LnxDrv_2_0_0_0.tar.gz }}} This would be a good time to check if the driver tarball contains any additional documentation. If there is any, you should read it. This documentation usually tells you whether you need to download firmware, if you need to adjust any system scripts for this driver to work, specifics on how to build and install this driver, etc... In the case of the HWU54G driver, the building and installing appears to be quite simple: {{{ # make # make install }}} == Kernel upgrades == When you upgrade your kernel, you will need to recompile the driver for your new kernel. Simply repeat the build procedure above ''while running your new kernel''. You need to be running your new kernel because the Makefile picks the kernel version to build against from the kernel version the system is running currently. == Driver specifics == If you run into other 3rd party drivers that need special instructions, feel free to add them here. ---- [[CategoryFAQ]]