我很擅长为linux编译驱动程序,但我遇到了一些问题!
我正在尝试为usb设备编译驱动程序。
结果:
[thayoz@lacalpc13 linux]$ make
for i in driver lib qrng ; do cd $i && (make all || exit ) && cd ..; done
make[1]: Entering directory /home/thayoz/Desktop/untitled folder/Quantis-USB/src/linux/driver'
make -C /usr/src/kernels/ M=/home/thayoz/Desktop/untitled folder/Quantis-USB/src/linux/driver V=1 modules
make[2]: Entering directory
/usr/src/kernels'
make[2]: * No rule to make target folder/Quantis-USB/src/linux/driver'. Stop.
make[2]: Leaving directory
/usr/src/kernels'
make[1]: * [all] Error 2
make[1]: Leaving directory `/home/thayoz/Desktop/untitled folder/Quantis-USB/src/linux/driver'
/bin/sh: line 0: cd: lib: No such file or directory
/bin/sh: line 0: cd: qrng: No such file or directory
make: *** [all] Error 1
我不知道出了什么问题???
答案 0 :(得分:1)
我认为构建目录路径中的空格可能会导致问题。
/ home / thayoz /桌面/无标题文件夹/ Quantis-USB ...
注意'无标题文件夹'中的空格。
看起来make将模块目录作为:
/家庭/ thayoz /桌面/无
和
文件夹/ QUANTIS-USB / src / linux中/驱动器
正在传递make作为附加参数(可能是要构建的目标)。
尝试将'/ home / thayoz / Desktop / untitled folder'重命名为'/ home / thayoz / Desktop / untitledfolder',看看会发生什么。
答案 1 :(得分:0)
我对构建使用GNU构建系统打包的软件的一般过程的理解是:
您是否运行了驱动程序包附带的.configure脚本?
答案 2 :(得分:0)
通常类似于:
make -C <directory to kernel source> M=<directory to module/driver source> modules
make -C <directory to kernel source> M=<directory to module/driver source> modules_install
就足够了。
您的驱动程序是否附带了makefile?您是否正在编译正确的内核源代码,例如正确的版本?