此篇整理於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,
保存退出,重新編譯燒寫即可。


