编译 Openwrt 问题汇总
一、大概流程
#如果重新编译需要
make clean
make distclean
#更新系统软件包
./scripts/feeds udpate -a
./scripts/feeds install -a
#选择软件
make menuconfig
#最后编译 $(nproc) 是返回系统核心数,可以加快编译进度
make -j$(nproc)
二、错误问题一览
1、建议使用 ubuntu 吧,我感觉 ubuntu 没有一些其他复杂的步骤,比如macos 需要创建什么硬盘区间。
这个是 大模型给出的macOS需要创建区分大小写得文件系统提示。
2、注意内核大小,要能安装下你的软件。
这个错误,在你没有修改其他设置的情况下,很可能是内核大小不够导致的。至少我是修改内核大小后就正常了。
软件包选择分两种
第一是 按 y 选择得。第二是 按 m 选择得。
按 y 得是直接加入到系统内核,可以理解为固件自带得不可删除。
按 m 得是编译成 ipk 包。需要之后安装。
我用了 y 但是编译总是出错,后来发现是系统默认得 16m ,太小了。
自己要根据自己得软件包估计 内核大小。
这里调整内核大小【我这个图的过大了,我感觉 104 够用了】
同理这个也解决了 openclash 提示硬盘空间不足的问题。
其实就是它根本旧下载不了。没有使用 wget 导致的。
3、当将 openclash 写入到 固件中的时候,会添加 dnsmsq-full。
添加的 dnsmsq-full 会导致原有的 dnsmsq 无法写入到固件中,造成编译出错。
这里可以取消写入 dnsmsq,但是 最后系统会无法更新包,其他功能正常。
#无法使用
opkg update
#报错情况
Collected errors:
* opkg_download: Failed to download https://downloads.openwrt.org/releases/23.05.5/targets/x86/64/packages/Packages.gz, wget returned 1.
* opkg_download: Failed to download https://downloads.openwrt.org/releases/23.05.5/packages/x86_64/base/Packages.gz, wget returned 1.
* opkg_download: Failed to download https://downloads.openwrt.org/releases/23.05.5/packages/x86_64/luci/Packages.gz, wget returned 1.
* opkg_download: Failed to download https://downloads.openwrt.org/releases/23.05.5/packages/x86_64/packages/Packages.gz, wget returned 1.
* opkg_download: Failed to download https://downloads.openwrt.org/releases/23.05.5/packages/x86_64/routing/Packages.gz, wget returned 1.
* opkg_download: Failed to download https://downloads.openwrt.org/releases/23.05.5/packages/x86_64/telephony/Packages.gz, wget returned 1.
#使用 wget 测试
root@OpenWRT-Dasu:~# wget https://downloads.openwrt.org/releases/23.05.5/targets/x86/64/packages/Packages.gz
https://downloads.openwrt.org/releases/23.05.5/targets/x86/64/packages/Packages.gz: HTTPS support not compiled in.
#其实系统里有 wget-ssl 和 wget-nossl
其实我们安装的 wget-nossl 和 wget-ssl 都在 /usr/libexec/ 里面。
# 先移除旧的wget 链接
rm /usr/bin/wget
# 然后绑定支持wget-ssl的链接
ln -s /usr/libexec/wget-ssl /usr/bin/wget
3、关于 physdiskwrite.exe 没有写完就停止。
没有写完就停止,也能使用,但是软件似乎无法安装。
我是用的硬盘,生成的是 5g的包,但是总是写2g就停了下来。我没找到原因。
后来我使用 rufus 写到u盘里,然后通过 DiskGenius 克隆磁盘工具,复制到硬盘里也能用。功能更位置如下
其他说明
squashfs
ext 和 squashfs
squashfs 是压缩形式的文件系统,主要是供于小型设备,内存不大的硬件使用。那么它速度上必然有局限性,
ext 就比较常见了。如果内存大可以选这个。
如果是自用的话,建议选好自己需要的版本。
因为如果固件是 5个G ,那么默认有6种版本,编译过程中要用到 30G 容量。虚拟机可能会直接吃满。
比如你需要 ext 就把 squashfs 取消。
不需要 非uefi 就把 非uefi 取消