爱吱声

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

作者: 绿葱头    时间: 2011-8-12 15:24
标题: [绿葱头DIY]之大亚db120-wg路由器
本帖最后由 绿葱头 于 2011-8-13 22:43 编辑 * B7 Z' `% O4 m" O8 F5 C
$ P% U, U# o5 A1 B3 y3 U7 A3 a
鼎革同学说写技术也可以,俺就写一段技术,结果这个帖子俺写了7天,还没有写出来。因为一个跨平台编译问题,困扰了我很长时间,现在也没有解决。今天先写一个引子,希望俺星期天能解决这个问题,泪哗哗的分割线。
! ^3 O' ~+ u2 l. N* f( f+ g+ @# Y
引子! |$ Z6 @* u7 A+ ~
无意中看到国内服务商赠送的路由器也可以刷rom了,激动啊,向来厚道的都是国外版本,俺准备入手的某品牌手机国外版本内存512m的,国内只有256m,太欺负人了
* ^6 l7 W  l  e关于openwrt可以参考百度百科
0 [! g, d- y2 J- Whttp://openwrt.org(用firefox的同学注意:官方wiki打开如果是空白,那么请使用神器mason插件,自定义wiki.openwrt.org的Accept-Language为en-US既可)
, ^( X7 i  f+ ohttp://www.openwrt.org.cn- K& A8 L6 q4 ~, L* O3 Z
其他还有恩山chinadsl
) k9 i6 P: _# U大亚db120-wg据我考证是最便宜的openwrt玩具。, \9 S' D' E. S3 ?3 |, k
大亚db120-wg还有一个马甲是贝尔RG100-AA,只有一些细微的区别,官方ROM都是一个。
, x* r7 c0 l2 D2 J1 P这个可以刷openwrt的路由器可以干什么?
6 b6 M9 a6 F+ V9 t5 `+ `: m有人拿它自动翻墙……) ?8 ^% n  F. J( N5 F% J
有人拿它当网络电台……
% d  N# P0 H$ r% Z  C% }有人拿它当下载机……
) F- G4 h9 E  G* X  U4 m有人拿它当监控机、报警器……$ a8 E* v/ _2 B6 X8 ^  {
有人拿它做wifi机器人小车……7 a5 r" \" i' Z# k& Y+ X8 k( m
有人拿它当服务器……
" Y  P2 T, f. }& D* g. g我买个两个加邮费¥85,便宜吧
- b* u' N4 m$ L7 O; L  K% _! \7 J9 g  O! B: ]
看卖家介绍:
硬件设计是极为强悍的:主芯片为最新的BCM6358(MIPS,芯片速度300MHZ),交换芯片为BCM5325,无线芯片为BCM4318,FLASH容量为16MB,内存容量为32MB DDR。2个USB接口、WIFI无线硬开关、WPS一键加密。
2 Y) [# J; n8 a: \7 y7 e' S5 {# e
注意:大亚db120-wg、RG100-AA后期版本硬件与前期不一致,有可能刷不了openwrt,比较成熟的是两个USB口的老版本,打开看主板上看FLASH型号以S29打头。我的就是这种。
! w' E8 l9 O8 |4 o4 _0 b5 |8 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
" M2 F: V, X& M6 c俺现在搞定了摄像头、GPS,下一步准备做机器人小车。8 g& D$ |0 n0 c: X. E% c
要知后事如何,请看下集挂摄像头。! F& h: k7 O% }6 X$ S  ^7 E

