爱吱声

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

作者: 绿葱头    时间: 2011-8-12 15:24
标题: [绿葱头DIY]之大亚db120-wg路由器
本帖最后由 绿葱头 于 2011-8-13 22:43 编辑
  P9 ?3 C% f* C9 @( b
  ^! l3 ]* n' A鼎革同学说写技术也可以,俺就写一段技术,结果这个帖子俺写了7天,还没有写出来。因为一个跨平台编译问题,困扰了我很长时间,现在也没有解决。今天先写一个引子,希望俺星期天能解决这个问题,泪哗哗的分割线。3 W7 W1 u6 r- P

引子
6 k  A" V0 r; g7 Y无意中看到国内服务商赠送的路由器也可以刷rom了,激动啊,向来厚道的都是国外版本,俺准备入手的某品牌手机国外版本内存512m的,国内只有256m,太欺负人了
# q5 T$ R4 {& q9 {关于openwrt可以参考百度百科
; M9 z) @$ n; Q" v" Bhttp://openwrt.org(用firefox的同学注意:官方wiki打开如果是空白,那么请使用神器mason插件,自定义wiki.openwrt.org的Accept-Language为en-US既可)
  ]% H/ l% W6 h8 rhttp://www.openwrt.org.cn! h, L, W3 z7 N( m4 ~$ E
其他还有恩山chinadsl
- p7 h6 ^) C% Y7 X' O  t6 J- f8 N大亚db120-wg据我考证是最便宜的openwrt玩具。. \4 v0 `1 C! Y& K7 O2 R0 n) M
大亚db120-wg还有一个马甲是贝尔RG100-AA,只有一些细微的区别,官方ROM都是一个。3 P* s. ~+ u  g1 E0 Q
这个可以刷openwrt的路由器可以干什么?
* n6 k8 H$ }$ Q7 x有人拿它自动翻墙……
+ ?; f6 ?/ _/ J- L) W, b% ~7 x有人拿它当网络电台……# ~* I* f+ B0 v- {. Q; R8 ^# }
有人拿它当下载机……
1 G0 T  I) H! a* ~& I4 X) Y有人拿它当监控机、报警器……  p0 z; e% K. d. I2 l- A
有人拿它做wifi机器人小车……! y4 i2 c. r. W5 M  Y8 n
有人拿它当服务器……2 ]( K7 E6 w0 G/ i1 z
我买个两个加邮费¥85,便宜吧
! Q( j3 k) T; l5 w3 J, k2 i# ]
) ~+ ?4 Z  E* Z6 j$ Z- v" |- W看卖家介绍:
硬件设计是极为强悍的:主芯片为最新的BCM6358(MIPS,芯片速度300MHZ),交换芯片为BCM5325,无线芯片为BCM4318,FLASH容量为16MB,内存容量为32MB DDR。2个USB接口、WIFI无线硬开关、WPS一键加密。

