MT7628-Openwrt的开发过程

无论是 ARM, PowerPC 或 MIPS 的处理器 ,都必需经过以下的开发过程:
1、创建 Linux 交叉编译环境
2、建立 Bootloader
3、移植 Linux 内核
4、建立 Rootfs (根文件系统)
5、安装驱动程序
6、安装软件

采用上面传统的方法进行嵌入式开发,费时费力,但是可以你通过 OpenWrt 快速构建一个应用平台,OpenWrt 从交叉编译器,到 linux 内核,再到文件系统甚至 bootloader 都整合在了一起,形成了一个 SDK 环境。其多达 3000 多种软件包(数量还在增加),囊括从工具链(toolchain),到内核(linux kernel),到软件包(packages)。

OpenWrt 的成功之处还在于它的文件系统是可写的,开发者无需在每一次修改后重新编译系统,并且可以像 PC 机上的 linux 系统一样,用命令安装一些安装包,不用手动配置,这
些都令它更像一个小型的 Linux 电脑系统。

版本信息
开发前的硬件准备

JS7628 开发板一块,mini usb 数据线一条(用于 USB 串口调试),网线一条(用于网络测试、传输固件、应用程序等),开发板电源一个。

搭建软件开发环境

目前大部分的linux开发都是在PC虚拟机上进行的,所采用的linux系统版本有Ubuntu、Redhat、Debian、Fedora 等,这里我们在 windows 操作系统上利用 VMware + Ubuntu12-32bit 来搭建
虚拟机开发环境。

VM14安装Ubuntu12时黑屏无显示问题解决方法,先把虚拟机系统挂起,在运行(win+R)中输入此命令,重启电脑即可。

netsh winsock reset
配置清华源备份并修改为以下 /etc/apt/source.list文件
deb https://mirrors.ustc.edu.cn/ubuntu-old-releases/ubuntu/ precise main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu-old-releases/ubuntu/ precise main restricted universe multiverse

deb https://mirrors.ustc.edu.cn/ubuntu-old-releases/ubuntu/ precise-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu-old-releases/ubuntu/ precise-security main restricted universe multiverse

deb https://mirrors.ustc.edu.cn/ubuntu-old-releases/ubuntu/ precise-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu-old-releases/ubuntu/ precise-updates main restricted universe multiverse

deb https://mirrors.ustc.edu.cn/ubuntu-old-releases/ubuntu/ precise-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu-old-releases/ubuntu/ precise-backports main restricted universe multiverse

## Not recommended
# deb https://mirrors.ustc.edu.cn/ubuntu-old-releases/ubuntu/ precise-proposed main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu-old-releases/ubuntu/ precise-proposed main restricted universe multiverse

配置编译环境
sudo apt-get install subversion build-essential libncurses5-dev zlib1g-dev gawk git ccache gettext libssl-dev xsltproc
sudo apt-get install libssh-dev
git clone git://git.archive.openwrt.org/15.05/openwrt.git
升级GCC
https://blog.csdn.net/ppp2006/article/details/52183472

1.) Press Ctrl+Alt+T on your keyboard to open terminal. When it opens, run below commands to add the ppa:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
2.) Then install gcc 4.8 and g++ 4.8:

sudo apt-get update; sudo apt-get install gcc-4.8 g++-4.8
3.) Once installed, run following commands one by one to use gcc 4.8 instead of previous version.

sudo update-alternatives --remove-all gcc 

sudo update-alternatives --remove-all g++

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 20

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 20

sudo update-alternatives --config gcc

sudo update-alternatives --config g++
Now you have the gcc 4.8 with c++11 complete feature in your system. Check out by:

gcc --version
配置系统功能
make menuconfig
选择芯片型号和交叉编译工具链
进入到菜单
Kernel modules --->
Other modules --->
<*> kmod-sdhci-mt7620
如果选上“kmod-sdhci-mt7620”则开发板支持 micro SD 卡接口功能,同时启用“IOT-device”功能,如果选择不启用则开发板不支持 micro SD 卡接口功能,并启用“IOT-gateway”功能
拷贝DL文件夹里的文件

想要加速编译,需要提前把备份的DL文件拷贝到~/openwrt/dl目录下


备份文件路径
编译
make V=s
openwrt的Makefile分析
https://www.cnblogs.com/sammei/p/3968916.html
编译完成后设备树路径
/openwrt/target/linux/ramips/dts$ vim MT7628.dts
固件路径
openwrt/bin/ramips/
固件和交叉编译工具链
安装交叉编译工具链
sudo tar jxvf ./OpenWrt-Toolchain-ramips-mt7628_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-i686.tar.bz2 -C /opt/
sudo vim /etc/bash.bashrc    //添加以下环境变量

export PATH=/opt/OpenWrt-Toolchain-ramips-mt7628_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-i686/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/bin:$PATH
export STAGING_DIR=/home/marvin/openwrt-15/openwrt/staging_dir


source /etc/bash.bashrc  //更新环境变量

mipsel-openwrt-linux-gcc -v   //检查是否设置成功
设备树修改
修改内存大小

修改flash大小
配置管脚复用

MT7628 芯片里面有很多管脚是复用,这里我们以“spis”功能为例做介绍如何配置 7628开发板的管脚功能复用。找到 DTS 文件中的


image.png

从上图可以看出 MT7628 芯片的 SPIS 管脚默认配置为"pwm_uart2"功能,具体可以配置哪几种功能是在“openwrt/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7628/linux-3.18.29/arch/mips/ralink/mt7620.c”中定义


image.png

由上图可知,我们可以把“spis”管脚组定义为“pwm_uart2”、“util”、“gpio”、“spis”4 中
功能,这个和 MT7628 的 datasheet
( “JS7628 开发板配套资料\芯片元器件手册\MT7628\MT7628 Datasheet.pdf”)中介绍的完全对应,如下图所示


image.png

如果需要将这几个管脚恢复为 GPIO 功能,可以把 DTS 文件修改为


image.png
记得开启luci界面
修改配置文件 .config , 将 CONFIG_FEED_luci is not set 修改为  CONFIG_FEED_luci=y
./scripts/feeds update -a
./scripts/feeds install -a
再执行 make menuconfig, 可以查看到已经存在luci选项了

 LuCI -->

          Collections -->

               < * > luci

          Applications-->

              <* > luci-app-ddns

              <* > luci-app-firewall

              <* > luci-app-ntpc

              <* > luci-app-samba

          Themes-->全选
正在下载luci的feed包
make V=s
cd ./bin/ramips
找到固件名为下面名字的bin文件
openwrt-ramips-mt7628-mt7628-squashfs-sysupgrade.bin
固件位置

然后重新编译固件烧录,这样这组管脚就变成了 GPIO 功能

如果想读懂openwrt固件文件名的规则,可以这样理解

openwrt-系统版本(无)-硬件平台-具体分支-设备型号-硬件版本-分区类型-固件类型.bin

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,670评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,928评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,926评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,238评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,112评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,138评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,545评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,232评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,496评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,596评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,369评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,226评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,600评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,906评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,185评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,516评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,721评论 2 335