MrYarnell
MrYarnell
采纳率100%
2018-09-13 16:29

Linux编译单一内核模块

20

我买了一块arm cortex-A53架构的开发板(nanopi a64),在使用的时候发现内核中没有UVC摄像头驱动,也就是免驱摄像头驱动,然后翻阅开发板厂家-友善之臂给的内核源码nanopi-a64-bsp/lichee/linux-3.10/drivers/media/usb/uvc路径下有UVC的驱动源码,所以我就想单独把这个UVC模块给编译出来,但是我按照《鸟哥Linux私房菜》的方法编译只生成了.o文件,并没有生成.ko文件。如下图:
图片说明
我使用的命令是:

 make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- drivers/media/usb/uvc/

这个命令我是在Ubuntu16.04里面执行的。因为我所使用的平台是arm64 所以我通过ARCH参数指定了目标平台,还指定了编译工具链。
uvc目录下的Makefile文件如下图:

 uvcvideo-objs  := uvc_driver.o uvc_queue.o uvc_v4l2.o uvc_video.o uvc_ctrl.o \
                  uvc_status.o uvc_isight.o uvc_debugfs.o
ifeq ($(CONFIG_MEDIA_CONTROLLER),y)
uvcvideo-objs  += uvc_entity.o
endif
#obj-$(CONFIG_USB_VIDEO_CLASS) += uvcvideo.o
obj-m += uvcvideo.o

ps:我试了很多次了,我也尝试过整个内核编译,但是会报错。错误信息很多:

 drivers/media/cedar-ve/cedar_ve.c:78:2: error: #error "Unknown chip type!"

我想应该是我的方法不对,希望有大神可以帮帮我!谢谢!
nanopi a64开发板手册:http://wiki.friendlyarm.com/wiki/index.php/NanoPi_A64/zh

NanoPi A64源码下载地址:https://pan.baidu.com/s/1c2kkWpi#list/path=%2F

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • yzhiju yzhiju 3年前

    友善之臂给的内核源码没编译出.ko 是make menuconfig里没选中uvc 模块
    厂家给的内核源码里面UVC驱动模块 代码拷贝到你要用的版本内核对应的位置下 添加配置 make menuconfig 里能找到对应的模块配置 选上M 就可以编译出来了

    点赞 2 评论 复制链接分享
  • yzhiju yzhiju 3年前

    内核配置一点点配置 一次性改太多有些关联的会出问题 不清楚的会比较难找

    点赞 评论 复制链接分享
  • MrYarnell MrYarnell 3年前

    图片说明
    我用的命令:

     make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
    
    点赞 评论 复制链接分享

为你推荐