海运的博客

n1盒子armbian 内核5.3.0编译更新wireguard内核模块

发布时间:September 23, 2020 // 分类: // No Comments

安装交叉编译环境见:ubuntu下交叉编译arm64/armbian内核模块
下载5.3内核及wireguard最新源码,并打补丁到内核。

#git clone -b 5.3 --depth 1 https://github.com/150balbes/Amlogic_s905-kernel.git
git clone -b 5.3 --depth 1 https://github.com/w22gb8/Amlogic_s905-kernel.git
cd Amlogic_s905-kernel/
#git clone https://git.zx2c4.com/wireguard-linux-compat
git clone -b v1.0.20211208 --depth=1 https://github.com/WireGuard/wireguard-linux-compat.git
bash ./wireguard-linux-compat/kernel-tree-scripts/jury-rig.sh .

编译wireguard模块,版本后缀-aml-g12和内核后缀保持一致。

cp ../config-5.3.0-aml-g12 .config
make LOCALVERSION="-aml-g12" modules_prepare
make M=net/wireguard CONFIG_WIREGUARD=m modules
modinfo net/wireguard/wireguard.ko

替换升级wireguard内核模块:

systemctl stop wg-quick@wg0.service 
cp wireguard.ko /lib/modules/5.3.0-aml-g12/kernel/net/wireguard/
modprobe -r wireguard
systemctl start wg-quick@wg0.service 

ubuntu下交叉编译arm64/armbian内核模块

发布时间:October 13, 2018 // 分类:N1 // 5 Comments

安装编译环境及下载交叉编译工具:

apt update
apt -y install gcc make pkg-config git bison flex libelf-dev libssl-dev libncurses5-dev bc
wget https://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz
tar -Jxf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz 
export ARCH=arm64 
export CROSS_COMPILE=`pwd`/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-

查看内核版本:

uname -r
4.18.7-aml-s9xxx

下载内核源码:

#git clone https://github.com/150balbes/Amlogic_s905-kernel.git
#使用4.18.7内核
#git checkout 20181012
git clone -b 20181012 --depth 1 https://github.com/w22gb8/Amlogic_s905-kernel.git
cd Amlogic_s905-kernel

初始化配置,不做这步直接编译模块会提示错误: fatal error: include/generated/autoconf.h: No such file or directory。

cp config_5.60 .config
make prepare
make scripts

编译指定模块:

make M=net/ipv4/ CONFIG_TCP_CONG_BBR=m modules
make M=drivers/usb/class CONFIG_USB_PRINTER=m modules

编译所有模块:

make modules 
make modules_install INSTALL_MOD_PATH=/

复制模块到目标机器对应目录并加载:

cp tcp_bbr.ko /lib/modules/`uname -r`/kernel/net/ipv4
#echo 'kernel/net/ipv4/tcp_bbr.ko:' >> /lib/modules/`uname -r`/modules.dep
depmod 
modprobe tcp_bbr

加载模块时出现invalid module format的错误,是version magic版本不一致或crc校验不通过,可通过modinfo查看本机模块和新编译模块version magic版本信息,通过dmesg查看log出现以下错误:

sch_fq: version magic '4.18.7 SMP preempt mod_unload aarch64' should be '4.18.7-aml-s9xxx SMP preempt mod_unload aarch64'

可见内核版本后缀不一样,在编译时添加版本后缀:

make LOCALVERSION="-aml-s9xxx"

编译模块时添加版本后缀无效?那就在初始时添加,后续编译时不要再次添加。

make LOCALVERSION="-aml-s9xxx" modules_prepare

参考:
https://serverfault.com/questions/568395/what-is-creating-the-generated-autoconf-h
https://wiki.archlinux.org/index.php/Compile_kernel_module

分类
最新文章
最近回复
  • jiangker: good, very helpful to me
  • fengfeng: N1 armbian 能有编译下内核吗。。我要开启can 不懂怎么操作
  • 1: 方法一ngtcp2要改下:./configure PKG_CONFIG_PATH=/usr/l...
  • 海运: 关闭服务器
  • 海风: override.battery.charge.low以及override.battery.r...
  • koldjf: 不能过滤
  • 杰迪武士: 此文甚好甚强巨,依照此文在树莓派2 + Rasbian上部署成功 感谢博主美文共赏
  • 海运: ups不知有没选项可设置此参数,不过你可以在另外一台电脑上安装nut客户端自动关机。
  • kgami: 想请教一下,设置了的电脑自动关机之后,几秒后UPS怎么也跟着关机了,导致另外一台电脑没关机就断...
  • 海运: 写的很详细了啊,/etc/nut/hosts.conf用以nut-cgi连接nut服务器参数,...