2024年3月19日

HYEOS

随事而为

OpenWrt构建编译

3 min read

OpenWrt环境构建及编译说明文档

  • openwrt
    • 正式编译
      • full-1
        编译系统构建
        • https://openwrt.org/start?id=zh/docs/guide-developer/build-system/install-buildsystem
        • LEDE
          • apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch 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
          • apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch 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
          • apt-get install subversion build-essential libncurses5-dev zlib1g-dev gawk git ccache gettext libssl-dev xsltproc
      • full-2
        git clone 下载源码
        • git sources
          • 主源码(二选一)
            • LEDE
              • git clone https://github.com/coolsnowwolf/lede
            • OPENWRT
              • 下载主代码仓库
                • git clone git://git.openwrt.org/openwrt.git
                • git clone https://github.com/openwrt/openwrt
              • 下载packages feeds
                • git clone git://git.openwrt.org/packages.git
          • feed.default.conf(可选)
            • src-git lienol https://github.com/Lienol/openwrt-package
        • 进入package目录下载其它功能包
          • cd package
          • ./gitinstall.sh
            • 我加了sh进去,自动下载功能包
            • 如果有其它包,在里面编辑gitinstall.sh文件添加就可
          • make下载失败手动下载包
            • https://mirror2.openwrt.org/sources/
      • full-3
        添加软件包

         

        将此类文件下载到packages目录

         

        • package/
          • passwall
            • git clone https://github.com/Lienol/openwrt-package.git
          • 应用过滤
            • git clone https://github.com/destan19/OpenAppFilter.git
          • sever酱推送包
            • git clone https://github.com/tty228/luci-app-serverchan.git
          • 网易云音乐
            • git clone https://github.com/maxlicheng/luci-app-unblockmusic.git
          • frp代理
          • 斐讯K3屏幕显示文件
            • https://github.com/lwz322/k3screenctrl.git
            • https://github.com/lwz322/k3screenctrl_build.git
            • https://github.com/lwz322/luci-app-k3screenctrl.git
          • 官方额外软件包
          • 包集合
            • git clone https://github.com/liuran001/openwrt-packages
      • 更新
        • rm -rf tmp
        • make clean
        • ./scripts/feeds install -a
        • ./scripts/feeds update -a
      • full-4
        开始编译
        • make menuconfig
        • 编译方法按照官方说明
          • make V=s
      • full-5
        关于报错
        • 配置固件编译所需的功能等信息
          • full-6
            配置文件修改
            • 修改文件
              • 主机名称
                • /package/base-files/files/bin/config_generate
              • 修改WIFI
                • /package/kernel/mac80211/files/lib/wifi/mac80211.sh
              • SSH显示信息
                • /package/base-files/files/etc/banner
              • 连接数
                • /package/base-files/files/etc/sysctl.conf
                  • net.netfilter.nf_conntrack_max=65535#连接数
              • 固件大小
                • /target/linux/bcmXX/image/Makefile
              • 修改概览文件
                • /feeds/luci/modules/luci-mod-admin-full/luasrc/view/admin_status
              • 更改驱动模块
                • https://github.com/Hill-98/phicommk3-firmware.git
          • 参照官方或google,百度检索不到有用信息
        • dl目录源码包手动下载
          • http://firmware.leipzig.freifunk.net:8004/srv2/
          • 更改下载源
            • 可以改 ./scripts/download.pl文件,倒数几行有类似 #push @mirrors, 'http://mirror1.openwrt.org'; push @mirrors, 'http://mirror2.openwrt.org/sources'; push @mirrors, 'http://downloads.openwrt.org/sources'; 这样的内容,照着这个样子添加/修改就好
        • 报错信息查询
          • error: ext4_allocate_best_fit_partial: failed to allocate 13 blocks, out of space?
            • 解决办法: make menuconfig 找到菜单项"Target Images","Root filesystem partition size (in MB)" 把值改大即可 出现这种情况通常都是修改编译菜单,加了很多东西后,导致编译出来的镜像比较大,如果运行在raspberry,cubieboard一些开发板上,改大无所谓 ———————————————— 版权声明:本文为CSDN博主「zmy12007」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/zmy12007/article/details/48199477
    • 介绍说明
      • 各目录文件介绍
        • https://blog.hyeos.net
        • tools和toolchain目录:包含了一些通用命令, 用来生成固件, 编译器, 和C库.
        • build dir/host目录:是一个临时目录, 用来储存不依赖于目标平台的工具.
        • build dir/toolchain-目录:用来储存依赖于指定平台的编译链. 只是编译文件存放目录无需修改.
        • build dir/target-目录:用来储存依赖于指定平台的软件包的编译文件, 其中包括linux内核, u-boot, packages, 只是编译文件存放目录无需修改.
        • staging_dir目录:是编译目标的最终安装位置, 其中包括rootfs, package, toolchain.
        • package目录:软件包的下载编译规则, 在OpenWrt固件中, 几乎所有东西都是.ipk, 这样就可以很方便的安装和卸载.
        • target目录:目标系统指嵌入式设备, 针对不同的平台有不同的特性, 针对这些特性, “target/linux”目录下按照平台进行目录划分, 里面包括了针对标准内核的补丁, 特殊配置等.
        • bin目录:编译完OpenWrt的二进制文件生成目录, 其中包括sdk, uImage, u-boot, dts, rootfs构建一个嵌入式系统完整的二进制文件.
        • config目录:存放着整个系统的的配置文件.
        • docs目录:里面不断包含了整个宿主机的文件源码的介绍, 里面还有Makefile为目标系统生成docs.
        • include目录:里面包括了整个系统的编译需要的头文件, 但是是以Make进行连接的.
        • feeds目录:扩展软件包索引目录.
        • OpenWRT的feeds包括:
          • packages – 提供众多库, 工具等基本功能. 也是其他feed所依赖的软件源, 因此在安装其他feed前一定要先安装packages!
          • luci – OpenWrt默认的GUI(WEB管理界面).
          • xwrt – 另一种可替换LuCI的GUI
          • qpe – DreamBox维护的基于Qt的图形界面, 包含Qt2, Qt4, Qtopia, OPIE, SMPlayer等众多图形界面.
          • device – DreamBox维护与硬件密切相关的软件, 如uboot, qemu等.
          • dreambox_packages – DreamBox维护的国内常用网络工具, 如oh3c, njit8021xclient等.
          • desktop – OpenWrt用于桌面的一些软件包.
          • xfce – 基于Xorg的著名轻量级桌面环境. Xfce建基在GTK+2.x之上, 它使用Xfwm作为窗口管理器.
          • efl – 针对enlightenment.
          • phone -针对fso, paroli.
        • 模块说明
          • https://imgki.com/archives/openwrt-lean.html
      • 支持硬件查询
        • https://openwrt.org/zh/toh/start
    • 虚拟机环境
      • VMVARE 15.5版本WINDOWS平台
        • 4核4G
        • 60G硬盘
        • NAT网络模式
        • 制作vmware使用镜像转换的工具
          • qemu-utils
            • qemu-img convert -f raw -O vmdk openwrt.img openwrt.vmdk
        • UBUNTU18.04
          • SSH
            • ifconfig查看IP后,WINDOWS下直接可以putty连接
            • ssh hyeos@ubuntu_ip
              • 密码:hyeos.net
          • /work/openwrt/lede
            • 默认的LEDE源码包
          • /work/openwrt/lede/package
            • 科学上网、微信推送、网易云音乐、应用过滤、FRP代理包已经下载好
          • qemu-utils
    • 路由器型号
      • N1电视盒子
        • Target System (QEMU ARM Virtual Machine)
        • Subtarget (ARMv8 multiplatform)
      • MediaTek系列
        • 新三
          • NEW 3 D2
            • MT7621AT
          • NEW D1
            • MT7621AT
      • K3
      • X64/虚拟机
        • 创建虚拟主机
          • 创建2个网卡
            • 1-第一个网卡NAT模式
              • OPENWRT里LAN口
            • 2-第二个网卡桥接模式
              • OPENWRT里WAN口
            • 3-顺序不能反
              • 反了在OPENWRT里调整
        • 设置网卡动态获取IP
          • vim /etc/conf/network
            • eth0为静态地址,改自动获取
              • 改eh0的static为dhcp,下面的掩码等注释掉
            • eth1为WAN口IP,默认DHCP
        • 获取地址信息
          • ifconfig |more
        • 本地管理
          • ssh
            • ssh root@WAN/LAN口IP地址
          • web
            • 浏览器登录虚拟机WAN/LAN口地址
        • 设置密码
          • passwd root

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注