USB_抓包

tcpdump -i usbmon1 -w uvc_capture.pcap -c 1000

usb.src == "1.2.0" || usb.dst == "1.2.0"

  1. init bh->head.

static void init_giveback_urb_bh(struct giveback_urb_bh *bh)

{

spin_lock_init(&bh->lock);

INIT_LIST_HEAD(&bh->head);

tasklet_init(&bh->bh, usb_giveback_urb_bh, (unsigned long)bh);

}

  1. add urb_list 2 bh->head.

void usb_hcd_giveback_urb(struct usb_hcd *hcd, struct urb *urb, int status)

list_add_tail(&urb->urb_list, &bh->head);

  1. replace_ bh->head with local_list.

static void usb_giveback_urb_bh(unsigned long param)

list_replace_init(&bh->head, &local_list);

(gdb) bt

#0 mon_complete (ubus=0xffffffc0e7e7c800, urb=0xffffffc0e7150c00, status=0) at drivers/usb/mon/mon_main.c:151

#1 0xffffff8008857d20 in usbmon_urb_complete (status=<optimized out>, urb=<optimized out>, bus=<optimized out>) at ./include/linux/usb/hcd.h:736

#2 __usb_hcd_giveback_urb (urb=0xffffffc0e7150c00) at drivers/usb/core/hcd.c:1764

#3 0xffffff8008858a14 in usb_giveback_urb_bh (param=18446743802722372112) at drivers/usb/core/hcd.c:1818

#4 0xffffff80080b60e8 in tasklet_action_common (tl_head=0xffffffc0efeea7c0, softirq_nr=6, a=<optimized out>) at kernel/softirq.c:522

#5 0xffffff80080b61a4 in tasklet_action (a=<optimized out>) at kernel/softirq.c:540

#6 0xffffff8008081448 in __do_softirq () at kernel/softirq.c:292

/////////

int usb_hcd_submit_urb (struct urb *urb, gfp_t mem_flags)

rh_urb_enqueue(hcd, urb);

static int rh_call_control (struct usb_hcd *hcd, struct urb *urb)

usb_hcd_link_urb_to_ep(hcd, urb);

int usb_hcd_link_urb_to_ep(struct usb_hcd *hcd, struct urb *urb)

list_add_tail(&urb->urb_list, &urb->ep->urb_list);

///////// decode

static void __usb_hcd_giveback_urb(struct urb *urb)

urb->complete(urb);

uvc_video_complete

uvc_video_decode_isoc

0x8C

10001100

0x8D

10001101

bit0翻转表示新的一帧开始

相关推荐
0+11118 小时前
Linux --从 poll 到 epoll多路转接
linux·服务器·1024程序员节
青瓦梦滋19 小时前
WebSocket协议
linux·服务器·网络·c++·websocket·网络协议·http
桌面运维家19 小时前
旧电脑跑不动课程软件,VDI云桌面怎样接着用?
运维·服务器·虚拟化·pve·vdi·云桌面
zhang1338308907519 小时前
传统机械三杯式风速传感器易磨损冻堵?CG-88金属超声波风速风向传感器给出免运维方案
运维·服务器·网络·人工智能·自动化
知已难寻20 小时前
第 2 篇 · 云的地基:服务器、存储、网络三大基础设施
运维·服务器·网络·云原生·云计算·负载均衡·1024程序员节
2601_949847751 天前
bcrypt.js 跨端三方库仓颉适配全流程
linux·运维·ubuntu
m0_639906941 天前
Linux 操作系统入门:目录结构、服务排查常用命令、Shell 脚本基础
linux·运维·后端
今天重构了吗1 天前
Linux 上 rm -rf 删错了能找回吗
运维·服务器
KaiwuDB1 天前
KaiwuDB 分布式集群扩缩容,从原理到完整操作踩坑总结
运维·数据库·分布式
codezzzsleep1 天前
学术汇报 PPT 自动化生成实战指南
运维·自动化·powerpoint