[置顶] 基于视频采集卡驱动的错误修改CX26828

基于视频采集卡驱动的错误修改CX26828

1、 设置root密码

command:sudo passwd root 

 

2、查看系统状态

  输入命令:lsmod

 root@ubuntu:/home/yu# lsmod

iroot@yu-desktop:/home/yu# lsmod

Module                 Size  Used by

cx26828               75734  0

videodev              86588  1 cx26828

videobuf_dma_sg       18786  1 cx26828

videobuf_core         25409  2 cx26828,videobuf_dma_sg

btcx_risc             13400  1 cx26828

nls_iso8859_1         12617  0

 

3、卸载cx26828

如有上述信息可以看到有cx26828,执行命令 rmmod cx26828

如运行这个命令不能卸载就关闭机器把采集卡拔掉先安装好驱动再插上

 

4、 安装驱动

 进入驱动安装目录运行:make install

成功后运行 make load

注意这儿会出错:

使用make install时会成功:


但执行make load的时候出错误:


然后执行make也出错:



修改方法:

1、由于缺少btcx-risc.h头文件(该头文件为内核里面的找出来)

将下面代码复制到btcx-risc.h文件中

structbtcx_riscmem {

unsignedint   size;

__le32         *cpu;

 __le32        *jmp;

    dma_addr_t     dma;

};

 

structbtcx_skiplist {

    int start;

   int end;

};

 

int  btcx_riscmem_alloc(struct pci_dev *pci,

            struct btcx_riscmem *risc,

            unsigned int size);

 

void btcx_riscmem_free(struct pci_dev *pci, structbtcx_riscmem *risc);

int btcx_screen_clips(int swidth, int sheight, structv4l2_rect *win,struct v4l2_clip *clips, unsigned int n);

int btcx_align(struct v4l2_rect *win, struct v4l2_clip*clips,unsigned int n, int mask);

voidbtcx_sort_clips(struct v4l2_clip *clips, unsigned int nclips);

void btcx_calc_skips(int line, int width, int*maxy,struct btcx_skiplist *skips, unsigned int *nskips,const struct v4l2_clip*clips, unsigned int nclips);



2、再执行make,cx26828-core.c程序出现错误


修改:

<1>去掉程序中711行的 _devinit

<2>驱动程序中793行的  _devinit

<3>注销掉878行  //.remove = __devexit_p(cx26828_finidev)


3、修改完后再make

成功编译出模块cx26828.ko文件


4、执行make install


5、执行make


6、查看是否插入到内核中lsmod



7、使用ls /dev/video+table出现


原文地址:https://www.cnblogs.com/suncoolcat/p/3362194.html