0

我对为 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

不知道怎么回事???

4

3 回答 3

1

我认为构建目录路径中的空间可能会导致问题。

/home/thayoz/Desktop/无标题文件夹/Quantis-USB...

注意“无标题文件夹”中的空间。

看起来 make 正在将模块目录作为:

/home/thayoz/桌面/无标题

和:

文件夹/Quantis-USB/src/linux/driver

被传递给 make 作为附加参数(可能是要构建的目标)。

尝试将“/home/thayoz/Desktop/untitled folder”重命名为“/home/thayoz/Desktop/untitledfolder”,看看会发生什么。

于 2009-08-11T20:22:06.283 回答
0

我对构建使用 GNU 构建系统打包的软件的一般过程的理解是:

  1. 运行 .configure 脚本。该脚本检查系统上的构建环境,确保所有必需的可执行文件、库等都可用,并创建一个有效的 Makefile。
  2. 运行制作。这使用在步骤 1 中生成的 Makefile 来构建二进制文件。
  3. 运行制作安装。这会将二进制文件安装到系统上的正确位置。

GNU 构建系统

您是否运行了驱动程序包附带的 .configure 脚本?

于 2009-06-25T09:35:03.317 回答
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

足够了。

您的驱动程序是否带有生成文件?例如,您是否针对正确的内核源代码(例如正确的版本)进行编译?

于 2009-08-11T20:29:01.810 回答