OpenWrt分支LEDE嵌入式無線路由系統定製-2.自定義固件

#選擇目標編譯固件平臺linux

cd ~/source

#編輯前檢查web

make defconfig
make prereq

 

#設置固件默認大小及自定義新硬件bash

#想生成自定義名稱固件、機器型號須要修改8處地方多線程

#主板CPUMT7620Nide

#硬件是和ZBT WR8305RT的硬件同樣spa

#固件容量: 16M線程

#十六進制: 0xfb0000orm

#十進制:   1612185615.375接口

 

cd ~/source/target/linux/ramips/

 

#1步:定義profile文件,用於make menuconfig顯示菜單ip

file="./p_w_picpath/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分區

#因爲咱們的flash16M的,修改firmware分區大小爲0xfb0000L45

#(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
相關文章
相關標籤/搜索