此篇整理于2015.1.7号,遗失的笔记
================================================
参考资料:F403基本教程、openwrt深入学习笔记
串口默认波特率:57600
开发软件 eclipse 位于/home/f403tech/eclipse文件夹下。
开发板上用户文件及ipk软件包放在/usr/work/文件夹下。
ubuntu 截图命令 gnome-screenshot -a
ubuntu中ctrl+alt+方向键可以切换工作空间、ctrl+alt+t可以打开终端
RT5350基本操作:
[源码下载]
1、安装SVN工具
sudo apt-get install subversion
2、安装git工具
sudo apt-get install git-core
3、安装依赖库文件
sudo apt-get install gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils ncurses-term zliblg-dev libncurses5-dev gawk
或者
$sudo apt-get install gcc g++ binutils
$sudo patch bzip2 flex bison
$sudo make autoconf gettext texinfo
$sudo unzip sharutils ncurses-term zliblg-dev libncurses5-dev gawk
4、下载openwrt源码
mkdir openwrt
cd openwrt/
svn co svn://svn.openwrt.org/openwrt/trunk
进入trunk目录
cd /work/openwrt/trunk/
-------------------------------------------------------------------------------
0、编译openwrt
/home/work/openwrt/barrier_breaker# make help 查看帮助
执行svn info 查看当前下载的源码版本、svn update 更新下载的openwrt 源码、
更新Feeds,执行/work/openwrt/branches/barrier_breaker#./scripts/feeds update -a 、
然后执行/barrier_breaker#./scripts/feeds install -a 、
使下载的软件包可以出现在make menuconfig 配置菜单中。
openwrt 默认不允许使用root用户操作,需要修改include/prereq-build.mk文件:
barrier_breaker#vi include/prereq-build.mk
define Require/non-root
# ["$$(shell whoami)"!="root"]
endif
如果需要配置内核选项,执行barrier_breaker#make kernel_menuconfig
--------------------------------------------------------------------------------------------------
#进入配置页面
make menuconfig
RT5350开发板,采用32M SDRAM 、8M Flash,这配置和HAME的HAME-MPR-A2硬件配置一样。
每个选项前面都有一个[]标签,我们可以选择y,m,n
选择y设置为[*],表示将软件包编译进固件image文件
选择m设置为[M],表示软件包编译后制作成ipk文件,然后再设备上通过opkg命令安装,并不编译进固件中
选择n设置为[],表示不编译该软件包
1)选择CPU型号
Target System -> Ralink RT288x/RT3xxx
2)选择CPU子型号
Subtarget -> RT3x5x/RT5350 based boards
3)选择路由器型号
Target profile -> HAME-MPR-A2
最后保存退出
编译
barrier_breaker#make -j 3 V=s
-j:多进程编译,-j指定的参数为你的cpu核数加1,双核就指定为3
V=s:输出编译信息
$make V=99
注:第一次编译大概需要4、5个小时,以后再次编译分分钟搞定。
编译后的镜像位于 /work/openwrt/trunk/bin/ramips/下面 ls ./
openwrt-ramips-rt305x-mpr-a2-squshfs-sysupgrade.bin就是需要的镜像
清理工程
barrier_breaker#make clean 删除barrier_breaker目录下的bin、build_dir
barrier_breaker#make dirclean 删除barrier_breaker目录下的bin、build_dir、staging_dir、staging_dir/toolchain
barrier_breaker#make distclean 删除所有编译的或者配置和下载的feeds内容以及下载的软件包源码,还有.config配置文件
编译单个软件包以uci为例
barrier_breaker#make package/system/uci/compile V=s 编译
barrier_breaker#make package/system/uci/clean V=s 清理
1、烧写OpenWRT固件
在倒计时按4进入命令行界面
设置 tftpboot相关参数
RT5350 # set ipaddr 192.168.10.100
RT5350 # set serverip 192.168.10.102 设置 tftptftp tftp服务器 IP 地址 ,即 与你的设备相连的电脑 的 IP 地址
RT5350 # set bootfile openwrt.bin 设置 要下载的固件名称 要下载的固件名称
RT5350 # save 将设置写入Flash
执行 reset 重启设备,在 重启设备,在 倒计时按 2进入 tftptftp tftp烧写固件步骤
更改固件名,原固件名太长容易出错,同时记得带.bin后缀。设置好IP后用Tftpd32下载,tftp协议将监听端口69.
系统调用是内核与应用程序之间的接口,设备驱动程序是内核与硬件之间的接口。
2、开发板和windows互传文件,通过SSH[端口22]
首先在配置页面make menuconfig 将openssh-sftp-server选项设置为<*>,编译进内核,烧写新的固件。或确保固件已含有ssh-server.
然后使用passwd命令设置开发板密码
3、编译设备驱动程序
(1) 将f403tech_drv文件夹放到openwrt/trunk/package/kernel目录下,并进入源码顶层目录,cd /work/openwrt/trunk/,
执行make menuconfig ,进入kernel modles选项,进入other modules,找到kmod-f403tech_drv将其配置为* ,保存退出。
(2) #make package/kernel/f403tech_drv/compile V=99
编译完成后就能在openwrt/trunk/bin/ramips/packages目录找到*.ipk文件
(3) 将*.ipk软件包传到开发板上,使用opkg install命令安装
#opkg install kmod-f403tech_drv_3.10.36-1_ramips_24kec.ipk
#opkg remove 函数名 移除安装的程序
使用opkg list查看安装了哪些软件包,进入lib/modules/3.10.36/目录就能看到驱动模块,cd lib/modules/3.10.36/
接下来使用insmod命令装载驱动模块#insmod my74hc595_driver.ko
卸载驱动模块使用 #rmmod my74hc595_driver.ko
4、应用程序测试
将应用程序作为模块编译为ipk文件后传到开发板上,使用opkg install *.ipk安装。
然后输入应用程序的名字执行应用程序。
5、使能开发板上的WIFI(AP模式)
修改开发板上 /etc/config/wireless文件
注释掉option disabled 1这句,保存后退出重启,就能收到wifi信号openwrt了。
也可以通过web界面进行设置。
也可以在源码中使能wifi,需要修改openwrt/trunk/package/kernel/mac80211/files/lib/wifi/mac80211.sh文件,
同样注释掉option disabled 1这句。mac80211.sh文件还可以修改ap的ssid,将option ssid OpenWrt改为option ssid f403tech_ap,
保存退出,重新编译烧写即可。