惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
WordPress大学
WordPress大学
Google DeepMind News
Google DeepMind News
美团技术团队
大猫的无限游戏
大猫的无限游戏
H
Help Net Security
小众软件
小众软件
aimingoo的专栏
aimingoo的专栏
博客园 - 聂微东
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
M
MIT News - Artificial intelligence
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - Franky
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Microsoft Security Blog
Microsoft Security Blog
F
Fortinet All Blogs
A
About on SuperTechFans
Recent Announcements
Recent Announcements
D
Docker
Vercel News
Vercel News
Engineering at Meta
Engineering at Meta
腾讯CDC
Martin Fowler
Martin Fowler
阮一峰的网络日志
阮一峰的网络日志

LanYunのBlog

优化macOS Dock栏的显示与隐藏 解决macOS全屏模式下某些情况显示原始鼠标指针的问题 Yarn从Classic迁移到Modern nginx自编译 用santa对二进制进行监控和授权 ESXI 8.0安装黑群晖DSM 7.x 编译monero For macOS ARM 自建busuanzi不蒜子平台统计平台 浅记博客更新日志 (机翻)Kubo配置文件 修改brew services中服务的启动参数 技术杂记📝 解决Surge模块不能同步问题 为Arch Linux配置邮件服务 自编译NutClient-ESXI,更改邮件逻辑 解决ESXI和群晖使用SSH密钥登录问题 为J4125软路由ESXI中群晖提供UPS服务 在arch linux上搭建rustdesk server 解决虚拟机扩容中GPT PMBR大小不符问题 搭建Tuic V5 优雅地为macOS提供python多版本的支持 修复root路径下文件权限问题 解决macOS 14上利用Whisky运行steam时有关问题 在macOS中用PhpStorm配置Xdebug调试 利用CloudFlare Workers快速自建一个IP获取器 如何自动续期证书? 从0开始速配VPS用于网站等 搭建一个基于ChatGPT的QQ机器人(Yunzai-Bot) For Mac 010 Editor For Mac 13.0.1 Crack 破解 关于部署Cloudflare Zero Trust遇到的问题浅记录📝
openwrt编译过程记录
LanYun · 2023-10-28 · via LanYunのBlog

前言

本文编译的为openwrt分支lede,本文主要以记录为主,因为中间有时候报错没弄,断断续续1个月左右搞好.

本文以ubuntu x86作为编译机.

编译成品: https://github.com/LanYunDev/lede_compile

安装依赖

1
2
3
4
5
6
7
sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \
bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \
git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \
libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \
mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pyelftools \
libpython3-dev qemu-utils rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip \
vim wget xmlto xxd zlib1g-dev python3-setuptools zstd ninja-build meson

添加用户

如果你有非root用户,可跳过创建,后续都需要用非root用户进行操作.

1
2
3
4
5
6
7
8
9
10

adduser openwrt

passwd openwrt

usermod -a -G sudo openwrt

su openwrt

cd ~

编译

1
2
3
4
5
6
7
git clone https://github.com/coolsnowwolf/lede.git
cd lede
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
make download -j8 || make download || make download V=s
make -j1 || make -j1 V=s

可选:

添加第三方包来源

1
2
3
4
echo >> feeds.conf.default
echo 'src-git istore https://github.com/linkease/istore;main' >> feeds.conf.default
sed -i '$a src-git kenzo https://github.com/kenzok8/openwrt-packages' feeds.conf.default
sed -i '$a src-git small https://github.com/kenzok8/small' feeds.conf.default

更换golang版本

编译新版Sing-box和hysteria,需golang版本1.20或者以上版本.

若自带的版本过低,可用下面命令换成openwrt官方golang版本

1
2
3
pushd feeds/packages/lang
rm -rf golang && svn co https://github.com/openwrt/packages/branches/openwrt-23.05/lang/golang
popd

删除默认的 argon 主题

记得选.

