关于此问题还有另一个类似的问题这里,但它适用于旧版本的 ubuntu,并且脚本不再起作用。
在安装过程中,脚本运行正常,直到:
+ vbutil_kernel --verify /dev/sda6 --verbose + tail -1 + sed -e s/$/ disablevmx=off/ /config-2013-05-22-2259-orig.txt + vbutil_kernel --pack /newkernel --keyblock /usr/share/vboot/devkeys/kernel.keyblock --version 1 --signprivate /usr/share/vboot/devkeys/kernel_data_key.vbprivk --config=/config-2013-05-22-2259.txt --vmlinuz /boot/vmlinuz-3.8.0 --arch x86_64 ERROR: Error reading kernel file. + vbutil_kernel --verify /newkernel ERROR: Unable to stat /newkernel: No such file or directory + dd if=/newkernel of=/dev/sda6 dd: opening ‘/newkernel’: No such file or directory
所以问题是这个/newkernel被调用了,但是它还没有被脚本创建,这在过去显然不是一个问题。
评论原网站脚本中提到了同样的问题,以及针对 14.04 的解决方案。不幸的是,我对这个东西完全是新手,并不完全理解如何实施解决方案:
简单说一下,我使用了 3.8 版脚本来让内核在 chrubutu Acer 上运行,以满足 14.04 的视频要求。必须将 old_bins 放到位,如下所示:
mount -o ro /dev/sda3 /mnt cd /usr/bin cp -a /mnt/usr/bin/old_bins/
并在 kernel_next/Makefile 中注释掉 halt-on-warning 指令:
# KBUILD_CFLAGS += -Werror
并在 KBUILD_CFLAGS 中添加:
-fno-tree-vrp
最后得到了运行良好的 3.8.11 内核。
所以我猜这是一个请求。有人可以更新脚本并进行必要的更改,或者更详细地描述需要做什么吗?
答案1
我没有 chromebook,但我是 Linux 用户,所以......
mount -o ro /dev/sda3 /mnt
cd /usr/bin
cp -a /mnt/usr/bin/ old_bins/
这些是在终端仿真器上执行的命令,只需打开一个终端仿真器并root
使用该su
命令登录,然后发出它们即可。(#
shell 中的符号表示您以用户身份执行命令root
)。
$ su
<enter your root password>
# mount -o ro /dev/sda3 /mnt
# cd /usr/bin
# cp -a /mnt/usr/bin/ old_bins/
我假设该old_bins/
部分与其他部分是分开的,因为该cp
命令至少需要 2 个参数才能工作。它的作用是将/mnt/usr/bin/
目录(及其内容)复制到old_bins/
目录(最终将位于/usr/bin
not内/mnt/usr/bin
)。
我假设您可以访问位于名为 的目录中的此文件kernel_next/Makefile
。makefile
因此kernel_next
,您必须使用您喜欢的文本编辑器打开它,并#
在行 之前添加一个符号(在许多语言中,它表示“注释以下行”)KBUILD_CFLAGS += -Werror
。如下所示:
前
KBUILD_CFLAGS += -Werror
后
# KBUILD_CFLAGS += -Werror
然后将-fno-tree-vrp
标志添加到KBUILD_CFLAGS
语句中,如下所示:KBUILD_CFLAGS += -fno-tree-vrp
。您最终会在 makefile 中看到类似这样的内容:
# KBUILD_CFLAGS += -Werror
KBUILD_CFLAGS += -fno-tree-vrp
然后你就可以继续做你正在做的事情了。祝你好运。