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

目录

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

时间:2019-2-25 作者:梦幻之心星 347369787@QQ.com https://www.cnblogs.com/Sky-seeker/


第一步,硬件改造

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

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

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

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

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

     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 用于传输文件,可通过此方式访问设备文件系统,直接修改配置

  4. 启用系统->管理权下的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系列) [][gspca devices]
  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
    [][摄像头参数]
  3. 根据相关参数设置相关配置
    [][mjpg-streamer设置]
  4. 点击应用并保存,设置界面出现图片,打开http://网关ip:8080,画面出现

    [][摄像头画面]
  5. 修改相关配置,设置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 //停止
    ---

    注意事项

  6. 资源占用高,CPU长期100%以上,内存占用20%左右,发热量较大,长期运行可能会导致硬件性损坏,必须注意散热
  7. 如果摄像头支持mjpg格式输出,mjpg-streamer只需要将得到jpeg格式的图片转发到HTTP服务器。但如果摄像头不支持mjpg格式输出,仅支持YUV格式,那mjpg-streamer需要将原始图片压缩成jpeg格式,因此需要消耗大量CPU资源
  8. luvcview命令可获得摄像头设备分辨率、帧率等信息
  9. blkid命令查询设备上所采用文件系统类型。blkid主要用来对系统的块设备(包括交换分区)所使用的文件系统类型、LABEL、UUID等信息进行查询。要使用这个命令必须安装e2fsprogs软件包。
  10. dmesg命令用于检测和控制内核环缓冲,用来帮助用户了解系统的启动信息
    • 列出加载到内核中的所有驱动;
    • 列出所有被检测到的硬件;
    • 只输出dmesg命令的前20行日志;
    • 只输出dmesg命令最后20行日志;
    • 搜索包含特定字符串的被检测到的硬件;
    • 清空dmesg缓冲区日志;
    • 实时监控dmesg日志输出
  11. 高级定制可通过下载源码后进行自定义配置再编译固件文件
  12. 固件文件的解包和打包可使用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
    ---
    [breed目录]: http://m.qpic.cn/psb?/V10Ogl4t4NCm21/4lwMq0JdiCuRu9wBiBsOzroHiJ2YVHjg.N00EMzbYcg!/b/dIABAAAAAAAA&bo=WgO8A1oDvAMRCT4!&rf=viewer_4
    [系统信息]: http://m.qpic.cn/psb?/V10Ogl4t4NCm21/MHzjBZMAm5TRM39qhvJbC4klfSAh4JrDQDjavR04f2A!/b/dN8AAAAAAAAA&bo=VQTEAlUExAIRGS4!&rf=viewer_4
    [固件更新]: http://m.qpic.cn/psb?/V10Ogl4t4NCm21/.wPCJ1m3yUi4HEG08RDHqxVMGNtaJCmno4cEH3KMC0!/b/dA0BAAAAAAAA&bo=ZwThAmcE4QIRGS4!&rf=viewer_4
    [串行选项设置]: http://m.qpic.cn/psb?/V10Ogl4t4NCm21/LvCzV01jY0qm8OgI0FySgVwnF4JPxdv1Fb.sV2H2VPU!/b/dG0BAAAAAAAA&bo=ngKaAp4CmgIRGS4!&rf=viewer_4
    [gspca devices]: http://r.photo.store.qq.com/psb?/V10Ogl4t4NCm21/KtQIeaKpaWI1MmXpg1vKCrk
    VoTDdVBSyZG5Vb7JqY0!/r/dA0BAAAAAAAA
    [摄像头参数]: http://m.qpic.cn/psb?/V10Ogl4t4NCm21/DP5jepQSrZxclXkdT.XaBSOOfM6HSfvKxC8WtFWLpu8!/b/dIUBAAAAAAAA&bo=hAS1A4QEtQMRGS4!&rf=viewer_4
    [mjpg-streamer设置]: http://m.qpic.cn/psb?/V10Ogl4t4NCm21/gotFpOPmz8mC4lJEzGqcJXDuuxPAEHnnBmqwRukYE7I!/b/dOAAAAAAAAAA&bo=ngNqA54DagMRGS4!&rf=viewer_4
    [摄像头画面]: http://m.qpic.cn/psb?/V10Ogl4t4NCm21/thoH6f7Ur9AqxRkDcFTvCCUkDpZwWwOIJ.iY0bhFKKQ!/b/dH4BAAAAAAAA&bo=SAN3AkgDdwIRGS4!&rf=viewer_4
    [路由器硬件]: http://m.qpic.cn/psb?/V10Ogl4t4NCm21/hQueQnf*AQajUXYeVgkCMoPJ2FCnwkAi6L2D7scfYQ0!/b/dN8AAAAAAAAA&bo=WQOAA1kDgAMRGS4!&rf=viewer_4

上一篇:Openwrt build env setup(9)


下一篇:openwrt的编译系统是如何生成squashfs文件系统的