Contents

Background

Loadable kernel modules allow you to enhance the capability of the Linux kernel while it is running. These modules can do lots of things, but they typically are one of three things: 1) device drivers; 2) filesystem drivers; 3) system calls. The kernel isolates certain functions so they don’t have to be intricately wired into the rest of the kernel. The kernel modules provided here already are included in FreeLink and can be installed via Ipkg for OpenLink firmware LinkStations. The modules include support for many USB devices, Bluetooth, NFS, Netfilter (iptables), and Virtual Private Networking (VPN). The main things loadable kernel modules are used for:

Device drivers - A device driver is designed for a specific piece of hardware. The kernel uses it to communicate with that piece of hardware without having to know any details of how the hardware works. Device driver kernel modules are comparable to Windows device drivers. To use any device, the kernel must contain a device driver for it.

Filesystem drivers - A filesystem driver interprets the contents of a filesystem (which is typically the contents of a disk drive) as files and directories and such. There are lots of different ways of storing files and directories and such on disk drives, on network servers, and in other ways. For each way, you need a filesystem driver. For example, there’s a filesystem driver for the ext2 filesystem type used almost universally on Linux disk drives. There is one for NFS and the MS-DOS filesystem too.

System calls - User space programs use system calls to get services from the kernel. For example, there are system calls to read a file, to create a new process, and to shut down the system. Most system calls are integral to the system and very standard, so are always built into the base kernel (no LKM option). But you can invent a system call of your own and install it as an LKM. Or you can decide you don’t like the way Linux does something and override an existing system call with an LKM of your own.

Network drivers - A network driver interprets a network protocol. It feeds and consumes data streams at various layers of the kernel’s networking function. For example, if you want an IPX link in your network, you would use the IPX driver.

TTY line disciplines - These are essentially augmentations of device drivers for terminal devices.

Executable interpreters - An executable interpreter loads and runs an executable. Linux is designed to be able to run executables in various formats, and each must have its own executable interpreter.

Buffalo also includes a module called LSUVCD - LinkStation USB Video Capture Driver. It is appears this module’s purpose is for connectivity with other Buffalo video capture devices like the PC-MV7DX/U2 and is not necessary to load unless you need this functionality. The source for this module is not provided.