ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

HLK-7688A模块之一个完整Openwrt的开发过程01

2021-05-06 12:01:37  阅读:927  来源: 互联网

标签:01 NAME lua theme etc THEME HLK 7688A luci


背景资料:

HLK-7688A模块:内存DDR2:128MB,SPI Flash:32MB,主芯片:MT7688AN,内核:MIPS24KEc
Openwrt官网中了解到当前支持设备MediaTek LinkIt Smart 768符合我们基于HLK-7688A的产品板,代码主干仓库地址:https://www.github.com/openwrt/openwrt。

1.OP配置以及编译:

1.1 使用git clone命令克隆主干仓库,git checkout 切换到18.06分支。
1.2 下载完之后执行更新源(Feeds)指令,更新软件包依赖关系:./scripts/feeds update -a
1.3 执行下载编译固件需要的软件包:./scripts/feeds install -a
1.4 make menuconfig。根据我们硬件模块的系统信息,配置目标系统为:MediaTek Ralink MIPS,子目标为MT76x8 based boards,目标概述为MediaTek LinkIt Smart 7688。

编译界面
1.5 选择必要的组件包括:
1.5.1 中文配置界面:LUCI—>Theme—> <> luci-theme-openwrt。
LUCI—>modules—>Translations------> <
> Chinese
1.5.2 SD卡支持:Kernel modules —> Other modules —> <*> kmod-sdhci-mt7620
LinkIt smart7688的SD卡检测,默认是高电平。但是普通的SD卡是低电平。所以,要对dts进行修改。打开target/linux/ramips/dts/LINKIT7688.dts,找到下面的表述,将cd-high改成cd-low
sdhci@10130000 { status = "okay"; mediatek,cd-low; //mediatek,cd-high; }

1.5.3文件系统支持(这里我们选择ext4):Kernel modules—>Filesystems—> <> kmod-fs-ext1.6支持mkfs.ext4(用于格式化SD卡): Utilities -> Filesystem—><> e2fsprogs

2. 网关WEB界面开发

我们的主题基于Github上的开源项目luci-theme-atmaterial的主题修改而成。
MakeFile如下:

# LuCI Material Theme
# Copyright 2015 Lutty Yang <lutty@wcan.in>
#
# Licensed under the Apache License v2.0
# http://www.apache.org/licenses/LICENSE-2.0

include $(TOPDIR)/rules.mk

THEME_NAME:=atmaterial
THEME_TITLE:=ATMaterial

PKG_NAME:=luci-theme-$(THEME_NAME)
PKG_VERSION:=0.2.17
PKG_RELEASE:=1

include $(INCLUDE_DIR)/package.mk

define Package/luci-theme-$(THEME_NAME)
  SECTION:=luci
  CATEGORY:=LuCI
  SUBMENU:=4. Themes
  DEPENDS:=+libc
  TITLE:=Advanced Tomato Material
  URL:=http://wcan.in/
  PKGARCH:=all
endef

define Build/Configure
endef

define Build/Compile
endef

define Package/luci-theme-$(THEME_NAME)/install
	$(INSTALL_DIR) $(1)/etc/uci-defaults
	$(INSTALL_BIN) ./files/30_luci-theme-$(THEME_NAME) $(1)/etc/uci-defaults/luci-theme-$(THEME_NAME)	
	$(INSTALL_DIR) $(1)/www/luci-static/$(THEME_NAME)
	$(CP) -a ./files/htdocs/* $(1)/www/luci-static/$(THEME_NAME)/ 2>/dev/null || true
	$(INSTALL_DIR) $(1)/usr/lib/lua/luci/view/themes/$(THEME_NAME)
	$(CP) -a ./files/templates/* $(1)/usr/lib/lua/luci/view/themes/$(THEME_NAME)/ 2>/dev/null || true
	#$(INSTALL_DIR) $(1)/etc
	#$(INSTALL_BIN) ./garbge/file/etc/banner $(1)/etc/banner
	$(CP)  ./garbge/file/* $(1)/ 2>/dev/null

	
endef

define Package/luci-theme-$(THEME_NAME)/postinst
#!/bin/sh
if [ -z "$${IPKG_INSTROOT}" ]; then
	if [ -f /etc/uci-defaults/luci-theme-$(THEME_NAME) ]; then
		( . /etc/uci-defaults/luci-theme-$(THEME_NAME) ) && \
		rm -f /etc/uci-defaults/luci-theme-$(THEME_NAME)
	fi
	rm -rf /tmp/luci-indexcache /tmp/luci-modulecache
fi
mv /root/banner /etc/
mv /root/luci /etc/config/
mv /root/footer.htm /usr/lib/lua/luci/view/themes/bootstrap/
mv /root/index.htm /usr/lib/lua/luci/view/admin_status/
mv /root/shadow /etc/
mv /root/shadow- /etc/
mv /root/dhcp /etc/config
mv /root/luci-theme-XXX*  /root/luci-theme-XXX.ipk
mv /root/reset  /etc/rc.button
mv /root/failsafe /etc/rc.button
exit 0
endef
$(eval $(call BuildPackage,luci-theme-$(THEME_NAME)))

代码文件目录如下:
目录结构
2.1 file/templates/下的文件在安装包install过程中会拷贝到目标系统/usr/lib/lua/luci/view/themes/$(THEME_NAME)/下,header.htm将加载到每一页面的开头,而footer.htm将加载到每一个页面的结束, header.htm需要包含一个页面的 DOCTYPE描述、headers、menu和layout,footer.htm将关闭所有打开的tags,然后会添加一个footer bar。在footer中修改HTLM标签后续内容。
2.2 file/htdocs/存放的stylesheets,Javascripts, images等等会拷贝到目标系统中已被header和footer指出的目录,我们将images替换为自己的logo。
2.3 /garbge/file下边的文件根据Makefile中的描述,安装操作过程中会按照目录关系拷贝到目标系统里。/root下面的文件在安装完之后,会根据Makefile中的命令拷贝到相应目录。
Banner文件为ssh登录的欢迎界面。
dhcp文件为dhcp相关默认配置。
Index.htm为LUCI的首页,根据版本号,修改网关首页主机型号标签内容如下:
网关标签

Luci文件修改luci的默认语言为中文。
Reset文件为复位摁键执行脚本,当摁键摁下时间超过3秒,小于10秒时恢复出厂设置。如果超过30秒则恢复模块初始状态。
脚本文件
shadow文件修改系统默认密码为XXX.
2.4 garbge/file/etc/config下边的文件大部分为路由器的配置信息,network有网络接口的配置。PTLConfig文件中存放着关于PTL主控制器的配置,存储的格式遵循UCI统一配置接口。如果需要增加什么配置项需要现在这个文件添加相关option。Syste文件内包含系统配置,wireless文件包含无线信息。
2.5 garbge\file\usr目录下边放置了LUCI关于PTL控制器的配置界面模块。LUCI由系统配置统一接口UCI和轻量级语言lua结合而成。Luci采用MVC(三层架构),系统的/usr/lib/lua/luci/下有三个目录 model、 view、 controller, 它们分别对应 M、V、C。/garbge/file/usr/lib/lua/luci/controller/mystart下面放的mystart.lua,添加了一个顶层的导航Gatewa,判断当前是否有蓝牙网关的配置文件,如果有则添加两个相关配置的entry,判断是否有PTL网关的相关配置文件,如果有则添加三个相关配置的entry。
2.6 garbge/file/usr/lib/lua/luci/model/cbi/mystart-model目录下为三个文件mystartmoduleblue.lua为蓝牙的配置界面。mystartmoduleptl.lua为PTL配置界面,mystartmoduletestptl.lua为PTL现场自检功能界面,增加配置项可用taboption方法绑定UCI配置项与界面不同数值或者下拉框元素,相关语法可以访问: http://luci.subsignal.org/trac/wiki/Documentation/CBI2.7 garbge/file/usr/lib/lua/luci/view/mystart-mode 下的PTLView文件为按照Openwrt显示无线终端的页面修改而成,用于实时显示PTL总线上的在线的终端设备。
2.8 编译生成主题ipk文件:将整个luci-theme-atmaterial-master文件夹拷贝到openwrt源代码的package目录下,回到源代码根目录输入make menuconfig。LUCI—>Theme—> luci-theme-atmaterial。然后退出。输入make package/luci-theme-atmaterial-master/compile 编译ipk。最后编译成功的ipk。最后在openwrt/bin/packages/mipsel_24kc/base目录下找到Lin_PTLMaster_1_mipsel_24kc.ipk,使用opkg install Lin_PTLMaster_1_mipsel_24kc.ipk安装即可,下面截图为安装成功之后登录的界面:
网关修改界面

标签:01,NAME,lua,theme,etc,THEME,HLK,7688A,luci
来源: https://blog.csdn.net/geek_liyang/article/details/115913049

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有