您的位置:首页 > 编程语言

openwrt针对RT5350代码下载,配置和编译

2014-08-12 15:49 656 查看
最近买了块官方板的RT5350:



先介绍代码下载,以下命令都是用登录用户执行,无须root:

mkdir openwrt   //待会代码下载到此目录下

cd openwrt

svn   co   svn://svn.openwrt.org.cn/openwrt/trunk     //svn下载,svn命令没有的话自行安装

下载结束后显示:

Checked out revision 40618.      //大概是这样子,40618可能不一样,因为代码升级的吧

当前目录下有个trunk的目录

更新和安装软件包:

cd trunk/

./scripts/feeds   update  -a    //更新软件包

./scripts/feeds   install     -a   //安装软件包

测试以下配套工作:
make defconfig  //检查一下build-essential asciidoc binutils bzip2 gawk gettext \git libncurses5-dev libz-dev patch unzip zlib1g-dev ia32-libs \ lib32gcc1 libc6-dev-i386 这些配套工具有没有安装完整,不然后面编译会出错。出错时只需要按照提示安装对应的工具包

基本的代码到此已经下载结束,接下去到配置和编译,请注意编译过程中需要下载一些安装包,所以期间不能断网。

配置:

cd  trunk/

make menuconfig

Target System --->> Ralink RT288x/RT3xxx

Subtarget    -------->> RT3x5x/RT5350 based boards

Target Profile  ---------->> HAME MPR-A2

注意这里选上:Build the OpenWrt SDK   //后面的开发应用软件需要

Luci  配置

编译:

在trunk目录下执行:make V=s   //这个过程需要下载东西,我家网速8M,所以不到一个小时就编译好了,期间出了一些

问题,都是配套工具包没有安装。

编译结束后:

在trunk/bin/ramips 目录下有生成的镜像包:

md5sums

openwrt-ramips-rt305x-mpr-a2-squashfs-sysupgrade.bin

openwrt-ramips-rt305x-root.squashfs

openwrt-ramips-rt305x-uImage.bin

openwrt-ramips-rt305x-vmlinux.bin

openwrt-ramips-rt305x-vmlinux.elf

OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2.tar.bz2

packages

其中openwrt-ramips-rt305x-mpr-a2-squashfs-sysupgrade.bin是可以通过网页和TFTP下载更新到开发板上的。

请放心更新,因为更新过程不会把uboot更新,所以出错之后也可以通过uboot命令重新更新,出现升级uboot出错。

OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2.tar.bz2是我们下一篇编译ipk应用软件

所需要的SDK。

介绍以下trunk目录结构(以下内容为摘录):http://blog.csdn.net/kingvenll/article/details/27545221bin 生成的镜像都在此目录

---build_dir/host目录是建立工具链时的临时目录

---build_dir/toolchain-<arch>*是对应硬件的工具链的目录

---staging_dir/toolchain-<arch>* 则是工具链的安装位置

---target/linux/<platform>目录里面是各个平台(arch)的相关代码

---target/linux/<platform>/config-3.10文件就是配置文件了

---dl目录是'download'的缩写, 在编译前期,需要从网络下载的数据包都会放在这个目录下,这些软件包的一个特点就是,会自动安装在所编译的固件中,也就是我们make menuconfig的时候,为固件配置的一些软件包。如果我们需要更改这些源码包,只需要将更改好的源码包打包成相同的名字放在这个目录下,然后开始编译即可。编译时,会将软件包解压到build_dir目录下。

---而在build_dir/目录下进行解压,编译和打补丁等。

---package目录里面包含了我们在配置文件里设定的所有编译好的软件包。默认情况下,会有默认选择的软件包。在openwrt中ipk就是一切, 我们可以使用

升级过后既可以链接上网。WAN链接到路由上,LAN链接到自己电脑上,现在写这篇时就是在用这块开发板上网的。


Openwrt安装USB驱动挂载U盘

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

opkg update
opkg install kmod-usb-core
opkg install kmod-usb-ohci #安装usb ohci控制器驱动
#opkg install kmod-usb-uhci  #UHCI USB控制器
opkg install kmod-usb2 #安装usb2.0
opkg install kmod-usb-storage #安装usb存储设备驱动
opkg install usbutils #安装了这个后可以用 lsusb
opkg install kmod-fs-ext2 #安装ext2分区支持
opkg install kmod-fs-ext3 #安装ext3分区格式支持组件
opkg install kmod-fs-ntfs #ntfs内核驱动
opkg install mount.ntfs-3g #挂载ntfs助手
opkg install mount-utils #挂载卸载工具
opkg install ntfs-3g #挂载NTFS
opkg install kmod-fs-vfat #挂载FAT
opkg install fdisk #硬盘分区管理工具

挂载分区:

1

mount -t ext2 /dev/sda1 /mnt/

开机自动挂载:

1

