分享

OpenWRT配置及应用

 syden1981 2014-02-25
 OpenWRT配置及应用 (2010-08-11 17:40:54)转载 标签: 杂谈 分类: Linux

LED Device(即配置文件中的sysfs)有如下对应关系:
adsl DSL绿灯
ppp-fail Internet红灯
power 电源红灯
stop 电源绿灯
b43-phy0::tx 未知
b43-phy0::rx 未知
b43-phy0::radio Wi-Fi绿灯

1. config 'led'
2. option 'name' 'Internet'
3. option 'trigger' 'netdev'
4. option 'mode' 'link tx rx'
5. option 'dev' 'pppoe-wan'
6. option 'sysfs' 'adsl'

触发器
phy0rx
phy0tx
phy0assoc
phy0radio

当wifi有数据传输时,led灯就会闪烁,反之则不亮,db120测试成功

LED Name wifi
LED Device ppp-fail
ticked=on
Network Device
Device wlan0
Trigger Mode tx rx

安装软件
root@OpenWrt:/tmp/opkg-lists# opkg --help

分区表
root@OpenWrt:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 8448 8448 0 100% /rom mtdblock2
tmpfs 14868 312 14556 2% /tmp
tmpfs 512 0 512 0% /dev
/dev/mtdblock3 6784 564 6220 8% /overlay mtdblock3
mini_fo:/overlay 8448 8448 0 100% /
/dev/sda1 40957684 5548156 35409528 14% /mnt/sda1
/dev/sda2 37190472 67124 37123348 0% /mnt/sda2


一个完整的linxu主要有内核和根文件系统组成,dmesg看启动信息,可以从里面看到系统的flash分区为:
bcm963xx_flash: Partition 0 is CFE offset 0 and length 20000
bcm963xx_flash: Partition 1 is kernel offset 20100 and length dff00
bcm963xx_flash: Partition 2 is rootfs offset 100000 and length ee0000
bcm963xx_flash: Partition 3 is nvram offset fe0000 and length 20000
bcm963xx_flash: Partition 4 is linux offset 20000 and length fc0000

0x000000000000-0x000000020000 : "CFE" mtdblock0
0x000000020100-0x000000100000 : "kernel" mtdblock1
0x000000100000-0x000000fe0000 : "rootfs" mtdblock2
0x000000940000-0x000000fe0000 : "rootfs_data" mtdblock3
0x000000fe0000-0x000001000000 : "nvram" mtdblock4
0x000000020000-0x000000fe0000 : "linux" mtdblock5

0-128k CFE 128k 该分区为bootloader,刷固件不会影响该分区
128-16256k linux 16128k
16256-16384k nvram 128k 刷固件不影响该分区,有选项也可以刷新该分区,主要保存设置参数

128-640k kernel 512k 内核分区
640-16256k rootfs 15616k 根文件系统分区
9472-16256k rootfs_data 6784k /dev/mtdblock3 /overlay

上面所有加起来刚好16M

http://suanli./logs/18316191.html
Flash,开机之后CPU从Flash开始执行。里面保存了bootloader,kernel,nvram的数据。因为openwrt的 kernel也是写到Flash里面去的,为了防止写错了数据启动不起来,还是先备份一下Flash的数据。
用ssh登录,然后用下面的命令导出Flash内的内容。

dd if=/dev/mtd/0 of=/tmp/cfe.bin
256+0 records in
256+0 records out
dd if=/dev/mtd/4 of=/tmp/nvram.bin
256+0 records in
256+0 records out

Linux下通过MTD驱动来驱动Flash,MTD提供分区的概念,Flash划分了6个分区:
-------------------------------------------------------------
___________________Linux_____________
CFE | kernel | rootfs | nvram |
-------------------------------------------------------------
其中rootfs_data是rootfs分区的一部分。
NVRAM是Non-Volatile RAM,在OpenWrt里面是用了Flash Rom的最后128KB区块,用于存储一些配置参数。

JTAG:假如路由器的flash里面什么都没有,就是说一个全新硬盘,就好像里面的flash坏了,我换了一块新的。现在要弄好它,怎么办呢?现在情况你买了台电脑,全新的,硬盘里面空白,主板里面也空白,没有bios,不能自检。当然我们要做的就是把bios(cfe)弄好,然后装系统了。要刷cfe,就得靠这个jtag线了,这个其实就是一个并口线,装好驱动后可以用软件把cfe刷到flash最前面的256k的空间里面,这样我们的路由器就能进行最简单的引导了。jtag线一般就刷cfe一个功能,理论上它什么都可以刷,但是由于其鼻涕虫的速度,没有人会用的。(可惜DB120-B1在板上没有引出JTAG接口).


TTL线就是一个串口线,它给我们提供一个控制台(命令行),让我们看到系统的自检,引导,就跟系统启动后telnet连过去感觉一样,只不过ttl不管系统正不正常都可以看到消息,而telnet要系统正常才可以用。一般我们用超级终端对其连接。具体操作自己google或恩山上面搜索。