作者: zealangel    时间: 2011-8-12 20:11
回复 绿葱头 的帖子
% V# x8 \: ], U) p; o4 H/ G& Z; o1 B: C. w' v6 F
葱头兄准备入手的某品牌手机是不是中兴的V880?
+ {2 `2 b! h: ~+ W! i我就是用的这个坑爹的国内版
作者: leebar    时间: 2011-8-13 02:03
我有这个无线路由,期待兄大作!
作者: 阿雷    时间: 2011-8-13 11:47
编译过dd-wrt无线路由固件的飘过。一起交流。
作者: 牌牌    时间: 2011-8-13 15:37
几年前买过一个贝尔金的工程板好像就是可以刷这个的,结果买了之后一直懒得动手,导致现在俺用的无线路由还是这个裸板,连个壳都木有。# s1 u5 ^$ w: }
! I5 R) E* n1 ^# a; W% R+ ~
lz加油,好玩的话,俺也折腾下
作者: 绿葱头    时间: 2011-8-13 18:27
标题: [绿葱头DIY]之大亚db120-wg路由器之挂摄像头
本帖最后由 绿葱头 于 2011-8-13 18:33 编辑
  n; p' w% A3 |
1 c' }7 {* n) w: l8 u2 [俺比较担心这个是不是太geek了,毕竟不是专业论坛,实在没有一些大牛把技术文章写成对口相声的能力,听俺讲故事的都说是良好的催眠剂(小女可以证明)。看到部分同学对这个还比较感兴趣,俺就继续唠叨唠叨……
2 G% D3 E4 `1 R/ j+ e在正文之前讲点注意事项:2 y9 Q& B5 v0 \5 K: Z5 \. T2 F
1、刷新openwrt官方控件的注意,第一次启动需要telnelt 192.168.1.1(换lan4以外的口),这个时候是不需要密码的,进去以后passwd修改密码后才可以ssh登陆。+ |: {" }7 Q9 ?& K0 u& d( U8 ?) c8 X
2、注意写入FLASH。一个是一些软件的默认写入路径是FLASH里,要知道FLASH空间就16M,很容易就写满了。另一个是安装软件后重新启动一下,这样可以正确写入FLASH,避免因为FLASH效验错误无法启动(如果FLASH效验错误需要重新刷ROM)。
4 p6 N4 @3 g0 E% Y# c- B开始正文的分割线……* y7 f  s% R- g* c. g) f

折腾1、挂摄像头
/ s  y  h9 W4 x5 }目前openwrt的摄像头安装似乎靠运气,网上的教程大多使用中星微(不知道为什么好多地方都写中微星)301摄像头做例子,我手头上只有一个廉价的良田免驱摄像头,VIDID是1e4e:0100,google到的第一条信息就是linux UVC驱动官网,可以看出使用的是鈺創芯片,使用UVC驱动成功。
% U% c% u- e% B6 W+ G: G
  1. opkg install kmod-nls-base #后续安装需要$ j+ i+ L: v8 z
  2. opkg install kmod-usb-core#后续安装需要/ B4 ~3 c: O0 H0 P5 J; q1 L6 @
  3. opkg install kmod-usb-ohci #ohci USB控制器,据说一般BCM都是这个& R% s% v4 s& |& E, H
  4. opkg install kmod-usb2#这个摄像头是支持USB2.0的
    % _6 D" B  Q- R
  5. opkg install libusb#后续安装需要5 l: V; {# V: a- S1 K0 l( c
  6. opkg install zlib#后续安装需要
    : Q& p: f; w) }( \* i& B" n4 c
  7. opkg install usbutils#lsusb命令,很有用的工具
    # ^$ j3 V: t; y2 c+ F/ x9 Z$ |/ |
  8. reboot;exit#重新启动后lsusb才有信息
复制代码
lsusb
, z! }3 {4 A: n3 A8 t4 E7 \输出为:
! a. J4 X' H$ p# M5 x. h
  1. Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    # {+ g1 s7 t! n1 R
  2. Bus 001 Device 002: ID 1e4e:0100
    * ^: A+ P  |$ C' J. O* W  t+ ]3 ~
  3. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
复制代码
可以看出来已经摄像头已经接上,由于数据库的关系没有认出芯片。
! [" S& Z* V+ }. G2 \
  1. opkg install kmod-input-core#后续安装需要
    4 X, W) @4 _8 r! K  h( n- ]
  2. opkg install kmod-i2c-core#后续安装需要0 z4 G/ G" v3 Z; u2 ]
  3. opkg install kmod-video-uvc#真正驱动
复制代码
这个时候应该出现/dev/video0了,dmesg输出:% b: l& ^; h, k2 @
  1. Linux video capture interface: v2.00
    $ S: Q. o( `( `
  2. uvcvideo: Found UVC 1.00 device USB2.0 Camera (1e4e:0100)6 g) Q$ K  O. E- |' z
  3. uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling work.3 T9 ^* b* A3 Q
  4. input: USB2.0 Camera as /devices/platform/bcm63xx_ehci.0/usb1/1-2/1-2:1.0/input0
复制代码
cat /dev/video0
* L5 r8 |# K+ i, D. J6 v  Vcat: read error: No such device* r, g! w7 E; l# K: {# E7 j( x
开始cat /dev/video0 无图像输出,以为没有成功,查了N多资料,才知道有的摄像头就是这样的,可能是我的摄像头不支持mjpeg格式读取。
) V7 ?* M0 q3 V! d! D% I9 x: G安装mjpg-streamer3 [% F( H/ s! i8 _% `/ I) v* |
  1. opkg install librt#后续安装需要
    ( c, |: j. p9 i. k
  2. opkg install libpthread#后续安装需要
    $ ~' J5 n- C% y, n9 a3 H
  3. opkg install libjpeg#后续安装需要! C: D3 c' I) r4 N& ]5 O
  4. opkg install mjpg-streamer
复制代码
启动mjpg_streamer7 n4 k$ ?  f7 D3 O0 Q3 L
  1. mjpg_streamer -i "input_uvc.so -r 352x288" -o "output_http.so -w /tmp/webcam"
复制代码
失败的同学注意了:
) y- V$ ^0 W& F; Q' ~5 l6 Q2 T6 [mjpg_streamer默认使用的是mjpeg格式读取摄像头,而部分摄像头采用的是YUV格式(我的就是这种),如果使用不支持mjpge的摄像头需要加--yuv参数:
' ?$ i$ C% O& ~, K+ m3 K: _! l
  1. mjpg_streamer -i "input_uvc.so --yuv -r 352x288" -o "output_http.so -w /tmp/webcam"
复制代码

& u! B% Q  ?) d; q* u2 `' z5 ?6 Q血淋淋的经验啊,试了palantir很多次没有成功就是这个原因,而且palantir似乎没有调节的选项。
! X) q! |' j6 H6 ]& s为了安全起见也可以-c username:password 加上用户名、密码。' R) |% j* X6 s
这个时候用firefox浏览器(据说IE不支持)输入网址:http://192.168.1.1:8080/?action=stream应该可以看到图像了
预告,俺下次课讲的内容是挂GPS。- U9 I3 T1 F/ w5 ?. d" X
没有反应?都睡着了吧8 a) J. Y; h5 C) z0 [6 ]3 i

