简易编译Chromium OS内核教程

Chromium是「铬」的意思,所以本文标签我用了CrOS(Cr是化学元素铬缩写)。

转入正题,这次来讲一下怎样给Chromium OS编译内核,当然编译Chromium OS的时候会自动把内核编译上,不过出于很多原因,我们会要修改内核编译的配置文件(.config)。如果说Linux的内核编译让人很头痛,那Chromium OS的内核编译可以说让人头痛欲裂了。

首先得chroot进入编译Chromium OS的状态(看我上一篇关于编译Chromium OS的文章)。然后获取当前版本的内核源代码,慢慢等吧,要下载接近1G的代码(如果当初你下载的是完整代码而不是minimum layout的话,时间可能会节省很多)。

cros_workon start chromeos-kernel --board=amd64-generic
repo sync

–board参数请自行修改对应你选择的board,因为我已经设置过board的默认值了,所以下面需要–board参数的地方我都省去了。然后要正式开工了!

export BUILD_DIR=/tmp/kernel #随便哪个目录都行,将在这个地方来编译内核
mkdir -p $BUILD_DIR
cp /build/amd64-generic/boot/config-3.4.0 ${BUILD_DIR}/.config #config-3.4.0是目前的名字,随着内核更新,后面的版本号会变化
cd ../third_party/kernel/files/
make oldconfig O=${BUILD_DIR}
make menuconfig O=${BUILD_DIR} #按照你的硬件,耐心配置好!特别是显卡驱动和网卡驱动
make -j4 O=${BUILD_DIR}
sudo make install INSTALL_PATH=/PATH_TO_YOUR_ROOT_A/boot/ O=${BUILD_DIR}
sudo make modules_install INSTALL_MOD_PATH=/PATH_TO_YOUR_ROOT_A/ O=${BUILD_DIR}

嫌那个O参数什么的很麻烦的话,可以复制一份源码到其它地方,然后直接按平常内核的编译就好。

本文是按照Geek流程,内核的make install和modules_install指定安装到灌好的U盘的ROOT-A分区,直接进行修改。下次懒得编译整个系统了?可以直接下Hexxeh编译的镜像灌好去改内核了。。。当然我还是推荐自己编译的,因为能够针对自己的CPU指令集进行优化(make.conf里面指定的那些GCC参数),最大限度提升效能。

如果镜像关闭了检查的话,也可以直接挂载之前制作的镜像,直接修改然后灌到U盘。

参考文章:Kernel FAQKernel Configuration(这篇文章给出的是较为标准的方法,利用了chromeos的脚本,我会在下一篇文章中介绍)

P.S. 用本文的办法修改内核不会对cros_sdk的起作用,下次build_packages的时候编译出来的内核还是没改动过的。下一篇文章我会介绍官方的办法,修改后每次build_packages都会用修改过的配置文件。下一篇文章大概明天发~

2 responses to “简易编译Chromium OS内核教程”

  1. smith avatar

    我也编译过,这玩意比起Android太TM麻烦了。

    怪不得发展不起来

    1. librehat avatar

      开源的没有发展起来,但是Chrome OS本尊和Chromebook卖得还不错(除天朝外)。