在Ubuntu20.04下下载chromiumos源码,编译chromiuos操作系统镜像过程

首先,准备一个网络稳定的科学上网的工具,不然在下载源码中会出现很多问题,大部分都是网络不稳定,下载的源码依赖包缺少。

Ubuntu上面下载chromium OS源码步骤

  1. 准备安装开发工具

   (1)如果您的系统没有安装兼容的 Python 版本,则需要安装 Python 3.8 或更高版本。检查自己的python版本

        命令:python3  -V

        如果返回错误或版本低于 3.8要在系统上安装特定的 Python 版本

命令:sudo apt-get install python3

  (2)需要一些主机操作系统工具来操作代码、引导开发环境以及稍后运行预上传挂钩。

安装 git 版本控制系统、curl 下载助手等

         命令:$ sudo add-apt-repository universe

         命令:$ sudo apt-get install git gitk git-gui curl xz-utils \

                       python3-pkg-resources python3-virtualenv python3-oauth2client

  (3) 安装depot_tools工具

     命令:git clone

                https://chromium.googlesource.com/chromium/tools/depot_tools.git

$   配置路径

     命令:export PATH=/path/to/depot_tools:$PATH

2.配置git

 命令:  git config --global user.email "you@example.com"

 git config --global user.name "Your Name"

3.检查电脑架构htt

命令: uname -m

看到结果:x86_64

如果看到其他内容(例如,i686,这意味着您在 32 位机器上或运行 32 位操作系统的 64 位机器上)那么无法构建 ChromiumOS需要打补丁才能构建。

4.验证您的默认文件权限 (umask) 设置是否正确

命令:umask  022

5.下载repo工具

  新建bin目录

  Mkdir ~/bin

  指定路径

 PATH=~/bin:$PATH

命令:

 curl https://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo 

若报错:permission denied 权限缩进

解决方法:在bin目录下面创建一个repo目录

                  命令:sudo mkdir /bin/repo

或者在末尾的/bin/repo忘记添加~

或者在~/bin写成~bin

6.下载源码

(1)创建一个目录来存放源码:

命令:mkdir  -p  ~/chromiumos

(2)获取源代码

      ChromiumOS 使用repo来同步源代码。是gitrepo的包装器,可帮助处理大量存储库。

      命令:cd ~/chromiumos

      获取源码:  repo init -u https://chromium.googlesource.com/chromiumos/manifest -b main

     如果获取过程中中断输入该命令:repo sync -j8

注:如果下载失败,问题最大可能是网络不稳定,导致源码中的部分文件没有下载成功。

       可以继续使用repo sync 命令继续下载源码。

注:如果报错:/usr/bin/env:'python':No such file or directory

解决方法:python创建符号链接,可以创建符号链接‘python3’,执行以下命令:

                  sudo ln -s /usr/bin/python3 /usr/bin/python

此命令创建一个符号链接python,指向python3可执行文件,以此运行python3的脚本或命令。

编译Chromium OS步

1. 创建一个chroot

创建chroot,需要在~/chromiumos目录

命令:cros_sdk

注:如果报错命令不存在,那么就说明depot_tools目录没有添加到你的PATH中,请重新查看PATH。

查看PATH命令:$PATH

添加depot_tools的PATH命令:PATH=$PATH:pwd/to/depot_tools

注:pwd代表当前所在路径,在根目录添加PATH。

或者

是由于该命令未加入全局变量,下面详细介绍如何添加系统环境变量,步骤如下:

    (1)查看所要添加的项是否在已经在环境变量里

       命令:echo $PATH

     (2)查找需要添加命令的绝对路径:

       命令:find . -name "cros_sdk"

     (3)在环境变量文件中添加该命令所在的路径

        命令:CROS_SDK=/home/a/chromiumos/chromite/bin

                   export PATH=$PATH:$CROS_SDK

如图所示:

创建命令成功,那么下载时间需要一两个小时左右,显示页面如下:

注:因为连接的是外网,网络不稳定,所以可能会发生如下图所示的问题:

报错: 

ncurl:(92) HTTP/2 stream 0 was not closed cleanly: INTERNAL_ERROR (err 2)\n

解决方法:

   方法:增加git缓冲区大小

   命令:git config --global http.postBuffer 54288888

还有可能出错的原因:系统或网络不支持HTTP/2协议,以下是一些可能会导致HTTP/2协议不可用的原因和解决方法:

(1) 旧版本的curl:如果你的系统上安装的curl版本较旧,则可能不支持HTTP/2协议。可以尝试            使用以下命令升级curl:

           命令:     sudo apt-get update

                           sudo apt-get install curl

(2)旧版本的openssl:如果您的系统上安装的openssl版本较旧,则可能不支持HTTP/2协议。             您可以尝试使用以下命令升级openssl:

           命令:   sudo apt-get update

                         sudo apt-get install openssl

