openwrt 编译经验【2021-01-28】

openwrt 编译经验【2021-01-28】

编译环境

Kubuntu 20.10 (理论上其他Ubuntu发行版也是一样的)
首先参考L大的Openwrt Readme,安装

build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3 python2.7 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler g+±multilib antlr3 gperf wget curl swig rsync

这些包(部分系统自带)
另外,最好准备好梯子。

编译仓库

我用的是openwrt的官方源代码,国内速度慢的话可以用gitee来加速clone。
不止openwrt源码需要加速,openwrt/feed.conf.defaults里面的仓库也都需要加速,可以自己修改为gitee下的仓库目录或者使用其他方法加速。

编译配置

使用make menuconfig选择自己需要的包即可。
参考L大的插件说明
另外,生成的.config文件里,libustream-wolf和dnsmasq两个用户包会报错,需要注释掉。

编译过程

  1. 安装编译工具
    sudo apt install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3 python2.7 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler g++-multilib antlr3 gperf wget curl swig rsync -y
    
  2. 下载openwrt仓库
    git clone https://git.openwrt.org/openwrt/openwrt.git/
    
    其中git地址可以替换为自己的openwrt仓库。
  3. 进入仓库并切换到自己需要的版本
    cd openwrt
    git checkout remotes/origin/openwrt-19.07
    
  4. 编辑feeds.conf.defaults仓库以加速
    nano feeds.conf.default
    
    替换为自己的加速仓库。
  5. 然后先用feeds更新
    ./scripts/feeds update -a
    ./scripts/feeds install -a
    
  6. 生成配置文件
    make menuconfig
    
  7. 修改.config文件
    nano .config
    
    将这两行注释掉

    CONFIG_PACKAGE_libustream-wolfssl
    CONFIG_PACKAGE_dnsmasq

  8. 为防止在并行编译时出错,先运行 make download
    make -j8 download V=s
    
    这里会下载很多东西,建议使用代理,但是注意代理的情况下有一个问题,就是pip在没有安装pysocks的时候不能通过socks连接。
  9. 编译
    make -j1 V=s
    
    虽然教程里说make download可以防止并行编译的错误,但是我在并行编译时还是有些莫名其妙的包不能编译成功,应该有相互依赖的关系,长时间挂机编译的话建议单线程编译,否则可以重复几次。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值