爱吱声

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

作者: 绿葱头    时间: 2011-8-12 15:24
标题: [绿葱头DIY]之大亚db120-wg路由器
本帖最后由 绿葱头 于 2011-8-13 22:43 编辑
; w% v% g' ~  ^" {
4 [8 Y" ^6 e/ k/ Q! `6 p鼎革同学说写技术也可以,俺就写一段技术,结果这个帖子俺写了7天,还没有写出来。因为一个跨平台编译问题,困扰了我很长时间,现在也没有解决。今天先写一个引子,希望俺星期天能解决这个问题,泪哗哗的分割线。4 U7 q1 p7 y" W8 K% b  `) w. v+ d+ i

引子
" t4 p- d3 E& c: e无意中看到国内服务商赠送的路由器也可以刷rom了,激动啊,向来厚道的都是国外版本,俺准备入手的某品牌手机国外版本内存512m的,国内只有256m,太欺负人了。) k- p# M  B$ l: Z/ _0 z
关于openwrt可以参考百度百科
. p$ n& J! A: Z! }  a6 ^- bhttp://openwrt.org(用firefox的同学注意:官方wiki打开如果是空白,那么请使用神器mason插件,自定义wiki.openwrt.org的Accept-Language为en-US既可)+ B! h! Y: ~( N: O% a+ Q
http://www.openwrt.org.cn
& T3 b4 Y! V2 a其他还有恩山、chinadsl等
5 M' [& P5 D0 i6 _7 w大亚db120-wg据我考证是最便宜的openwrt玩具。
/ `6 a# `4 R; S) s大亚db120-wg还有一个马甲是贝尔RG100-AA,只有一些细微的区别,官方ROM都是一个。0 z8 O0 T% J4 z6 `( ^; ]0 P
这个可以刷openwrt的路由器可以干什么?$ }7 ~0 e& G9 T- r9 {/ C7 T
有人拿它自动翻墙……
* @: u1 H' f& k, x有人拿它当网络电台……$ R, |1 K5 u) ?7 u: Y9 U
有人拿它当下载机……
8 {* U% Z; J& d" W( c, J$ J有人拿它当监控机、报警器……
1 Y/ e+ p3 `4 S( R2 c有人拿它做wifi机器人小车……
: `% T4 }: G$ V1 a, _0 w. Q有人拿它当服务器……
  b) b; Z" k) a7 j7 ?4 V( ]* ~  ^+ c& M我买个两个加邮费¥85,便宜吧。
( G8 w+ n8 t5 j- r: c1 @
8 N2 A4 _$ ]7 t% ?  ~) z8 z看卖家介绍:
硬件设计是极为强悍的:主芯片为最新的BCM6358(MIPS,芯片速度300MHZ),交换芯片为BCM5325,无线芯片为BCM4318,FLASH容量为16MB,内存容量为32MB DDR。2个USB接口、WIFI无线硬开关、WPS一键加密。

