首页 > 其他分享 >OpenWrt编译环境搭建

OpenWrt编译环境搭建

时间:2023-11-28 12:00:26浏览次数:35  
标签:package make compile 编译 libs feeds luci OpenWrt 搭建

OpenWrt编译环境搭建

  1. 基于Ubuntu 22.04,64bit的操作系统

  2. 先clone仓库:

    git clone https://git.openwrt.org/openwrt/openwrt.git
    

    可能会比较久,取决于网络状况。笔者是23年Q4写的,此时openwrt已经为v23了。

    clone成功后,会在clone的路径下有openwrt的文件夹。

  3. 进入文件夹:

    cd openwrt
    

    更新软件包:

    ./scripts/feed update
    ./scripts/feed install
    

    后续有需要,也可以手动再更新。

  4. 生成配置文件:

    make defconfig
    

    这一步和电脑安装软件的情况有关。可能会有报错,此时需根据报错日志来判断安装软件,如:

    sudo apt-get install git
    

    建议有报错后再安装即可,没必要一次性安装推荐的所有软件,浪费电脑磁盘。

  5. 进入定制页面:

    make menuconfig
    

    通过键盘的上下方向键选择机型,包括CPU等,通过空格键选中,保存并退出。

    如果有需要定制的package,也可以在这一步操作,如可以参考笔者的:

    OpenWrt源码编译新增项 - 付时凡 - 博客园 (cnblogs.com)

  6. 编译:

    make -j4 V=sc
    
    • -j4表示使用4核编译,如果电脑的CPU比较强,则推荐,如果有更多的核,可以-j99,编译时会自动调整核心,不过单核的电脑,这个参数就没有意义了。当然,第一次编译,建议先不用该参数,先单核编译,出错率会少一些
    • V=sc表示输出更多的报错日志,方便debug,例如是否是download某些源文件失败等,如果是download失败,可能是国内网络环境受限,可通过报错日志中的URL等信息,手动下载对应的压缩包文件,放在dl目录下,然后重新编译即可
  7. 附完整编译日志,笔者这里是编译时不带V=sc参数,芯片方案为高通的ipq40xx

    make[2]: Entering directory '/home/ubuntu/openwrt/scripts/config'
    make[2]: 'conf' is up to date.
    make[2]: Leaving directory '/home/ubuntu/openwrt/scripts/config'
     make[1] world
     make[2] package/cleanup
     make[2] target/compile
     make[3] -C target/linux compile
     make[2] buildinfo
     make[2] package/compile
     make[3] diffconfig buildversion feedsversion
     make[3] -C package/libs/toolchain compile
     make[3] -C package/libs/libjson-c host-compile
     make[3] -C package/kernel/gpio-button-hotplug compile
     make[3] -C package/libs/ncurses host-compile
     make[3] -C package/system/fwtool host-compile
     make[3] -C package/system/usign host-compile
     make[3] -C package/system/openwrt-keyring compile
     make[3] -C feeds/luci/modules/luci-base host-compile
     make[3] -C package/libs/mbedtls compile
     make[3] -C package/utils/lua host-compile
     make[4] scripts/config/conf
     make[3] -C feeds/luci/contrib/package/csstidy host-compile
     make[3] -C package/libs/jansson compile
     make[3] -C package/libs/libmnl compile
     make[3] -C package/system/ca-certificates compile
     make[3] -C feeds/packages/libs/nghttp2 compile
     make[3] -C package/firmware/ath11k-firmware compile
     make[3] -C package/firmware/ipq-wifi compile
     make[3] -C package/firmware/wireless-regdb compile
     make[3] -C package/kernel/qca-ssdk compile
     make[3] -C package/network/services/dropbear compile
     make[3] -C package/libs/libpcap compile
     make[3] -C package/network/utils/linux-atm compile
     make[3] -C package/network/utils/resolveip compile
     make[3] -C package/libs/libsepol compile
     make[3] -C package/libs/musl-fts compile
     make[3] -C package/utils/e2fsprogs host-compile
     make[3] -C package/libs/libubox host-compile
     make[3] -C package/libs/libnl-tiny compile
     make[3] -C package/libs/libjson-c compile
     make[3] -C package/utils/lua compile
     make[3] -C package/firmware/linux-firmware compile
     make[3] -C package/libs/zlib compile
     make[3] -C package/system/fwtool compile
     make[3] -C package/system/ucert host-compile
     make[3] -C package/libs/libnftnl compile
     make[3] -C feeds/luci/protocols/luci-proto-ppp compile
     make[3] -C feeds/luci/themes/luci-theme-bootstrap compile
     make[3] -C feeds/luci/protocols/luci-proto-ipv6 compile
     make[3] -C feeds/luci/libs/luci-lib-ip compile
     make[3] -C feeds/luci/libs/luci-lib-jsonc compile
     make[3] -C feeds/luci/libs/luci-lib-nixio compile
     make[3] -C feeds/luci/themes/luci-theme-material compile
     make[3] -C feeds/packages/net/curl compile
     make[3] -C package/network/utils/iw compile
     make[3] -C package/libs/pcre2 compile
     make[3] -C package/system/opkg host-compile
     make[3] -C package/libs/libubox compile
     make[3] -C package/kernel/linux compile
     make[3] -C package/libs/ncurses compile
     make[3] -C package/utils/jsonfilter compile
     make[3] -C package/system/usign compile
     make[3] -C package/libs/ustream-ssl compile
     make[3] -C feeds/packages/admin/htop compile
     make[3] -C package/network/ipv6/odhcp6c compile
     make[3] -C package/system/mtd compile
     make[3] -C package/libs/libselinux compile
     make[3] -C package/system/urngd compile
     make[3] -C package/utils/busybox compile
     make[3] -C package/system/ubus compile
     make[3] -C package/system/uci compile
     make[3] -C package/utils/util-linux compile
     make[3] -C package/libs/uclient compile
     make[3] -C package/utils/ucode compile
     make[3] -C package/network/utils/iwinfo compile
     make[3] -C feeds/luci/contrib/package/ucode-mod-html compile
     make[3] -C feeds/packages/net/cgi-io compile
     make[3] -C package/network/services/uhttpd compile
     make[3] -C feeds/luci/contrib/package/ucode-mod-lua compile
     make[3] -C package/network/services/hostapd compile
     make[3] -C package/network/services/dnsmasq compile
     make[3] -C package/network/services/odhcpd compile
     make[3] -C package/utils/e2fsprogs compile
     make[3] -C package/network/config/netifd compile
     make[3] -C package/system/ubox compile
     make[3] -C package/utils/mtd-utils compile
     make[3] -C package/system/opkg compile
     make[3] -C package/network/utils/nftables compile
     make[3] -C feeds/luci/contrib/package/lucihttp compile
     make[3] -C package/system/rpcd compile
     make[3] -C feeds/luci/libs/luci-lib-base compile
     make[3] -C package/kernel/mac80211 compile
     make[3] -C package/system/urandom-seed compile
     make[3] -C package/system/fstools compile
     make[3] -C feeds/luci/applications/luci-app-opkg compile
     make[3] -C package/network/config/firewall4 compile
     make[3] -C feeds/luci/libs/rpcd-mod-luci compile
     make[3] -C feeds/luci/libs/rpcd-mod-rrdns compile
     make[3] -C package/system/procd compile
     make[3] -C package/base-files compile
     make[3] -C package/boot/uboot-envtools compile
     make[3] -C feeds/luci/applications/luci-app-firewall compile
     make[3] -C feeds/luci/modules/luci-base compile
     make[3] -C package/network/services/ppp compile
     make[3] -C feeds/luci/modules/luci-mod-network compile
     make[3] -C feeds/luci/modules/luci-mod-status compile
     make[3] -C feeds/luci/modules/luci-mod-system compile
     make[3] -C feeds/luci/modules/luci-lua-runtime compile
     make[3] -C feeds/luci/modules/luci-mod-admin-full compile
     make[3] -C feeds/luci/modules/luci-compat compile
     make[3] -C feeds/luci/libs/luci-lib-ipkg compile
     make[3] -C package/luci-theme-argon compile
     make[3] -C feeds/luci/collections/luci-light compile
     make[3] -C package/luci-app-argon-config compile
     make[3] -C feeds/luci/collections/luci compile
     make[3] -C package/kernel/qca-nss-dp compile
     make[2] package/install
     make[2] target/install
     make[3] -C target/linux install
     make[2] package/index
     make[2] json_overview_image_info
     make[2] checksum
    

    后续这些便是可选的编译目标,例如需要单独编译procd,则:

    make package/system/procd compile
    
  8. 编译后的镜像文件在bin目录下,如笔者的为:

    bin/targets/ipq40xx/generic/
    
  9. 说明下几个镜像:

    镜像 说明 备注
    initramfs-recovery.itb itb固件,并且带initramfs,即可以进入uboot,直接通过加载该镜像启动,如:bootm xxx.initramfs-recovery.itb 通常可用于测试固件是否正常,此时uboot启动,并不会破坏原有的FW分区等数据
    squashfs-factory.ubi 带factory字样,一般会覆盖旧有的配置,如第一次刷机
    squashfs-sysupgrade.bin 即经过刷机后的可通过openwrt页面直接升级的FW 在刷机稳定后,通过此固件升级;如果已经是openwrt固件,即可直接通过web升级该固件
  10. TBD

