Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux kernel 使用附加模块交叉编译Linux内核_Linux Kernel_Arm_Cross Compiling_Kernel Module - Fatal编程技术网

Linux kernel 使用附加模块交叉编译Linux内核

Linux kernel 使用附加模块交叉编译Linux内核,linux-kernel,arm,cross-compiling,kernel-module,Linux Kernel,Arm,Cross Compiling,Kernel Module,我是新来交叉编译的。我必须交叉编译Linux内核,因为我打算在TS-7500 SBC(ARM处理器)上使用wifi模块,但它不支持。我有我的wifi模块的驱动程序,通过上网,我了解了交叉编译的一般过程。然而,我对额外模块部分有点困惑。以下是TS-7500官方网站上关于这些额外模块的信息: 附录-使用自定义选项编译TS内核 为了编译一个单独的内核模块并生成一个.ko文件以包含在已经存在的内核中,以下步骤将在步骤08之后执行,并在上面的步骤09结束。注:步骤02之后的步骤未经验证/未经测试。它们代表

我是新来交叉编译的。我必须交叉编译Linux内核,因为我打算在TS-7500 SBC(ARM处理器)上使用wifi模块,但它不支持。我有我的wifi模块的驱动程序,通过上网,我了解了交叉编译的一般过程。然而,我对额外模块部分有点困惑。以下是TS-7500官方网站上关于这些额外模块的信息:

附录-使用自定义选项编译TS内核 为了编译一个单独的内核模块并生成一个.ko文件以包含在已经存在的内核中,以下步骤将在步骤08之后执行,并在上面的步骤09结束。注:步骤02之后的步骤未经验证/未经测试。它们代表了一个人们将要经历的准确过程

01.)打开menuconfig并使用“M”模块化内核特性。对于 例如,要模块化cifs.ko,可以使用箭头键和Enter键 导航到文件系统->网络文件系统->CIFS支持。
按“M”将CIFS支持模块化到内核中,然后继续 “退出”直到提示您保存更改,选择“是”

02.)使用模块编译内核,并将模块复制到Linux PC

 make && make modules && make modules_install  
03.)使用以下命令检索复制到Linux PC的模块: cp,以便将其安装到MiniSD卡的内核中

mkdir /mnt/miniSD4
mount /dev/sdb4 /mnt/miniSD4
cp /lib/modules/2.6.24.4/kernel/fs/cifs/cifs.ko /mnt/miniSD4
04.)通过从分区4复制和粘贴将模块安装到内核中 在SBC上的分区2上的卡

cp -r /dev/nbd4/cifs.ko /dev/nbd2/lib/modules/2.6.24.4/kernel/fs/cifs/cifs.ko
05.)最后,要使用新模块,必须启用它。这个可以 可以包含在启动脚本中,例如linuxrc

depmod
modprobe cifs.ko
我对连续剧2感到困惑。有人能给我解释一下吗?我应该在哪里提供我想安装的驱动程序的地址


提前感谢。

我假设您的SBC不支持它,这意味着您交叉编译的模块/驱动程序是一个“源代码外树”内核模块

上述过程仅适用于“树内内核模块”

这就给您留下了以下两个选项

  • 交叉编译驱动程序后,您将拥有一个*.ko文件。使用SD卡或通过网络将此文件传输到正在运行的系统。在此之后,使用

    insmod /path/to/module/filename.ko
    
    这种方法只有一个局限性。i、 e如果此驱动程序/模块依赖于其他驱动程序,则必须首先加载它们

  • 将驱动程序包括在内核源代码树中,并使用
    modprobe drivername
    将其与依赖项一起加载
    modprobe
    比insmod更先进,因为它首先检查依赖项,并在加载模块本身之前自动加载它们

  • 要将驱动程序包含在内核的源代码树中,请参见以下内容

    insmod /path/to/module/filename.ko