$ n; }$ h9 r; |注意:大亚db120-wg、RG100-AA后期版本硬件与前期不一致,有可能刷不了openwrt,比较成熟的是两个USB口的老版本,打开看主板上看FLASH型号以S29打头。我的就是这种。
$ P! f/ R2 Y1 i. ?8 v" L5 F# A我是通过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, |+ l7 D, G3 b, F7 U8 p+ o, a
俺现在搞定了摄像头、GPS,下一步准备做机器人小车。
, Q4 x1 K% N  l5 \$ f8 h要知后事如何,请看下集挂摄像头。
: H3 X" }9 j7 X. }! u
作者: zealangel    时间: 2011-8-12 20:11
回复 绿葱头 的帖子% |2 G: I: E7 q. `* a
3 M7 P6 D. N% n9 ?7 \& T
葱头兄准备入手的某品牌手机是不是中兴的V880?2 B% z$ I  Z9 K9 k
我就是用的这个坑爹的国内版
作者: leebar    时间: 2011-8-13 02:03
我有这个无线路由,期待兄大作!
作者: 阿雷    时间: 2011-8-13 11:47
编译过dd-wrt无线路由固件的飘过。一起交流。
作者: 牌牌    时间: 2011-8-13 15:37
几年前买过一个贝尔金的工程板好像就是可以刷这个的,结果买了之后一直懒得动手,导致现在俺用的无线路由还是这个裸板,连个壳都木有。0 E' K4 b. e& L. t8 R( S$ M

) W/ Z; R3 _' f; ^" S. llz加油,好玩的话,俺也折腾下
作者: 绿葱头    时间: 2011-8-13 18:27
标题: [绿葱头DIY]之大亚db120-wg路由器之挂摄像头
本帖最后由 绿葱头 于 2011-8-13 18:33 编辑   b. u* m1 V1 s: |! b5 ?
0 y& b8 g% @4 J$ x* M4 z: ?; s6 b' ^5 {
俺比较担心这个是不是太geek了,毕竟不是专业论坛,实在没有一些大牛把技术文章写成对口相声的能力,听俺讲故事的都说是良好的催眠剂(小女可以证明)。看到部分同学对这个还比较感兴趣,俺就继续唠叨唠叨……: K5 w% G4 h7 s# a; j
在正文之前讲点注意事项:, u! k! X) d* E* v
1、刷新openwrt官方控件的注意,第一次启动需要telnelt 192.168.1.1(换lan4以外的口),这个时候是不需要密码的,进去以后passwd修改密码后才可以ssh登陆。* N; o* h7 F" N" `1 n! X. i* E
2、注意写入FLASH。一个是一些软件的默认写入路径是FLASH里,要知道FLASH空间就16M,很容易就写满了。另一个是安装软件后重新启动一下,这样可以正确写入FLASH,避免因为FLASH效验错误无法启动(如果FLASH效验错误需要重新刷ROM)。
  D  V- y: h& N; k, ?( b6 e  `开始正文的分割线……; @6 G( g* f/ ^& D- H! {- J& _

折腾1、挂摄像头
- m9 U1 R) _* A* B# }目前openwrt的摄像头安装似乎靠运气,网上的教程大多使用中星微(不知道为什么好多地方都写中微星)301摄像头做例子,我手头上只有一个廉价的良田免驱摄像头,VIDID是1e4e:0100,google到的第一条信息就是linux UVC驱动官网,可以看出使用的是鈺創芯片,使用UVC驱动成功。
& Y" j: A0 K$ n" D, \3 O* }
  1. opkg install kmod-nls-base #后续安装需要
    $ u4 p: V' J. U" y, S
  2. opkg install kmod-usb-core#后续安装需要' m$ l7 ?. H+ _4 W! h6 }
  3. opkg install kmod-usb-ohci #ohci USB控制器,据说一般BCM都是这个7 }, f* ]" z& e; u
  4. opkg install kmod-usb2#这个摄像头是支持USB2.0的
    8 f. a- s# d" G/ N6 t; p- s
  5. opkg install libusb#后续安装需要: |* S& ^3 q  f" w! h2 O
  6. opkg install zlib#后续安装需要
    # b! M' E8 x! {
  7. opkg install usbutils#lsusb命令,很有用的工具5 w, H4 d% o+ f' e8 P3 \: S
  8. reboot;exit#重新启动后lsusb才有信息
复制代码
lsusb
" u7 W1 p# a# S* V" H输出为:
) l0 n' B) ^: f
  1. Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    ) Q' o0 w; T, @* y: @; ?  G+ }
  2. Bus 001 Device 002: ID 1e4e:0100& V- `  e! \9 D% F9 ^
  3. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
复制代码
可以看出来已经摄像头已经接上,由于数据库的关系没有认出芯片。
+ h0 k' ]0 B7 `( e; `
  1. opkg install kmod-input-core#后续安装需要# G# [0 \4 o1 B; T4 M" v1 O
  2. opkg install kmod-i2c-core#后续安装需要, i, V/ g: U3 k' ^* E
  3. opkg install kmod-video-uvc#真正驱动
复制代码
这个时候应该出现/dev/video0了,dmesg输出:
/ N1 b) M- M! ?0 m+ S5 c0 u* R
  1. Linux video capture interface: v2.00$ G3 X2 ]7 A& |" D% b
  2. uvcvideo: Found UVC 1.00 device USB2.0 Camera (1e4e:0100)
    4 x4 T( M9 O( Y( Z1 H6 w
  3. uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling work.$ h0 `& X0 G' p) x& Z) U
  4. input: USB2.0 Camera as /devices/platform/bcm63xx_ehci.0/usb1/1-2/1-2:1.0/input0
复制代码
cat /dev/video0( x& {4 T8 q% `( q
cat: read error: No such device1 b) B% v! I& R5 o. c2 g
开始cat /dev/video0 无图像输出,以为没有成功,查了N多资料,才知道有的摄像头就是这样的,可能是我的摄像头不支持mjpeg格式读取。
+ R& R+ f! l. C2 s7 r9 v安装mjpg-streamer2 V/ B7 n6 v* ~
  1. opkg install librt#后续安装需要/ o6 @0 ^. t$ N: L4 O7 l
  2. opkg install libpthread#后续安装需要: N1 T  P! n: H- M0 g1 |! V
  3. opkg install libjpeg#后续安装需要
    + {: q/ J$ o' A+ f
  4. opkg install mjpg-streamer
复制代码
启动mjpg_streamer$ G9 w+ B0 x9 \) x8 Z$ z% \
  1. mjpg_streamer -i "input_uvc.so -r 352x288" -o "output_http.so -w /tmp/webcam"
复制代码
失败的同学注意了:- Y* G! U; J& @; e) u
mjpg_streamer默认使用的是mjpeg格式读取摄像头,而部分摄像头采用的是YUV格式(我的就是这种),如果使用不支持mjpge的摄像头需要加--yuv参数:) R2 P; W/ N7 t! b
  1. mjpg_streamer -i "input_uvc.so --yuv -r 352x288" -o "output_http.so -w /tmp/webcam"
复制代码

( N4 ]0 T7 g/ y# j& q; Y" ?血淋淋的经验啊,试了palantir很多次没有成功就是这个原因,而且palantir似乎没有调节的选项。1 a3 v4 g! v" T; f, r# I% K0 |
为了安全起见也可以-c username:password 加上用户名、密码。6 ~. ~, a1 p, I  `- E- l& f
这个时候用firefox浏览器(据说IE不支持)输入网址:http://192.168.1.1:8080/?action=stream应该可以看到图像了
预告,俺下次课讲的内容是挂GPS。* \/ z% B5 v0 C. w% F
没有反应?都睡着了吧
/ e8 I( }8 k' f8 n& e7 D# d& g
作者: 牌牌    时间: 2011-8-13 20:33
回复 绿葱头 的帖子$ D( N( P2 B& s9 V4 I4 y1 M! r
' M+ r- M+ E8 W
好像回帖被回和被点评也是可以加分的( l; N" {9 M1 n

0 h. o: r4 i0 h+ V俺觉得嘛,在这个版发帖不在乎挣分,而在于让大牛认识,然后帮忙把你捞出去,当然顺便多挣点分就更好啦
作者: 绿葱头    时间: 2011-8-13 20:42
回复 牌牌 的帖子# t! J) U3 t, q
' r& w, i5 y# C1 Z8 D
现在不好混啊,刚开始管理员们参与相当快,给分毫不吝啬(当初都是5分5分的,现在可好,都是2、3分),鼎导说可以写点技术的,俺就写技术去了,结果被绊倒在跨平台编译上7天,自从8.8股市大跌以后,水贴多了很多,管理员可能嫌这里太乱了,提拔也越来越严格……
作者: 鼎革    时间: 2011-8-13 20:47
回复 绿葱头 的帖子) M  O; N+ v7 N/ q% Q5 ]6 N6 g
0 h: [+ h1 Z) b1 K1 C2 P3 E# Y* r
我晕。木想到您老的技术还真是干巴巴的纯技术啊,能写点雅俗共赏的,木基础也能明白的吗?- e6 Y# y& A# [: ^8 B0 h  S
要不您就写生活,写人生,写感情,写影评。。。。,还是有很多东东可写的嘛
作者: 绿葱头    时间: 2011-8-14 01:29
回复 鼎革 的帖子
3 S# |% e7 f7 C* Z: j# P- O
8 i0 W: G  A% v8 P# [俺写了写人生,写了写感情,您老看可还行?" B, ]* e- a9 p
突然想起马三立的《吃饺子》来了
作者: 绿葱头    时间: 2011-8-15 06:27
标题: [绿葱头DIY]之大亚db120-wg路由器之挂GPS
虽然这个帖子太geek了,不适合这里。俺还是把它写完吧。虽然虎头蛇尾一些,等过一段时间机器人车弄出来了,再续上。
& ?1 d/ F3 h% y- J; t* F+ iGPS receiver in OpenWrt(这个网站还有其它很多硬件的安装,可以参考)
* y/ f% _  H; b% K% F [HowTo] - set date based on GPS data from serial port
, j# O4 B0 i" t' W2 i需要注意的是,DB120有两个USB口,下面一个是USB1.1&2.0的,上面是USB2.0的,所以一些USB1.1的设备必须使用下面的USB口。
  1. lsusb& A. Y9 n) j, e) Y7 m' Q; F
  2. Bus 002 Device 004: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port1 {& i6 C* C- x: L4 H
  3. Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    & V0 W. S0 `5 Z  t) u. L2 O$ Y
  4. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
