爱吱声

标题: [绿葱头DIY]之大亚db120-wg路由器 [打印本页]

作者: 绿葱头    时间: 2011-8-12 15:24
标题: [绿葱头DIY]之大亚db120-wg路由器
本帖最后由 绿葱头 于 2011-8-13 22:43 编辑
6 x. H7 d  c# B) h" a: e8 `3 I# ^& J. o
鼎革同学说写技术也可以,俺就写一段技术,结果这个帖子俺写了7天,还没有写出来。因为一个跨平台编译问题,困扰了我很长时间,现在也没有解决。今天先写一个引子,希望俺星期天能解决这个问题,泪哗哗的分割线。+ U3 |) _1 z9 H* N# T% P' @' C

引子
4 z4 C; F/ n9 x, K无意中看到国内服务商赠送的路由器也可以刷rom了,激动啊,向来厚道的都是国外版本,俺准备入手的某品牌手机国外版本内存512m的,国内只有256m,太欺负人了0 [0 c9 H: l' [7 {8 x. Y  M
关于openwrt可以参考百度百科
- z. t0 y% I& ahttp://openwrt.org(用firefox的同学注意:官方wiki打开如果是空白,那么请使用神器mason插件,自定义wiki.openwrt.org的Accept-Language为en-US既可)
  l; @) u' {* T0 s, Khttp://www.openwrt.org.cn* f. b; i. D! a0 T3 ~" `  j+ L
其他还有恩山chinadsl
* F0 Q- ~- A3 k4 }- v# N大亚db120-wg据我考证是最便宜的openwrt玩具。) I& I  I+ d) w' U1 h
大亚db120-wg还有一个马甲是贝尔RG100-AA,只有一些细微的区别,官方ROM都是一个。. h5 c+ S4 l$ w# ?$ h
这个可以刷openwrt的路由器可以干什么?8 r' k: ]( C, b$ M2 r
有人拿它自动翻墙……
3 R5 G% Q7 b4 U- i! k; m有人拿它当网络电台……
+ S& j6 K/ ^, y0 i" b有人拿它当下载机……0 L, \3 A9 G; s2 a" l) b7 j
有人拿它当监控机、报警器……2 M2 L# x  j, N/ ^. S- [  Q
有人拿它做wifi机器人小车……
2 _+ Z2 l: S2 D有人拿它当服务器……
" U2 o4 ~' G2 G) M8 u我买个两个加邮费¥85,便宜吧
  O5 O. I! }3 |6 @
9 Q! ^- ^5 c. N6 g9 o; P看卖家介绍:
硬件设计是极为强悍的:主芯片为最新的BCM6358(MIPS,芯片速度300MHZ),交换芯片为BCM5325,无线芯片为BCM4318,FLASH容量为16MB,内存容量为32MB DDR。2个USB接口、WIFI无线硬开关、WPS一键加密。

