Daily Log - 4th July 2020

VSCode is my go-to editor. In order to improve my workflow (and autocomplete and IntelliSense) when working with the Linux Kernel I searched for examples or links to places where people have been using VSCode to build for the Linux Kernel and want to summarize my findings for myself, and anybody who would stumble into this in the future. So here’s my list:

  • https://sthbrx.github.io/blog/2019/05/07/visual-studio-code-for-linux-kernel-development/

    This website points to the following GitHub project - https://github.com/amezin/vscode-linux-kernel. The repo contains a VSCode configuration and a Python script - the Python script parses the kernel tree and based on the dependency information collected on each file (stored as *.o.cmd) - it parses the compile command that VSCode invokes to get individualized linting and autocomplete for each file. Finally no more unintended red squiggles in the editor.

  • https://github.com/Plailect/linux-devel

    This references the same vscode-linux-kernel repository as before, but tops it up with libvirt support so one can interface with a qemu VM and Linux kernel at the same time and debug the kernel within a VM environment all within the comforts of VSCode. Pretty nifty; I haven’t tried it yet but looks really interesting to me.

  • https://aakbar5.wordpress.com/2020/02/15/linux-kernel-vs-code/

    It contains a list of kernel module snippets that I can probably find useful. Also it features setting up a qemu aarch64 based environment within a Docker container, probably overkill for my application but still I thought something worth featuring here in the list of my findings.

2. BeagleLogic on the 5.4 kernel version

I finally got around to port BeagleLogic to the latest available TI Kernel - the remoteproc kernel ABI keeps on changing making it a cat-and-mouse-catchup game to align my drivers with the remoteproc API within the kernel. It took me a while to catch up, although the port wasn’t too painful.

Sources are now available at the BeagleLogic GitHub.

BeagleLogic functional screenshot