爱吱声

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

作者: 绿葱头    时间: 2011-8-12 15:24
标题: [绿葱头DIY]之大亚db120-wg路由器
本帖最后由 绿葱头 于 2011-8-13 22:43 编辑
2 A4 R3 U6 @$ }" O; s4 H
+ f3 D3 t! m( b  O1 k) _鼎革同学说写技术也可以,俺就写一段技术,结果这个帖子俺写了7天,还没有写出来。因为一个跨平台编译问题,困扰了我很长时间,现在也没有解决。今天先写一个引子,希望俺星期天能解决这个问题,泪哗哗的分割线。
2 s5 M2 C# ~7 b0 \7 u# Q. ]
引子
6 Q  D% Z' e/ R/ r  n6 f4 A无意中看到国内服务商赠送的路由器也可以刷rom了,激动啊,向来厚道的都是国外版本,俺准备入手的某品牌手机国外版本内存512m的,国内只有256m,太欺负人了。% ~: S6 M2 ]. q
关于openwrt可以参考百度百科% O* ^! p& j" N3 N4 Q% {  x# p
http://openwrt.org(用firefox的同学注意:官方wiki打开如果是空白,那么请使用神器mason插件,自定义wiki.openwrt.org的Accept-Language为en-US既可)
( A& I( ]; h1 c2 w6 I" fhttp://www.openwrt.org.cn
# K: D3 |# K# p4 {$ n# j其他还有恩山、chinadsl等/ ]' N  W: ?$ M* @0 u- |6 `
大亚db120-wg据我考证是最便宜的openwrt玩具。
5 w: |( ~" e) l$ z  }大亚db120-wg还有一个马甲是贝尔RG100-AA,只有一些细微的区别,官方ROM都是一个。5 U/ c* D, L, t9 a3 Y8 g! d7 O& H
这个可以刷openwrt的路由器可以干什么?2 X- J/ Q* ~5 y
有人拿它自动翻墙……# P0 }; r0 }! W+ H4 _7 [$ Q
有人拿它当网络电台……# ]* n$ A" T1 i3 |, L4 [
有人拿它当下载机……" m& E3 T# {: W) A
有人拿它当监控机、报警器……) I3 X& h2 r* {  L& q
有人拿它做wifi机器人小车……. J. j* F6 Z* X# Z9 |' J- F# S- ], S  r/ l
有人拿它当服务器……
* T/ O0 x- B' x. H/ g  n我买个两个加邮费¥85,便宜吧。
% ]+ E9 [& z1 H. U) _& l
& _/ T* H+ q; r  d& g看卖家介绍:
硬件设计是极为强悍的:主芯片为最新的BCM6358(MIPS,芯片速度300MHZ),交换芯片为BCM5325,无线芯片为BCM4318,FLASH容量为16MB,内存容量为32MB DDR。2个USB接口、WIFI无线硬开关、WPS一键加密。
+ Z4 f% T5 l, B* }' O( }
注意:大亚db120-wg、RG100-AA后期版本硬件与前期不一致,有可能刷不了openwrt,比较成熟的是两个USB口的老版本,打开看主板上看FLASH型号以S29打头。我的就是这种。
; y( l1 W1 n( a/ w; y0 g5 N- Y2 G7 R我是通过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-113 a4 C+ f$ G$ x8 T
俺现在搞定了摄像头、GPS,下一步准备做机器人小车。, B  K  k9 U2 J9 A  V5 F
要知后事如何,请看下集挂摄像头。
" r8 ?3 V: O% ?8 d
作者: zealangel    时间: 2011-8-12 20:11
回复 绿葱头 的帖子! `) x4 b- ^) d% @- d' a, d3 g

! U% M8 s5 U/ ^1 h# d1 R葱头兄准备入手的某品牌手机是不是中兴的V880?
' v+ G) j- s0 l& i( a. W我就是用的这个坑爹的国内版
作者: leebar    时间: 2011-8-13 02:03
我有这个无线路由,期待兄大作!
作者: 阿雷    时间: 2011-8-13 11:47
编译过dd-wrt无线路由固件的飘过。一起交流。
作者: 牌牌    时间: 2011-8-13 15:37
几年前买过一个贝尔金的工程板好像就是可以刷这个的,结果买了之后一直懒得动手,导致现在俺用的无线路由还是这个裸板,连个壳都木有。
; T0 O$ F0 V8 G7 k/ B2 J' p  U3 X. \8 ~% m
lz加油,好玩的话,俺也折腾下
作者: 绿葱头    时间: 2011-8-13 18:27
标题: [绿葱头DIY]之大亚db120-wg路由器之挂摄像头
本帖最后由 绿葱头 于 2011-8-13 18:33 编辑 & \, w* s, Q7 x

$ x# z. @/ l! t5 W  y1 h) n俺比较担心这个是不是太geek了,毕竟不是专业论坛,实在没有一些大牛把技术文章写成对口相声的能力,听俺讲故事的都说是良好的催眠剂(小女可以证明)。看到部分同学对这个还比较感兴趣,俺就继续唠叨唠叨……8 T, Q% s' S" G  k2 i4 _
在正文之前讲点注意事项:
, T+ ?8 ~/ c! P& Y2 {- X; X1、刷新openwrt官方控件的注意,第一次启动需要telnelt 192.168.1.1(换lan4以外的口),这个时候是不需要密码的,进去以后passwd修改密码后才可以ssh登陆。
9 ]8 j. F% u/ q) j- U% A2 a) D2 c2、注意写入FLASH。一个是一些软件的默认写入路径是FLASH里,要知道FLASH空间就16M,很容易就写满了。另一个是安装软件后重新启动一下,这样可以正确写入FLASH,避免因为FLASH效验错误无法启动(如果FLASH效验错误需要重新刷ROM)。
0 ], g% w+ g! z2 v( d9 A, z开始正文的分割线……
' \& N5 l! q' W
折腾1、挂摄像头
% q8 b* [7 D; f4 Q4 |/ Q% a) X* r目前openwrt的摄像头安装似乎靠运气,网上的教程大多使用中星微(不知道为什么好多地方都写中微星)301摄像头做例子,我手头上只有一个廉价的良田免驱摄像头,VIDID是1e4e:0100,google到的第一条信息就是linux UVC驱动官网,可以看出使用的是鈺創芯片,使用UVC驱动成功。
4 ?8 j- h' v, S8 g
  1. opkg install kmod-nls-base #后续安装需要
    & q: _/ ^4 h9 R2 {
  2. opkg install kmod-usb-core#后续安装需要: Q1 \  k* \2 f' N& Q2 s5 J% K4 Q+ C6 x
  3. opkg install kmod-usb-ohci #ohci USB控制器,据说一般BCM都是这个- a! B% o, x/ m2 ?; b. R9 n0 {
  4. opkg install kmod-usb2#这个摄像头是支持USB2.0的1 [* C; s% @2 P0 |+ f- z8 `# t
  5. opkg install libusb#后续安装需要
    8 J4 m( V' ^- c7 d, I/ Z
  6. opkg install zlib#后续安装需要
    7 e5 f; N: L0 }4 _# a
  7. opkg install usbutils#lsusb命令,很有用的工具
    5 {( F( h, O2 _  R
  8. reboot;exit#重新启动后lsusb才有信息
复制代码
lsusb
& F" e4 y! l- x1 ]% F2 l输出为:$ E0 @% v7 w/ F0 h, d" M
  1. Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub# D& r# O6 P( u
  2. Bus 001 Device 002: ID 1e4e:0100: b5 Z. d" B+ d) Z. c. s% }
  3. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
复制代码
可以看出来已经摄像头已经接上,由于数据库的关系没有认出芯片。' b4 S# S" W+ g; [! D* D2 G3 u! @
  1. opkg install kmod-input-core#后续安装需要( |/ `, u. }: Z
  2. opkg install kmod-i2c-core#后续安装需要5 Y& P% Y" k  c1 W/ L( F
  3. opkg install kmod-video-uvc#真正驱动
复制代码
这个时候应该出现/dev/video0了,dmesg输出:
, W8 Z8 n# {, N5 h( j4 c+ B. V  Z0 D. J
  1. Linux video capture interface: v2.00
    ) c( Y  c8 q$ Q8 c) d' |( A3 e, t2 P
  2. uvcvideo: Found UVC 1.00 device USB2.0 Camera (1e4e:0100)
    4 [4 t2 R. m7 L' t
  3. uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling work.
    + F0 d3 e3 s, d& M% i8 N" w
  4. input: USB2.0 Camera as /devices/platform/bcm63xx_ehci.0/usb1/1-2/1-2:1.0/input0
复制代码
cat /dev/video09 m' f5 G; W/ m! q: ^# C" }9 L) _
cat: read error: No such device
  b$ `$ A9 {2 B1 T8 ?5 R开始cat /dev/video0 无图像输出,以为没有成功,查了N多资料,才知道有的摄像头就是这样的,可能是我的摄像头不支持mjpeg格式读取。
  c4 r% L+ G# ~5 b" ], w# S安装mjpg-streamer7 D' P( h3 j- r% l6 r
  1. opkg install librt#后续安装需要% e1 o6 B. w8 U! v* U9 y
  2. opkg install libpthread#后续安装需要
    ' O" E- Z% `, Z7 K; _- F) [* L
  3. opkg install libjpeg#后续安装需要' j% w7 _7 F1 I, P- d& e4 L
  4. opkg install mjpg-streamer
复制代码
启动mjpg_streamer8 Q3 l# m8 V' z+ X+ S
  1. mjpg_streamer -i "input_uvc.so -r 352x288" -o "output_http.so -w /tmp/webcam"
复制代码
失败的同学注意了:1 t  M7 V0 c2 p" i% h
mjpg_streamer默认使用的是mjpeg格式读取摄像头,而部分摄像头采用的是YUV格式(我的就是这种),如果使用不支持mjpge的摄像头需要加--yuv参数:  a' b+ r' h- D, _* ^2 _3 r
  1. mjpg_streamer -i "input_uvc.so --yuv -r 352x288" -o "output_http.so -w /tmp/webcam"
复制代码
, p" ?1 _" N& x! v: N2 F5 o
血淋淋的经验啊,试了palantir很多次没有成功就是这个原因,而且palantir似乎没有调节的选项。: C8 U' Q: H0 O! j+ G; ~
为了安全起见也可以-c username:password 加上用户名、密码。% K/ c/ f+ |- z; b4 w/ H6 Q2 L+ r  x
这个时候用firefox浏览器(据说IE不支持)输入网址:http://192.168.1.1:8080/?action=stream应该可以看到图像了
预告,俺下次课讲的内容是挂GPS。" k$ j' ~6 ~5 S. L7 Q
没有反应?都睡着了吧。
6 V, r( o  i& J7 V2 Q
作者: 牌牌    时间: 2011-8-13 20:33
回复 绿葱头 的帖子  D- ?0 h* ?* K4 D& n( D* @& a

: E7 Z) m8 f8 b6 w+ x% O: V9 T好像回帖被回和被点评也是可以加分的( P  v' K  E. v. R2 n
. v( i! k/ t- x/ z
俺觉得嘛,在这个版发帖不在乎挣分,而在于让大牛认识,然后帮忙把你捞出去,当然顺便多挣点分就更好啦
作者: 绿葱头    时间: 2011-8-13 20:42
回复 牌牌 的帖子
/ V! ?/ c4 U  U. @+ D( J7 [1 ^0 [  n6 e( ?/ b* X! t
现在不好混啊,刚开始管理员们参与相当快,给分毫不吝啬(当初都是5分5分的,现在可好,都是2、3分),鼎导说可以写点技术的,俺就写技术去了,结果被绊倒在跨平台编译上7天,自从8.8股市大跌以后,水贴多了很多,管理员可能嫌这里太乱了,提拔也越来越严格……
作者: 鼎革    时间: 2011-8-13 20:47
回复 绿葱头 的帖子
# @. T& }% S- Q/ R& p
6 Q' `! a; e- h" }+ Z我晕。木想到您老的技术还真是干巴巴的纯技术啊,能写点雅俗共赏的,木基础也能明白的吗?; w" K% K% O& l
要不您就写生活,写人生,写感情,写影评。。。。,还是有很多东东可写的嘛
作者: 绿葱头    时间: 2011-8-14 01:29
回复 鼎革 的帖子
+ t, J6 O% T$ w# {3 q$ C( Y( i' ^' B- J! i
俺写了写人生,写了写感情,您老看可还行?8 e. W0 H- P/ P7 o3 W
突然想起马三立的《吃饺子》来了
作者: 绿葱头    时间: 2011-8-15 06:27
标题: [绿葱头DIY]之大亚db120-wg路由器之挂GPS
虽然这个帖子太geek了,不适合这里。俺还是把它写完吧。虽然虎头蛇尾一些,等过一段时间机器人车弄出来了,再续上。' L# J& ]: d( d2 a
GPS receiver in OpenWrt(这个网站还有其它很多硬件的安装,可以参考)8 V2 r) M& f+ R3 Z% b
[HowTo] - set date based on GPS data from serial port
7 h, ]6 x* i" F7 E8 I需要注意的是,DB120有两个USB口,下面一个是USB1.1&2.0的,上面是USB2.0的,所以一些USB1.1的设备必须使用下面的USB口。
  1. lsusb, u8 J; W- G: R0 v7 K$ Z
  2. Bus 002 Device 004: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port) C1 g1 \# g6 t% {$ [
  3. Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    7 G* s& Y# u# l
  4. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
复制代码
可以发现USB GPS使用的是广泛的PL2303。

  1. " ^# c3 q& w% J
  2. opkg install kmod-usb-serial, h0 E0 F3 G0 A( l
  3. opkg install kmod-usb-serial-pl2303
复制代码
就可以安装成功了。

- o: E1 v; Q- Z5 D" r% C9 V' J机器人小车可以参考这个BLOG说得比较详细,再加个机械手什么的就更好玩了。
作者: 绿葱头    时间: 2011-8-15 06:29
标题: [绿葱头DIY]之大亚db120-wg路由器之智能小车
先占个位子,以后再写。
作者: 绿葱头    时间: 2011-8-15 07:53
回复 Sina 的帖子. Q/ r0 l/ l2 \  V. g5 |3 q

  j" l/ V2 h" h* A$ [无人驾驶车队这个到没有想过,路由器本身的router/switch 功能是否还在?当然存在了。车队理论上是可以的,只是需要相应的程序。WIFI下,速度要很低,这个倒不至于,只有一些简单的传输指令,蓝牙什么的都可以满足,wifi肯定可以,另外这个帖子就不要回复了(太geek了),沉下去吧,更详细的讨论可以去爱果联盟。
作者: 卡里其亚    时间: 2011-8-16 17:32
别沉别沉~葱头你从淘宝买的吗?我咋没找到那么便宜的呢?有没有商家链接共享一下?




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