; j! g' I, t6 p/ u% R/ g) p注意:大亚db120-wg、RG100-AA后期版本硬件与前期不一致,有可能刷不了openwrt,比较成熟的是两个USB口的老版本,打开看主板上看FLASH型号以S29打头。我的就是这种。; r* V1 H$ {1 t- N. n- S
我是通过WEB刷的官方ROM(http://downloads.openwrt.org/backfire/10.03.1-rc4/brcm63xx/openwrt-RG100A_DB120-jffs2-128k-cfe.bin),参考教程http://www.openwrt.org.cn/hdwiki/index.php?doc-view-11
$ L$ M! p" K+ C6 J1 A俺现在搞定了摄像头、GPS,下一步准备做机器人小车。$ k8 z3 G, Z0 R3 b0 a( _$ Y
要知后事如何,请看下集挂摄像头。
+ g% Z9 p3 {1 J$ ^$ s) I- j) y: D
作者: zealangel    时间: 2011-8-12 20:11
回复 绿葱头 的帖子
& {) O# l, ]6 Q2 R3 h$ ], W
- z; W7 V5 H2 b' R, p4 ?0 v葱头兄准备入手的某品牌手机是不是中兴的V880?
; v( a# S# n4 ^1 E/ @6 `) [2 h我就是用的这个坑爹的国内版
作者: leebar    时间: 2011-8-13 02:03
我有这个无线路由,期待兄大作!
作者: 阿雷    时间: 2011-8-13 11:47
编译过dd-wrt无线路由固件的飘过。一起交流。
作者: 牌牌    时间: 2011-8-13 15:37
几年前买过一个贝尔金的工程板好像就是可以刷这个的,结果买了之后一直懒得动手,导致现在俺用的无线路由还是这个裸板,连个壳都木有。( [, o  ?# M5 B9 E$ f: p
2 a3 w$ ~9 h0 ^/ k; D3 x
lz加油,好玩的话,俺也折腾下
作者: 绿葱头    时间: 2011-8-13 18:27
标题: [绿葱头DIY]之大亚db120-wg路由器之挂摄像头
本帖最后由 绿葱头 于 2011-8-13 18:33 编辑
6 ]; c0 h, ^5 n/ L3 E  n6 W* H& v
  n4 n' m. L" m$ }俺比较担心这个是不是太geek了,毕竟不是专业论坛,实在没有一些大牛把技术文章写成对口相声的能力,听俺讲故事的都说是良好的催眠剂(小女可以证明)。看到部分同学对这个还比较感兴趣,俺就继续唠叨唠叨……  K1 a( P; F' X: T) D! B7 V! E
在正文之前讲点注意事项:# S. r) r* _3 j$ D9 ~$ E( U, n" T
1、刷新openwrt官方控件的注意,第一次启动需要telnelt 192.168.1.1(换lan4以外的口),这个时候是不需要密码的,进去以后passwd修改密码后才可以ssh登陆。5 t) E% f, W5 S, Z
2、注意写入FLASH。一个是一些软件的默认写入路径是FLASH里,要知道FLASH空间就16M,很容易就写满了。另一个是安装软件后重新启动一下,这样可以正确写入FLASH,避免因为FLASH效验错误无法启动(如果FLASH效验错误需要重新刷ROM)。
; c3 t9 Q* ^3 K4 s/ X# j) s. K开始正文的分割线……
- I' y9 B: ^9 s5 y1 {
折腾1、挂摄像头
) c$ t3 l: ~3 _目前openwrt的摄像头安装似乎靠运气,网上的教程大多使用中星微(不知道为什么好多地方都写中微星)301摄像头做例子,我手头上只有一个廉价的良田免驱摄像头,VIDID是1e4e:0100,google到的第一条信息就是linux UVC驱动官网,可以看出使用的是鈺創芯片,使用UVC驱动成功。1 [- P4 T3 A9 L( ?+ _, m' Z
  1. opkg install kmod-nls-base #后续安装需要
    & q* `7 x7 ~' r
  2. opkg install kmod-usb-core#后续安装需要
    " d7 I7 U5 O  c3 W1 m' K$ K3 w
  3. opkg install kmod-usb-ohci #ohci USB控制器,据说一般BCM都是这个6 T* W3 M! Q5 B/ q8 @/ {7 N; A( r( |& H
  4. opkg install kmod-usb2#这个摄像头是支持USB2.0的
    7 W2 w$ V0 h7 O8 i. f
  5. opkg install libusb#后续安装需要
    ; _* k. G, [; u; L( V7 N
  6. opkg install zlib#后续安装需要' X* l: C+ q1 A  U. w
  7. opkg install usbutils#lsusb命令,很有用的工具
    * n% ?6 B5 G* ~' Y6 j  N- H( \
  8. reboot;exit#重新启动后lsusb才有信息
复制代码
lsusb
+ A" B5 @9 E0 Q! X( z! n% N5 D输出为:6 U- @: ?1 T) U$ L0 O8 e
  1. Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub) h$ h( q1 v5 ]7 y9 S# `! w
  2. Bus 001 Device 002: ID 1e4e:0100$ _% ~9 |- M6 `( _8 p/ j
  3. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
复制代码
可以看出来已经摄像头已经接上,由于数据库的关系没有认出芯片。; J7 U7 a. t; G  n; ]
  1. opkg install kmod-input-core#后续安装需要) T2 s+ p# ?4 D& F
  2. opkg install kmod-i2c-core#后续安装需要
    6 H& W& @; R9 G* D. y7 G8 D/ g
  3. opkg install kmod-video-uvc#真正驱动
复制代码
这个时候应该出现/dev/video0了,dmesg输出:( f4 @& x# P8 v" M& Z  h6 i9 K
  1. Linux video capture interface: v2.00
    % o1 G$ ^# _4 k/ M
  2. uvcvideo: Found UVC 1.00 device USB2.0 Camera (1e4e:0100)) C# n/ s/ c0 Z, D( Y5 H+ w
  3. uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling work.) ~; W& ^* V$ I
  4. input: USB2.0 Camera as /devices/platform/bcm63xx_ehci.0/usb1/1-2/1-2:1.0/input0
复制代码
cat /dev/video01 C9 `6 @5 M8 L' h7 B( `- i5 a6 N
cat: read error: No such device
" p+ j0 o6 k( Y8 n+ S  b2 j) k开始cat /dev/video0 无图像输出,以为没有成功,查了N多资料,才知道有的摄像头就是这样的,可能是我的摄像头不支持mjpeg格式读取。
3 _4 c- E& }+ W% A* `) N$ L安装mjpg-streamer5 W2 m9 Z% k% E" S7 ?: w
  1. opkg install librt#后续安装需要3 c% E5 w# Y. }* F, e0 |3 V$ _) V
  2. opkg install libpthread#后续安装需要
    / a* R3 G* H2 W5 x
  3. opkg install libjpeg#后续安装需要) Y  `  T, n, G8 t3 N
  4. opkg install mjpg-streamer
复制代码
启动mjpg_streamer
0 e- p7 @* J; Y/ Q
  1. mjpg_streamer -i "input_uvc.so -r 352x288" -o "output_http.so -w /tmp/webcam"
复制代码
失败的同学注意了:
5 `5 `1 A5 p' _( imjpg_streamer默认使用的是mjpeg格式读取摄像头,而部分摄像头采用的是YUV格式(我的就是这种),如果使用不支持mjpge的摄像头需要加--yuv参数:
- Q# T& I4 V9 y; y  u) S
  1. mjpg_streamer -i "input_uvc.so --yuv -r 352x288" -o "output_http.so -w /tmp/webcam"
复制代码

2 W0 R+ Y3 {% P. @0 \1 |* M血淋淋的经验啊,试了palantir很多次没有成功就是这个原因,而且palantir似乎没有调节的选项。
' V* I/ Z! ~/ }8 R为了安全起见也可以-c username:password 加上用户名、密码。
7 f; \" c$ J: A2 Q2 V) u! E* g这个时候用firefox浏览器(据说IE不支持)输入网址:http://192.168.1.1:8080/?action=stream应该可以看到图像了
预告,俺下次课讲的内容是挂GPS。
  M, y  B: |& I1 o. F  U3 M6 \没有反应?都睡着了吧
5 P( V% {5 e9 Q
作者: 牌牌    时间: 2011-8-13 20:33
回复 绿葱头 的帖子0 M& G( ]% `( m- _
. M$ B$ f3 C# `. k; E0 s
好像回帖被回和被点评也是可以加分的
; Z8 Y: c/ \9 I' D
/ F: r1 g$ X8 J7 ?1 |; z1 T俺觉得嘛,在这个版发帖不在乎挣分,而在于让大牛认识,然后帮忙把你捞出去,当然顺便多挣点分就更好啦
作者: 绿葱头    时间: 2011-8-13 20:42
回复 牌牌 的帖子4 }, \# B8 P* ^
9 @" F1 A, G) z# Y$ X1 l( d  \& H
现在不好混啊,刚开始管理员们参与相当快,给分毫不吝啬(当初都是5分5分的,现在可好,都是2、3分),鼎导说可以写点技术的,俺就写技术去了,结果被绊倒在跨平台编译上7天,自从8.8股市大跌以后,水贴多了很多,管理员可能嫌这里太乱了,提拔也越来越严格……
作者: 鼎革    时间: 2011-8-13 20:47
回复 绿葱头 的帖子3 U$ O3 x; ]8 q$ x" l  g3 }6 }2 J
' ^) y% L/ p# D* b* G; ]' G
我晕。木想到您老的技术还真是干巴巴的纯技术啊,能写点雅俗共赏的,木基础也能明白的吗?
( d! ^, a5 U2 \) d: j( j% u要不您就写生活,写人生,写感情,写影评。。。。,还是有很多东东可写的嘛
作者: 绿葱头    时间: 2011-8-14 01:29
回复 鼎革 的帖子
6 i$ I7 H" d4 {  s( l/ J
5 g. N6 M0 K( k8 e( n俺写了写人生,写了写感情,您老看可还行?
2 o- a3 N6 w/ m9 _3 `突然想起马三立的《吃饺子》来了
作者: 绿葱头    时间: 2011-8-15 06:27
标题: [绿葱头DIY]之大亚db120-wg路由器之挂GPS
虽然这个帖子太geek了,不适合这里。俺还是把它写完吧。虽然虎头蛇尾一些,等过一段时间机器人车弄出来了,再续上。
8 ?% V7 ?) w2 V' ]GPS receiver in OpenWrt(这个网站还有其它很多硬件的安装,可以参考)
2 _2 q+ ~2 ]2 k+ L& u [HowTo] - set date based on GPS data from serial port
  Z; O* @8 b. p- d  Z& J% O% k& e需要注意的是,DB120有两个USB口,下面一个是USB1.1&2.0的,上面是USB2.0的,所以一些USB1.1的设备必须使用下面的USB口。
  1. lsusb4 G0 N4 _* @3 _$ v
  2. Bus 002 Device 004: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
    * S1 |, ?! _- O# {2 ^/ q/ ^
  3. Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    " |* S6 j  y, ~- E* d3 _
  4. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
复制代码
可以发现USB GPS使用的是广泛的PL2303。
  1. 7 d. V4 p3 S6 B: W
  2. opkg install kmod-usb-serial
    $ m! b  O6 N) ]1 h  c& P
  3. opkg install kmod-usb-serial-pl2303
复制代码
就可以安装成功了。
# j/ |( L3 C, y4 ~6 N
机器人小车可以参考这个BLOG说得比较详细,再加个机械手什么的就更好玩了。
作者: 绿葱头    时间: 2011-8-15 06:29
标题: [绿葱头DIY]之大亚db120-wg路由器之智能小车
先占个位子,以后再写。
作者: 绿葱头    时间: 2011-8-15 07:53
回复 Sina 的帖子
5 O) e% [, c' n% e6 e! v3 ]4 u- d* ]9 i0 f1 ]: I7 {( J9 ]' l
无人驾驶车队这个到没有想过,路由器本身的router/switch 功能是否还在?当然存在了。车队理论上是可以的,只是需要相应的程序。WIFI下,速度要很低,这个倒不至于,只有一些简单的传输指令,蓝牙什么的都可以满足,wifi肯定可以,另外这个帖子就不要回复了(太geek了),沉下去吧,更详细的讨论可以去爱果联盟
作者: 卡里其亚    时间: 2011-8-16 17:32
别沉别沉~葱头你从淘宝买的吗?我咋没找到那么便宜的呢?有没有商家链接共享一下?




欢迎光临 爱吱声 (http://129.226.69.186/bbs/) Powered by Discuz! X3.2