choose LUCI->Theme->Luci-theme-argon

choose LUCI->Application->Luci-app-argon-config

1
2
3
4
5
6
cd ./package/lean
rm -rf luci-theme-argon
git clone -b 18.06 https://github.com/jerrykuku/luci-theme-argon.git luci-theme-argon
rm -rf luci-app-argon-config
git clone -b 18.06 https://github.com/jerrykuku/luci-app-argon-config.git luci-app-argon-config
cd ../../

修改默认主题为argone

1
sed -i 's/luci-theme-bootstrap/luci-theme-argone/g' feeds/luci/collections/luci/Makefile

添加ddns-go

1
git clone https://github.com/sirpdboy/luci-app-ddns-go.git package/ddns-go

修改用户名

站内文章: OpenWrt 修改登陆用户名

二次编译

1
2
3
4
5
git pull
./scripts/feeds update -a
./scripts/feeds install -a
make -j1 || make -j1 V=s

干净编译

编译出现问题且用make clean依然无法解决的情况.

1
2
3
4
5
6
7
8

git pull
./scripts/feeds update -a
./scripts/feeds install -a
make dirclean;make dirclean V=s
make -j1 clean; make -j1 clean V=s
make download || make download V=s
make -j1 || make -j1 V=s

杂项

如果是ext4镜像,修改某些文件,提示:Read-only file system

用这个命令将根目录解锁即可.

1
mount -o remount,rw /

默认没有安装Git,自带的ssh没有ssh-agent功能,可以通过如下命令配置:

1
2
3
4
5
6
7
opkg update

opkg remove git
opkg install git-http
opkg install ca-bundle

opkg install openssh-client openssh-keygen openssh-sftp-server

安装并信任根 CA 证书 参考

  1. 获取根 CA 证书 (若已有,可跳过,这里演示生成)
1
2
3
openssl s_client -connect ca.private-domain.tld:443 < /dev/null > /tmp/temporary.out
openssl x509 -outform PEM < /tmp/temporary.out > /tmp/ca.private-domain.tld.cert
rm /tmp/temporary.out
  1. 安装 CA 根证书

受信任的证书安装在/etc/ssl/certs,但是遵循FHS 3并用于/usr/local/share与体系结构无关的文件是一个很好的做法.

1
2
3
mkdir -p /usr/local/share/ca-certificates
mv /tmp/ca.private-domain.tld.cert /usr/local/share/ca-certificates/
ln -s /usr/local/share/ca-certificates/ca.private-domain.tld.cert /etc/ssl/certs/ca.private-domain.tld.cert
  1. 将根 CA 证书添加到系统的信任存储中

证书已安装,但尚未被信任.您需要提供证书的哈希值.

1
2
3
4
5
6
7
8

HASH="$(openssl x509 -hash -noout -in /etc/ssl/certs/ca.private-domain.tld.cert).0"


echo "$HASH"


ln -s "/ect/ssl/certs/ca.private-domain.tld.cert" "/etc/ssl/certs/$HASH"

注意: 如果其他证书有相同的哈希值,请使用后缀.1.2,而不是.0.

解决配置文件无法保存问题:

临时:

1
mount -o remount rw /

永久:

1
vim /etc/rc.local

exit 0之前添加命令mount -o remount rw /然后保存,并赋权.

1
chmod +x /etc/rc.local

或者编译解决:

1
2
3
4
make menuconfig 中把 block-mount 去掉

Extra packages ---> automount
Base system ---> block-mount

或者在luci中 系统 -> 挂载点 -> 挂载点 取消根目录 / 挂载点.

编译修改ssh端口:

1
2
vim ./package/network/services/dropbear/files/dropbear.config

修改内核大版本

1
vim ./target/linux/x86/Makefile 

修改KERNEL_TESTING_PATCHVER即可.如果没有则修改KERNEL_PATCHVER

  • WeChat

    WeChat

  • AliPay

    AliPay