我正在尝试编译内核(Goldfish)以便稍后插入一些模块。我知道我需要启用模块支持,模块加载和卸载。我正在使用OSX Mavericks。
到目前为止,我已经从git中检出了金鱼,并做了以下工作:
make ARCH=arm goldfish_armv7_defconfig
没有问题。现在我做的时候:
make ARCH=arm CROSS_COMPILE=/Volumes/untitled/WORKING_DIRECTORY/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.6/bin/arm-eabi- menuconfig
我得到以下内容:
ld:找不到架构x86_64的符号 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用) make [1]: * [scripts / kconfig / mconf]错误1 make:* [menuconfig]错误2
有没有办法可以用另一种方式启用模块?也许进入文件并手动完成?
如果我刚刚运行(我应该运行以获得zImage):
make ARCH=arm SUBARCH=arm CROSS_COMPILE=/Volumes/untitled/WORKING_DIRECTORY/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.6/bin/arm-eabi -j16
内核编译,我可以通过模拟器运行它,但显然我无法上传内核模块。
答案 0 :(得分:0)
模块加载。 在配置文件中使用CONFIG_MODULES = y启用它。
答案 1 :(得分:0)
打开脚本/ kconfig / lxdialog / check-lxdialog.sh
用这个
替换ldflags()ldflags()
{
for ext in so a dylib ; do
for lib in ncursesw ncurses curses ; do
#$cc -print-file-name=lib${lib}.${ext} | grep -q /
#if [ $? -eq 0 ]; then
if [ -f /usr/lib/lib${lib}.${ext} ]; then
echo "-l${lib}"
exit
fi
done
done
exit 1
}
现在make menuconfig
应该有效。问题似乎是OS X上clang错误的结果。-print-file-name选项无法正常工作。
或者,您可以在文本编辑器中打开.config文件并设置
CONFIG_MODULES=y