Книга: Embedded Linux Primer: A Practical, Real-World Approach

8.1.5. Installing Your Device Driver

8.1.5. Installing Your Device Driver

Now that this driver is built, we can load and unload it on a running kernel to observe its behavior. Before we can load the module, we need to copy it to an appropriate location on our target system. Although we could put it anywhere we want, a convention is in place for kernel modules and where they are populated on a running Linux system. As with module compilation, it is easiest to let the kernel build system do that for us. The makefile target modules_install automatically places modules in the system in a logical layout. You simply need to supply the desired location as a prefix to the default path.

In a standard Linux workstation installation, you might already know that the device driver modules live in /lib/modules/<kernel-version>/... ordered in a manner similar to the device driver directory hierarchy in the Linux kernel tree.[62] The <kernel-version> string is produced by executing the command uname -r on your target Linux system. If you do not provide an installation prefix to the kernel build system, by default, your modules are installed in your own workstation's /lib/modules/... directory. This is probably not what you had intended. You can point to a temporary location in your home directory and manually copy the modules to your target's file system. Alternatively, if your target embedded system uses NFS root mount to a directory on your local development workstation, you can install the modules directly to the target file system. The following example assumes the latter.

$ make ARCH=arm CROSS_COMPILE=xscale_be-
INSTALL_MOD_PATH=/home/chris/sandbox/coyote-target
modules_install

This places all your modules in the directory coyote-target, which on this example system is exported via NFS and mounted as root on the target system.[63]

Оглавление книги


Генерация: 0.967. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз