路由器硬改+刷OpenWrt+掛載攝像頭+U盤
硬件改造
- 根據型號查找推薦的 DDR 內存和閃存
https://oldwiki.archive.openwrt.org/toh/tp-link/tl-wr703n - 用拖焊法換 Flash 和 Ram 以及外置天線(注意檢查有無短路和斷路)
- 完善 USB 外圍電路
- 引出串口接線端子

刷入引導加載器和固件
- 下載對應主控型號的breed和openwrt 固件

- 用編程器備份原廠固件
- 用編程器刷入 breed

- 通過 breed 控制臺編程器固件更新刷入原廠固件,固件更新時勾選保留現有 Bootloader,取消勾選保留現有 ART,固件更新成功后即可恢復原廠 ART(無線校準信息),備份 ART

- 通過 breed 控制臺常規固件更新刷入 openwrt 固件
安裝相關驅動和軟件
-
連接 USB 轉串口與路由器串口之間的導線
-
使用 SecureCRTPortable 連接對應串口,取消流控下的勾選

-
連接成功后執行以下命令
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-fuseluci-base 用于提供圖形界面
openssh-sftp-serve 用于傳輸文件,可通過此方式訪問設備文件系統,直接修改配置 -
啟用系統->管理權下的SSH 訪問
安裝攝像頭驅動
-
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/CoolBus 001 : 設備連接到第 1 條總線;
Device 002 : 第 2 臺連接到總線上的設備;
ID 046d:08af : 設備的 ID 為 046d:08af;
Logitech, Inc. QuickCam Easy/Cool :生產商名為羅技,設備名為快看暢想 -
如果設備不支持 UVC 免驅,安裝對應驅動(gspca 系列)
-
通過串口執行 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 -
執行
ls /dev/,如果存在video0或者video1、video2設備名稱,說明已經正確識別
啟動設備
- 進入luci 界面->服務 serivices->mjpg-streamer
- 勾選Enable MJPG-streamer,Input plugin選擇UVC,Output plugin選擇HTTP
- UVC input下的設備選擇識別到的設備名video0,設置分辨率和 fps,是否支持 YUYV 格式取決于設備
- HTTP output下的端口和WWW folder保持默認值,也可自定義
- 點擊保存應用,看到后臺有mjpg-streamer進程說明啟動成功
配置設備
-
獲取設備具體型號
- 通過外觀獲取型號
- 通過網絡獲取型號(官網、中關村在線、淘寶拍立淘、以圖識圖等)
- 通過命令獲取型號
-
獲取設備具體型號和參數
-
將攝像頭連接到電腦,進入 ubuntu 系統
-
安裝視頻和攝像頭軟件 v4l-utils(luvcview,spcaview,webcam,xawtv)
-
執行以下命令可獲得設備分辨率、幀率等信息
sudo apt-get install v4l-utils v4l2-ctl -d /dev/video0 --all
-
-
獲取到的分辨率、幀率等信息如下

-
根據相關參數設置相關配置

-
點擊應用并保存,設置界面出現圖片,打開
http://網關ip:8080,畫面出現

-
修改相關配置,設置 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 //停止
注意事項
- 資源占用高,CPU 長期 100%以上,內存占用 20%左右,發熱量較大,長期運行可能會導致硬件性損壞,必須注意散熱
- 如果攝像頭支持 mjpg 格式輸出,mjpg-streamer只需要將得到 jpeg 格式的圖片轉發到 HTTP 服務器。但如果攝像頭不支持 mjpg 格式輸出,僅支持 YUV 格式,那 mjpg-streamer 需要將原始圖片壓縮成 jpeg 格式,因此需要消耗大量 CPU 資源
luvcview命令可獲得攝像頭設備分辨率、幀率等信息blkid命令查詢設備上所采用文件系統類型。blkid主要用來對系統的塊設備(包括交換分區)所使用的文件系統類型、LABEL、UUID 等信息進行查詢。要使用這個命令必須安裝e2fsprogs軟件包。dmesg命令用于檢測和控制內核環緩沖,用來幫助用戶了解系統的啟動信息- 列出加載到內核中的所有驅動;
- 列出所有被檢測到的硬件;
- 只輸出 dmesg 命令的前 20 行日志;
- 只輸出 dmesg 命令最后 20 行日志;
- 搜索包含特定字符串的被檢測到的硬件;
- 清空 dmesg 緩沖區日志;
- 實時監控 dmesg 日志輸出
- 高級定制可通過下載源碼后進行自定義配置再編譯固件文件
- 固件文件的解包和打包可使用 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攝像頭選購指南
- openwrt 掛載攝像頭 MJPG-streamer 完全教程 https://www.openwrtdl.com/wordpress/openwrt掛載攝像頭mjpg-streamer完全教程
- 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 共享 http://www.rzrgm.cn/sean-yao/p/8224174.html
- OpenWrt 編譯 – 說明 https://openwrt.org/zh-cn/doc/howto/build
- OpenWrt 固件的結構分析、如何逆向解包 https://blog.csdn.net/caofengtao1314/article/details/81252047
版權聲明:本文為「夢幻之心星」原創,依據 CC BY-NC-SA 4.0 許可證進行授權,轉載請附上原文出處鏈接及本聲明。
博客園地址:http://www.rzrgm.cn/Sky-seeker
微信公眾號:關注微信公眾號,獲取即時推送
![]()

浙公網安備 33010602011771號