uvcvideoドライバをコンパイルできません

uvcvideoドライバをコンパイルできません

私は「LFD103」という講座を受講しています。「Linuxカーネル開発のための初心者ガイド」。このセクションの「最初のカーネルパッチの作成」、 "uvcvideo"ドライバを変更して再コンパイルします。しかし、私はそれを動作させることはできません。チュートリアルで述べたように、pr_info()関数を追加しました。

static int uvc_probe(struct usb_interface *intf,
                 const struct usb_device_id *id)
{
    struct usb_device *udev = interface_to_usbdev(intf);
    struct uvc_device *dev;
    const struct uvc_device_info *info =
            (const struct uvc_device_info *)id->driver_info;
    int function;
    int ret;

    pr_info("I changed uvcvideo driver in the Linux Kernel\n");

    if (id->idVendor && id->idProduct)
            uvc_trace(UVC_TRACE_PROBE, "Probing known UVC device %s "
                            "(%04x:%04x)\n", udev->devpath, id->idVendor,
                            id->idProduct);
    else
            uvc_trace(UVC_TRACE_PROBE, "Probing generic UVC device %s\n",
                            udev->devpath);​

次に設定しますCONFIG_USB_VIDEO_CLASS=ymake -j3 all次を返します。 ここに画像の説明を入力してください。

カーネルバージョン:6.2.7

私は何が間違っていましたか?私はインターネット調査と他の情報源のコンサルティングを通じてこれを見つけようとしましたが、残念ながら私の努力は成功しませんでした。私も試してみましたが、uvc_probeよりUVC_DBG_PROBE多くのエラーが発生しました。誰でも私を助けることができればいいでしょう。

ベストアンサー1

現在、メインラインカーネルを使用している場合、LFD103プロセスはやや古いものではなく、明確ではありません。あなたはする必要がありますただ周囲の行を無視してその行を追加するpr_infoと、今日のカーネルの結果は次のようになります。

static int uvc_probe(struct usb_interface *intf,
             const struct usb_device_id *id)
{
    struct usb_device *udev = interface_to_usbdev(intf);
    struct uvc_device *dev;
    const struct uvc_device_info *info =
        (const struct uvc_device_info *)id->driver_info;
    int function;
    int ret;

    pr_info("I changed uvcvideo driver in the Linux Kernel\n");

    /* Allocate memory for the device and initialize it. */
    dev = kzalloc(sizeof(*dev), GFP_KERNEL);
    if (dev == NULL)
        return -ENOMEM;

このuvc_trace行は修正されており、現在は以下を使用する機能の下にありますuvc_dbg

    if (id->idVendor && id->idProduct)
        uvc_dbg(dev, PROBE, "Probing known UVC device %s (%04x:%04x)\n",
            udev->devpath, id->idVendor, id->idProduct);
    else
        uvc_dbg(dev, PROBE, "Probing generic UVC device %s\n",
            udev->devpath);

おすすめ記事