编译自定义内核时 modules_install 导致错误
When compiling a custom kernel modules_install results in an error
我正在尝试安装自定义内核并且一切正常,除非我 运行 生成 modules_install
结果如下:
ln: target ‘/lib/modules/4.2.0-rc4/source’ is not a directory
Makefile:1120: recipe for target '_modinst_' failed
make: *** [_modinst_] Error 1
我在 Makefile 中查找了第 1120 行,它包含以下内容:
_modinst_:
@rm -rf $(MODLIB)/kernel
@rm -f $(MODLIB)/source
@mkdir -p $(MODLIB)/kernel
我在谷歌上搜索了很多,我发现它的发生(主要是我发现的)是由于 Makefile 中 EXTRAVERSION
变量中的额外 space 但没有 space 在我的 Makefile 中。
任何人都可以指出正确的方向吗?
编辑:
我按照下面评论中的建议做了
ls -al /lib/modules/4.2.0-rc4/
。
没有源文件或源目录存在, 运行ning modules_install
与 make --trace
产生这个:
Makefile:1120: target '_modinst_' does not exist
rm -rf /lib/modules/4.2.0-rc4/kernel
rm -f /lib/modules/4.2.0-rc4/source
mkdir -p /lib/modules/4.2.0-rc4/kernel
ln -s `cd . && /bin/pwd` /lib/modules/4.2.0-rc4/source
ln: target ‘/lib/modules/4.2.0-rc4/source’ is not a directory
Makefile:1120: recipe for target '_modinst_' failed
make: *** [_modinst_] Error 1
您没有包含第 1120 行出现的整个规则; mkdir
之后一定有更多您没有显示的文字。您至少需要显示足够多的规则,以便我们可以看到可能出了什么问题...特别是因为您的错误消息与 ln
有关,您需要显示包含 ln
命令的行。
但是,根据您从 make --trace
提供的信息,我敢打赌我知道出了什么问题。
问题是您的工作目录路径包含名称中带有 space 的目录。换句话说,如果你 运行 pwd
你会看到目录名称中有一个 space。或者,可能是其他一些特殊字符,但很可能是 space.
不要那样做:将当前目录重命名或移动到路径不包含 space.
的某个地方
假设您的路径类似于 /home/myself/My Source Code/info
。那么ln命令为:
ln -s /home/myself/My Source Code/info /lib/modules/4.2.0-rc4/source
这是一个无效的命令,因为每个单词都被视为一个单独的参数,就像您写的一样:
ln -s '/home/myself/My' 'Source' 'Code/info' '/lib/modules/4.2.0-rc4/source'
我正在尝试安装自定义内核并且一切正常,除非我 运行 生成 modules_install
结果如下:
ln: target ‘/lib/modules/4.2.0-rc4/source’ is not a directory
Makefile:1120: recipe for target '_modinst_' failed
make: *** [_modinst_] Error 1
我在 Makefile 中查找了第 1120 行,它包含以下内容:
_modinst_:
@rm -rf $(MODLIB)/kernel
@rm -f $(MODLIB)/source
@mkdir -p $(MODLIB)/kernel
我在谷歌上搜索了很多,我发现它的发生(主要是我发现的)是由于 Makefile 中 EXTRAVERSION
变量中的额外 space 但没有 space 在我的 Makefile 中。
任何人都可以指出正确的方向吗?
编辑:
我按照下面评论中的建议做了
ls -al /lib/modules/4.2.0-rc4/
。
没有源文件或源目录存在, 运行ning modules_install
与 make --trace
产生这个:
Makefile:1120: target '_modinst_' does not exist
rm -rf /lib/modules/4.2.0-rc4/kernel
rm -f /lib/modules/4.2.0-rc4/source
mkdir -p /lib/modules/4.2.0-rc4/kernel
ln -s `cd . && /bin/pwd` /lib/modules/4.2.0-rc4/source
ln: target ‘/lib/modules/4.2.0-rc4/source’ is not a directory
Makefile:1120: recipe for target '_modinst_' failed
make: *** [_modinst_] Error 1
您没有包含第 1120 行出现的整个规则; mkdir
之后一定有更多您没有显示的文字。您至少需要显示足够多的规则,以便我们可以看到可能出了什么问题...特别是因为您的错误消息与 ln
有关,您需要显示包含 ln
命令的行。
但是,根据您从 make --trace
提供的信息,我敢打赌我知道出了什么问题。
问题是您的工作目录路径包含名称中带有 space 的目录。换句话说,如果你 运行 pwd
你会看到目录名称中有一个 space。或者,可能是其他一些特殊字符,但很可能是 space.
不要那样做:将当前目录重命名或移动到路径不包含 space.
的某个地方假设您的路径类似于 /home/myself/My Source Code/info
。那么ln命令为:
ln -s /home/myself/My Source Code/info /lib/modules/4.2.0-rc4/source
这是一个无效的命令,因为每个单词都被视为一个单独的参数,就像您写的一样:
ln -s '/home/myself/My' 'Source' 'Code/info' '/lib/modules/4.2.0-rc4/source'