MTALL 模块及开发板 OPENWRT 编译教程

来源:互联网 发布:js排序 编辑:程序博客网 时间:2024/06/07 22:50
MTALL 模块及开发板 OPENWRT 编译教程
(MT7620A 编译 OPENWRT 教程)
一、 编译前准备工作: .................................................................................................................. 2
二、 编译步骤: .............................................................................................................................. 2
1、 UBUNTU 系统安装: ............................................................................................................... 2
2、 安装编译中需要的软件: ....................................................................................................... 2
A、 安装 sshserver ...................................................................................................................... 2
B、 相关软件(建议到 SecureCRT 中操作) ............................................................................. 2
C、 下载 OpenWRT 源码包 ........................................................................................................ 2
相关说明: .............................................................................................................................. 3
三、
1、
进入 make menuconfig 后的设置部分..................................................................................... 3
A、文件系统、USB 存储、SD 卡支持相关选项: ........................................................................ 3
B、网络相关配置: ....................................................................................................................... 4
C、其他应用程序配置: ............................................................................................................... 4
2、
MTALL 相关配置文件修改 ....................................................................................................... 4
A、 dts 硬件配置(板子最重要的配置) .................................................................................. 5
B、 增加编译时生成 MTALL 的 bin 文件 .................................................................................... 7
C、 网络配置定义 ...................................................................................................................... 8
D、 LED 配置定义 ....................................................................................................................... 8
E、 其它定义文件 ...................................................................................................................... 8
F、 增加 Target profile 中单独编译选项 .................................................................................... 8
3、
操作技巧.................................................................................................................................. 9
A、 编译技巧 .............................................................................................................................. 9
B、 烧录技巧(含 shell 固件升级方式) .................................................................................. 9
C、 配置技巧: ............................................................................................................................ 11
D、 调试技巧................................................................................................................................ 12MTALL 模块是基于联发科技股份有限公司推出的智能路由解决方案 MT7620A 为基础制作的。
MT7620A 作为智能路由方案,被广泛地用在百度路由、极路由、联想的新一代路由中。
此教程中,
以当下最流行的 GIT 方式介绍,
因为官方代码维护己偏向 GIT 方式。请注意,
新版的 OPENWRT,
架框调整很大,网上 2015 年前教程,有一些会让大家找不到北。
一、 编译前准备工作:
编译环境类:Ubuntu 14.04(64 位)+VMWARE 10
工具类:SecureCRT(含 SecureFX)或 Xshell(含 Xftp)
烧录相关:tftp32(用于 32 位系统)或 tftp64(用于 64 位系统)
http://tftpd32.jounin.net
建议:购买成熟的 VPN 来优化下载过程中可能导致的问题
二、 编译步骤:
1、 UBUNTU 系统安装:
在实体机或虚拟机中安装 UBUNTU 14.04。
为了方便大家开发测试,特在此介绍一些 VMWARE 中的设置技巧。
A、 环境基础设置时,使用 64 位处理器。
B、 内存 1G 以上,硬盘空间 30G 以上。
C、 学会使用快照的功能。
D、 网络设置成 NAT 模式(用于共享主机 IP 地址)
2、 安装编译中需要的软件:
更新 Ubuntu 系统软件:
sudo apt-get update
A、 安装 sshserver
sudo apt-get install openssh-server
B、 相关软件(建议到 SecureCRT 中操作)
sudo apt-get install gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip
zip unrar p7zip p7zip-rar p7zip-full sharutils subversion libncurses5-dev ncurses-term zlib1g-dev
gawk git-core libssl-dev
C、 下载 OpenWRT 源码包
git clone git://git.openwrt.org/openwrt.git
进入源码文件夹
cd openwrt
更新扩展软件包:
./scripts/feeds update -a
安装扩展软件包:
./scripts/feeds install -a
进入配置界面(用于选择芯片型号、需要集成的组件等):
make menuconfig
开始编译:(注意,下面的 V 是大写)make V=99
注:在首次编译过程中,需要的时间较长,并且会到国外网站下各种源码包,建议在此时打开
较好的 VPN。可以加快编译的时间。
三、 相关说明:
1、 进入 make menuconfig 后的设置部分
选 CPU 型号
Target System ------------Ralink RT288x/RT3xxx
Subtarget
------------MT7620a based boards
如在代码中加入 MTALL 的模板,可编译时,只编译 MTALL 组件。
Target profile -----------MTALL
选择 LuCI 配置(web 网页管理程序)
:
LuCI ---> 1. Collections
LuCI ---> 2. Modules
---> luci
---> Translations
启用 LuCI
--->Chinese (zh-cn)
支持中文
LuCI ---> 3. Applications ---> luci-app-commands
网页 Shell
LuCI ---> 3. Applications ---> luci-app-firewall
LuCI ---> 3. Applications ---> luci-app-ntpc
防 火 墙
时间同步服务器
LuCI ---> 3. Applications ---> luci-app-qos
LuCI ---> 3. Applications ---> luci-app-samba
上网管理
网络共享
LuCI ---> 3. Applications ---> luci-app-ddns 动态域名
LuCI ---> 4. Themes 默认主题
---> luci-theme-bootstrap
大家可以自行增减插件,其中*号为完整融合进系统,M 为可手动增加。保存设置后,重新编译下即可。
以下提供部分插件,大家可根据情况选择一些配置:
A、文件系统、USB 存储、SD 卡支持相关选项:
Base system
---> block-mount
USB 挂载Kernel modules ---> Filesystems ---> kmod-fs-ext4 支持 ext4 文件系统
Kernel modules ---> Filesystems ---> kmod-fs-nfs 支持 NFS 文件系统
Kernel modules ---> Filesystems ---> kmod-fs-nfs-common(自动被选中)
Kernel modules ---> Filesystems ---> kmod-fs-ntfs 支持 NTFS 文件系统
Kernel modules ---> Filesystems ---> kmod-fs-vfat 支持 FAT32 文件系统
Kernel modules ---> Native Language Support ---> kmod-nls-cp437 支持中文
Kernel modules ---> Native Language Support ---> kmod-nls-iso8859-1
支持中文
Kernel modules ---> Native Language Support ---> kmod-nls-utf8 Kernel modules ---> Other modules ---> kmod-mmc 支持 SD 卡
Kernel modules ---> Other modules ---> kmod-sdhci 支持 SD 卡
Kernel modules ---> Other modules ---> kmod-sdhci-mt7620 支持 SD 卡
Kernel modules ---> USB Support ---> kmod-usb-ohci 支持 USB 1.0
Kernel modules ---> USB Support ---> kmod-usb-storage 支持 USB 存储
Kernel modules ---> USB Support ---> kmod-usb-storage-extras Kernel modules ---> USB Support ---> kmod-usb-uhci 支持 USB 1.1
Kernel modules ---> USB Support ---> kmod-usb2 支持 USB 2.0
支持中文
支持 USB 存储扩展
B、 网络相关配置:
Network ---> File Transfer ---> aria2
Network ---> File Transfer ---> vsftpd
Network ---> File Transfer ---> wget
Network ---> ppp-mod-pppoe
多协议下载器
FTP 服务器
下载工具
PPPOE 拨号模式
Network ---> ppp-mod-pptp VPN 客户端
Network ---> SSH ---> openssh-client SSH 客户端
Network ---> SSH ---> openssh-sftp-server
SSH SFTP 服务
C、其他应用程序配置:
Utilities ---> bzip2 解压缩工具
Utilities ---> Compression ---> unrar 解压缩工具
Utilities ---> Compression ---> unzip 解压缩工具
Utilities ---> Compression ---> zip Utilities ---> Filesystem ---> badblocks 支持 ext2 文件系统
Utilities ---> Filesystem ---> e2fsprogs 支持 ext2/ext3/ext4 格式化工具
Utilities ---> disc
---> fdisk
压缩工具
分区工具
有很多好用的程序包,在于大家发现,同时 OPENWRT 正在大改框架及移植代码,有很多好用的不在列表中,具体使
用中,建议大家常关注。
2、 MTALL 相关配置文件修改上面是基本 OPENWRT 的编译步骤,但是大家发现编译完的目录下,没有 MTALL 的固件,是因
为 MTALL 的硬件配置暂时还不在官方的程序包中,如果想测试效果,可以用 WRTNODE 的固件
进行刷机测试。下面,介绍一下手工增加 MTALL 模块的硬件配置步骤。
A、 dts 硬件配置(板子最重要的配置)
进入源码/target/linux/ramips/dts 目录,增加 MTALL.dts 文件,内容如下
――――――――开始――不要复制此处―――――――――――――
/dts-v1/;
/include/ "mt7620a.dtsi"
/ {
compatible = "mtall", "ralink,mt7620a-soc";
model = "MTALL";
palmbus@10000000 {
gpio2: gpio@660 {
status = "okay";
};
gpio3: gpio@688 {
status = "okay";
};
spi@b00 {
status = "okay";
m25p80@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "w25q256";
reg = <0 0>;
linux,modalias = "m25p80", "w25q256";
spi-max-frequency = <10000000>;
partition@0 {
label = "u-boot";
reg = <0x0 0x30000>;
read-only;
};
partition@30000 {
label = "u-boot-env";
reg = <0x30000 0x10000>;read-only;
};
factory: partition@40000 {
label = "factory";
reg = <0x40000 0x10000>;
read-only;
};
partition@50000 {
label = "firmware";
reg = <0x50000 0x1fb0000>;
};
};
};
};
ehci@101c0000 {
status = "okay";
};
ohci@101c1000 {
status = "okay";
};
ethernet@10100000 {
mtd-mac-address = <&factory 0x4>;
ralink,port-map = "llllw";
};
wmac@10180000 {
ralink,mtd-eeprom = <&factory 0>;
};
pinctrl {
state_default: pinctrl0 {
default {
ralink,group = "ephy", "wled", "pa", "i2c", "wdt", "uartf";
ralink,function = "gpio";
};
};
};
gpio-leds {compatible = "gpio-leds";
power1 {
label = "mtall:blue:power";
gpios = <&gpio0 9 1>;
};
lan1 {
label = "mtall:blue:lan1";
gpios = <&gpio2 1 1>;
};
lan2 {
label = "mtall:blue:lan2";
gpios = <&gpio2 2 1>;
};
lan3 {
label = "mtall:blue:lan3";
gpios = <&gpio2 3 1>;
};
lan4 {
label = "mtall:blue:lan4";
gpios = <&gpio2 4 1>;
};
wan {
label = "mtall:blue:wan";
gpios = <&gpio2 0 1>;
};
wlan1 {
label = "mtall:blue:wifi";
gpios = <&gpio3 0 1>;
};
internet {
label = "mtall:blue:internet";
gpios = <&gpio0 11 1>;
};
};
};
―――――――――结束――不要复制此处――――――――――――
B、 增加编译时生成 MTALL 的 bin 文件
修改 (/target/linux/ramips/image/Makefile)Makefile 文件。
第一次搜索 WRTNODE 在其配置后增加:
Image/Build/Profile/MTALL=$(call BuildFirmware/Default16M/$(1),$(1),mtall,MTALL)第二次搜索 WRTNODE 在其配置后增加:
$(call Image/Build/Profile/MTALL,$(1))
C、 网络配置定义
修改 (/target/linux/ramips/base-files/etc/board.d/02_network)02_network 文件。
搜索 wrtnode 在其后增加
wrtmtall | \
D、 LED 配置定义
修改 (/target/linux/ramips/base-files/etc/board.d/01_leds)01_leds 文件。
搜索 y1s 在其配置后增加:
mtall)
ucidef_set_led_default "power" "power" "mtall:blue:power" "1"
ucidef_set_led_netdev "mtall:blue:internet" "eth0.2"
set_wifi_led "mtall:blue:wifi"
;;
E、 其它定义文件
修改 (/trunk/target/linux/ramips/base-files/lib/ramips.sh)ramips.sh 文件。
搜索 wrtnode 在其配置后增加:
*"MTALL")
name="mtall"
;;
再修改 (/trunk/target/linux/ramips/base-files/lib/upgrade/platform.sh)platform.sh 文件。
搜索 wrtnode 在其配置后增加:
mtall |\
F、 增加 Target profile 中单独编译选项
进入源码/target/linux/ramips/mt7620/profiles 目录,增加 mtall.mk 文件,内容如下
――――――――开始――不要复制此处―――――――――――――
#
# Copyright (C) 2015 seatry.com
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.#
define Profile/MTALL
NAME:= MTALL mt7620a DevBoard
PACKAGES:=\
kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-ledtrig-netdev kmod-ledtrig-timer \
kmod-usb-acm
kmod-usb-net
kmod-usb-net-asix
kmod-usb-net-rndis
kmod-usb-serial kmod-usb-serial-option \
usb-modeswitch usb-modeswitch-data comgt
endef
define Profile/MTALL/Description
Package set for MTALL mt7620a IOT DevBoard
256MB DDR2 + 32MB Flash
endef
$(eval $(call Profile, MTALL))
――――――――结束――不要复制此处―――――――――――――
3、 操作技巧
A、 编译技巧
 make clean 编译后清理文件(删除基本编译)
 make dirclean 较深度清理文件,它等于 make clean 加上清除交叉编译工具链目录
 make distclean 清除所有相关东西,包括下载的软件包,配置文件,feed 内容等
 在自己开发中,经常发现 menuconfig 无法更新,请删除 tmp 缓存目录
 先下载,再编译的方法
