溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何編譯HG255D的openwrt固件

發(fā)布時間:2021-12-18 11:32:08 來源:億速云 閱讀:427 作者:小新 欄目:互聯(lián)網(wǎng)科技

小編給大家分享一下如何編譯HG255D的openwrt固件,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

      因trunk版本每天都有變動,所以先如下說明:openwrt源碼是2014年5月21日,從svn co svn://svn.openwrt.org/openwrt/trunk/下載。版本r40804。

      去年年底從X寶JS那花100多(這也是學費,現(xiàn)在要是折騰就自己買個二手的自己改裝)買的改裝后的華為HG255D路由,flash 16M,內(nèi)存32M*2,刷的是openwrt-dreambox固件。沒入手CH341A編程器前一直都不敢對路由器太大折騰。雖說里面uboot是lintel不死uboot,但還是擔心變磚。入手編程器以后,就決定自己為hg255d編譯openwrt固件(后來拆了hg255d一看,才知道想法太天真了,hg255d用的不是普通的8、16腳flash)。
 

      openwrt沒法直接編譯出HG255D路由器的固件,雖然在make menuconfig選擇HG255D路由后,make V=s編譯后并沒有出現(xiàn)openwrt-ramips-rt305x-hg255d-squashfs-sysupgrade.bin升級固件。找到一些資料是說:

HG255D原版的無線校正數(shù)據(jù)(“eeprom”)在flash的最后128 KiB。
eeprom除了MAC地址還有無線頻率校正、每通道功率控制之類的數(shù)據(jù),如果eeprom被擦除又沒有備份的話無線就起不來了。
eeprom每個路由器都不同,從其他機器上拷貝一個過來用的話無線通信效果會劣化。
Openwrt在HG255D上啟動后會到/lib/firmware下找soc_wmac.eeprom文件,
如果找不到的話就試圖從Flash的factory區(qū)讀取出來,如果讀取失敗的話wifi無法啟動。
openwrt官方的版本只在lintel u-boot上測試過,如果刷在帶原廠u-boot的HG255D上會擦除無線校正數(shù)據(jù)(factory),這很嚴重。
原版的布局是,前128k是uboot,最后128k是factory(0xfa0000開始),中間的是firmware,firmware的前1M是kernel,后面就是rootfs了。
 

要編譯出HG255D升級固件,需要做如下改動:

1、打開對HG255D板的支持
在target/linux/ramips/image/Makefile中,去掉下面兩行行首的#,增加對HG255D編譯的支持(用HG255D搜索即可)
 

Image/Build/Profile/HG255D=$(call BuildFirmware/Default16M/$(1),$(1),hg255d,HG255D)
$(call Image/Build/Profile/HG255D,$(1))


2、使用原機的mac地址
其實源代碼里面提供了對原來mac地址的讀取,但是腳本有點問題
在target/linux/ramips/base-files/lib/ramips.sh中查找HG255D,能查到如下代碼

*"HG255D")                                
		name="hg255d"
		;;

將其中的"HG255D"修改為"HuaWei HG255D",如下

*"HuaWei HG255D")                                
		name="hg255d"
	;;

然后在target/linux/ramips/base-files/lib/preinit/06_set_iface_mac中查找freestation5,在查找到的這行下面加入HG255D對應的代碼,如下:

freestation5 |\
	hg255d |\
	hlk-rm04 |\


3、改電源指示燈不能正常工作的問題
修改target/linux/ar71xx/base-files/etc/diag.sh,找到:

hlk-rm04)
		status_led="hlk-rm04:red:power"
		;;

其下添加

hg255d)
		status_led="hg255d:power"
		;;

以上是需要修改的。下面列的是可選修改的:


4、修改缺省lan ip
修改package/base-files/files/lib/functions/uci-defaults.sh中
 

set network.lan.ipaddr='192.168.1.1'

中的地址為你想要的地址,我的沒改。

5、打開wlan的支持,并添加無線密碼12345678
修改package/kernel/mac80211/files/lib/wifi/mac80211.sh中
 

option disabled 1


option disabled 0

在config wifi-iface節(jié)添加wifi密碼(none改成psk2,并加一條密碼12345678)

option encryption 'psk2'
	option key '12345678'


如果需要加入萬能橋接可再添加如下配置:

config wifi-iface
	option network 'wwan'
	option ssid 'TP-LINK_1234'		#被橋接的wifi的SSID
	option encryption 'psk2'		#被橋接的wifi的加密方式
	option device 'radio0'
	option mode 'sta'			#工作模式 客戶端Client
	option bssid '11:22:33:44:55:66'	#被橋接的wifi的MAC地址
	option key '111222333'		#被橋接的wifi的密碼


6、缺省使用中文(當然先要安裝luci的中文模塊)
修改feeds/luci/libs/web/root/etc/config/luci中(注trunk r41302發(fā)現(xiàn)這個文件被移動到feeds/luci/modules/base/root/etc/config/luci)
在config internal languages下增加下面兩行
 

option zh_cn 'chinese'
	option en 'English'

并將config core main中修改為 

option lang zh_cn



7、修改默認主題
修改feeds/luci/libs/web/root/etc/config
在config core main下找到:
 

option mediaurlbase /luci-static/openwrt.org

可根據(jù)需要將openwrt.org修改為Bootstap、openwrtcn、freifunk-bno、freifunk-generic


8、添加root帳號密碼
修改package/base-files/files/etc/shadow文件

root::0:0:99999:7:::

改成(密碼是admin)

root:$1$21u5EotL$B9ebsVgEQe.C7lsk0iMf10:0:0:99999:7:::

