Compiling WireGuard (and other things requiring linux-headers) on Debian+Mate
#1
So ayufan's kernels have a corresponding linux-headers package for download but MrFixIt's do not? Any chance of getting one, or do we have to clone the git repo & build the whole kernel, just to build WireGuard?

What about including WireGuard in the next update? It's small and easy to build, IF you have the headers. Smaller than some of those desktop background images. Remember to optipng -o7 before releasing.

OpenVPN is a pain on a laptop. Every time you suspend & resume it, you have to kill & restart openvpn, while wireguard just doesn't care.
#2
Finally got this working.

The kernel is arm64 and the userland is armhf, so anything to do with the kernel has to be cross-compiled.

First compile the aarch64 cross-compiling binutils & gcc from source, as they're not available in Debian stretch for armhf.
Follow this howto: https://www.tal.org/tutorials/raspberry-...bit-kernel
(Add any other packages it needs; I needed texinfo.)

Next get the source for your running kernel.
$ uname -a
Code:
Linux Debian-Desktop 4.4.213 #1 SMP Fri Feb 7 13:03:55 EST 2020 aarch64 GNU/Linux

Look at https://github.com/mrfixit2001/rockchip-...elease-4.4 and find the corresponding commit.
Currently that's 209da1a which is 15th from the top.

$ mkdir kernel-out
$ gunzip -c /proc/config.gz | sed s/CONFIG_LOCALVERSION_AUTO=y/CONFIG_LOCALVERSION_AUTO=n/ > kernel-out/.config

Make the output directory & copy the config from the running kernel into it ("As a generated output, the .config file must be in $KBUILD_OUTPUT") with one change. The change is necessary to get the kernel version number to exactly line up so the module can be loaded.

Now we get the kernel sources.
$ git clone --depth=15 https://github.com/mrfixit2001/rockchip-kernel.git
$ cd rockchip-kernel
$ git checkout 209da1a

It only needs modules_prepare, we don't need to build the whole kernel.
(See: https://www.kernel.org/doc/html/latest/k...dules.html)
$ LOCALVERSION="" make -j6 O=../kernel-out ARCH=arm64 CROSS_COMPILE=/opt/aarch64/bin/aarch64-linux-gnu- modules_prepare

Create the symlink that the linux-headers package normally does.
$ sudo ln -s /home/rock/build-area/kernel-out/ /lib/modules/$(uname -r)/build

(Using the actual pathname of your output directory.)

Now get the WireGuard source & build it according to the usual instructions, with one change.
https://www.wireguard.com/compilation/

The kernel module needs to be cross-compiled:
$ make -C wireguard-linux-compat/src -j$(nproc) ARCH=arm64 CROSS_COMPILE=/opt/aarch64/bin/aarch64-linux-gnu-

The rest of the make lines are the same.


Possibly Related Threads…
Thread Author Replies Views Last Post
  Attempting to install Void Linux, boots into a black screen 9a3eedi 1 1,192 09-28-2024, 09:23 AM
Last Post: throwawayforvoid
  Official Debian support moonwalkers 64 64,282 07-08-2024, 01:40 PM
Last Post: Humid Stylus
  Slackware Linux working on PBP vxzero 0 604 06-05-2024, 04:30 PM
Last Post: vxzero
  Debian on Pinebook Pro u974615 7 2,891 03-31-2024, 10:11 AM
Last Post: u974615
  install debian on pbp jsch 7 5,411 11-22-2023, 04:22 PM
Last Post: TRS-80
  How to mainline kernel on daniel thompson's debian installer? hellojack 14 9,851 09-07-2023, 09:38 PM
Last Post: Der Geist der Maschine
  Would a Pinebook Pro be good for a Linux newbie? cassado10 6 2,507 08-08-2023, 04:58 AM
Last Post: moobythegoldensock
  Unable to install Debian Bullseye because of missing wifi firmware Pino64 7 5,367 07-15-2023, 02:58 PM
Last Post: u974615
  Kali Linux for Pinebook Pro - stuck on the login screen owaspfap 0 992 07-13-2023, 05:21 PM
Last Post: owaspfap
  Kali Linux for Pinebook Pro Luke 100 183,010 05-03-2023, 06:10 AM
Last Post: dachalife

Forum Jump:


Users browsing this thread: 1 Guest(s)