Jetson Xavier NX板子能否使用Jetson Nano 开发套件?如何使用?有什么差异?
已完成我们购买了Jetson Nano 开发套件
看到了如何使用的帖子:
https://developer.dji.com/doc/payload-sdk-tutorial/cn/quick-start/quick-guide/jetson-nano.html
现在我们因为性能要求要改为性能更好的Jetson Xavier NX板子,请问有相关资料吗?两者兼容吗?有什么需要注意的?
-
您好,配置bulk完成以后,就算不连接硬件,通过ps -aux | grep startup_bulk指令看到的内容是 root 701 0.0 0.0 2024 480 ? S 16:23 0:00 /opt/startup_bulk/build/startup_bulk /dev/usb-ffs/bulk1 root 725 0.0 0.0 2024 460 ? S 16:23 0:00 /opt/startup_bulk/build/startup_bulk /dev/usb-ffs/bulk2 这样的,可以判断bulk节点是否有生成。 >补充一下,是不是使用usb bulk之后,可以完全禁用rndis相关? 是的,这两个是独立的链路。 >reference时候,报缺少一个方法定义,是不是还需要安装什么lib包?能提供一下吗? 这个您可以参考下这篇文章,里面有解决方法的。 https://sdk-forum.dji.net/hc/zh-cn/articles/10232604141465-%E6%A0%91%E8%8E%93%E6%B4%BE4B%E9%85%8D%E7%BD%AEUSB-device-RNDIS-%E5%92%8C-BULK -
补充一下,使用M3T飞机,开发套件按连接说明将网口通讯的typeC口,通过typeC转USB接入NX卡之后,使用lsusb命令看到了增加一个设备,然后查看详情,发现好多个bEndpointAddress地址,懵了,说是要调整hal_usb_bulk.h配置,但不知道我该咋配置了。
我没理解/dev/usb-ffs/bulk1/ep1、/dev/usb-ffs/bulk1/ep2 和 /dev/usb-ffs/bulk2/ep1 、/dev/usb-ffs/bulk2/ep2 这两套对应什么,什么含义。
我计划要获取M3T飞机的摄像头视频图像,我应该配置哪里,这些bEndpointAddress地址分别对应啥,我迷糊了。
具体执行lsusb 查看详情命令结果如下
indooruav@ubuntu:~$ lsusb -d 2ca3:001f -v
Bus 001 Device 039: ID 2ca3:001f
Couldn't open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.10
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x2ca3
idProduct 0x001f
bcdDevice 4.09
iManufacturer 1
iProduct 2
iSerial 3
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x00e9
bNumInterfaces 8
bConfigurationValue 1
iConfiguration 4
bmAttributes 0x80
(Bus Powered)
MaxPower 2mA
Interface Association:
bLength 8
bDescriptorType 11
bFirstInterface 0
bInterfaceCount 2
bFunctionClass 224 Wireless
bFunctionSubClass 1 Radio Frequency
bFunctionProtocol 3 RNDIS
iFunction 7
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 3 RNDIS
iInterface 5
** UNRECOGNIZED: 05 24 00 10 01
** UNRECOGNIZED: 05 24 01 00 01
** UNRECOGNIZED: 04 24 02 00
** UNRECOGNIZED: 05 24 06 00 01
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 9
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 6
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk-Only
iInterface 9
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 67
bInterfaceProtocol 1
iInterface 11
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x84 EP 4 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Association:
bLength 8
bDescriptorType 11
bFirstInterface 4
bInterfaceCount 2
bFunctionClass 2 Communications
bFunctionSubClass 2 Abstract (modem)
bFunctionProtocol 1 AT-commands (v.25ter)
iFunction 14
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 4
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 2 Communications
bInterfaceSubClass 2 Abstract (modem)
bInterfaceProtocol 1 AT-commands (v.25ter)
iInterface 12
CDC Header:
bcdCDC 1.10
CDC Call Management:
bmCapabilities 0x00
bDataInterface 5
CDC ACM:
bmCapabilities 0x02
line coding and serial state
CDC Union:
bMasterInterface 4
bSlaveInterface 5
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x86 EP 6 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x000a 1x 10 bytes
bInterval 9
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 5
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 13
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x85 EP 5 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x04 EP 4 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 6
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 67
bInterfaceProtocol 1
iInterface 16
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x05 EP 5 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x87 EP 7 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 7
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 67
bInterfaceProtocol 1
iInterface 17
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x06 EP 6 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x88 EP 8 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0 -
您好,您方便给我们看下您的硬件连接吗?即lsusb此信息的时候,您板子的连接。 您需要配置的地方是 #define LINUX_USB_BULK1_INTERFACE_NUM (2) #define LINUX_USB_BULK1_END_POINT_IN (0x83) #define LINUX_USB_BULK1_END_POINT_OUT (2) #define LINUX_USB_BULK2_INTERFACE_NUM (3) #define LINUX_USB_BULK2_END_POINT_IN (0x84) #define LINUX_USB_BULK2_END_POINT_OUT (3) 这六个,其中您先找到bulk类型的节点名字,您的lsusb信息中,为bulk类型的是0x88、0x87、0x85、0x84、0x83、0x81 对应的INTERFACE_NUM您可以直接找bInterfaceNumber,比如0x81的是1。END_POINT_OUT可以直接找bEndpointAddress,比如0x81对应的是0x01。这几个节点您都尝试配置到BULK1 BULK2里,看看哪个链路是通的。 -
朋友你好,我有个问题想咨询一下,我的jetson xavier nx的micro usb端作为device端,无人机作为host端,如何判断是否已经连接成功?(我的usb bulk和psdk已经配置成功,参考的这篇 https://sdk-forum.dji.net/hc/zh-cn/articles/38037097931929-PSDK%E4%BB%A3%E7%A0%81%E4%B8%AD%E7%9A%84BULK%E8%8A%82%E7%82%B9%E9%85%8D%E7%BD%AE)
因为我运行 sudo ./dji_sdk_demo_linux
报错:
'Logs/latest.log' -> 'DJI_0000_20250317_16-32-38.log'
[0.012][user]-[Error]-[DjiUser_FillInUserInfo:578) Please fill in correct user information to 'samples/sample_c/platform/linux/manifold2/application/dji_sdk_app_info.h' file.
[1.012][user]-[Error]-[main:124) Fill user info error, please check user info config似乎是因为无人机没有被正确识别的原因。
-
首先,可以肯定你还没走到链路创建识别无人机步骤,仅仅只是在程序认证部分就报错了,原因是你的用户信息异常。因为你贴出信息有限,所以只能给你几个方向去查证。如果无果,建议独立创建帖子咨询大疆。
1、dji_sdk_app_info.h这个配置文件中是否配置了您自己申请的信息。如果您如实填写了信息,请核实如下几点:
1)如果你很早申请的用户信息,但是PSDK是最新3.10或3.11版本,则需要重新申请信息,新申请的才支持PSDK高版本密钥识别。
2)结合机型,确保波特率配置正常,兼容的是460800
2、我留意到你配置文件路径读取的是“samples/sample_c/platform/linux/manifold2/application/dji_sdk_app_info.h”这个路径。这套代码默认是linux标准平台使用的,多用于树莓派等,不是针对NX卡改造后系统的。我不清楚你是否整体改造迁移过相关依赖。但是我建议你使用大疆自带的支持NX 系列jetson 系统的模块。具体见根目录下的CMakeLists.txt,将编译路径指向您想编译的环境地址。包括具体是c还是c++。注意:切换之后,程序将读取该结构下的配置文件,包括dji_sdk_app_info.h等配置信息。
期望上面能帮助到你。
-
1.我在Orin nano上使用sudo ./startup_bulk /dev/usb-ffs/bulk1 时报错:
unable to open ep0
Unable to prepare ffs: -2这个怎么解决
2.我在接线正常的情况下运行sudo ./bin/dji_sdk_demo_on_jetson_cxx ,报错如下,是不是因为第一个问题导致的。
[42.731][linker]-[Error]-[DjiChannel_uartWrite:102) uart write data error
[42.731][linker]-[Error]-[DjiLinker_SendMsg:198) write data error
[42.731][core]-[Error]-[DjiSdkStatePush_Work:173) Send sdk push state error -
1.我在Orin nano上使用sudo ./startup_bulk /dev/usb-ffs/bulk1 时报错:
unable to open ep0
Unable to prepare ffs: -2----------------------------
我查看源码后发现是教程中的psdk-usb-configure.sh在替换l4t-usb-device-mode-start.sh后不适用的产生的问题,由于我使用的是ORIN NANO,现有的软件版本和之前教程的l4t-usb-device-mode-start.sh已经产生了很多变化。这个psdk-usb-configure.sh修改前的文件可以发一下吗,或者提供一下修改的具体内容,这样可以知道哪些位置做了修改,方便在其他版本上进行修改,不然的话新版的设备难以运行。
https://developer.dji.com/doc/payload-sdk-tutorial/cn/quick-start/quick-guide/jetson-nano.html
/* Using PSDK's bulk configuration file */ sudo cp startup_bulk/psdk-usb-configure.sh /opt/nvidia/l4t-usb-device-mode-start.sh
此外,usb bulk的设置不成功会影响UART通讯吗,我使用的是CH340 TTL转USB,是不是这个设备型号的问题。我使用cutecom是测试过是可以正常发送和接收数据的。
[42.731][linker]-[Error]-[DjiChannel_uartWrite:102) uart write data error
[42.731][linker]-[Error]-[DjiLinker_SendMsg:198) write data error -
之前
可能是我表述不清的原因。不需要将l4t-usb-device-mode-start.sh替换为psdk-usb-configure.sh,请直接在l4t-usb-device-mode-start.sh上进行补充,不需要修改,在enable_ecm配置之后添加:
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此外请在nv-l4t-usb-device-mode-config.sh中,添加:enable_bulk=1,双重保险。
第二个问题暂时不了解。
请先登录再写评论。
评论
22 条评论