标签:package,make,compile,编译,libs,feeds,luci,OpenWrt,搭建
From: https://www.cnblogs.com/adam-ma/p/17861590.html

相关文章

  • 编译安装ansible
    安装包下载地址:https://releases.ansible.com/ansible/注意:ansible对python版本有要求 1、安装依赖yum-yinstallpython-jinja2PyYAMLpython-paramikopython-babelpython-crypto 2、安装ansibletar-zxvf ansible-2.9.9.tar.gzcd ansible-2.9.9.tar#构建注意py......
  • C\C++ 设置Visual Studio编译器使用C++17标准
    文章作者:里海简介:        使用ISOC++17标准可以为开发人员带来许多好处,包括更简洁的代码、更高的运行效率、更好的硬件支持、更好的兼容性和可移植性,以及更好的多线程编程支持等。那么如何设置vs使用c++标准呢?下面是方法。注意需要vs2017及以上版本。方法:打开VisualStud......
  • 一、环境搭建
    1.开发工具安装下载地址:https://developer.harmonyos.com/cn/develop/deveco-studio#download 选择自己操作系统的开发工具(DevEcoStrudio)即可!  ......
  • 百战商城项目---第11章 文件服务器 FastDFS 搭建
    1简介FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。FastDFS为互联网量身定制,充分考虑了冗余备份......
  • 使用OSS搭建私有云内网yum仓库的方法
    版权声明:原创作品,谢绝转载!否则将追究法律责任。—————作者:kirin使用OSS搭建私有云内网yum仓库的方法文字&图片内容已脱敏#、前几天接到一个搭建内网yum源的任务。刚接到这个任务的时候还是比较头疼的,因为内部有很多VPC。VPC与VPC之间是不互通的,又不能打高速通道,也不可能......
  • 移动支付项目介绍与环境搭建
    第1章讲义-项目介绍与环境搭建1.项目背景1.1项目背景随着移动支付的盛行,商业银行、第三方支付公司、其它清算机构、消费金融公司等众多类型的机构,都在为商户提供网络(移动)支付解决方案。另一方面,用户的支付需求繁多,支付渠道已呈“碎片化”状态,并且“碎片化”程度将逐渐加深......
  • 在Linux系统上搭建Tomcat环境
    简介Tomcat是一个免费的开源Web应用程序容器,是Apache软件基金会Jakarta项目的一部分。Tomcat可以运行在各种操作系统上,包括Linux、Windows和MacOSX。在Linux系统上搭建Tomcat环境,可以让您在Linux系统上运行Web应用程序。环境准备在搭建Tomcat环境之前,需要准备以下环境:一......
  • jpackage与jlink等编译打包工具
    jpackage与jlink等编译打包工具都位于jdk/bin目录下,可以通过命令终端直接执行也可通过idea直接调用。如果配置了环境变量就可以通过终端直接执行.1、查看版本号:PSC:\Users\Administrator\Desktop>jpackage--version  21.0.1PSC:\Users\Administrator\Deskt......
  • Windows中使用http-server搭建一个本地服务
    我们在开发中,经常会需要搭建一个本地服务去浏览开发的静态html文件,如果当静态文件中存在一些http、https或者访问文件之类的请求时,直接双击打开html文件是会报错预览不成功的,这时候就需要将静态文件搭建到IIS或者Tomcat环境中去,但是这样需要单独去部署,显得很麻烦,此时我们就可以利......
  • openwrt dns转发
    简介:在网络使用时,我们有时需要指定某些域名的DNS使用某特定的dns服务器,又要兼顾其他域名的解析。我现在的使用的情况是在企业内部网,建立了AD域控。各个域成员的解析都是在域控同一台的DNS上进行。那么解析就比较繁琐了。希望指定域使用dns服务器aaa.aaa.aaa.aaa。其他的又不受......