差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
digi:arm-embedded:ccmp2:usbwifi [2025/03/04 15:31] robindigi:arm-embedded:ccmp2:usbwifi [2025/03/24 14:59] (当前版本) robin
行 1: 行 1:
 ====USB Wifi 测试==== ====USB Wifi 测试====
 **deyaio-manifest的rtsp分支,用rtsp.xml,使用meta-custom的rtsp分支** **deyaio-manifest的rtsp分支,用rtsp.xml,使用meta-custom的rtsp分支**
 +===DEY 5.0 r1 测试===
 +刷好固件后,udhcpd和hostapd@wlan1都没运行,需要ifup wlan1后即可,不过最好是改成auto,这样更稳定些
 +
 +设置显示输出,如果要用lvds, 在uboot下
 +<code>
 +=> setenv overlays ccmp25-dvk_g101evn010-lvds.dtbo
 +=> saveenv
 +</code>
 +
 +虽然可以直接用ifup wlan1来开启WiFi AP功能,但命令行开启的方式,在AP的SSID出现后,刚开始会碰到网络拒绝加入,还需要等一会儿才能加入,所以最好是修改/etc/network/interfaces,
 +wlan1的auto注释去掉,然后修改SSID和密码为容易识别的热点名称和密码,比如热点名称为ap-ccmp25,密码为digi
 +<code>
 +nano /etc/network/interfaces #去掉wlan1的auto注释
 +nano /etc/NetworkManager/NetworkManager.conf #把wlan0也加入到unmanaged-devices,即:unmanaged-devices=interface-name:p2p*;interface-name:wlan1;interface-name:wlan0
 +#修改热点名称和优化配置,均在hostapd_wlan1.conf上操作
 +nano /etc/hostapd_wlan1.conf
 +</code>
 +注意,包括信道等的优化也可在这里配置,但第一次修改,请先只配置ssid和密码,修改如下:
 +<code>
 +ssid=ap-ccmp25
 +wpa_passphrase=digidigi
 +</code>
 +
 +
 +设置摄像头:
 +<code>
 +v4l2-ctl --list-devices  #查看设备,最后一项第一个才是摄像头,以 /dev/video7为例,其它设备是硬件codec之类的,也可能未来有用。
 +v4l2-ctl -d /dev/video7 --list-formats-ext  #查看摄像头支持的输出格式,视新只支持MJPG或YUYV,都是800X800,帧率为5~30fps,低端窄带的小模块,可以用5~15fps来节约带宽,最高设置为30fps。
 +
 +v4l2-ctl -d /dev/video7 --get-fmt-video  #查看当前输出 ,也可简写为v4l2-ctl -d /dev/video7 -V
 +v4l2-ctl -d /dev/video7 --get-parm  #查看当前帧率,默认30fps
 +
 +v4l2-ctl -d /dev/video7 --set-fmt-video=width=800,height=800,pixelformat=MJPG   #设置输出格式,请根据摄像头支持来修改,客户的工装摄像头默认是800X800@30fps,所以也可不用修改使用默认值,其它摄像头需要根据支持格式来修改
 +
 +gst-launch-1.0 v4l2src device=/dev/video2 ! autovideoconvert ! autovideosink  #注意,如果想简单测试一下在显示屏上输出摄像头的视频,可用这个,但它会占用设备,不可再用web共享,因此为了web共享,用下面这个办法,先创建web的流,再用相同的流本地显示 
 +
 +
 +</code>
 +
 +通过web或本地显示usb摄像头的视频
 +<code>
 +1、创建ip直接访问所需页面
 +mkdir -p /srv/mjpg_streamer/www
 +echo "<html><body><h1>MJPG Streamer</h1><img src=\"/?action=stream\" /></body></html>" > /srv/mjpg_streamer/www/index.html
 +2、mjpg_streamer -i "input_uvc.so -d /dev/video7 -r 800x800 -f 30" -o "output_http.so -p 8080 -w /srv/mjpg_streamer/www"
 +或简版:mjpg_streamer -i "input_uvc.so -d /dev/video7" -o "output_http.so -p 8080 -w /srv/mjpg_streamer/www"
 +3、本地打开:gst-launch-1.0 -v souphttpsrc location=http://localhost:8080/?action=stream ! jpegdec ! autovideosink
 +</code>
 +整成脚本:
 +<code>
 +#!/bin/bash
 +
 +mjpg_streamer -i "input_uvc.so -d /dev/video2 -f 10" -o "output_http.so -p 8080 -w /srv/mjpg_streamer/www" &
 +
 +sleep 1
 +
 +gst-launch-1.0 souphttpsrc location=http://localhost:8080/?action=stream ! jpegdec ! autovideosink
 +
 +</code>
 +
 +
 +4、窄带小模块的优化方式
 +在mjpg_streamer -i "input_uvc.so -d /dev/video7 -r 800x800 -f 10" -o "output_http.so -p 8080 -w /srv/mjpg_streamer/www"
 +
 +5、gstreamer的方式测试及比较
 +注意,我们创建/tmp/camera_fifo,这个每次启动都会清掉,所以要用这个重启需再创建,或放在服务中
 +<code>
 +mkfifo /tmp/camera_fifo
 +gst-launch-1.0 -q v4l2src device=/dev/video7 ! \
 +  image/jpeg,width=800,height=800,framerate=30/1 ! \
 +  multipartmux boundary=frame ! \
 +  filesink location=/tmp/camera_fifo &
 +nano /srv/www/cgi-bin/stream
 +内容为:
 +#!/bin/sh
 +echo "Content-Type: multipart/x-mixed-replace; boundary=spionisto"
 +echo
 +cat /tmp/camera_fifo
 +在thttpd.conf中启用
 +nano /etc/thttpd.conf 
 +内容如下:
 +dir=/srv/www
 +cgipat=/cgi-bin/*
 +user=root
 +</code>
 +
 +本地
 +<code>
 +本地显示 
 +gst-launch-1.0 filesrc location=/tmp/camera_fifo ! \
 +  multipartdemux boundary=frame ! \
 +  image/jpeg ! jpegdec ! videoconvert ! waylandsink
 +如果直接用摄像头而不是fifo流的命令是这个,但如果用web后估计会是占用状态,所以用上面的方式
 +gst-launch-1.0 v4l2src device=/dev/video7 ! \
 +  image/jpeg,width=800,height=800 ! \
 +  jpegdec ! videoconvert ! \
 +  waylandsink
 +</code>
 +
 +rtsp的方法待测
 +
  
 **使用固件20250303** **使用固件20250303**
行 35: 行 136:
 cp cyfmac55500-sdio.trxse cyfmac55500-sdio.digi,ccmp25-dvk.trxse cp cyfmac55500-sdio.trxse cyfmac55500-sdio.digi,ccmp25-dvk.trxse
  
-#关闭wlan0+#关闭wlan0 ,无所谓要不要这一步
 nmcli dev set wlan0 managed no nmcli dev set wlan0 managed no
 nmcli dev status nmcli dev status
 +#启用
 +systemctl enable hostapd@wlan1.service
  
 ifup wlan1 ifup wlan1
 systemctl status udhcpd systemctl status udhcpd
 systemctl restart udhcpd #根据固件版本看是否要重启这个服务 systemctl restart udhcpd #根据固件版本看是否要重启这个服务
 +systemctl restart hostapd@wlan1.service
 +
 </code> </code>
  
 Connectcore的AP默认IP地址为:192.168.46.30,客户端接入后会分配到相同网段的IP,并且可以访问http://192.168.42.3 Connectcore的AP默认IP地址为:192.168.46.30,客户端接入后会分配到相同网段的IP,并且可以访问http://192.168.42.3
 +
 +3、配置usb摄像头的默认输出:
 +
 +查看摄像头支持的格式,用
 +<code>
 +v4l2-ctl --list-formats-ext -d /dev/video2
 +</code>
 +查看摄像头的默认输出格式,用
 +<code>
 +v4l2-ctl -d /dev/video2 --get-fmt-video
 +</code>
 +设置摄像头的格式,可以用下面命令,注意你要设置硬件所支持的范围
 +<code>
 +v4l2-ctl -d /dev/video2 --set-fmt-video=width=640,height=480,pixelformat=YUYV
 +</code>
 +
 +
 +export LD_LIBRARY_PATH=/usr/lib/mjpg-streamer
 +
 +mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 1024x768 -f 30" -o "output_http.so -p 8080 -w ./www"
 +
 +===sthttpd 配合gstreamer====
 +nano /etc/thttpd.conf
 +<code>
 +dir=/srv/www
 +cgipat=/cgi-bin/*
 +user=root
 +</code>
 +nano /srv/www/cgi-bin/stream
 +<code>
 +#!/bin/sh
 +# 手动设置 HTTP 头(关键:指定 M-JPEG 格式)
 +echo -e "HTTP/1.1 200 OK\r\nContent-Type: multipart/x-mixed-replace; boundary=frame\r\n\r\n"
 +
 +# 直接输出摄像头 MJPG 流(无需编码)
 +gst-launch-1.0 -q v4l2src device=/dev/video0 ! \
 +  image/jpeg,width=1280,height=720,framerate=30/1 ! \
 +  multipartmux boundary=frame ! \
 +  fdsink fd=1
 +</code>
 +chmod +x /srv/www/cgi-bin/stream
 +
 +注意,如果要同时本地输出,用这个版本:
 +<code>
 +#!/bin/sh
 +# 设置 HTTP 头
 +echo -e "HTTP/1.1 200 OK\r\nContent-Type: multipart/x-mixed-replace; boundary=frame\r\n\r\n"
 +
 +# 启动 GStreamer 管道(同时输出到 HTTP 和本地屏幕)
 +gst-launch-1.0 -q \
 +  v4l2src device=/dev/video0 ! \
 +  image/jpeg,width=1024,height=768,framerate=30/1 ! \
 +  tee name=t \
 +    # 分支 1:HTTP 流输出(保持现有逻辑)
 +    t. ! queue ! multipartmux boundary=frame ! fdsink fd=1 \
 +    # 分支 2:本地显示(解码 MJPG 后渲染)
 +    t. ! queue ! jpegdec ! videoconvert ! autovideosink sync=false
 +
 +</code>
 +
 +编辑 /lib/systemd/system/thttpd.service,确保启动命令正确,
 +ExecStart=/usr/sbin/thttpd -C /etc/thttpd.conf -c cgi-bin/* -i /var/run/thttpd.pid
 +临时调试时可用下面
 +ExecStart=/usr/sbin/thttpd -C /etc/thttpd.conf -D -i /var/run/thttpd.pid
 +
 +systemctl daemon-reload
 +
 +systemctl restart thttpd
 +
 +
 +
 +
  
  
 +旧的资料,在下面
  
 检查wifi的功能: 检查wifi的功能: