网上很多教程和博客都是WSL2编译usb摄像头,很少有编译内置集成摄像头,于是打算写一篇文章记录下。
1、windows安装USBIPD-WIN
ubuntu安装linux-tools-virtual和hwdata
sudo apt install linux-tools-virtual hwdata
sudo update-alternatives --install /usr/local/bin/usbip usbip `ls /usr/lib/linux-tools/*/usbip | tail -n1` 20
2、uname -a
查看内核,kernel地址:https://github.com/microsoft/WSL2-Linux-Kernel
下载对应内核包到本地
git clone https://github.com/microsoft/WSL2-Linux-Kernel.git
cd WSL2-Linux-Kernel
git checkout linux-msft-wsl-5.xx.xx.xx
3、内核编译修复
getconf _NPROCESSORS_ONLN # 获取-j后面core数
sudo apt install build-essential flex bison dwarves libssl-dev libelf-dev
sudo make menuconfig KCONFIG_CONFIG=Microsoft/config-wsl
/搜索uvc、v4l2全部打y(键盘方向键往下走,一定要打全)
备注:判断一个摄像头是否属于UVC规范使用方法:
1.使用lsusb命令或其它硬件信息查看工具找出摄像头的设备号(Vendor ID)和产品号(Product ID)。
2.查找是否有视频类接口信息
lsusb -d xxxx:xxxx -v | grep “14 Video”
如果该摄像头兼容UVC,则会输出类似信息
bFunctionClass 14 Video
bInterfaceClass 14 Video
bInterfaceClass 14 Video
bInterfaceClass 14 Video
若无以上信息,则是non-UVC设备。
4、内核编译,使用Microsoft修改好的配置
sudo make KCONFIG_CONFIG=Microsoft/config-wsl-j 8
sudo make modules_install KCONFIG_CONFIG=Microsoft/config-wsl-j 8
sudo make install -j 8
5、
Build USB/IP tools.
cd tools/usb/usbip
sudo ./autogen.sh
sudo ./configure
sudo make install -j 8
4、
sudo cp libsrc/.libs/libusbip.so.0 /lib/libusbip.so.0
sudo apt-get install hwdata
cp arch/x86/boot/bzImage /mnt/c/Users/<user>/usbip-bzImage
5、在/mnt/c/Users//新建.wslconfig文件 ,内容如下:.
[wsl2]
kernel=c:\\users\\<user>\\usbip-bzImage```