tftp究竟有什么用。(刷砖头必备技能)
当有时候刷固件错误的时候(就是不能启动,cfe正常)用它来刷固件。基本上90%的砖头都可以用他进行修复,这里简单介绍下使用
tftp框上ip填 192.168.1.1,file就填你要刷的固件,下面开始刷
绝多数cfe里面地址都是192.168.1.1,路由器上电前先ping 192.168.1.1 -t
.....
来自 192.168.1.6 的回复: 无法访问目标主机。
来自 192.168.1.1 的回复: 字节=32 时间=146ms TTL=100
请求超时。
........
看上面的情况,在那刚能ping通那1秒电点升级就可以了。
注意:用tftp刷固件,要保证固件版本和路由器要配对,否则无论如何也刷不进去的,其次,建议用mini版本的固件,比较容易刷,如果路由器是自己玩成砖头的,话,95%都通过tftp来挽救。
附件为tftp软件

ddwrt相对功能比较多;tomato比dd稳定,有duel wan的固件,qos比dd要强大;openwrt是一个最基础的linux系统,装好后非常小,决大多数的软件要自己装

NTFS挂载
最好使用EXT3格式,使用NTFS分区的话在BT里会占用大量CPU
ntfs-3g -o nls=utf8 /dev/sdb1 /mnt/sdb1
BCM4712芯片OpenWrt挂载USB硬盘
http://www./blog/bcm4712-openwrt-usb.html

EXT3挂载
1、设置官方源(Openwrt中文好像没有这个程序)并更新
opkg update
2、安装USB驱动,这里是BCM4712芯片的,其他芯片自己查
opkg install kmod-usb-ohci
opkg install kmod-usb-storage
3、安装EXT3文件系统
opkg install kmod-fs-ext3
4、安装文件系统格式化及检查工具
opkg install e2fsprogs
5、插上USB硬盘,如果正确识别
root@OpenWrt:/dev# dmesg | grep sda
sd 0:0:0:0: [sda] 156301488 512-byte logical blocks: (80.0 GB/74.5 GiB)命令就可以查看到U盘信息
6 分区,格式化(分区我只在windows系统里分好区,linux分区好像fdisk没这功能,这个问题待解决)
mkfs.ext3 /dev/sda
7 在WEB界面里设置文件夹权限和挂载,当然也可以修改fstab和使用chmod命令,这个文件也可以注意一下/etc/init.d/usb
8 df检查一下

使用交换分区
可以专门格式化一个SWAP分区,也可以在NTFS分区上拷贝一个swapfile,然后挂载设置/mnt/sda1/swapfile


Samba应用

在网上邻居共享上传很慢
修改/etc/hotplug.d/block/10-mount第27行
mount -t vfat -o iocharset=utf8,rw,sync,umask=0000,dmask=0000,fmask=0000 /dev/$device /mnt/$device
改成
mount -t vfat -o iocharset=utf8,rw,umask=0000,dmask=0000,fmask=0000 /dev/$device /mnt/$device
这样上传的速度就可以增加到2~4m之间

ftp这个用户名在openwrt的系统中没有写权限,所以在linux的分区就不行,在ntfs分区可以,用root用户登录 samba,或者用root登陆ftp也行。想要用“ftp”这个用户名在linux分区进行写操作的话,需要到命令行模式执行 chmod 7777 /mnt/sda1

FTP应用
如果不能删除,考虑文件夹权限问题

QoS
分四个级别
Priority 优先级最高,manrk=01
Express 其次,mark=02
Normal 正常,mark=03
Bulk 可支持延时传输或者丢弃较多的数据,mark=04

默认规则
low edonkey 全部协议和端口
low bt 全部协议和端口
priority 22,53端口
normal TCP 20,21,25,80,110,443,993,995
express 5190端口

openwrt l7过滤qos配置
http://www./bbs/viewthread.php?tid=685&extra=page%3D1%26amp%3Bfilter%3Ddigest

防火墙
开启SYN-flood防御
丢弃无效报文
接受 输入数据 输出数据 转发数据
在WAN开启NAT及MSS参数调整
默认开启本地udp68,tcp2601端口
另开启bt的tcp51413端口


Ushare应用
Openwrt 系统功能强大,主要优势在于其开放性和可扩展性,Openwrt 安装ushare后,可将路由器变身为一个功能强大的家庭upnp流媒体服务器!
打开网上邻居,会显示发现upnp服务器一个:openwrt, ,点击,会打开web管理页面:
http://192.168.3.1:49152/web/ushare.html
PC上安装WM12、PowerDVD8或Geexbox等支持upnp的软件,就能直接在软件upnp中打开路由器共享的目录进行播放了!支持 RMVB、AVI、MKV、TS等各种文件格式!
20100523更新:windows下推荐使用XBMC媒体中心软件,应该是 windows下支持upnp media最好的播放器了!
下载地址:
http://u./file/f0f61dd50e
http://xbmc./
配置使用:
http://bbs./thread-53664-1-1.html
http://bbs./viewthread.php?tid=1229
Ushare upnp 媒体服务器应用教程
http://www./bbs/viewthread.php?tid=75

