美文网首页
2023-07-13 大白话-编译OpenWrt的关键部分

2023-07-13 大白话-编译OpenWrt的关键部分

作者: 无极小屋 | 来源:发表于2023-07-15 16:33 被阅读0次

    本地编译大前提:需要自由的全局网络环境,而且稳定速度快就更好,如果没有,还是别浪费时间了,可以尝试使用Action云编译或者国外云主机。Action云编译请自行查找资料。

    下面是本地编译的一些资料。

    老资料的参考.png

    系统推荐Ubuntu22.04 TLS

    首次编译

    >1、sudo apt update -y
    1、sudo apt full-upgrade -y
    2、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
    3、git clone [https://github.com/coolsnowwolf/lede](https://github.com/coolsnowwolf/lede)
    4、 cd lede #进入目录 
    5、./scripts/feeds update -a
    6、./scripts/feeds install -a
    7、make menuconfig #首次默认配置不要改动
    8、make download -j4 V=s
    # 下载完成后
    find dl -size -1024c -exec ls -l {} \;  #【 寻找小于1k文件确保文件完整性,重复三条命令,直到输出为空可以继续9】
    find dl -size -1024c -exec rm -f {} \;  #【 如果上面有,则删除小于1k文件】
    make download -j4 V=s  #【 删除之后 >>重新下载】
    9、make -j1 V=s #编译
    

    ###############二次编译############
    下面几种看自己情况选择其一

    如果不需要修改配置

    cd lede
    git pull
    ./scripts/feeds update -a
    ./scripts/feeds install -a
    make defconfig
    make download -j4 V=s
    make -j$(nproc) V=s 
    // 二次编译时间预计会大大缩短
    

    如果需要重新配置组件

    1、git pull
    2、修改feeds.conf.default里helloworld的注释去掉#号
    3、./scripts/feeds update -a && ./scripts/feeds install -a
    4、make defconfig
    +、make clean //(如果之前编译出错,就clean一下。这也会增加编译时间)
    5、rm -rf ./tmp && rm -rf .config //如果需要对组件重新调整,则建议先删除旧配置
    6、make menuconfig //选择你需要的配置,具体操作后面有说
    7、选择编译所需的内核组件和Luci组件(adguardHome和passwall2)
    8、make download -j4 V=s
    9、make -j$(nproc) V=s
    

    如果需要修改cpu架构等重要配置

    1、git pull
    2、修改feeds.conf.default里helloworld的注释去掉#号
    3、./scripts/feeds update -a && ./scripts/feeds install -a
    // 4、make clean  // 删除/bin和/build_dir目录中的文件
    5、make dirclean  // 删除/bin、/build_dir和staging_dir、/toolchain、/tmp 和 /logs中的文件 (这也会极大增加编译时间)
    6、make defconfig
    7、rm -rf ./tmp && rm -rf .config  \#如果需要对组件重新调整,则建议先删除旧配置
    8、make menuconfig #选择你需要的配置
    // 7、修改 menu 内的 network => projectv => V2ray Con => 勾选第一个选项
    9、选择编译所需的内核组件和Luci组件(adguardHome和passwall2)
    10、make download -j4 V=s
    11、make -j$(nproc) V=s
    

    一些说明:

    • 命令行中 -j 为线程数

    • 如果需要添加插件源,执行命令:
      在lede/路径下执行

    nano feeds.conf.default
    

    然后添加插件源

    # 添加插件源,例如添加***源
    src-git passwall2 https://github.com/xiaorouji/openwrt-passwall2.git
    src-git passwall_packages https://github.com/xiaorouji/openwrt-passwall.git;packages
    
    • make menuconfig操作说明

    y 键选中组件
    n 键取消选中组件
    m 键只编译该组件不加入固件
    esc esc,两次esc键表示返回
    <- -> 左右方向键选择下部按钮,选中save按enter则保存

    ###############编译成功后############
    取出bin/targets/下的openwrt固件文件安装即可


    Leo, [2022/11/10 13:36]
    “执行./scripts/feeds install -a 好几条 警告 依赖性不存在 怎么办?
    WARNING: Makefile 'package/feeds/packages/libesmtp/Makefile' has a build dependency on 'meson/host', which does not exist ”
    JasonAmela, [2022/11/10 13:37]
    “不用管,只要过了编译就行”
    

    注意事项:
    新手编译最好严格按步骤分两步去做,这样哪怕错误也会更容易定位。
    如果二次编译成功,那么以后再编译直接执行二次编译的步骤即可。



    云Action编译的一些资料

    @aizhouyi 非常感谢,不过有个疑问,第一次编译的config没有ssrplus,如果我想第二次注释HELLOWORLD+勾选后,我应该这么做?有没有workflow的模板可以分享一下呢?谢谢
    一一解答
    第一,可以通过修改feeds文件实现,确实可以。但我用的不是这种方法。
    第二,我是直接下载科学源码,再去feeds。
    云action推荐https://github.com/P3TERX/Actions-OpenWr
    这个写的非常完善了,文档十分详细。
    第三,模板很多了,很多定时编译的大佬一直更新,比如
    https://github.com/SuLingGG/OpenWrt-Rpi
    你也可以点进我的仓库可以看到我的,
    https://github.com/aizhouyi/openwrt_compile.git
    主要修改是workflow文件(只是我开启了国内上传固件,其他全是默认)和diy-part1.sh(这个就是增加你想要的功能),把本地的配置文件推上去,自动就开始编译了。

    以上即为编译的关键操作部分,可能有不详尽或错误之处,感谢指出

    相关文章

      网友评论

          本文标题:2023-07-13 大白话-编译OpenWrt的关键部分

          本文链接:https://www.haomeiwen.com/subject/prvpudtx.html