编译 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 取消

posted @ 2025-05-17 23:26  大俗XD  阅读(315)  评论(0)    收藏  举报