脱机BT transmission
http://192.168.1.1:9091
也可以在使用Transmission Remote软件进行管理,如果下载太慢检查QoS
如果开了防火墙,需要打开默认51413端口,这端口可以在WEB里改
图解脱机BT(transmission-daemon)教程
http://www./bbs/viewthread.php?tid=51&extra=page%3D1

脱机电驴
http://192.168.1.1:4711
也可以使用aMule Remote GUI进行管理
脱机电驴教程
http://www./bbs/viewthread.php?tid=49

脱机mldonkey

/dev/sda1 76858212 2899144 70054876 4% /root

远程管理GUI(sancho)
登录http://路由器IP:4080,打开mldonkey的web管理页面
用Putty telnet 4000端口,打开Implicit CR in every LF选项即可正常显示

结束killall mlnet.byte.static.
启动mldonkey: /mnt/sda1/root/mldonkey/mlnet.byte.static >>/dev/null

主要文件配置:
/mnt/sda1/root/.mldonkey/donkey.ini
/mnt/sda1/root/.mldonkey/download.ini
定时限速
日 一 二 三 四 五 六
0 1 2 3 4 5 6
1 8 1 17 1 17 1 17 1 17 1 17 1 17
+ - + - + - + - + - + - + -
+不限速
-限速

经实际测试mldonkey时间为GMT时间,即第一段为周一至周五开始限速时间8+8+1=17点开始,周六日开始限速时间1+8+1=10点开始,每天开始加速时间为16+8+1=1点开始,不知道为什么最后要加1个小时

calendar = [
([
1;
2;
3;
4;
5;], [
8;], "bw_toggle" );
([
0;
6;], [
1;], "bw_toggle" );
([
0;
1;
2;
3;
4;
5;
6;], [
16;], "bw_toggle" );]

RG100A-AA脱机mldonkey下载设置,峰值620KB/s,有图有真相
http://www./bbs/viewthread.php?tid=830

解决mldonkey下载过慢的办法
http://www./bbs/viewthread.php?tid=149

无线客户端
开启WiFi,设置与AP一样的信道,添加接口并设置为WAN网络,选客户端模式,输入加密方式及密码即可
然后设置LAN
设置WAN,设置接口为wlan0
最后扫描wifi,如果正确应该可以看到ESSID里就是AP的SSID
使用0508版发现只能用WEP加密方式,TKIP不能使用,有可能是因为没有安装该软件
后来使用backfire又变成好像只能使用TKIP,这个要注意
图解rg100a 0508 二级无线客户端设置,你可以无线BT了,哈
http://www./bbs/viewthread.php?tid=503&rpid=3451&ordertype=0&page=1#pid3451

外接USB8187无线网卡
编辑软件包列表和安装对象,修改为如下:
#src/gz packages http://downloads./backfire/10.03/brcm63xx/packages
src/gz packages http://www./downlo ... 3/brcm63xx/packages
dest root /
dest ram /tmp
lists_dir ext /var/opkg-lists
option overlay_root /overlay
然后点击提交。同时回到系统--》软件包,点击 “更新软件包清单”, 安装 kmod-rtl8187,或者在Putty里
opkg update
opkg install kmod-rtl8187
kmod-rtl8187 、kmod-eeprom-93cx6 是openwrt中文论坛提供的,用官方的会死机
安装驱动后要重启路由器,然后接USB网卡设置网络

用vi命令编辑/etc/config/network设置网络
vi /etc/config/network

wan1设置

config 'interface' 'wan1'
option 'ifname' 'wlan1' '因为内置无线网卡为wlan0
option 'defaultroute' '0'
option 'peerdns' '0'
option 'proto' 'static'
option 'ipaddr' '192.168.10.2'
option 'netmask' '255.255.255.0'
option 'gateway' '192.168.10.1'
option 'dns' '192.168.10.1'

用vi命令编辑/etc/config/wireless设置无线网络
vi /etc/config/wireless
config 'wifi-device' 'radio1' '//radio1 第二个无线网卡
option 'type' 'mac80211'
option 'macaddr' '00:E0:4C:8F:36:F4' '//这里是USB无线网卡的MAC地址,一定要改,用ifconfig wlan1命令查看,经实测这里必须通过vi改,WEB界面根本没有这个选项
option 'hwmode' '11g'
option 'disabled' '0'
option 'txpower' '20' '无线发射功率 20db=100mw
option 'channel' '8' '无线频道

config 'wifi-iface'
option 'device' 'radio1'
option 'network' 'wan1'
option 'mode' 'sta' '客户端模式
option 'encryption' 'none' '未加密
option 'ssid' 'sutuo-ap' 'AP的 ssid

把路由自带的无线网卡在AP发射,就能实现万能中继
openwrt 驱动 RTL8187大功率网卡做客户端连接AP实现中继
http://www./bbs/viewthread.php?tid=852


挂载摄像头
openwrt挂载ZC0301PL-USB摄像头教程
http://www./bbs/viewthread.php?tid=30

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多