SurfacePro3のArchLinuxのカーネルにカメラパッチを当ててをビルドッ!!
cameraをArchLinuxで使いたい
SurfacePro3はデフォルトのArchlinuxではカメラが認識していません。(ドライバレベルで)
なので今回 linux kernel 3.18-6にてここにあるカメラパッチを当てました。
index c3bb250..753ad4c 100644
--- linux-3.18/drivers/media/usb/uvc/uvc_driver.c
+++ linux-3.18/drivers/media/usb/uvc/uvc_driver.c
@@ -2108,6 +2108,22 @@
* though they are compliant.
*/
static struct usb_device_id uvc_ids[] = {
+ /* Microsoft Surface Pro 3 Front */
+ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
+ | USB_DEVICE_ID_MATCH_INT_INFO,
+ .idVendor = 0x045e,
+ .idProduct = 0x07be,
+ .bInterfaceClass = USB_CLASS_VIDEO,
+ .bInterfaceSubClass = 1,
+ .bInterfaceProtocol = 1 },
+ /* Microsoft Surface Pro 3 Rear */
+ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
+ | USB_DEVICE_ID_MATCH_INT_INFO,
+ .idVendor = 0x045e,
+ .idProduct = 0x07bf,
+ .bInterfaceClass = USB_CLASS_VIDEO,
+ .bInterfaceSubClass = 1,
+ .bInterfaceProtocol = 1 },
/* LogiLink Wireless Webcam */
{ .match_flags = USB_DEVICE_ID_MATCH_DEVICE
| USB_DEVICE_ID_MATCH_INT_INFO,
--- linux-3.18/drivers/media/usb/uvc/uvc_driver.c
+++ linux-3.18/drivers/media/usb/uvc/uvc_driver.c
@@ -2108,6 +2108,22 @@
* though they are compliant.
*/
static struct usb_device_id uvc_ids[] = {
+ /* Microsoft Surface Pro 3 Front */
+ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
+ | USB_DEVICE_ID_MATCH_INT_INFO,
+ .idVendor = 0x045e,
+ .idProduct = 0x07be,
+ .bInterfaceClass = USB_CLASS_VIDEO,
+ .bInterfaceSubClass = 1,
+ .bInterfaceProtocol = 1 },
+ /* Microsoft Surface Pro 3 Rear */
+ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
+ | USB_DEVICE_ID_MATCH_INT_INFO,
+ .idVendor = 0x045e,
+ .idProduct = 0x07bf,
+ .bInterfaceClass = USB_CLASS_VIDEO,
+ .bInterfaceSubClass = 1,
+ .bInterfaceProtocol = 1 },
/* LogiLink Wireless Webcam */
{ .match_flags = USB_DEVICE_ID_MATCH_DEVICE
| USB_DEVICE_ID_MATCH_INT_INFO,
バージョン変わるごとにlinux-3.18/が変更される
いざkernelビルドへ
archlinuxはabsが使えるので便利でした。
パッチはPKGBUILDに使用する旨を記載すればOK
kernelビルドは大体4core使えば50分ほどで完了!(やはり時間かかる...
後はパッチ済みビルドしたkernelをArchのpacmanで適応するだけ
> sudo pacman -U ~/abs/core/linux/(カーネルビルドされたバイナリ)
再起動...ドキドキする
再起動後
起動した...
か。。カメラは........
うん使えた!!!フロントもリアカメラも使えました。
これでopenCVの開発できる!!
最後に
わかってはいるが、カーネルアップデートするたびに毎回これするのか...