OPENWRT MT7620 移植加开发

以记录为主。内容多为从其他高手处借借鉴面来。多为方面自已以后查询。


首先从网上下载代码。

svn co svn://svn.openwrt.org/openwrt/trunk


下载好代码以后,开始下载一此编译时需要的工具。

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


下载好工具以后,就开始编译 代码了。

首先更新feeds目录下面的东西。


在/trunk 路径下执行下面命令:

./scripts/feeds update -a

./scripts/feeds install -a


Feeds是OpenWRT环境所需要的软件包套件.比较重要的feeds有:

pacakges’:一些额外的基础路由器特性软件

‘LuCI’:OpenWRT默认的GUI

‘Xwrt’:另一种可选的GUI界面


注意了。编译openwrt的时候,最好用 普通用户权限编译。否则后面会有蛋疼的麻烦。

另外,make dirclean 慎用。

我用过之后,再编译,就会报一些权限上面的蛋疼错误。本人没有细究,chmod 777 编译的。

蛋疼的一逼。


执行完上面命令以后,就可以编译了。

首先make menuconfig 这个跟linux内核的功能一毛一样。就是配置一些功能.

//列一些常用功能 及编译时需要选择的一些选项。

Target System--->Ralink RT288x/RT3xxx

Sbutarget --->MT7620 base board

Target profile --->xiaomi Miwifi Mini


选择LuCI 配置(web网页管理程序): 
LuCI  ---> 1. Collections  --->  luci                                         启用LuCI 

LuCI  ---> 2. Modules  --->  Translations  --->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                             默认主题 大家可以自行增减插件

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   支持USB存储扩展

 Kernel modules  --->  USB Support  --->  kmod-usb-uhci                 支持USB 1.1

 Kernel modules  --->  USB Support  --->  kmod-usb2                     支持USB 2.0

Network  --->  File Transfer  --->  aria2                                    多协议下载器 

Network  --->  File Transfer  --->  vsftpd                                     FTP服务器 (我编译时无法下载此安装包,当时没有细究。直接修改.config注掉编译了)

Network  --->  File Transfer  --->  wget                                        下载工具 

Network  --->  ppp-mod-pppoe                                           PPPOE拨号模式 

Network  --->  ppp-mod-pptp                                                 VPN客户端 

Network  --->  SSH  --->  openssh-client                                    SSH客户端 

Network  --->  SSH  --->  openssh-sftp-server                           SSH SFTP服务 
  
Utilities  --->  bzip2                                                            解压缩工具 

Utilities  --->  Compression  --->  unrar                                       解压缩工具

 Utilities  --->  Compression  --->  unzip                                       解压缩工具

 Utilities  --->  Compression  --->  zip                                           压缩工具

 Utilities  --->  Filesystem  --->  badblocks                             支持ext2文件系统 

Utilities  --->  Filesystem  --->  e2fsprogs                 支持ext2/ext3/ext4格式化工具

 Utilities  --->  disc  --->  fdisk                                                   分区工具

其中*号为完整融合进系统,M为可手动增加。保存设置后,重新编译下即可


上面已经把正常的编译选项完成了。这时候编译出来的固件wifi是默认关闭的。你可以在页面上 网络/无线 下面将wifi开启。

还有一种方法。要修改一个配置文件。路径如下:

\trunk\package\kernel\mac80211\files\lib\wifi\mac80211.sh

修改此文件,拉至最下面一行.

# REMOVE THIS LINE TO ENABLE WIFI:

       将它下面那个disable 1 这行东西干掉。

这样默认wifi就是开启的啦。


此时还有另外一个问题,就是编出来的固件串口的符号率是115200的。而我的boot的符号率是57600的。

如果直接烧进行,kernel起来以后是乱码。看boot 看kernel的时候还要来回切符号率。所以找到配置文件,修改之。

路径如下:

trunk\target\linux\ramips\dts\MIWIFI-MINI.dts

chosen {
bootargs = "console=ttyS0,57600";
};

修改标红字段,就可以更改符号率了。


DTS/DTB这个是device tree .不太了解的同学,可以百度之。每个芯片,都有与之对应的dts文件,我们可以修改dts里面的东西来

配置符号我们硬件要求的软配置。giop 啥的都可以在这里面修改。


到这,基本上一个可用的固件就可以编译出来了。


下面说一下烧写的故事。


设备上电以后,boot起来。

Please choose the operation: 
   1: Load system code to SDRAM via TFTP. 
   2: Load system code then write to Flash via TFTP. 
   3: Boot system code via Flash (default).
   4: Entr boot command line interface.
   5: System Load uboot and image to FLASH via TFTP.
   7: Load Boot Loader code then write to Flash via Serial. 
   9: Load Boot Loader code then write to Flash via TFTP. 
   0: Load system code then write to Flash via Serial. 


You choosed 2

看到上面信息的时候,选2,然后设置好LOCAL IP/SERVER IP 文件名。把tftp也设置好。回车就可以烧写了。

之后就坐等重启吧。


此处还有一个小问题。(不知道此问题是否只在我的板子上有)

在上面,填写文件名那步,如要填写的文件名字过长的时候,就会换行。也就是说

Input Linux Kernel filename (openwrt.bin) ==:openwrt.bin 这一行东西会占用两行,等下次我换个文件名,准备再烧写的时候,发现只能擦除最下面那一行,而上面标红的东西无法删除。

此时的解决办法是,重启,看到上面1-9选项出来的时候,选 择4 .进入到boot命令行。

此时输入print命令,可以看到如下一条东西。

bootfile=openwrt.bin

通过修改bootfile来将长长的文件名干掉。

setenv bootfile=filename

saveenv


reset 重启。

之后继续上面的操作,继续烧写就OK了。


//feeds详解.

http://m.blog.csdn.net/blog/u012174021/42062647

//openwrt编译及编译选项

http://wenku.baidu.com/link?url=WWNrGw61gnfzvj3SsiXjken4XjiGSLMlBXlvY2iyzVI3fdofprJ7AsxqWQVlXCtVY4vpqkFA9hNqE1JkzdbC-LDUPvKxQhUfYod9PudMskS

你可能感兴趣的:(OPENWRT,LINUX,嵌入式)