OpenWrt分支LEDE嵌入式无线路由系统定制-2.自定义固件
2017-01-04 11:23
881 查看
#选择目标编译固件平台
#设置固件默认大小及自定义新硬件
#想生成自定义名称固件、机器型号需要修改8处地方
#主板CPU是MT7620N
#硬件是和ZBT WR8305RT的硬件一样
#固件容量: 16M
#十六进制: 0xfb0000
#十进制: 16121856≈15.375
#第1步:定义profile文件,用于make menuconfig显示菜单
#第2步:sed使用“”时:\\t表示制表符
#第3步:sed使用‘’时:\t表示制表符
#第4步:
#第5步:定义系统led接口
#第6步:定义network接口
#第7步:定义DTS文件,设备型号、内存大小、分区信息等
#修改flash分区
#由于我们的flash是16M的,修改firmware分区大小为0xfb0000(L45)
#(firmware)+(factory)+(uboot-env)+(uboot)=flash
# (kernel)+(rootfs)=firmware
#(squashfs(ro))+(jffs2(rw,rootfs_data))=rootfs
#第8步:删除文件并重新选择目标固件
#进入编译菜单,选择目标平台
#退出前保存
#只下载不编辑(V=s 显示详细信息)
#开始第一次编译#
第一次编译时最好不使用多线程编译,编译一次后,以后可以多线程编译;
cd ~/source#编辑前检查
make defconfig make prereq
#设置固件默认大小及自定义新硬件
#想生成自定义名称固件、机器型号需要修改8处地方
#主板CPU是MT7620N
#硬件是和ZBT WR8305RT的硬件一样
#固件容量: 16M
#十六进制: 0xfb0000
#十进制: 16121856≈15.375
cd ~/source/target/linux/ramips/
#第1步:定义profile文件,用于make menuconfig显示菜单
file="./image/mt7620.mk" cat >>$file <<EOF define Device/mywrt DTS:= MYWRT DEVICE_TITLE := MYWRT endef TARGET_DEVICES += mywrt EOF
#第2步:sed使用“”时:\\t表示制表符
file="./base-files/lib/ramips.sh" grep "mywrt" $file if [ $? -ne 0 ];then num=`grep -A1 -n 'name.*wr8305rt.*' $file |grep ';;' |awk -F '-' '{print $NR}'` sed -i "${num}a\\\t*\"MYWRT\")" $file num=$[$num+1] sed -i "${num}a\\\t\\tname=\"mywrt\"" $file num=$[$num+1] sed -i "${num}a\\\t\\t;;" $file fi grep ".*mywrt.*" $file -C4 -i
#第3步:sed使用‘’时:\t表示制表符
file="./base-files/lib/upgrade/platform.sh" grep "mywrt" $file if [ $? -ne 0 ];then sed-i '/wr8305rt/a\\tmywrt|\\' $file fi grep "mywrt" $file -C1
#第4步:
file="./base-files/etc/diag.sh" grep "mywrt" $file if [ $? -ne 0 ];then sed -i '/wr8305rt/i\\tmywrt|\\' $file fi grep 'mywrt' $file -C1
#第5步:定义系统led接口
file="./base-files/etc/board.d/01_leds" grep "mywrt" $file if [ $? -ne 0 ];then sed-i '/wr8305rt/i\mywrt|\\' $file fi grep "mywrt" $file -A1
#第6步:定义network接口
file="./base-files/etc/board.d/02_network" grep "mywrt" $file if [ $? -ne 0 ];then sed -i '/wr8305rt/i\\tmywrt|\\' $file fi grep "mywrt" $file -C1
#第7步:定义DTS文件,设备型号、内存大小、分区信息等
#修改flash分区
#由于我们的flash是16M的,修改firmware分区大小为0xfb0000(L45)
#(firmware)+(factory)+(uboot-env)+(uboot)=flash
# (kernel)+(rootfs)=firmware
#(squashfs(ro))+(jffs2(rw,rootfs_data))=rootfs
\cp ./dts/ZBT-WR8305RT.dts./dts/MYWRT.dts file="./dts/MYWRT.dts" com=`grep 'compatible.*mt7620n.*$' $file|awk -F '"' '{print $2}'` sed -i "s#${com}#mywrt#g"$file model=`grep 'model.*' $file |awk -F'"' '{print $2}'` sed -i "s#${model}#MYWRT#g"$file label=`echo $com |awk -F ',' '{print $2}'` sed -i "s#${label}#mywrt#g"$file sed -i '/0x50000/s/0x7b0000/0xfb0000/g'$file #设置固件大小为16M grep -i 'mywrt' $file
#第8步:删除文件并重新选择目标固件
rm -rf ~/source/tmp
#进入编译菜单,选择目标平台
make menuconfig Target System (MediaTek Ralink MIPS) ---> (X) MediaTek Ralink MIPS #选择厂商 Subtarget (MT7620 based boards) --->(X) MT7620 based boards #选择CPU类型 Target Profile (MYWRT) --->(X) MYWRT #选择目标平台 LuCI --->1. Collections ---><*> luci #启用web界面支持 LuCI --->2. Modules --->Translations ---><*> Chinese (zh-cn) #添加中文语言包 LuCI --->2. Modules --->Translations ---><*> English (en) #添加英文语言包
#退出前保存
#只下载不编辑(V=s 显示详细信息)
make download V=s#可以利用其他软件下载需要的源代码包,拷贝到~/lede/source/dl目录下
#开始第一次编译#
第一次编译时最好不使用多线程编译,编译一次后,以后可以多线程编译;
make V=s #或 make -j8 V=s
相关文章推荐
- OpenWrt分支LEDE嵌入式无线路由系统定制-1.编辑环境搭建
- LEDE嵌入式无线路由系统定制
- 创建自定义路由处理程序(Creating a Custom Route Handler) | 定制路由系统| 高级路由特性 |精通ASP-NET-MVC-5-弗瑞曼
- 创建自定义的RouteBase实现(Creating a Custom RouteBase Implementation) |定制路由系统 |
- 无线路由开发平台openwrt的编译和使用
- openwrt 查看wr703n路由上的无线链接数
- openwrt路由系统添加启动项
- 基于嵌入式Linux系统的无线网络网关设计
- 无线互联 嵌入式系统设计的新挑战
- 基于ARM+LINUX的无线视频采集系统设计----------搭建嵌入式web服务器
- 基于嵌入式的无线条码扫描仪系统的设计
- [OpenWrt] TP路由,打造完整的固件,无需复杂的TTL ,U-boot命令
- 编译openwrt官方不支持的路由型号固件——以WR720N为例
- 【基于EDK的嵌入式系统】 关于Xilinx EDK添加自定义IP核到PLB总线后linux无法boot的问题
- 【供参考,博主已经没有实验环境了】【中山大学东校区】【中大】【tp-link wr703n】【openwrt】【校园网inode】【无线路由】新版教程-搭载最小的认证客户端【C版oh3c】
- 无需无线路由,将系统为win7的笔记本变成wifi的方法
- 基于Windows CE .net平台的嵌入式系统的定制和裁剪
- 嵌入式根文件系统的定制及移植(一) 推荐
- 无需无线路由,将系统为win7的笔记本变成wifi的方法
- 基于ARM+LINUX的无线视频采集系统设计----------搭建嵌入式web服务器