echo "/dev/sda1 /mnt/                     ext2   rw,async,noatime,nodiratime  0 0 ">> /etc/fstab

usb声卡

kmod-usb-audio - 2.6.32.10-1kmod-sound-core (2.6.32.10-1) 
kmod-input-core (2.6.32.10-1)

 2012年7月份左右曾经看到有人把路由器改成网络播放器使用,无奈于时间与精力,事情不了了之,后来也就渐渐淡忘了。一直发展到今年春节期间,意外搞到一部DB120-WG路由器,于是东风再起,重新开始折腾网络收音机。
       曾在“第四届大赛”板块发了一个早期近似失败的实验品,也总算是为后来打下基础。

应大家的要求,这里详细地写下刷机过程,原版OpenWrt Backfire 10.03.1系统安装mplayer播放器步骤,Anyradio服务器电台列表读取程序Linux shell 版


 

1、硬件准备
    DB120-WG路由器,USB声卡,一个ADSL设备(如调制解调器,其它路由器),RJ-45标准网线

    路由器我试过RG100a-AA,刷好后LED全部错位,按钮不可用,其它正常。只要路由器的CPU是BCM6358,带USB口的都可以刷文中的固件。这样就无需安装下文所述的软件包。
    USB声卡不要用Tenx牌子芯片的,效果很差。

2、刷机
    (1)、将RJ-45线一水晶头插到路由器的WAN口(LAN4),另一头连接电脑网卡。
    (2)、配置电脑本地网卡为固定IP 192.168.1.100,网关192.168.1.1,子网掩码255.255.255.0
    (3)、先不要接通路由器电源,按住路由器的RST键不放,打开电源,直到绿色的POWER灯变为红色,说明路由器已经进入CFE工厂设置模式
    (4)、浏览器输入http://192.168.1.1/upload.html ,此时应该可以看到“上传固件”(Upload
the firmware)字样
    (5)、下载本文提到的定制好的固件,上传到路由器
    (6)、路由器自动把固件写入RAM,重新对FLASH编程,过程大概10分钟完成。此时TTL接口上将回显编程进度。过程中路由器千万不能断电。

帖子结尾会提供固件下载地址。建议先刷不带CFE的固件,如果刷好后系统无法启动,再刷带CFE的固件。注意:一旦CFE被刷坏,路由器就无法再次通过上诉方法重刷!

3、加入WIFI网络
    (1)、浏览器输入192.168.1.1,登陆openwrt设置界面,默认密码admin,进入后先设置SSH密码(可以设为admin,比较方便),然后依次单击network ---》interface ---》WIFI ---》Scan ---》 将列出扫描到的接入点,找到自家路由器发送的信号,单击Join
network ,输入无线热点密码,其它一切默认,单击Save,回到 interface 界面,可以看到接口多出WWAN一项。
    (2)、确定无误,单击页面右上方红色字体“Unsaved Changes”,单击Apply应用设置,至此netwrok设置完毕。处在局域网里的电脑不一定能上网,但路由器一定可以访问广域网了。

有些朋友曾经问过,平常印象中的路由器都是“发射”信号,怎么还能“接收”信号呢?
       换个角度思考,要访问一个网页,就必须先发送HTTP协议头给服务器,请求相应文件,然后人家才会把数据传给你,也就是说WIFI肯定是双向的,就像以太网接口或蓝牙接口一样,所谓“只能发射”其实是狭义上的说法。Openwrt提供了网桥逻辑配置界面,只要把wifi配置为DHCP服务器,映射到系统WAN就大功告成了。

配置完毕后,使用Putty实现远程终端,winSCP实现远程文件管理


 


 

3、必要软件
    操作系统:Openwrt Backfire 10.03。

    如果刷的是原版系统,而非文中提到的固件的话,可能需要执行下列步骤
    (1)、软件包 -- kmod-usb-audio, alsa-utils, kmod-usb-storage, kmod-usb-ohci, 
                  kmod-usb2, kmod-usb-hid, kmod-nls-base, kmod-nls-cp437,
                  kmod-nls-iso8859-1, kmod-nls-utf8, kmod-fs-ext3, kmod-fs-vfat,
                  kmod-fuse, ntfs-3g, block-hotplug, libiconv, zlib, libmad
                安装步骤如下:

                1.安装USB声卡驱动

                 root@OpenWrt:/# opkg
install kmod-usb-audio
                 
                 root@OpenWrt:/# ls
dev

                 显示audio、dsp表示声卡安装成功

                2.安装支持库
                root@OpenWrt:/# opkg
install kmod-usb-audio
                root@OpenWrt:/# opkg
install alsa-utils
                root@OpenWrt:/# opkg
install kmod-usb-storage
                root@OpenWrt:/# opkg
install kmod-usb-ohci
                root@OpenWrt:/# opkg
install kmod-usb2
                root@OpenWrt:/# opkg
