type
status
slug
summary
tags
category
icon
password
new update day
Property
Nov 9, 2023 04:03 AM
created days
Last edited time
Nov 9, 2023 04:03 AM

0 查看要求

因为大鹅是基于 Linux ebpf 子系统,所以需要内核在 5.8 版本以上,并且支持 btf ,而默认的 Raspberry Pi OS 的内核虽然版本达到了要求,但是没有编译对应的 btf 内核特性,所以需要进行手动编译,并进行内核替换。

1 配置交叉编译环境

因为涉及到树莓派的内核编译,而树莓派的性能羸弱,如果直接在树莓派上进行内核编译,不知道猴年马月能够完成编译,所以准备使用交叉编译的方法进行内核编译。

1.1 安装 crosstool-ng

1.2 查看 crosstool-ng 预制配置文件

1.3 使用 crosstool-ng 配置交叉编译工具

1.4 下载 raspberrypi linux 源码

1.5 开始编译内核

1.6 复制内核与模块到树莓派

1.7 在树莓派上执行内核替换

首先切换目录:lib/modules/6.1.61-v8+/source/arch/arm64/boot/
执行以下命令:

1.8 安装内核模块

1.9 修改配置文件(可选)

树莓派默认是用32位内核启动,需要修改 boot 分区下的 config.txt 文件

1.10 重启

执行 reboot 启动后执行
可查看内核版本,是否成功更换内核。
 

2 安装大鹅

手动下载 dae 与 daed 进行配置安装,并编写 systemd 服务文件,其他省略(因为可以正常运行,并且官方文档写的挺仔细的)。

3 遇到的问题

3.1 非对称路由无法使用

💡
这里的旁路由定义为:1,被设为网关。2,对 TCP/UDP 进行 SNAT。3,LAN 接口和 WAN 接口属于同一个网段。
具体现象:关闭 dae 开始内核转发参数设备可以正常上网。
开启 dae 设备无法上网,可以 ping 通网关(192.168.1.150),以及主路由(192.168.1.1),但是无法上网,无法ping通公网ip(233.5.5.5)
解决方案:
  1. 安装 systemd-resolved 并启用 systemd-resolved
  1. 关闭 taiscale 的 dns 接受
后续测试正常。
Relate Posts
在 CentOS 9 上编译 DPDK 与 pktgen 24.07
Lazy loaded image
CentOS 9 DPDK 源码编译
Lazy loaded image
在 CentOS 9 上启用 CRB 源
Lazy loaded image
在 Arch Linux 上通过 OneDrive 进行 rime 的用户词库同步
Lazy loaded image
使用 gdb + qemu 进行驱动程序调试
Lazy loaded image
使用 OpenWrt SDK 手动编译 alist 并安装
Lazy loaded image
树莓派寄存器物理基地址查询CS144-2023-Spring router.cc 功能部分实现讲解
Loading...
tangcuyu
tangcuyu
一只尘世中努力争渡的🐠
Latest posts
自建 tailscaler derper 中继服务
2024-11-9
在 CentOS 9 上编译 DPDK 与 pktgen 24.07
2024-11-1
CentOS 9 DPDK 源码编译
2024-10-31
在 CentOS 9 上启用 CRB 源
2024-10-16
Rime 小狼毫定时用户词库同步设置
2024-5-1
在 Arch Linux 上通过 OneDrive 进行 rime 的用户词库同步
2024-4-20