【宠物远程监控DIY】openwrt+rt5350+mjpg摄像头

来源:互联网 发布:广告语录音制作软件 编辑:程序博客网 时间:2024/04/28 14:10

1.办公云+VPN

从办公云拉取文件

scp xxx@xxx:/Volumes/C/RT5350/Ralink-RT5350-SDK4.1.2/MTK_Ralink_ApSoC_SDK_4120_20120607.tar.bz2 ./

scp ./root_uImage xxx@xxx:/Volumes/C/RT5350/ 

~/ralink/RT288x_SDK/source/

sudo cp *so*  ~/ralink/RT288x_SDK/source/romfs/lib -d

sudo cp mjpg_streamer ~/ralink/RT288x_SDK/source/romfs/bin/

mjpg_streamer -i "./input_uvc.so -r 320x240 -m -f 30" -o "./output_http.so -w ./www"


2.常识问题

wan与lan

LAN,全称Local Area Network,中文名叫做局域网

WAN:接外部 IP 地址用,通常指的是出口,转发来自内部 LAN 接口的 IP 数据包。基本每个路由器都有WAN口,当然也有路由猫这种特例。

VLAN(Virtual Local Area Network)的中文名为"虚拟局域网"。

查看网口分配: /cat etc/config/network 


3.安装OPENWRT

sudo apt-get install subversion

sudo apt-get install git-core

sudo apt-get install gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils ncurses-term zlib1g-dev libncurses5-dev gawk

获取openwrt源码。在当前用户主目录下执行

git clone git://git.openwrt.org/openwrt.git

配置软件源。进入openwrt目录,执行

./scripts/feeds update -a

./scripts/feeds install -a

4.检查编译环境是否完整:

make defconfig

make prereq

make menuconfig

make V=99

5.下载OPENWRT

scp -r xxx@xxx:/Users/xxx/OP/openwrt ./

编译完成通过share文件放到TFTP的文件夹中,插上USB网口开始下载


6.加载LUCI页面

中继网桥配置方法

https://www.douban.com/note/402967507/

同时添加SSH支持

7.OPENWRT安装mjpeg驱动

1、配置内核加入摄像头驱动
Kernel modules --->Video Support --->kmod-video-core --->kmod-video-uvc

2、配置内核加入 MJPEG 视频流 Multimedia --->mjpg-streamer

3、重新编译,烧写镜像

openwrt-ramips-rt305x-mpr-a2-squashfs-sysupgrade.bin 重启后既可以看到已经有 mjpg-streamer 的命令。

4、配置摄像头的帧率、分辨率等

config mjpg-streamer 'core' option enabled '1' option input 'uvc'

option output 'http'
option device '/dev/video0' option resolution '640x480' option fps '30'
option www '/www/webcam' option port '8080'

修改/etc/init.d/mjpg-streamer 这个脚本,增加 –m
mjpg_streamer -i "input_uvc.so -d /dev/video0 -n -m -r 640x480 -f 30" -o "output_http.so -p 8080 -w ./www"

启动 mjpg-streamer: /etc/init.d/mjpg-streamer start 

视频图像:192.168.1.1:8080/?action=stream

静态图像:192.168.1.1:8080/?action=snapshot 

8.设置IP地址和路由的虚拟服务器端口,保准外网可以接入openwrt同事brlan与wlan不能在一个网段

设置方式:

Interfaces:br-lan

Wireless Network: STA

Interfaces:br-lan

Wireless Network: STA

不行重启!

防火墙

端口转发

在路由器上设置:DMZ主机加openwrt的ip地址即可!



9.设置程序运行优先级

kill -9 $(ps |grep mjpg|grep -v grep|awk '{print $1}')

mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 640x480 -f 20 " -o "output_http.so -p 8088 -w /www" &

mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 320x240 -f 20 " -o "output_http.so -p 8082 -w /www"


  

eth0

eth0是一块物理网卡。eth0.1 eth0.2都是从此设备上虚拟出来的。

eth0.1 是vlan1分出的lan口。

eth0.2 是vlan分出的wan口。

rao raio

这两个是成对出现,一看就知道是无线设备,它们各自对应一个SSID,分别是2.4G和5G。

br-lan

br-lan 虚拟设备,用于LAN口设备桥接,可以用brctl show查看使用情况。

br-lan = eth0.1 (lan)+ rai0 + ra0,即将有线LAN口和无线网统一划分为 LAN,便于管理!

lolo 虚拟设备,自身的回环网设备。pppoe-wan虚拟设备,他就是常见的拨号宽带上网,需要有ISP提供的用户名密码,连接后方可激此接口!



编译问题汇总:

1.问题:/opt/buildroot-gcc342/bin/mipsel-linux-gcc: No such file or directory

@versamodule Are you running a 64-bit system? For some reason vendors like shipping around 32-bit binaries that don't work without a 32-bit libc. You might need to do something like: "dpkg --add-architecture i386", then "apt-get update", and then "apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386" before you can run their ancient toolchain.


2.问题:collect2: ld returned 1 exit status make[1]: *** [scripts/kconfig/mconf] Error 1 make: *** [menuconfig] Error 2

apt-get install libncurses5-dev


3.问题:ERROR opening V4L interface: No such file or directory

menuconfig 

Multimedia --->mjpg-streamer libv4l2

Kernel modules --->Video Support dwc2 storage usb2

USB2

0 0
原创粉丝点击