install kmod-usb-hid
                root@OpenWrt:/# opkg
install kmod-nls-base
                root@OpenWrt:/# opkg
install kmod-nls-cp437
                root@OpenWrt:/# opkg
install kmod-nls-iso8859-1                root@OpenWrt:/# opkg
install kmod-nls-utf8
                root@OpenWrt:/# opkg
install kmod-fs-ext3
                root@OpenWrt:/# opkg
install kmod-fs-vfat
                root@OpenWrt:/# opkg
install kmod-fuse
                root@OpenWrt:/# opkg
install ntfs-3g
                root@OpenWrt:/# opkg
install block-hotplug
                root@OpenWrt:/# opkg
install libiconv
                root@OpenWrt:/# opkg
install zlib
                root@OpenWrt:/# opkg
install libmad

    - (2)、解压文中的附件,复制mplayer,到/usr/share/mplayer/目录下(如果目录不存在请新建)
                执行下来命令修改执行权限755

                root@OpenWrt:/# chmod
755 /usr/share/mplayer/mplayer

插USB声卡到路由器,稍等片刻,声卡上的指示灯点亮,说明系统已经识别并挂载声卡。

接下来试运行mplayer:

     创建fifo文件
     root@OpenWrt:/# mkfifo
/fifofile
     root@OpenWrt:/# /usr/share/mplayer/mplayer
-slave -input file=/fifofile -playlist /播放列表地址

4、电台列表(播放列表)
     mplayer正常运行还不行,如果没有网络电台的URL的话,只有听本地文件或者是空气。因此,我们可能需要辛苦地到处筹集地址。设想假如有个程序能自动获取网上的所有资源并生成播放列表,那就方便多了。这里,对AnyRadio进行了深入研究,成功找出API地址,编写了下面的linux
shell方便各位。
     
     执行下面命令,
     root@OpenWrt:/# mkdir
/webradio/
     root@OpenWrt:/# mkdir
/webradio/vars

上传下面代码到/webradio/downloadlist

#!/bin/sh
# Download the radio stations list  from the server

# Read the list of radio stations
read_list()
{
    rm -f /webradio/vars/playlist.lst
    lnum=`awk 'END{print NR}' /webradio/vars/weblist.lst`  
    echo +10 count:$lnum
    for i in $(
seq 1 $lnum );do
        str=`sed -n ${i}p  /webradio/vars/weblist.lst`   
        str=`echo $str | cut -d"|" -f6`         
        len=`echo $str|cut -c1-1`
        #if
[ ! $len == r ]
        # 
 then
           echo +11 $i $str 
           echo $str >> /webradio/vars/playlist.lst
        #fi
     done
}

echo 
echo   +Download anyradio list.
echo 

rm -f /webradio/vars/url.lst

surl="http://113.31.87.69/getAppServer.jsp?sysid=8020&channelid=7001&version=6008"
wget -c $surl -O /webradio/vars/url.lst

if [ -f /webradio/vars/url.lst

   then
        URL=`sed -n 1p  /webradio/vars/url.lst`   

        echo Server ip: $URL
   else
        echo  +99 Download error!        
fi

echo
echo please wait... downloading
rm -f /webradio/vars/weblist.lst

wget -c http://$URL/conf/channel.list -O /webradio/vars/weblist.lst

if [ -f /webradio/vars/weblist.lst

   then
     echo downloaded
     read_list
else
     echo +99 download error!
fi
     
     设置脚本755执行权限
     root@OpenWrt:/# chmod
755 /webradio/downloadlist

     最后运行脚本
     root@OpenWrt:/# /webradio/downloadlist

     待程序结束后,打开/webradio/vars/playlist.lst 文件,成千电台的地址就呈现在眼前。

5、至此,路由器已经变成了网络收音机或播放器,剩下的还可以加LCD,MCU控制等。


 

关于mplayer:
      Mplayer 是linux下的多媒体播放程序。为了编译能在BCM6358 处理器下运行的的mplayer,吾费尽周折,现在可以稳定运行在openwrt下。

由于BCM6358的ALU没有浮点运算单元,所以干脆把源程序里的OSD,视频等全部剪掉了,解码方式改用定点解码,事实上播放效果优于笔记本电脑。

目前附件中的mplayer支持mp3(libmad),
wmav1, wmav2, aac(faad2), flac, ogg(tremor)几种有定点解码库的格式, 其中 wma 解码用到了 Rockbox 的定点解码库。

支持主流流媒体协议http,rspt,mms,支持自动DNS解析服务器IP

*********************************************************************
* 固件下载地址:
*     不带CFE固件:  http://pan.baidu.com/share/link?shareid=297312&uk=1562445911  
*     带CFE的固件:    http://pan.baidu.com/s/17ouFx
* =========================================================
*
* 编译完毕的 Mplayer: http://pan.baidu.com/s/1BYfgX
*********************************************************************
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: