This setup allows Clion IDE to support you with syntax highlightning and other convenient IDE stuff while developing kernel modules. This works for in-tree-development and out-of-tree development (I tested and used both).
Clion doesn't build the kernel module itself, it just supports you while coding.
You have to execute $ make on the command line by yourself to build your .ko-file!
I personally think that's the better and simpler approach. For another approach
check the original project (link below)!
Special thanks to the original project: https://gitlab.com/christophacham/cmake-kernel-module I made some changes to it to fit my needs. And hopefully yours too.
- always make sure latest kernel headers are installed
$ sudo apt install kernel-headers-$(uname -r) - always synchronize Makefile and CmakeLists.txt (if you add or delete source files)
- check the Clion Cmake log if errors occur. Especially the lines "kernel release" and "kernel headers"
- depending on your system you need to change the path where kernel headers
are stored:
cmake/FindKernelHeaders.cmake # Line 11
$ make$ sudo insmod hello.ko$ sudo dmesg(check if print messages worked)$ sudo rmmod hello
I successfully used this Cmake project setup to make changes to existing
linux drivers. Just clone the linux source, open a specific folder, add
CMakeLists.txt and cmake/-dir - happy hacking! But be aware of that
you probably don't want to commit cmake-related stuff - at least for the
release-ready version - Unless you want Linus Torvalds and other kernel
maintainers to beat you.. or so :D