差别

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

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
digi:arm-embedded:ccmp2:usbwifi [2025/02/26 08:17] robindigi:arm-embedded:ccmp2:usbwifi [2025/03/14 13:29] (当前版本) 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后即可,不过固件加载错误的情况,需要手动改一下:
 +<code>
 +cp cyfmac..trxe cyfmac55500-sdio.digi,ccmp25-dvk.trxse
 +cp cyfmac..txt cyfmac55500-sdio.digi,ccmp25-dvk.txt
 +不过,仍只能用默认的规则
 +</code>
  
-启动后由于移除busybox-httpd改用sthttpd,所以报错busybox-httpd服务无法启动,未来需要把服务改sthttpd+碰到网络拒绝加入多等一会儿让初始化完即可
  
-检查下面这些可能要手动关闭或从服务中移除+设置摄像头
 <code> <code>
- 986 root     34388 S    /usr/bin/cccsd -d +v4l2-ctl --list-devices  #查看设备,最后一项第一个才是摄像头,以 /dev/video2为例,其它设备是硬件codec之类的,也可能未来有用。 
- 997 root      3848 S    {cccs-gs-demo} /bin/sh /etc/cccs-gs-demo start +v4l2-ctl -d /dev/video2 --list-formats-ext  #查看摄像头支持的输出格式 
- 1004 root      9360 S    /usr/bin/cccs-gs-demo+v4l2-ctl -/dev/video2 --get-fmt-video  查看当前输出 
 +v4l2-ctl -d /dev/video2 --set-fmt-video=width=1024,height=768,pixelformat=MJPG   #设置输出格式 
 + 
 +gst-launch-1.0 v4l2src device=/dev/video2 ! autovideoconvert ! autovideosink  #注意,如果想简单测试一下在显示屏上输出摄像头的视频,可用这个,但它会占用设备,不可再用web共享,因此为了web共享,用下面这个办法,先创建web的流,再用相同的流本地显示  
  
 </code> </code>
  
 +通过web或本地显示usb摄像头的视频
 +<code>
 +1、创建ip直接访问所需页面
 +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/video2 -r 1024x768 -f 30" -o "output_http.so -p 8080 -w /usr/share/mjpg-streamer/www"
 +3、本地打开:gst-launch-1.0 -v souphttpsrc location=http://localhost:8080/?action=stream ! jpegdec ! autovideosink
 +</code>
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +**使用固件20250303**
 +
 +这个版本已经集成了udhcpd的相关服务,包括mjpg-streamer和rtsp服务器等软件,并且用sthttpd替代busybox的,以实现更多web功能的支持。默认已经改好/etc/network/interfaces中相关的支持。
 +
 +启动后,有可能需要systemctl restart udhcpd,后续固件更新相关的服务配置,就不需要。 要开启AP,直接ifup wlan1。 另外注意,当前的cypress固件回载出错,不过其应该使用默认的固件,也是可以用来简单测试的,如果要提升性能,可能需要更新无线的固件。
 +
 +卡刷这个版本固件, 上电后按任意键停在uboot下
 +<code>
 +setenv dey-image-qt
 +run install_linux_fw_sd
 +</code>
 +
 +测试步骤:
 +1、修改本地显示输出,默认是HDMI接口,如果要改为本地的lvds,开机后按任意键停在uboot下,执行
 +<code>
 +setenv overlays _ov_board_g101evn010-lvds_ccmp25-dvk.dtbo
 +saveenv
 +reset
 +</code>
 +
 +1、自定义wifi密码:
 +<code>
 +nano /etc/hostapd_wlan1.conf 
 +</code>
 +按需更改热点名称密码,然后重启,名称改为ap-ccmp25,密码改为digidigi 
 +重启,或是得新启动hostapd@wlan1
 +
 +2、开启AP, 我们在wlan1中实施,如果有在使用wlan0,请先关闭它。
 +<code>
 +#DEY 4.0 r7有bug,为支持ap功能,需修改一下固件名称
 +cd /lib/firmware/cypress/
 +cp cyfmac55500-sdio.trxse cyfmac55500-sdio.digi,ccmp25-dvk.trxse
 +
 +#关闭wlan0 ,无所谓要不要这一步
 +nmcli dev set wlan0 managed no
 +nmcli dev status
 +#启用
 +systemctl enable hostapd@wlan1.service
 +
 +ifup wlan1
 +systemctl status udhcpd
 +systemctl restart udhcpd #根据固件版本看是否要重启这个服务
 +systemctl restart hostapd@wlan1.service
 +
 +</code>
 +
 +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的功能:
 +<code>
 +iw reg get
 +没设置时,创建nano /etc/systemd/system/set-regdomain.service
 +另外,wlan1是用来设置ap的,创建
 +nano /etc/udhcpd.conf
 +
 +interface       wlan1
 +start           192.168.46.100
 +end             192.168.46.200
 +max_leases      10
 +opt router      192.168.46.30
 +opt lease       86400
 +
 +nano /etc/systemd/system/udhcpd.service
 +
 +[Unit]
 +Description=DHCP Server
 +After=network-online.target hostapd@wlan1.service
 +Wants=network-online.target
 +
 +[Service]
 +ExecStart=/usr/sbin/udhcpd -f /etc/udhcpd.conf
 +Restart=on-failure
 +RestartSec=5s
 +StartLimitInterval=0
 +
 +[Install]
 +WantedBy=multi-user.target
 +
 +
 +
 +</code>
 +
 +修改/etc/network/interfaces
 +<code>
 +auto wlan1
 +iface wlan1 inet static
 +        address 192.168.46.30
 +        netmask 255.255.255.0
 +        pre-up [ -d /proc/device-tree/wireless ]
 +        post-up systemctl start hostapd@wlan1.service
 +        post-up udhcpd /etc/udhcpd.conf
 +        pre-down systemctl stop hostapd@wlan1.service
 +        pre-down pkill udhcpd
 +
 +</code>
 +固件加载错误时,查日志,改名
 +
 +cp cyfmac55500-sdio.trxse cypress/cyfmac55500-sdio.digi,ccmp25-dvk.trxse
  
  
行 63: 行 263:
 <code> <code>
 v4l2-ctl -d /dev/video2 --set-fmt-video=width=640,height=480,pixelformat=YUYV v4l2-ctl -d /dev/video2 --set-fmt-video=width=640,height=480,pixelformat=YUYV
 +</code>
 +
 +手动测试:
 +
 +<code>
 +pkill hostapd
 +pkill udhcpd
 +ip link set wlan1 down
 +ip link set wlan1 up
 +
 +hostapd -B /etc/hostapd_wlan1.conf
 +udhcpd -f -v /etc/udhcpd.conf
 </code> </code>