我正在尝试为我的嵌入式arch linux arm机器交叉编译FTDI VCP驱动程序。我将源文件从http://www.ftdichip.com/Drivers/VCP.htm下载到我运行内核的主机上:
2.6.32-54泛型-PAE
运行Makefile时,我收到与内核头相关的错误,即:找不到asm / thread_info.h文件。我意识到这意味着我的asm符号链接被破坏了,所以我尝试将它链接到
Linux的头-2.6.32-54 /包括/ ASM-通用
但该目录的内容也不包括thread_info.h,我正试图找到它。
有没有人使用Ubuntu作为主机来编译用于嵌入式arch linux arm的FTDI VCP驱动程序并且可以指向正确的方向?我是新手来构建内核模块和交叉编译,我们将不胜感激。
如果有人需要更多信息,我会非常乐意添加它。
答案 0 :(得分:2)
基本上你需要在主机x86机器上交叉编译内核。
首先检查源代码是否已配置并构建,如果是这样。
make ARCH=arm menuconfig
窗口ll并在驱动程序中启用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
答案 1 :(得分:2)
FTDI“VCP”驱动程序已经成为Linux内核的一部分了。除了内核本身之外,您不需要下载任何内容。只要您可以交叉编译内核,就可以了。
答案 2 :(得分:2)
制作ARCH = arm menuconfig
制作并安装模块:制作模块并制作modules_install
不要忘记:insmod usbserial.ko和insmod ftdi_sio.ko如果需要,并且depmod -a让它们在重新上电后加载。
不要忘记包含交叉编译链。