复制代码
可以发现USB GPS使用的是广泛的PL2303。
  1. / N# T* v; j+ V7 _$ O
  2. opkg install kmod-usb-serial/ ~3 _# ?/ T8 a  h" {
  3. opkg install kmod-usb-serial-pl2303
复制代码
就可以安装成功了。

$ k# G- y+ U% N9 l/ j& U+ {机器人小车可以参考这个BLOG说得比较详细,再加个机械手什么的就更好玩了。
作者: 绿葱头    时间: 2011-8-15 06:29
标题: [绿葱头DIY]之大亚db120-wg路由器之智能小车
先占个位子,以后再写。
作者: 绿葱头    时间: 2011-8-15 07:53
回复 Sina 的帖子$ S3 d5 Y: K) E7 V8 h0 t
9 S7 F' n- |! z; y- s
无人驾驶车队这个到没有想过,路由器本身的router/switch 功能是否还在?当然存在了。车队理论上是可以的,只是需要相应的程序。WIFI下,速度要很低,这个倒不至于,只有一些简单的传输指令,蓝牙什么的都可以满足,wifi肯定可以,另外这个帖子就不要回复了(太geek了),沉下去吧,更详细的讨论可以去爱果联盟
作者: 卡里其亚    时间: 2011-8-16 17:32
别沉别沉~葱头你从淘宝买的吗?我咋没找到那么便宜的呢?有没有商家链接共享一下?




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