美文网首页
ChromiumOS源码下载及编译

ChromiumOS源码下载及编译

作者: 发条蛙 | 来源:发表于2017-10-20 15:52 被阅读0次

    由于ChromiumOS系统的编译需要使用非Root用户进行,故这里新增一个用户cos以用于ChromiumOS系统的开发工作:

    adduser cos
    

    这里需要注意的是用户名chronos 是预留给编译系统使用的,这里增加的用于编译的用户名不能为chronos

    工具安装

    在进行源码下载之前首先需要进行工具的安装:

    aptitude install git-core gitk git-gui subversion curl lvm2 thin-provisioning-tools python-pkg-resources python-virtualenv
    

    下载depot_tools并加入系统路径:

    cd ~
    git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
    export PATH=`pwd`/depot_tools:"$PATH"
    

    权限准备

    将增加的用户cos加入到文件/etc/sudoers中:

    cos     ALL=(ALL:ALL) ALL
    

    再执行如下代码:

    cd /tmp
    cat > ./sudo_editor <<EOF
    #!/bin/sh
    echo Defaults \!tty_tickets > \$1          # Entering your password in one shell affects all shells 
    echo Defaults timestamp_timeout=180 >> \$1 # Time between re-requesting your password, in minutes
    EOF
    chmod +x ./sudo_editor 
    sudo EDITOR=./sudo_editor visudo -f /etc/sudoers.d/relax_requirements
    

    代码下载

    创建工作目录并进入:

    mkdir ~/workspaces
    cd ~/workspaces
    

    下载代码:

    mkdir chromiumos
    cd chromiumos
    repo init -u https://chromium.googlesource.com/chromiumos/manifest.git
    repo sync
    

    如果是要使用指定版本的代码,则最好创建一个新的工作目录,再进行代码同步:

    mkdir release-R59-9460.B
    cd release-R59-9460.B
    
    repo init -u https://chromium.googlesource.com/chromiumos/manifest.git -b  release-R59-9460.B --reference /home/cos/workspaces/chromiumos
    repo sync
    

    编译代码

    Chroot环境创建

    进入到源码目录执行如下命令进入到chroot环境:

    cros_sdk
    
    • 这里会在当前目录下创建一个名为.cache的目录来保存用于构建chroot环境的包,其中最大的一个包位于目录.cache/sdks下,名称形式类似于cros-sdk-2017.04.12.210012.tar.xz,大小接近2G,如果有多个环境开发的话,可以拷贝该文件到新的工作环境中以节省下载时间。

    系统编译

    此时所执行的代码都在Chroot环境下,首先选取主板类型并初始化主板设定:

    export BOARD=quawks
    ./setup_board --board=${BOARD}
    

    然后设定系统的超级用户密码:

    ./set_shared_user_password.sh
    
    • 超级用户的密码是写入到文件/etc/shared_user_passwd.txt

    再接下来进行系统编译,这里实际上是使用gentoo中的ebuild来进行包的下载和编译:

    ./build_packages --board=${BOARD}
    

    最后就是将编译好的系统进行打包:

    ./build_image --board=${BOARD} --noenable_rootfs_verification test
    
    • 需要注意的是,当编译为test版本时,先前所设定的系统超级用户密码则变为无效,而被统一改为test0000

    系统烧录

    接下来就是将系统刷入到U盘中进行安装:

    cros flash usb:// ${BOARD}/latest
    

    系统安装

    启动进入U盘系统,然后在Shell环境下执行如下命令进行系统安装:

    /usr/sbin/chromeos-install
    
    • 对于不同的系统有不同的进入U盘启动环境的方法,具体可以参考页面developer-information-for-chrome-os-devices
    • 对于这里使用的Asus C300来说,进入的方法为按住Esc+Refresh+Power三个键。重启后Ctrl+D进入到硬盘启动,再输入sudo crossystem dev_boot_usb=1以打开从U盘启动的选项。

    更多选择

    当进入Chroot环境进行编译时,会使用ebuild编译Chromium浏览器项目,这又是一个几十G的下载量,所以最好的方式自然是能够重用下载好的Chromium项目。这里有如下几个需要注意的点:

    1. 将Chromium浏览器项目放置在目录~/cos/chromium
    2. 修改ChromiumOS项目下的配置文件src/third_party/chromiumos-overlay/chromeos-base/chromeos-chrome/chromeos-chrome-9999.ebuild,去除其中的+runhooks,因为在编译ChromiumOS时,如果执行到runhooks,又会去下载和编译工具链;
    3. 在工作目录中执行cros_sdk --chrome_root=/home/cos/chromium,以进入Chroot环境;
    4. 在选定好主板类型后,执行cros_workon --board=${BOARD} start chromeos-chrome,以确保使用自定义的ebuild文件,这通常就是编号为9999的ebuild文件,最终执行结果为将数据=chromeos-base/chromeos-chrome-9999写入到文件.config/cros_workon/quawks中;
    5. 在Chroot环境中,还需要执行export CHROME_ORIGIN=LOCAL_SOURCE以使用本地项目进行编译;

    最终对Chromium项目的修改,都会被编译进ChromiumOS系统,其他的步骤与原版无二致。

    相关文章

      网友评论

          本文标题:ChromiumOS源码下载及编译

          本文链接:https://www.haomeiwen.com/subject/jdomuxtx.html