(3) 远程仓库或者中间代理层未正确使用HTTP/2协议。为了创建chroot,可以先强制使用                      HTTP/1.1,创建成功之后再修改为HTTP/2。

            命令: 修改   git config --global http.version HTTP/1.1

                         git push

创建完之后修改回来:git config --global http.version HTTP/2

当然,如果网络稳定,会很少出现此类问题,所以最好找一个稳定高效的科学工具,这样会省很多事。

2. 输入chroot

  如果创建chroot成功,继续输入以下命令,直接进入:

  命令:cros_sdk

注:如果需要删除chroot,可以使用命令:cros_sdk --delete 来删除它,如果使用rm -rf可能会删不干净。

3. 选择主板类型

  ChromiumOS 将不同类别的计算机称为不同的目标“板”。以下是一些示例板:

注:在Ubuntu中查看电脑CPU信息命令:

       cat /proc/cpuinfo

根据自己想要安装chromium OS的电脑类型在chroot中选择相应的主板:

命令: export BOARD = <你选择的主板>

4. 初始化主板的构建

   选定主板后,在你的chroot中(在目录~/chromiumos/src/scripts中)以下命令:

     ./setup_board --board=$ {BOARD}

注:如果执行命令报错:-bash: ./setup_board: No such file or directory,出现其他的错误,也可以使用以下方法

解决方法:

(1)输入 ./update_chroot更新工具链

(2)repo sync 重新同步代码

(3)退出chroot(按CTRL+D退出chroot),然后重新进入chroot(输

          入cros_sdk重新进入) ,退出又重新进入chroot,会自动更新。

(4)重新构建:./setup_board --board=<你的主板类型>

5. 设定系统的用户密码

命令:./set_shared_user_password.sh

输出命令之后,系统会提示你输入密码,该密码以保密形式存储在 /etc/shared_user_passwd.txt中。

6. 构建开发包

    命令:build_packages --board=${BOARD}

注:编译时间较长,需等待四五个小时,编译过程需要网络,下载软件包和依赖项,还需要从Google的代码仓库中拉取源代码。

7. 构建磁盘映像

   构建开发包完成之后,在下列目录中运行以下命令来构建磁盘映像:

   目录:~/chromiumos /src/scripts

   命令: build_image --board=${BOARD} --no-enable-rootfs-verification test

   

构建的镜像有三种类型:

(1)test(测试版)

         命令:build_image --board=${BOARD} --no-enable-rootfs-verification test

   注:如果使用test镜像,那么前面设置的密码会被忽略,密码变成“test0000”

(2)dev(开发者)

         命令:build_image --board=${BOARD} --no-enable-rootfs-verification dev

(3)base(原始版,最接近ChromeOS但不完全相同)

         命令:build_image --board=${BOARD} --no-enable-rootfs-verification base

 

8. 将生成的镜像放入USB磁盘

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

    usb:U盘所在路径

    ${BOARD}:image镜像所在路径

整个过程就是这样了,编译时间会很长,而且中间因为网络问题或者其他问题会出现很多错误,我遇到的问题就是整理的这些,如有不足之处,还请大家指出。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在Ubuntu 20.04上搭建RK3588源码编译环境,您可以按照以下步骤进行操作: 1. 安装所需的软件和工具: - 确保您的系统已更新并安装了必要的软件源。 - 安装Git版本控制系统,运行以下命令: ``` sudo apt-get install git ``` - 安装JDK(Java开发工具包),运行以下命令: ``` sudo apt-get install openjdk-8-jdk ``` - 安装依赖库和工具,运行以下命令: ``` sudo apt-get install build-essential libssl-dev libncurses5-dev unzip ``` 2. 克隆RK3588源码仓库: - 进入您想要存储源代码的目录,运行以下命令: ``` cd <存储源码的目录> ``` - 克隆RK3588源码仓库,运行以下命令: ``` git clone https://github.com/rockchip-linux/rk3588-manifest.git ``` - 切换到源码目录,运行以下命令: ``` cd rk3588-manifest ``` 3. 初始化并同步源码: - 初始化源码,运行以下命令: ``` repo init -u https://github.com/rockchip-linux/manifests -b rk3588 -m rk3588.xml ``` - 同步源码,运行以下命令: ``` repo sync ``` 4. 编译源码: - 设置环境变量,运行以下命令: ``` source build/envsetup.sh ``` - 选择您要编译的目标,例如"rk3588-userdebug",运行以下命令: ``` lunch rk3588-userdebug ``` - 开始编译,运行以下命令: ``` make -j$(nproc) ``` 请注意,以上步骤仅提供了RK3588源码编译环境搭建的基本过程。具体的操作细节可能因您的系统配置和需求而有所不同。在执行上述步骤时,如果遇到任何错误或问题,请您参考相关文档或搜索相关资源进行解决。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值