OpenWrt分支LEDE嵌入式无线路由系统定制-2.自定义固件

#选择目标编译固件平台

cd ~/source

#编辑前检查

make defconfig
make prereq

#设置固件默认大小及自定义新硬件

#想生成自定义名称固件、机器型号需要修改8处地方

#主板CPU是MT7620N

#硬件是和ZBT WR8305RT的硬件一样

#板子上的真实型号是JGX-X5

#固件容量: 16M

#十六进制: 0xfb0000

#十进制:   16121856≈15.375

cd ~/source/target/linux/ramips/

#第1步:定义profile文件,用于make menuconfig显示菜单

file="./image/mt7620.mk"
cat >>$file <<EOF
 
define Device/jlcsswrt
  DTS:= JLCSSWRT
 DEVICE_TITLE := MYWRT
endef
TARGET_DEVICES += jlcsswrt
EOF

#第2步:sed使用“”时:\\t表示制表符

file="./base-files/lib/ramips.sh"
grep "jlcsswrt" $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=\"jlcsswrt\"" $file
   num=$[$num+1]
    sed -i "${num}a\\\t\\t;;" $file
fi      
grep ".*jlcsswrt.*" $file -C4 -i

#第3步:sed使用‘’时:\t表示制表符

file="./base-files/lib/upgrade/platform.sh"
grep "jlcsswrt" $file
if [ $? -ne 0 ];then
         sed-i ‘/wr8305rt/a\\tjlcsswrt|\\‘ $file
fi
grep "jlcsswrt" $file -C1

#第4步:

file="./base-files/etc/diag.sh"
grep "jlcsswrt" $file
if [ $? -ne 0 ];then
   sed -i ‘/wr8305rt/i\\tjlcsswrt|\\‘ $file
fi
grep ‘jlcsswrt‘ $file -C1

#第5步:定义系统led接口

file="./base-files/etc/board.d/01_leds"
grep "jlcsswrt" $file
if [ $? -ne 0 ];then
    sed-i ‘/wr8305rt/i\jlcsswrt|\\‘ $file
fi
grep "jlcsswrt" $file -A1

#第6步:定义network接口

file="./base-files/etc/board.d/02_network"
grep "jlcsswrt" $file
if [ $? -ne 0 ];then
   sed -i ‘/wr8305rt/i\\tjlcsswrt|\\‘ $file
fi
grep "jlcsswrt" $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}#jlcsswrt#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}#jlcsswrt#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
时间: 2024-12-11 10:07:50

OpenWrt分支LEDE嵌入式无线路由系统定制-2.自定义固件的相关文章

OpenWrt 系统定制WR841N Reset Button不工作

前言: 移植AR9341到开发板上,64M RAM, 8M ROM, 工作内容就是系统能跑起来,最好无线性能好,但是这个真的不是我的目前能搞定的. 开始: 从openwrt trunk上下载最新正在开发的trunk,但是编译还是遇到问题(之前编译的mt7620n),改编AR9341后编译出来的结果并不理想.有很多WR841N的版本 1, 1.1,3,5,7 唯独没有我想要的v8.无奈之下只好求救于各种论坛,讨论群,可是仍然没有发现.最后是在openwrt 的主页上找到了wiki.openwrt.

软路由OpenWrt(LEDE)2020.4.4编译 UnPnP+NAS+多拨+网盘+DNS优化

近期更新:2020.04.24编译-基于OpenWrt R2020.3.19版本. 2020.04.04更新记录: 修正国内域名加速脚本部分缺陷 内置打印机共享,ZeroTier 新增多套主题 SMARTDNS LUCI缺陷修正 UPNP 升级至2.1.20191006 Mount.CIFS升级至6.10 PSW升级 移除了影响docker自动创建防火墙规则的软件包 2020.03.19更新记录: 增加了IPSec 方案,便于苹果.安卓手机连入家庭网络 内核版小版本升级,必备软件缺陷修正 按大家

嵌入式 Linux 系统移植——BSP分析

