路由器硬改+刷OpenWrt+挂载摄像头+U盘

路由器硬改+刷OpenWrt+挂载摄像头+U盘

标签:路由器 OpenWrt 摄像头

时间:2019-2-25 作者:梦幻之心星 [email protected] https://www.cnblogs.com/Sky-seeker/


第一步,硬件改造

  1. 根据型号查找推荐的DDR内存和闪存(https://oldwiki.archive.openwrt.org/toh/tp-link/tl-wr703n
  2. 用拖焊法换Flash和Ram以及外置天线(注意检查有无短路和断路)
  3. 完善USB外围电路
  4. 引出串口接线端子
    路由器硬件

第二步,刷入引导加载器和固件

  1. 用编程器备份原厂固件
  2. 用编程器刷入对应主控型号的breed(https://breed.hackpascal.net/
    breed目录
  3. 通过breed控制台编程器固件更新刷入原厂固件,固件更新时勾选保留现有 Bootloader,取消勾选保留现有 ART,固件更新成功后即可恢复原厂ART(无线校准信息)
  4. 通过breed控制台常规固件更新刷入openwrt固件(https://downloads.openwrt.org/),备份ART
    系统信息
    固件更新

    第三步,安装相关驱动和软件

  5. 连接USB转串口与路由器串口之间的导线
  6. 使用SecureCRTPortable连接对应串口,取消流控下的勾选
    串行选项设置
  7. 连接成功后执行以下命令

     opkg update
     opkg install luci-base luci luci-i18n-base-zh-cn    
     opkg install kmod-usb-core kmod-usb-ohci kmod-scsi-core kmod-usb2        
     opkg install kmod-usb-video kmod-video-core
     opkg install kmod-video-uvc kmod-video-gspca-core kmod-video-gspca-zc3xx     
     opkg install kmod-i2c-core kmod-input-core
     opkg install mjpg-streamer luci-app-mjpg-streamer luci-i18n-mjpg-streamer-zh-cn
     opkg install blkid usbutils libusb
     opkg install openssh-sftp-serve     
     opkg install kmod-usb-storage kmod-usb-storage-extras block-mount kmod-fs-ntfs
     opkg install ntfs-3g kmod-fuse

    luci-base 用于提供图形界面
    openssh-sftp-serve 用于传输文件,可通过此方式访问设备文件系统,直接修改配置

  8. 启用系统->管理权下的SSH访问

第四步,配置设备

  1. lsusb命令显示连接到系统的USB总线信息,执行lsusb命令获取设备的生产商和设备名以及设备ID,查找对应驱动

     root@LEDE:~# lsusb
     Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
     Bus 001 Device 002: ID 046d:08af Logitech, Inc. QuickCam Easy/Cool

    Bus 001 : 设备连接到第1条总线;
    Device 002 : 第2台连接到总线上的设备;
    ID 046d:08af : 设备的ID为046d:08af;
    Logitech, Inc. QuickCam Easy/Cool :生产商名为罗技,设备名为快看畅想

  2. 如果设备不支持UVC免驱,安装对应驱动(gspca系列)
  3. 通过串口执行dmesg命令dmesg | grep video,检查驱动安装是否成功

     root@LEDE:~# dmesg | grep video
     [   10.392647] Linux video capture interface: v2.00
     [   10.724687] usbcore: registered new interface driver uvcvideo
  4. 执行ls /dev/,如果存在video0或者video1、video2设备名称,说明已经正确识别

第五步,启动设备

  1. 进入luci界面->服务serivices->mjpg-streamer
  2. 勾选Enable MJPG-streamerInput plugin选择UVCOutput plugin选择HTTP
  3. UVC input下的设备选择识别到的设备名video0,设置分辨率和fps,是否支持YUYV格式取决于设备
  4. HTTP output下的端口WWW folder保持默认值,也可自定义
  5. 点击保存应用,看到后台有mjpg-streamer进程说明启动成功

第六步,优化设备配置

  1. 获取设备具体型号
    1.1 通过外观获取型号
    1.2 通过网络获取型号(官网、中关村在线、淘宝拍立淘、以图识图等)
    1.3 通过命令获取型号
  2. 获取设备具体型号和参数
    2.1 将摄像头连接到电脑,进入ubuntu系统
    2.2 安装视频和摄像头软件v4l-utils(luvcview,spcaview,webcam,xawtv)
    2.3 执行以下命令可获得设备分辨率、帧率等信息

     sudo apt-get install v4l-utils 
     v4l2-ctl -d /dev/video0 --all

摄像头参数

  1. 根据相关参数设置相关配置
    mjpg-streamer set
  2. 点击应用并保存,设置界面出现图片,打开http://网关ip:8080,画面出现
    摄像头画面
  3. 修改相关配置,设置openwrt摄像头自启动
    /etc/init.d/mjpg-streamer enable //设置开机自动启动 /etc/init.d/mjpg-streamer disable //禁止开机自动启动 /etc/init.d/mjpg-streamer start //现在启动 /etc/init.d/mjpg-streamer restart //重启 /etc/init.d/mjpg-streamer stop //停止

注意事项

  1. 资源占用高,CPU长期100%以上,内存占用20%左右,发热量较大,长期运行可能会导致硬件性损坏,必须注意散热
  2. 如果摄像头支持mjpg格式输出,mjpg-streamer只需要将得到jpeg格式的图片转发到HTTP服务器。但如果摄像头不支持mjpg格式输出,仅支持YUV格式,那mjpg-streamer需要将原始图片压缩成jpeg格式,因此需要消耗大量CPU资源
  3. luvcview命令可获得摄像头设备分辨率、帧率等信息
  4. blkid命令查询设备上所采用文件系统类型。blkid主要用来对系统的块设备(包括交换分区)所使用的文件系统类型、LABEL、UUID等信息进行查询。要使用这个命令必须安装e2fsprogs软件包。
  5. dmesg命令用于检测和控制内核环缓冲,用来帮助用户了解系统的启动信息
    • 列出加载到内核中的所有驱动;
    • 列出所有被检测到的硬件;
    • 只输出dmesg命令的前20行日志;
    • 只输出dmesg命令最后20行日志;
    • 搜索包含特定字符串的被检测到的硬件;
    • 清空dmesg缓冲区日志;
    • 实时监控dmesg日志输出
  6. 高级定制可通过下载源码后进行自定义配置再编译固件文件
  7. 固件文件的解包和打包可使用firmware-mod-kit和binwalk工具

参考资料

TP-Link TL-WR703N硬件参数:http://wiki.openwrt.org/toh/tp-link/tl-wr703n.
openwrt下使用blkid获取U盘文件系统格式 https://www.openwrtdl.com/wordpress/openwrt-blkid-gets-u-file-system-format
openwrt摄像头选购指南 https://www.openwrtdl.com/wordpress/openwrt%E6%91%84%E5%83%8F%E5%A4%B4%E9%80%89%E8%B4%AD%E6%8C%87%E5%8D%97
openwrt挂载摄像头MJPG-streamer完全教程 https://www.openwrtdl.com/wordpress/openwrt%E6%8C%82%E8%BD%BD%E6%91%84%E5%83%8F%E5%A4%B4mjpg-streamer%E5%AE%8C%E5%85%A8%E6%95%99%E7%A8%8B
USB Video Support https://oldwiki.archive.openwrt.org/doc/howto/usb.video
Linux UVC driver and tools http://www.ideasonboard.org/uvc/
gspca devices https://linuxtv.org/wiki/index.php/Gspca_devices
USB挂载&U盘启动&Samba共享 https://www.cnblogs.com/sean-yao/p/8224174.html
OpenWrt编译 – 说明 https://openwrt.org/zh-cn/doc/howto/build
OpenWrt 固件的结构分析、如何逆向解包 https://blog.csdn.net/caofengtao1314/article/details/81252047


猜你喜欢

转载自www.cnblogs.com/Sky-seeker/p/10434346.html