make download V=99
B、 烧录技巧(含 shell 固件升级方式)
a、 通过 UBOOT 进行烧录
------------------------------------------------------------------
 烧录前,请把电脑 IP 设置成 192.168.1.100,子网掩码 255.255.255.0。网关等可不设。
 根据电脑情况,启动 tftpd64.exe 或者 tftpd32.exe。
 把系统固件(如 openwrt-ramips-mt7620-mtall-squashfs-sysupgrade.bin)和 UBOOT 固件
放在 TFTP 软件目录下。
-------------------------------------------------------------------
打开 SecureCRT
建立“快速连接”
调整为串口通讯方式,端口请根据电脑中具体情况调整,波特率 57600 (此为集成的 UBOOT
设置参数)
,关掉 RTS/CTS,如下图。打开路由电源
终端界面上显示选单后:
按 2 为通过 TFTP 方式刷系统固件
按 9 为通过 TFTP 方式刷 UBOOT
――――――――――
然后 Y
确认路由 IP 为 192.168.1.1
确认电脑 IP 为 192.168.1.100
输入固件名 openwrt-ramips-mt7620-mtall-squashfs-sysupgrade.bin
―――――――――――之后就等系统自动重启了。
第一次启动后,有较长的初始化时间,FLASH 越大,时间越长,procd: - init complete –后,
才是正常初始化完毕,正常启动成功。
b、 进系统后通过命令行完成固件升级
------------------------------------------------------------------

 确保给 ROOT 用户设了密码