注:生成加密的密碼字段的方法:
方法一(交互式)
命令格式: openssl passwd -1 -salt $(< /dev/urandom tr -dc '[:alnum:]' | head -c 32)
Password:    # input your password here 
$1$MZrDxgEw$i2XBgmDMo0Wf1.OVvOGGQ1
 
方法二(適用于腳本)
命令格式: echo "xansun" | openssl passwd -1 -salt $(< /dev/urandom tr -dc '[:alnum:]' | head -c 32) -stdin 
$1$KsRJO8kG$M9co4G7T6.5KcITsSCRNS/

方法三
以下命令可得到加密后的字符串,zz為密碼
命令格式: perl -e ’   print   crypt("zz","\$1\$acQMceF9\$"),"\n"     ’ 
$1$acQMceF9$1SaCpG2qiKKA3eGolU4Fp0

9、修改主機名,設定時區(qū)
修改package/base-files/files/etc/config/system

config system
	option hostname 'OpenWrt'
	option conloglevel '8'
	option cronloglevel '8'
	option zonename 'Asia/Shanghai'
	option timezone 'CST-8'

config timeserver ntp
	list server 0.openwrt.pool.ntp.org
	list server 1.openwrt.pool.ntp.org
	list server 2.openwrt.pool.ntp.org
	list server 3.openwrt.pool.ntp.org
	option enable_server 0

其中:
option hostname Openwrt 設定主機名
option zonename Asia/Shanghai 時區(qū)設置為亞洲/上海
option timezone CST-8 正8區(qū)

list server 就是ntp服務器了。


make menuconfig可選軟件包(按自己需要選擇):

添加USB掛載

Base system-->block-mount

添加磁盤格式支持

Kernel modules-->Filesystems-->kmod-fs-ext4
Kernel modules-->Filesystems-->kmod-fs-msdos
Kernel modules-->Filesystems-->kmod-fs-ntfs
Kernel modules-->Filesystems-->kmod-fs-vfat

語言支持

Kernel modules-->Native Language Support-->kmod-nls-utf8

網(wǎng)絡支持

Kernel modules-->Network Support-->kmod-pppol2tp
Kernel modules-->Network Support-->kmod-pptp

USB支持

Kernel modules-->USB Support-->kmod-usb-hid
Kernel modules-->USB Support-->kmod-usb-printer
Kernel modules-->USB Support-->kmod-usb-serial  #usb轉(zhuǎn)串口
Kernel modules-->USB Support-->kmod-usb-serial-cp210x
Kernel modules-->USB Support-->kmod-usb-serial-pl2303
Kernel modules-->USB Support-->kmod-usb-storage
Kernel modules-->USB Support-->kmod-usb-storage-extras
Kernel modules-->USB Support-->kmod-usb2

Video(掛載攝像頭)

Kernel modules-->Video Support-->kmod-video-core
Kernel modules-->Video Support-->kmod-video-cpia2
Kernel modules-->Video Support-->kmod-video-gspca-core
Kernel modules-->Video Support-->kmod-video-pwc
Kernel modules-->Video Support-->kmod-video-sn9c102
Kernel modules-->Video Support-->kmod-video-uvc
Kernel modules-->Video Support-->kmod-video-videobuf2

無線驅(qū)動

Kernel modules-->Wireless Drivers-->kmod-rt2800-usb
Kernel modules-->Wireless Drivers-->kmod-rt73-usb
Kernel modules-->Wireless Drivers-->kmod-rtl8187

添加libffmpeg-mini支持ushare需要

Libraries-->libffmpeg-mini

LUCI

LuCI-->Collections-->luci
LuCI-->Applications-->luci-app-ddns
LuCI-->Applications-->luci-app-hd-idle
LuCI-->Applications-->luci-app-multiwan
LuCI-->Applications-->luci-app-ntpc
LuCI-->Applications-->luci-app-p910nd
LuCI-->Applications-->luci-app-qos
LuCI-->Applications-->luci-app-samba
LuCI-->Applications-->luci-app-tinyproxy
LuCI-->Applications-->luci-app-upnp
LuCI-->Applications-->luci-app-ushare
LuCI-->Applications-->luci-app-wol
LuCI-->Themes-->luci-theme-openwrt
LuCI-->Translations-->luci-i18n-chinese

Multimedia

Multimedia-->mjpg-streamer

Network 

Network-->File Transfer-->aria2
Network-->Printing-->cups-locale-zh
Network-->VPN-->pptpd
Network-->wireless-->aircrack-ng
Network-->wireless-->aircrack-ptw
Network-->wireless-->reaver
Network-->wireless-->xsupplicant

Utilities 

Utilities-->Filesystem-->badblocks	#自動掛載工具
Utilities-->Filesystem-->mkdosfs
Utilities-->Filesystem-->ntfs-3g	#ntfs讀寫
Utilities-->disc-->fdisk	#分區(qū)工具
Utilities-->disc-->blkid        #可以列出分區(qū)類型卷標等
Utilities-->disc-->lsblk        #列出塊設備,還能顯示他們之間的依賴關系
Utilities-->lrzsz		#上傳下載工具
Utilities-->restorefactory	#reset鍵支持(長按5秒以上就可以恢復固件默認設置)
Utilities-->usbreset
Utilities-->usbutils    #lsusb支持
Utilities-->wifitoggle	#添加一鍵開關無線(按一下WPS鍵放開無線就打開或者關閉)

最后make V=s,等待編譯完成生成hg255d固件。

看完了這篇文章,相信你對“如何編譯HG255D的openwrt固件”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI