OpenWrt构建编译
3 min readOpenWrt环境构建及编译说明文档
-
openwrt
-
正式编译
-
编译系统构建
-
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
-
-
-
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/
-
-
-
-
添加软件包
将此类文件下载到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
-
-
开始编译
-
make menuconfig
-
编译方法按照官方说明
-
make V=s
-
-
-
关于报错
-
配置固件编译所需的功能等信息
-
配置文件修改
-
修改文件
-
主机名称
-
/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
-
-
-
-