jetson xavier nx使用jetpack sdk 5.0.2,20.04ubantu。
CONFIG_USB_CONFIGFS_F_FS=y
(通过 ConfigFS 的 FunctionFS 支持)。在较新的内核版本中,CONFIG_USB_FUNCTIONFS
已被 CONFIG_USB_CONFIGFS_F_FS
替代。
请连接host设备后再启动程序
https://developer.dji.com/doc/payload-sdk-tutorial/cn/basic-introduction/whats-psdk.html
https://sdk-forum.dji.net/hc/zh-cn/articles/38622108040857-Linux%E5%B9%B3%E5%8F%B0%E9%85%8D%E7%BD%AEBULK
sudo apt-get install libusb-1.0-0-dev #下载
sudo dpkg -i libusb-1.0-0-dev #安装
cd /opt/nvidia/l4t-usb-device-mode/ #usb配置目录
sudo cp nv-l4t-usb-device-mode-start.sh nv-l4t-usb-device-mode-start.sh.bak #备份
sudo vim nv-l4t-usb-device-mode-start.sh
sudo /你的目录/to/libusb/psdk-usb-configure.sh
#将其中关于usb bulk的代码复制到 nv-l4t-usb-device-mode-start.sh中,代码如下:
enable_bulk=1
if [ ${enable_bulk} -eq 1 ]; then
mkdir -p /dev/usb-ffs
cfg_str="${cfg_str}+BULK1"
mkdir -p /dev/usb-ffs/bulk1
func=functions/ffs.bulk1
mkdir -p "${func}"
ln -sf "${func}" "${cfg}"
mount -o mode=0777 -o uid=2000 -o gid=2000 -t functionfs bulk1 /dev/usb-ffs/bulk1
/home/dji/Desktop/startup_bulk/startup_bulk /dev/usb-ffs/bulk1 & #修改为自己的目录
sleep 3
cfg_str="${cfg_str}+BULK2"
mkdir -p /dev/usb-ffs/bulk2
func=functions/ffs.bulk2
mkdir -p "${func}"
ln -sf "${func}" "${cfg}"
mount -o mode=0777 -o uid=2000 -o gid=2000 -t functionfs bulk2 /dev/usb-ffs/bulk2
/home/dji/Desktop/startup_bulk/startup_bulk /dev/usb-ffs/bulk2 & #修改为自己的目录
sleep 3
fi
#添加
enable_bulk=1
/home/dji/Desktop/startup_bulk/startup_bulk /dev/usb-ffs/bulk1 &
/home/dji/Desktop/startup_bulk/startup_bulk /dev/usb-ffs/bulk2 &
#重启
#查看是否开启,若开启则会显示bulk1和bulk2的信息
ps -aux | grep startup_bulk
sudo /opt/nvidia/l4t-usb-device-mode/nv-l4t-usb-device-mode-start.sh
/opt/nvidia/l4t-usb-device-mode/nv-l4t-usb-device-mode-start.sh: 第 136 行: echo: 写错误: 设备或资源忙
原因:functions/ffs.bulk1 或 functions/ffs.bulk2 目录已存在或被占用
解决:强制清理残留的 USB Gadget 配置,再重新运行
sudo rm -rf /sys/kernel/config/usb_gadget/l4t
sudo umount /dev/usb-ffs/bulk* 2>/dev/null
sudo rm -rf /dev/usb-ffs/bulk*
原因:Bulk 模式未正确启用,配置文件中的 enable_bulk=1
未生效或脚本执行失败
解决:修改 nv-l4t-usb-device-mode-config.sh配置,如上文 三、3内容
xiao@xiao-desktop:~$ /home/xiao/Public/usbfile/startup_bulk /dev/usb-ffs/bulk1 &
[1] 6462 xiao@xiao-desktop:~$ unable to open ep0 Unable to prepare ffs: -2
[1]+ 退出 254 /home/xiao/Public/usbfile/startup_bulk /dev/usb-ffs/bulk1
原因:Bulk 模式未正确启用,配置文件中的 enable_bulk=1
未生效或脚本执行失败
解决:修改 nv-l4t-usb-device-mode-config.sh配置,如上文 三、3内容
xiao@xiao-desktop:~$ sudo /home/xiao/Public/usbfile/startup_bulk /dev/usb-ffs/bulk1
[sudo] xiao 的密码:
unable do write descriptors Unable to prepare ffs: -3
原因::Jetson 必须通过 OTG 口连接到主机(如 PC)以激活 Gadget 模式
解决:连接host设备