#选择目标编译固件平台
1 | cd ~ /source |
#编辑前检查
1 2 | make defconfig make prereq |
#设置固件默认大小及自定义新硬件
#想生成自定义名称固件、机器型号需要修改8处地方
#主板CPU是MT7620N
#硬件是和ZBT WR8305RT的硬件一样
#板子上的真实型号是JGX-X5
#固件容量: 16M
#十六进制: 0xfb0000
#十进制: 16121856≈15.375
1 | cd ~ /source/target/linux/ramips/ |
#第1步:定义profile文件,用于make menuconfig显示菜单
1 2 3 4 5 6 7 8 9 | file = "./image/mt7620.mk" cat >>$ file <<EOF define Device /jlcsswrt DTS:= JLCSSWRT DEVICE_TITLE := MYWRT endef TARGET_DEVICES += jlcsswrt EOF |
#第2步:sed使用“”时:\\t表示制表符
1 2 3 4 5 6 7 8 9 10 11 | 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表示制表符
1 2 3 4 5 6 | 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步:
1 2 3 4 5 6 | 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接口
1 2 3 4 5 6 | 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接口
1 2 3 4 5 6 | 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
1 2 3 4 5 6 7 8 9 10 11 | \ 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步:删除文件并重新选择目标固件
1 | rm -rf ~ /source/tmp |
#进入编译菜单,选择目标平台
1 2 3 4 5 6 7 8 | 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 显示详细信息)
1 | make download V=s |
#可以利用其他软件下载需要的源代码包,拷贝到~/lede/source/dl目录下
#开始第一次编译#
第一次编译时最好不使用多线程编译,编译一次后,以后可以多线程编译;
1 2 3 | make V=s #或 make -j8 V=s |
本站的文章和资源来自互联网或者站长的原创,按照 CC BY -NC -SA 3.0 CN协议发布和共享,转载或引用本站文章应遵循相同协议。如果有侵犯版权的资 源请尽快联系站长,我们会在24h内删除有争议的资源。欢迎大家多多交流,期待共同学习进步。