Kernel 2.2 & 2.4 Instructions ----------------------------- 2.2 users make sure you check the extra instructions further down. Non devfs users make sure you check Device Creation Devsfs users make sure you check the devfs instructions. And finally check for problems in miscellaneous section at end, here we will try and collect problems and solutions. To build the modules for the em8300 driver the headers from the kernel you wish to use must be available. If you have built a kernel yourself then they are quite often in /usr/src/linux*. If you are using a pre-built kernel from your distribution then they may be somewhere slightly different. You may also need to install the kernel-headers package as it is not always installed by default. The Makefile has this line at the top of it KERNEL_LOCATION=/lib/modules/$(shell uname -r)/build This will detect the headers for the currently running kernel if they are installed correctly. If this doesnt work for your setup then you will need to change this line to point to the correct directory, quite often the following line works. KERNEL_LOCATION=/usr/src/linux If you are using a custom built kernel then you must include or build as a module I2C Bit Banging interfaces. This is the first option on the I2C configuration screen. the instructions to run after this configuration are make make install (must be run as root, if you are not root use su) These two stages should procede without error, if you get compile errors or errors about symbols not found then the KERNEL_LOCATION line is probably incorrect. Any other problems let us know on dxr3-devel@lists.sf.net and we'll try to help you or improve the instructions. Kernel 2.2 only extra instructions ---------------------------------- If you are building for a 2.2 kernel then you will need to build the externel I2C package. This is available from http://www2.lm-sensors.nu/~lm78/download.html you want the version 2.6.2 or later. In the Makefile for em8300 modules there is a line I2C_LOCATION= Fill this in with the install location of the i2c headers, if you left it as default this will become. I2C_LOCATION=/usr/local/include Then use the compile method given above. Device Creation --------------- For software to access the h+/dxr3 card it needs device nodes to be created in the /dev/ directory. The device nodes can be created by issuing the command make devices If you have devfs mounted the command will issue an error and not touch your /dev folder. OPTIONAL: If you wish to do this by hand the following set of commands will create the basic set of device nodes. mknod /dev/em8300-0 c 121 0 mknod /dev/em8300_mv-0 c 121 1 mknod /dev/em8300_ma-0 c 121 2 mknod /dev/em8300_sp-0 c 121 3 You will probably want to set these so that a normal user can read/write them chmod 666 /dev/em8300* These instructions must be executed as root. Devfs Instructions ------------------ For users running devfs (i.e. Mandrake 8.1), cat /proc/filesystems, if it mentions devfs you are likely running it: You need to tell the devfs daemon (referred to as devfsd) to create symlinks to support the old naming scheme. This is handled different on different distros, for example debian places it's entries in /etc/devfs/compat_symlinks, gentoo places it in /etc/devfs.conf. For your particular distro you will have to find out yourself (and please notify us so we can add info on it in this doc and maybe one day compile a script to automate the process). Anyway, the lines that are supposed to go into this config file are in the devfs_symlinks file located in this dir, you will probably figure out how it works. If not, don't worry, just add those lines to your devfs config and restart devfsd (usually "killall -HUP devfsd") and you'll be just fine. Miscellaneous ------------- If you get an error message saying "mtrr_reg undeclared" or similar try updating your kernel. Old 2.2 and 2.4 kernels seems to have a bug with it's mtrr code (whether you use it or not). If sound is configured in your kernel, the driver will register a /dev/dsp device.