酒呑みガジェット

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/が変更される

 

いざkernelビルドへ

archlinuxはabsが使えるので便利でした。
パッチはPKGBUILDに使用する旨を記載すればOK

kernelビルドは大体4core使えば50分ほどで完了!(やはり時間かかる…

後はパッチ済みビルドしたkernelをArchのpacmanで適応するだけ

> sudo pacman -U ~/abs/core/linux/(カーネルビルドされたバイナリ)

 

再起動…ドキドキする

 

 

再起動後

起動した…

か。。カメラは……..

 

うん使えた!!!フロントもリアカメラも使えました。

これでopenCVの開発できる!!

 

最後に

わかってはいるが、カーネルアップデートするたびに毎回これするのか…

モバイルバージョンを終了