设为首页 加入收藏

TOP

openwrt针对RT5350代码下载,配置和编译
2019-05-11 00:36:12 】 浏览:71
Tags:openwrt 针对 RT5350 代码下载 配置 编译

最近买了块官方板的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/27545221

bin 生成的镜像都在此目录

---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-1
kmod-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 版

DB120-WG主板.jpg

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实现远程文件管理

putty.jpg

winscp.jpg


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 listfrom 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
foriin$( 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.jspsysid=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控制等。
新版网络收音机仿真.jpg

关于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/linkshareid=297312&uk=1562445911
* 带CFE的固件: http://pan.baidu.com/s/17ouFx
* =========================================================
*
* 编译完毕的 Mplayer:http://pan.baidu.com/s/1BYfgX
*********************************************************************

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇IOU代码 下一篇Spark 集成hadoop ha

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目