通过 SecureCRT 建立 SSH2 方式登录

 通过软件关联,使用 SecureFX 的 SFTP 方式进入到路由目录中
可以把 BIN 文件,拖入到路由中 tmp 目录中
 在 SecureCRT 中输入命令
sysupgrade /tmp/openwrt-ramips-mt7620-mtall-squashfs-sysupgrade.bin
-------------------------------------------------------------------
C、 配置技巧:
a、 后台管理界面为中文
修改(feeds\luci\modules\luci-base\root\etc\config\luci)文件
其中 option lang auto
修改为 option lang zh_cn
b、 默认开启无线网络
修改(package\kernel\mac80211\files\lib\wifi\mac80211.sh)
其中 option disabled 1
修改为# option disabled 1c、 改 SSID 名称
修改(package\kernel\mac80211\files\lib\wifi\mac80211.sh)
其中 option ssid
OpenWrt
修改为
option ssid
想要的 SSID 名称
如果需要带 MAC 的结尾的话
修改为 option ssid
OpenWrt_$(cat /sys/class/ieee80211/${dev}/macaddress|awk -F
":" '{print $4""$5""$6 }'| tr a-z A-Z)
如果需要 WIFI 加密,请改成类似下面的两行。
option encryption 'psk2'
option key '12345678'
d、 进入系统后,增加密码(密码以 admin 为例)
修改(package\base-files\etc\ shadow)
其中 root::0:0:99999:7:::
改为 root:$1$MXsMb1qB$YbbEVH9WUkioVRZwLXXJg.:16474:0:99999:7:::
e、 修改后台登录的端口号
修改(package\network\services\uhttpd\files\ uhttpd.config)
其中的端口号改为自己想要的
list listen_http 0.0.0.0:80
list listen_http [::]:80
D、 调试技巧
在调试中,大家习惯性的来回换网线及上网,较麻烦。
建议使用方法:
 双网卡使用
 WIFI 连入公网,其 IP 地址配置避开开发中的路由的网段。
 有线网卡只配 IP 和子网掩码,不设网关和 DNS
1 0
原创粉丝点击