嵌入式 Linux 系统移植--BSP分析 一.BSP简介 嵌入式系统由硬件环境.嵌入式操作系统和应用程序组成,硬件环境是操作系统和应用程序运行的硬件平台,它随应用的不同而有不同的要求.硬件平台的多样性是嵌入式系统的主要特点,如何使嵌入式操作系统在不同的硬件平台上有效地运行,是嵌入式系统开发中需要解决的关键问题.解决的方法是在硬件平台和操作系统之间提供硬件相关层来屏蔽这些硬件的差异,给操作系统提供统一的运行环境,硬件相关层就是嵌入式系统中的板级支持包 BSP(Board Support Pack

二维码扫码积分系统定制开发

微信积分系统 二维码扫码积分系统定制开发找丽姐[158.1816.6626/电微]二维码营销模式系统定制开发 微信扫二维码营销系统开发 扫码领积分系统开发 一.如何实现扫二维码领红包功能? 1.使用扫描二维码领取红包对活动进行设置,包括红包数量.红包金额.促销地区.中奖概率等. 2.将生成的二维码赋到商品上面并赋涂层,一方面可以起到保证二维码的一次性,另一方面也可以引起消费者的好奇心. 3.通过手机微信打开扫一扫,扫码商品二维码关注公众号并领取红包,如果参与分享还可以获得抽奖的机会. 二.微信扫

ARM 开发板嵌入式linux系统与主机PC通过串口传输文件

本文转载自http://useless20.blog.163.com/blog/static/237409982010227127576/ 嵌入式linux系统与主机通过串口传输文件 我想如果要从PC机下载东西到开发板的嵌入式linux系统里面,很多人首先会想到用tftp sftp等网络工具从网口下载.但如果网络用不了,只能通过串口下载怎么办呢?这个时候有两个工具能帮到你:一个是zmrx.zmtx,另外一个是lsz.lrz.个人觉得zmrx/zmtx没有lsz/lrz稳定,建议还是用后者.下面介

二码公益模式源码 系统定制开发

二码公益系统开发,二码公益模式开发找何经理.移动端产品开发来说,最重要的就是最后的下单率,不管是京东淘宝的实体商品还是美团.糯米提供的虚拟团购服务或者是饿了么.美团外卖提供的外卖服务,最重要的就是最后的下单成功率,在这之前的尽量不要打断用户的使用流程.一个平台模式固然重要,用户体验也不可忽略.更多的就是题外话了,下面为你简单地介绍一下二码公益系统的模式制度. 二码公益模式开发(系统可定制)--何经理 二码公益系统这种商业模式,一种O2O模式,也是当下消费者商家乃至国家上级都比较倡导的创新经济模式

Linux系统裁剪之四(自定义内核及busybox完成系统定制)

Linux系统裁剪之四(自定义内核及busybox完成系统定制) ·busybox busybox是一个二进制程序,可以模拟实现许许多多的Linux命令,busybox在编译安装完成之后会在我们系统的bin目录下生成一个名为busybox的二进制程序,其它的文件都是该二进制程序的软链接,几乎上百个命令都可以依靠这一个可执行程序来实现,还可以模拟几个shell,可以模拟实现我们Linux操作系统上bin和sbin目录下的很多命令,而且该文件所占的存储空间还非常的小,因此在一些存储设备容量非常小的环

从开始到结束,手把手教你使用busybox构建类嵌入式Linux系统

概述: 本篇博客是一个自制类嵌入式Linux系统的制作手册,内容涵盖使用宿主机通过busybox实 现制作类嵌入式Linu系统的详细过程,一步一步教你如何制作属于你自己的linux系统,同时 帮助你更加清楚的了解linux系统的组成结构,本篇博客需要读者对linux系统的启动流程及ssh 远程连接有一定的了解,这部分很多博客都有介绍,这里就不说明了,不了解的读者可以先去 看看这方面的博客. 制作的整个过程比较漫长(主要是编译源码需要耗费大量时间,因此,在编译内核时,记 得另起虚拟终端先完成其它操

android 系统定制的小技巧

<转>android 系统定制的小技巧(网络收集) 1开机图片: android-logo-mask.pngandroid-logo-shine.png 这两个图片一个在上一个在下 ./out/target/common/obj/JAVA_LIBRARIES/android_stubs_current_intermediates/classes/assets/images/android-logo-shine.png./frameworks/base/core/res/assets/image