| 257 | |
| 258 | [=#modules] |
| 259 | == Building External or Out-of-Tree Kernel Modules |
| 260 | |
| 261 | Gateworks Venice BSP now creates images that have built in support for building external or out-of-tree kernel modules on a target board, allowing users to extend the functionality of the kernel with custom or third-party modules. Below are some examples demonstrating how to build and install external modules on a one of our Venice boards: |
| 262 | |
| 263 | Before building any external kernel modules, it's essential to ensure your system has necessary dependencies installed. We recommend starting with an update of package lists followed by the installation of essential tools. Run the following commands: |
| 264 | {{{#!bash |
| 265 | apt update |
| 266 | apt install -y build-essential git bc file |
| 267 | }}} |
| 268 | |
| 269 | {{{#!bash |
| 270 | cryptodev-linux: |
| 271 | git clone http://github.com/cryptodev-linux/cryptodev-linux |
| 272 | cd cryptodev-linux |
| 273 | make && make modules_install |
| 274 | modprobe cryptodev |
| 275 | |
| 276 | nrc7292 (mac80211): |
| 277 | git clone http://github.com/Gateworks/nrc7292 |
| 278 | cd nrc7292/package/src/nrc/ |
| 279 | make && make modules_install |
| 280 | modprobe nrc |
| 281 | }}} |
| 282 | |
| 283 | These examples illustrate the process of building and installing external kernel modules. Users can adapt these instructions for other modules as needed, ensuring that dependencies are met and the module is properly installed and loaded into the kernel. |
| 284 | |
| 285 | It's important to note that while many out-of-tree kernel modules follow standard Makefile conventions and can be built and installed using a simple 'make && make modules_install' command sequence, some modules may not adhere to these conventions. |
| 286 | |
| 287 | These non-standard modules may require modifications to their Makefiles or build processes to ensure compatibility with the standard build procedure. In such cases, it's advisable to consult the module's documentation or source repository for specific instructions on building and installing the module. |
| 288 | |
| 289 | Always verify the requirements and instructions provided by the module's developers to ensure successful integration with your kernel environment. |