作者: 牌牌    时间: 2011-8-13 20:33
回复 绿葱头 的帖子3 P+ J# O' \; a. n" ^+ H

4 o; ~4 ]. q! p* _. d/ e好像回帖被回和被点评也是可以加分的
1 W6 R0 E2 a2 n! k9 ]
! n$ |# H$ Q9 O- P俺觉得嘛,在这个版发帖不在乎挣分,而在于让大牛认识,然后帮忙把你捞出去,当然顺便多挣点分就更好啦
作者: 绿葱头    时间: 2011-8-13 20:42
回复 牌牌 的帖子% T* _! s$ b  f
8 J# t) I" ]' \. ]: E
现在不好混啊,刚开始管理员们参与相当快,给分毫不吝啬(当初都是5分5分的,现在可好,都是2、3分),鼎导说可以写点技术的,俺就写技术去了,结果被绊倒在跨平台编译上7天,自从8.8股市大跌以后,水贴多了很多,管理员可能嫌这里太乱了,提拔也越来越严格……
作者: 鼎革    时间: 2011-8-13 20:47
回复 绿葱头 的帖子
1 E4 `" R/ e1 U( Q1 D$ K) f9 [
+ s' Z( n) q2 B* B, w我晕。木想到您老的技术还真是干巴巴的纯技术啊,能写点雅俗共赏的,木基础也能明白的吗?* @2 d/ t; ~( [& H( D$ K
要不您就写生活,写人生,写感情,写影评。。。。,还是有很多东东可写的嘛
作者: 绿葱头    时间: 2011-8-14 01:29
回复 鼎革 的帖子
' V5 \4 U0 H; v% K1 k/ [$ k/ F/ X
) P" I% I4 z7 h6 H* _9 r' k$ R/ A俺写了写人生,写了写感情,您老看可还行?
- E- v, V8 z# r. J突然想起马三立的《吃饺子》来了
作者: 绿葱头    时间: 2011-8-15 06:27
标题: [绿葱头DIY]之大亚db120-wg路由器之挂GPS
虽然这个帖子太geek了,不适合这里。俺还是把它写完吧。虽然虎头蛇尾一些,等过一段时间机器人车弄出来了,再续上。
. e4 J. n5 L% Q/ {  |" j5 H- k1 C- @GPS receiver in OpenWrt(这个网站还有其它很多硬件的安装,可以参考): _& y8 H% D" ]* D; L8 K8 |& ~
[HowTo] - set date based on GPS data from serial port$ u8 ]8 A" U- v- ~+ w1 b6 S
需要注意的是,DB120有两个USB口,下面一个是USB1.1&2.0的,上面是USB2.0的,所以一些USB1.1的设备必须使用下面的USB口。
  1. lsusb- B1 \4 _; R- c. F" S( ]1 a0 w% U$ g
  2. Bus 002 Device 004: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
    $ C' Q+ F" \: J: b
  3. Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    1 q' N! o. u  C3 z: F" J+ |( d
  4. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
复制代码
可以发现USB GPS使用的是广泛的PL2303。
  1. 5 H1 Z( H* L) _& N
  2. opkg install kmod-usb-serial9 r/ ]4 R# ^/ Z8 V% |! u  O
  3. opkg install kmod-usb-serial-pl2303
复制代码
就可以安装成功了。
# r' X/ e' t  D  m& z( w
机器人小车可以参考这个BLOG说得比较详细,再加个机械手什么的就更好玩了。
作者: 绿葱头    时间: 2011-8-15 06:29
标题: [绿葱头DIY]之大亚db120-wg路由器之智能小车
先占个位子,以后再写。
作者: 绿葱头    时间: 2011-8-15 07:53
回复 Sina 的帖子4 Z6 `. f- H" t

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




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