openwrt 编译(x86)——新手上路之详细教程(有问题请在评论区,本人刚从头搞完,大家一起探讨)

写在前面

本人有加速器,无加速器请移步别处。
本人希望这篇可以让一个小白(比如本人)能够顺利的完成openwrt的编译。如有问题请大家指正。
本文参考文献:
https://blog.csdn.net/qq_33195791/article/details/138462502
https://github.com/coolsnowwolf/lede/issues/11891
这里真的非常感谢第二篇,因为第一篇编译的是最新的git的代码,那玩意一直跟新,个人感觉不知道哪天就出个啥bug,这里建议大家找个稳定版本,本人用的下面有下载链接,本人前一天晚上编译都快编译完成了,但是因为虚拟机硬盘分配的空间不够,导致系统进不去乱删一通腾出空间导致需要重新编译,第二天跟新了下仓库就开始报错,后面一直卡着过不去。
第二篇是个报错求助(我也报了一样的错误),但是他把安装步骤给出了,我参考了他的过程和别人的解决报错方法给出了我自己的安装方法。

更新软件包 & 安装依赖

sudo apt update -y
sudo apt full-upgrade -y
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 libfuse-dev libglib2.0-dev libgmp3-dev \
    libltdl-dev libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libpython3-dev libreadline-dev \
    libssl-dev libtool lrzsz mkisofs msmtp ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 \
    python3-pyelftools python3-setuptools qemu-utils rsync scons squashfs-tools subversion swig texinfo \
    uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev llvm clang
sudo apt-get -y autoremove --purge
sudo apt-get clean

下载源码

git clone --depth 1 https://github.com/coolsnowwolf/lede -b master openwrt //下载最新源码 但是会编译失败 尝试无果,建议使用下面的。
https://git.openwrt.org/?p=openwrt/openwrt.git;a=snapshot;h=01170d518da1c8ade9d26e56d0135d12cda8e781;sf=tgz //本人用的这个

打印当前目录

cd openwrt
pwd

更新软件包 & 安装依赖

apt search qemu-img   --- 查找文件名
apt install qemu-utils   -- 得到文件名,install
./scripts/feeds update -a
./scripts/feeds install -a

前两句可以不执行,但是不执行下面两行有概率不能过

下载dl库

make download -j$(nproc)

该步骤可能会报一个说没有dl目录的错误,直接

sudo mkdir  dl
sudo chmod 777 dl

该步骤略花时间,出错就重新执行,或者删除那个出错的包重新执行,有加速器就能顺利下载。

删除缓存

make clean
make dirclean

打印标识

echo "删除前输出目录"
ls -al

删除临时文件

sudo rm -rf tmp
sudo rm -rf staging_dir

make menuconfig配置

编译准备工作完成后,接下来就可以配置进行编译了。
只需简单的几步,就可以开始编译。
此处,我们使用x86虚拟机进行测试,因此,编译目标系统选择x86 64

3.1 选中目标CPU类型
在这里插入图片描述

3.2 选中镜像文件格式
目标镜像文件输出,我们选VDI,方便在virtualBox虚拟机创建。
在这里插入图片描述
在这里插入图片描述

此外,如无需http服务,那么Luci选项可以使用默认,无需勾选。如需勾选,可以在menuconfig界面输入"/"来进行uhttp依赖关系查找。

编译固件

make V=s -j$(nproc)

【常见错误解决】“you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment)

echo "export set FORCE_UNSAFE_CONFIGURE=1"  >> /etc/profile
source /etc/profile
//最好重启终端
//如果还是不行,看看是否存在~/profile文件,如果存在,在~/profile中也添加相应内容

【常见错误解决】make: *** [/usr/mhy/openwrt/include/toplevel.mk:232: with] Error 2

//个人认为出现这个问题基本就是包不齐或者有误,就得重新下载包
./scripts/feeds update -a
./scripts/feeds install -a
//一般前俩就够用,反正一共两部分,你觉得哪边出问题就重新下载哪边
make download -j$(nproc)

//要是上面的走完了还不行
//先make with -j1 V=s看看哪个包有问题,然后给他删了
//可以先在项目目录直接
find -name xxxxxx
//然后把找到的全删了,然后单独重新下载
./scripts/feeds update -a
./scripts/feeds install -a
//然后先将这个包的编译删除,clean前为对于的地址,其余同理
make package/xxx/clean
make package/xxx/compile
make package/xxx/install	

//如果上面的不会可以直接暴力一点,但是会相应的很慢。先删删缓存,杂七杂八玩意删删,然后重新下载包
make clean
make dirclean
sudo rm -rf tmp
sudo rm -rf staging_dir

make编译

su //建议不执行
make -j8

这个步骤可以(但是不推荐)先进入root,不然后面会报一堆权限的问题。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值