4

我正在尝试为我的嵌入式 arch linux arm 机器交叉编译 FTDI VCP 驱动程序。我从http://www.ftdichip.com/Drivers/VCP.htm将源文件下载到运行内核的主机上:

2.6.32-54-通用-pae

运行 Makefile 时,我收到与内核头文件相关的错误,即:找不到 asm/thread_info.h 文件。我意识到这意味着我的 asm 符号链接已损坏,因此我尝试将其链接到

linux-headers-2.6.32-54/include/asm-generic

但该目录的内容也不包括我正在尝试查找的 thread_info.h。

有没有人使用 Ubuntu 作为主机交叉编译了嵌入式 arch linux arm 的 FTDI VCP 驱动程序,并且可以为我指明正确的方向?我是构建内核模块和交叉编译的新手,任何帮助将不胜感激。

如果有人需要更多信息,我会非常乐意添加。

4

3 回答 3

2

基本上你需要在主机 x86 机器上交叉编译内核。

首先检查源代码是否已经配置和构建,如果是这样。

make ARCH=arm menuconfig

将出现窗口并在驱动程序中启用 ftdi。

如果源代码是干净的。

然后你需要将 /proc/config.gz 文件从目标机器复制到主机并解压缩它。

复制到源顶部文件夹,如“cp config .config”

make ARCH=arm menuconfig

并在此之后启用您的驱动程序make ARCH=arm CROSS_COMPILE=<your tool chain> zImage

例如make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- zImage

make ARCH=arm CROSS_COMPILE=<your tool chain> modules

例如make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- modules

于 2014-01-20T17:09:46.390 回答
2

FTDI "VCP" 驱动程序作为 linux 内核的一部分已经有一段时间了。你不需要下载任何东西,除了内核本身。只要你可以交叉编译你的内核,你就准备好了。

于 2014-01-20T18:56:04.280 回答
2

使 ARCH=arm menuconfig

制作和安装模块:制作模块和制作模块_安装

不要忘记:insmod usbserial.ko 和 insmod ftdi_sio.ko(如果需要),以及 depmod -a 让它们在重启后加载。

不要忘记包含您的交叉编译链。

于 2014-01-23T13:54:30.263 回答