Chromium EC框架探索 1.1 开发环境搭建

1.1 开发环境搭建

本节参考官方文档 getting started building ec images quickly编写本节介绍搭建ec开发环境的两种方式,后一种对于绝大多数人而言是不必要的。

首先,你得有个Linux

  • 毫不意外地,这样一个开源项目需要在Linux环境中构建;也同样毫不意外地,大概会有很多人直接被这个需求劝退(
  • 在你因认为浪费了阅读前两节的时间而愤然准备右上角之前,也许可以考虑用MinGw或者WSL抢救一下,因为编译只需要CLI就够了,至于会不会有兼容性等玄学问题,首先我并没有试过.jpg(
  • Google官方推荐的Linux版本是Ubuntu 16.04(这个上古版本在一个上古文档里被提及,我不确定现在还是否有效),我在Debian testing(4.20)上测试可以无问题工作
  • 当然在Linux上交叉编译少不了一堆的依赖,对于Debian这样初始比较纯净的系统更是如此。希望你对apt还比较熟悉以解决可能出现的玄学问题(

快速开始,最简开发环境

  • 本段指导你如何最快地准备好一个基础的开发环境,这个环境可以编译出绝大多数的EC二进制
  • 首先执行以下指令安装必要的依赖
  • TIPS:若你还没有安装aptitude,可以把下面的aptitude全换成apt-get,或者sudo apt-get install aptitude
  • TIPSx2:如果你使用的不是Debian系发行版,你当然没法使用apt包管理系统!实际上我连其他发行版上是否有这些包都不太确定,所以只好请非Debian系发行版用户自求多福了
  • sudo aptitude update
  • sudo aptitude install git libftdi-dev libusb-dev libncurses5-dev gcc-arm-none-eabi
  • sudo aptitude install repo pkg-config gawk
  • 当然由于环境差异,可能上面的命令不能修补所有必要的依赖。你可能需要根据错误输出来自己进行一些修补
  • 你还需要一个coreboot-sdk来获得arm-eabi-gcc的支持,很可惜这个sdk只能通过执行下一段的操作得到
  • 预料到读完上一行会让你暗骂我坑爹,所以我把自己配置好的coreboot-sdk打包成了zip:v5yp
  • 解压得到cross-sdk这个文件夹后,sudo mv ./cross-sdk /opt以将其移动到根文件系统的opt目录下
  • 当然你还需要整个EC框架的源码,除非你想虚空编译 选一个你心仪的工程目录,然后git clone https://github.com/coreboot/chrome-ec.git
  • 如果你运气够好,进入刚刚clone下来的ec目录,执行make BOARD=eve,你会在终端打印出的最后一行看到
    *** 82336 bytes in flash and 224 bytes in RAM still available on eve RO ****
    *** 82688 bytes in flash and 224 bytes in RAM still available on eve RW ****

    ,而不是什么奇怪的报错
  • 现在你可以在./build/eve下找到刚刚编译出来的二进制了,来之不易!然而这并没有什么卵用,你只是编译出了和你无关的代码而已
  • 但为了让以后你写的真正有用的代码可以运行,你会一次次重复刚才的编译过程
  • 顺带一提,在make指令后加上-j$number of cores on your workstatsion可以提高编译速度。例如你的cpu是4c8t的,你就可以骄傲地加一个-j8(

利用ChromiumOS chroot完整构建EC

  • TIPS:除非在最简开发环境下编译出现了依赖问题,而你认为这个依赖仅存在于ChromiumOS中,否则构建一个ChromiumOS chroot进行EC开发是完全不必要的
  • 写到这我发现第一段的标题得改成“首先你得懂Linux”
  • 为了防止这样会劝退更多的人我还是没去改(
  • 作为Chromebook固件的一部分,毫不意外地EC本来应该在chromeOS环境下构建
  • 当然为了写个嵌入式程序还要新装一个系统未免也太魔幻了,显然Chromebook团队也是这么想的,于是他们通过chroot提供了一个模拟chromiumOS环境的方法
  • TIPSx2:从零开始构建chromiumOS chroot对于大多数人来说将会是漫长而煎熬,甚至根本无法完成的
  • TIPSx2continue:所以我也准备了一个构建好的chroot供你直接下载:现在你可以跳到后一步查看如何进入chroot
  • TIPSx3:如果看到这里也不能阻止你执意自己构建chroot,那么原谅我给你最后一击:如果你没有bash下也有效的全局代理或者其他能访问到某不存在网站的骚操作,请直接放弃
  • Chromium OS Developer's Guide构建Chromium OS chroot
  • 构建完成或者下载并解压好我提供的chroot后,进入目录下执行./chromite/bin/cros_sdk
  • 将$board替换为需要编译的工程,如eve,执行cd ~/trunk/src/platform/ec; make BOARD=$board -j
  • cd /build/$board,现在你可以看到编译出来的二进制

猜你喜欢

转载自www.cnblogs.com/Excr/p/11823539.html