美文网首页嵌入式学习
Deepin Linux 安装dnw工具

Deepin Linux 安装dnw工具

作者: 冬至是条狗 | 来源:发表于2019-07-17 11:59 被阅读0次

    在安装dnw驱动时遇到如下报错:

    make -C /lib/modules/`uname -r`/build M=`pwd`/src/driver modules
    make[1]: Entering directory '/usr/src/linux-headers-4.15.0-30deepin-generic'
    make[2]: 放弃循环依赖 /home/sun/Desktop/Arm/dnw-linux/src/driver/secbulk.o <- /home/sun/Desktop/Arm/dnw-linux/src/driver/secbulk.o 。
      LD [M]  /home/sun/Desktop/Arm/dnw-linux/src/driver/secbulk.o
    ld:没有输入文件
    scripts/Makefile.build:580: recipe for target '/home/sun/Desktop/Arm/dnw-linux/src/driver/secbulk.o' failed
    make[2]: *** [/home/sun/Desktop/Arm/dnw-linux/src/driver/secbulk.o] Error 1
    Makefile:1552: recipe for target '_module_/home/sun/Desktop/Arm/dnw-linux/src/driver' failed
    make[1]: *** [_module_/home/sun/Desktop/Arm/dnw-linux/src/driver] Error 2
    make[1]: Leaving directory '/usr/src/linux-headers-4.15.0-30deepin-generic'
    Makefile:10: recipe for target 'driver' failed
    make: *** [driver] Error 2
    
    
    

    解决办法,参考了https://blog.csdn.net/liduxun/article/details/50709714中的方法:

    1. 修改secbulk.c的makefile,如下:
    obj-m := secbulk.o
    KDIR := /lib/modules/`uname -r`/build
    PWD  := $(shell pwd)
    
    default:
        $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
    clean:
        $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean
        rm -rf *.order *.symvers
    
    
    1. 修改secbulk.c 文件驱动号,修改前使用lsusb 查看设备ID,两部分
    static struct usb_device_id secbulk_table[]= {
        { USB_DEVICE(0x18d1, 0x4e26)},
        { }
    };
    
    1. make一下,如果出现报错,检查修改的makefile里tab是否是空格此时应该出现了secbulk.ko,加载此文件到内核,sudo insmod secbulk.ko,如果没出现还要找其他问题。

    2. 查看是否加载驱动,dmesg信息中出现usbcore: registered new interface driver secbulk

    3. 进入dnw文件加 make ,然后make install

    4. dnw会自动复制到/bin, 这是调用dnw命令测试一下dnw是否安装成功,然后接上开发板,下载个文件试试,可以看一下ls /dev中的secbulk*是否存在,开发板上电,我的是secbulk1 ,这时需要修改dnw.c文件const char* dev = "/dev/secbulk1"; 重新make、make install,就好了

    7.开机自动加载该驱动,首先sudo 编辑/etc/modules,添加驱动名称secbulk,不带后缀。然后将驱动secbulk.ko拷贝至/lib/modules/(uname -r)/kernel/drivers/下面的一个分类中,本次我拷贝至了usb下的serial分类。

    1. sudo depmod 更新驱动,并重启,当设备连接上就出现了

    相关文章

      网友评论

        本文标题:Deepin Linux 安装dnw工具

        本文链接:https://www.haomeiwen.com/subject/zrhqlctx.html