$ b; }% b& l' i注意:大亚db120-wg、RG100-AA后期版本硬件与前期不一致,有可能刷不了openwrt,比较成熟的是两个USB口的老版本,打开看主板上看FLASH型号以S29打头。我的就是这种。0 s1 D8 S5 J2 G2 U
我是通过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
9 X2 J2 m' l$ F+ e5 X3 m2 h俺现在搞定了摄像头、GPS,下一步准备做机器人小车。
# D0 D. T8 Q- [" O1 s要知后事如何,请看下集挂摄像头。
3 J! A2 I% \5 Y# L# y
作者: zealangel    时间: 2011-8-12 20:11
回复 绿葱头 的帖子, L$ |& u3 o/ G$ P: T  d' V$ N
" Y8 [+ W4 d, D5 k# A
葱头兄准备入手的某品牌手机是不是中兴的V880?
9 A# e" u0 P: C' z, A9 J我就是用的这个坑爹的国内版
作者: leebar    时间: 2011-8-13 02:03
我有这个无线路由,期待兄大作!
作者: 阿雷    时间: 2011-8-13 11:47
编译过dd-wrt无线路由固件的飘过。一起交流。
作者: 牌牌    时间: 2011-8-13 15:37
几年前买过一个贝尔金的工程板好像就是可以刷这个的,结果买了之后一直懒得动手,导致现在俺用的无线路由还是这个裸板,连个壳都木有。; F" X  X% t6 n) M
3 I& m. [( W. B1 Q5 {* _
lz加油,好玩的话,俺也折腾下
作者: 绿葱头    时间: 2011-8-13 18:27
标题: [绿葱头DIY]之大亚db120-wg路由器之挂摄像头
本帖最后由 绿葱头 于 2011-8-13 18:33 编辑 / Y* v- ?1 e* G* k

) l& h* }% L1 t, G俺比较担心这个是不是太geek了,毕竟不是专业论坛,实在没有一些大牛把技术文章写成对口相声的能力,听俺讲故事的都说是良好的催眠剂(小女可以证明)。看到部分同学对这个还比较感兴趣,俺就继续唠叨唠叨……
2 {' Y4 K2 N" Z) `$ j: {在正文之前讲点注意事项:
4 \0 ]& l7 t# @9 \4 o1、刷新openwrt官方控件的注意,第一次启动需要telnelt 192.168.1.1(换lan4以外的口),这个时候是不需要密码的,进去以后passwd修改密码后才可以ssh登陆。
/ j$ m5 i/ Z* w. L. f2、注意写入FLASH。一个是一些软件的默认写入路径是FLASH里,要知道FLASH空间就16M,很容易就写满了。另一个是安装软件后重新启动一下,这样可以正确写入FLASH,避免因为FLASH效验错误无法启动(如果FLASH效验错误需要重新刷ROM)。
) i9 [; ^+ o6 a& C开始正文的分割线……
% A  q3 i0 C% C  C' x* _* X
折腾1、挂摄像头9 w5 c8 v9 B# p
目前openwrt的摄像头安装似乎靠运气,网上的教程大多使用中星微(不知道为什么好多地方都写中微星)301摄像头做例子,我手头上只有一个廉价的良田免驱摄像头,VIDID是1e4e:0100,google到的第一条信息就是linux UVC驱动官网,可以看出使用的是鈺創芯片,使用UVC驱动成功。
' [  H2 m: ?6 e( @+ e
  1. opkg install kmod-nls-base #后续安装需要, g4 \" m. C( z1 L  n1 U; @
  2. opkg install kmod-usb-core#后续安装需要& F3 S3 c- q% @: Y: t/ R
  3. opkg install kmod-usb-ohci #ohci USB控制器,据说一般BCM都是这个
    ! f& X* R6 S" z/ }7 \$ N
  4. opkg install kmod-usb2#这个摄像头是支持USB2.0的9 j  H6 E  i# g: A9 W
  5. opkg install libusb#后续安装需要6 k7 w% K4 a0 O
  6. opkg install zlib#后续安装需要8 s" Q" p; I; b- V- \$ J0 S& P
  7. opkg install usbutils#lsusb命令,很有用的工具
    7 h8 z2 h6 X, ^( j9 @# p7 E- X+ \
  8. reboot;exit#重新启动后lsusb才有信息
复制代码
lsusb  [* L6 ~' ?1 o1 k! H1 u
输出为:
; l- f9 q/ [5 e  `2 O8 q
  1. Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub2 z- S& G' l- V* ?
  2. Bus 001 Device 002: ID 1e4e:0100
    / y& @6 N4 ^9 h- X6 p
  3. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
复制代码
可以看出来已经摄像头已经接上,由于数据库的关系没有认出芯片。
5 Q! m/ {" J+ D  g: F
  1. opkg install kmod-input-core#后续安装需要
    $ N9 r/ {! r5 o2 c. m
  2. opkg install kmod-i2c-core#后续安装需要4 y' R% ?* M* G
  3. opkg install kmod-video-uvc#真正驱动
复制代码
这个时候应该出现/dev/video0了,dmesg输出:
8 ]' p- ^) t$ {9 N- M) H- `6 B
  1. Linux video capture interface: v2.00, a8 l, y2 G5 f3 P
  2. uvcvideo: Found UVC 1.00 device USB2.0 Camera (1e4e:0100)* x: z" R# [$ S: o
  3. uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling work.
    6 P$ P) c0 e5 J4 \
  4. input: USB2.0 Camera as /devices/platform/bcm63xx_ehci.0/usb1/1-2/1-2:1.0/input0
复制代码
cat /dev/video0
( k+ o' S& s" p( M; G) _- Qcat: read error: No such device
. X; F% a$ A4 X# D1 L( l开始cat /dev/video0 无图像输出,以为没有成功,查了N多资料,才知道有的摄像头就是这样的,可能是我的摄像头不支持mjpeg格式读取。# k. U6 Q9 u$ I; }# y+ f3 T% p) r. o, f/ b
安装mjpg-streamer; \7 }4 o. W; ?, Q) R1 N. U6 b4 s
  1. opkg install librt#后续安装需要
      `: k) I6 g( O% I- a: I5 P. d
  2. opkg install libpthread#后续安装需要1 ~7 k9 Q, f* t! I' M" F1 E
  3. opkg install libjpeg#后续安装需要
    1 F1 X4 f0 o  m; v. k6 A. E, j% v
  4. opkg install mjpg-streamer
复制代码
启动mjpg_streamer
  }% l+ e8 Z( C3 A5 \9 ?# }1 O3 R
  1. mjpg_streamer -i "input_uvc.so -r 352x288" -o "output_http.so -w /tmp/webcam"
复制代码
失败的同学注意了:: i* k" q" i- [" }0 t: K
mjpg_streamer默认使用的是mjpeg格式读取摄像头,而部分摄像头采用的是YUV格式(我的就是这种),如果使用不支持mjpge的摄像头需要加--yuv参数:
) K/ N# T1 o0 P% _8 R& i
  1. mjpg_streamer -i "input_uvc.so --yuv -r 352x288" -o "output_http.so -w /tmp/webcam"
复制代码

8 A6 [/ T5 h' F) `  U: D6 Z' G7 ^血淋淋的经验啊,试了palantir很多次没有成功就是这个原因,而且palantir似乎没有调节的选项。
, p8 t  d% h- c' B$ z3 Z为了安全起见也可以-c username:password 加上用户名、密码。8 q0 }+ y" p% l/ U( q4 F% O
这个时候用firefox浏览器(据说IE不支持)输入网址:http://192.168.1.1:8080/?action=stream应该可以看到图像了
预告,俺下次课讲的内容是挂GPS。% q' r& d" ]: D* C' R  m) }
没有反应?都睡着了吧。
5 I$ _  Y: d' `4 z* Y
作者: 牌牌    时间: 2011-8-13 20:33
回复 绿葱头 的帖子
: g* u8 }# i2 m" w
3 D5 `4 c) H4 n好像回帖被回和被点评也是可以加分的
8 |; V& V" W! G, C  H* @$ i6 D
) A: v7 X- h5 D0 Y俺觉得嘛,在这个版发帖不在乎挣分,而在于让大牛认识,然后帮忙把你捞出去,当然顺便多挣点分就更好啦
作者: 绿葱头    时间: 2011-8-13 20:42
回复 牌牌 的帖子7 x# v. Y6 V: V+ w" z, a# V

( h* S  N( X! K2 K2 {现在不好混啊,刚开始管理员们参与相当快,给分毫不吝啬(当初都是5分5分的,现在可好,都是2、3分),鼎导说可以写点技术的,俺就写技术去了,结果被绊倒在跨平台编译上7天,自从8.8股市大跌以后,水贴多了很多,管理员可能嫌这里太乱了,提拔也越来越严格……
作者: 鼎革    时间: 2011-8-13 20:47
回复 绿葱头 的帖子
0 r, B3 t. J) e5 _) f2 f' a" X/ I* \1 \8 Q3 J0 M
我晕。木想到您老的技术还真是干巴巴的纯技术啊,能写点雅俗共赏的,木基础也能明白的吗?
+ G( F! b$ `/ f- F要不您就写生活,写人生,写感情,写影评。。。。,还是有很多东东可写的嘛
作者: 绿葱头    时间: 2011-8-14 01:29
回复 鼎革 的帖子
5 x  m4 {) v* M+ t4 e9 R2 O- ]) U+ Q5 }$ W. L7 T
俺写了写人生,写了写感情,您老看可还行?( c( z, U$ M1 Z
突然想起马三立的《吃饺子》来了
作者: 绿葱头    时间: 2011-8-15 06:27
标题: [绿葱头DIY]之大亚db120-wg路由器之挂GPS
虽然这个帖子太geek了,不适合这里。俺还是把它写完吧。虽然虎头蛇尾一些,等过一段时间机器人车弄出来了,再续上。
: `# o4 W" n/ `. ?# S5 tGPS receiver in OpenWrt(这个网站还有其它很多硬件的安装,可以参考)
6 h/ ~2 `  N8 S( ^5 P [HowTo] - set date based on GPS data from serial port" s. N7 V- }3 B, q$ |
需要注意的是,DB120有两个USB口,下面一个是USB1.1&2.0的,上面是USB2.0的,所以一些USB1.1的设备必须使用下面的USB口。
  1. lsusb: E! ~+ ]. U" w, B1 N, s9 Y
  2. Bus 002 Device 004: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
    7 K& Z: {" t) d! d
  3. Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    ! X* W0 J1 j$ i) g8 P
  4. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
复制代码
可以发现USB GPS使用的是广泛的PL2303。
  1. 7 k7 Y2 V6 B9 T: j
  2. opkg install kmod-usb-serial' ?0 W6 Q6 j+ M3 _/ f% w5 u& S
  3. opkg install kmod-usb-serial-pl2303
复制代码
就可以安装成功了。
6 J" J+ f/ X4 [
机器人小车可以参考这个BLOG说得比较详细,再加个机械手什么的就更好玩了。
作者: 绿葱头    时间: 2011-8-15 06:29
标题: [绿葱头DIY]之大亚db120-wg路由器之智能小车
先占个位子,以后再写。
作者: 绿葱头    时间: 2011-8-15 07:53
回复 Sina 的帖子
( B5 `1 ~: m/ a+ E# N
# T2 P5 p7 O* r8 K, d5 A: @+ Z$ c& Q无人驾驶车队这个到没有想过,路由器本身的router/switch 功能是否还在?当然存在了。车队理论上是可以的,只是需要相应的程序。WIFI下,速度要很低,这个倒不至于,只有一些简单的传输指令,蓝牙什么的都可以满足,wifi肯定可以,另外这个帖子就不要回复了(太geek了),沉下去吧,更详细的讨论可以去爱果联盟。
作者: 卡里其亚    时间: 2011-8-16 17:32
别沉别沉~葱头你从淘宝买的吗?我咋没找到那么便宜的呢?有没有商家链接共享一下?




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