Yocto on Quark X1000
Build Guide
Table of Contents
1 注意事项
2 Prepare
3 EDKII firmware
3.1 build
3.2 output
4 GRUB OS loader
4.1 Build
4.2 output
5 ROOTFS & bzImage
5.1 build
5.2 output
6 cross compile toolchain
6.1 build
6.2 install
6.3 usage
7 flash image
7.1 build
7.2 output
8 Define platform data
8.1 build
9 Programming Flash
1 注意事项
默认工作目录: ~/workspace/galileo/
$ tree -L 1 . |-- gnu-efi-3.0 |-- grub-legacy -> grub-legacy_5775f32a+v1.0.1 |-- grub-legacy_5775f32a+v1.0.1 |-- meta-clanton -> meta-clanton_v1.0.1 |-- meta-clanton_v1.0.1 |-- package |-- Quark_EDKII -> Quark_EDKII_v1.0.1 |-- Quark_EDKII_v1.0.1 |-- Quark_EDKII_v1.0.1-svn_externals.repo |-- spi-flash-tools -> spi-flash-tools_v1.0.1 |-- spi-flash-tools_v1.0.1 |-- sysimage -> sysimage_v1.0.1 `-- sysimage_v1.0.1
为避免编译环境的配置差异,编译每个包时最好 重新开启新的终端会话
2 Prepare
下载BSP包到默认工作目录
Board_Support_Package_Sources_for_Intel_Quark_v1.0.1.7z 传送门
解压
$ 7z x Board_Support_Package_Sources_for_Intel_Quark_v1.0.1.7z
依赖包
$ sudo apt-get install build-essential gcc-multilib vim-common \p7zip-full git diffstat texinfo gawk chrpath file \make gcc g++ uuid-dev iasl patch \sed wget subversion git-core coreutils \unzip texi2html texinfo libsdl1.2-dev docbook-utils fop gawk \python-pysqlite2 diffstat make gcc build-essential xsltproc \g++ desktop-file-utils chrpath libgl1-mesa-dev libglu1-mesa-dev \autoconf automake groff libtool xterm libxml-parser-perl
3 EDKII firmware
3.1 build
$ tar -xvf package/Quark_EDKII_v1.0.1.tar.gz -C .$ cd Quark_EDKII_v1.0.1/$ ./svn_setup.py$ svn update$ cd CryptoPkg/Library/OpensslLib$ wget http://www.openssl.org/source/openssl-0.9.8w.tar.gz$ tar -xvf openssl-0.9.8w.tar.gz$ cd openssl-0.9.8w$ patch -p0 -i ../EDKII_openssl-0.9.8w.patch$ cd ..$ chmod +x Install.sh$ ./Install.sh$ cd ../../../$ gcc -v $ ./buildallconfigs.sh GCC46 QuarkPlatform
3.2 output
The build output can be found in the following directories:
build/QuarkPlatform/<Config>/<Target>_<Tools>/FV/FlashModules/
Contains EDKII binary modules
Build/QuarkPlatform/<Config>/<Target>_<Tools>/FV/Applications/
Contains UEFI shell applications, including CapsuleApp.efi
where:
<Config> = PLAIN | SECURE
<Target> = DEBUG | RELEASE
<Tools> = GCC43 | GCC44 | GCC45 | GCC46 | GCC47
4 GRUB OS loader
4.1 Build
$ wget http://sourceforge.net/projects/gnu-efi/files/gnu-efi_3.0v.orig.tar.gz$ tar -xvf gnu-efi*$ cd gnu-efi*/gnuefi$ make ARCH="ia32"$ cd -$ tar -xvf grub-legacy_*.tar.gz $ cd grub-legacy_* $ ./gitsetup.py $ cd work $ autoreconf --install $ export CC4GRUB='gcc -m32 -march=i586 -fno-stack-protector' $ export GNUEFI_LIBDIR=~/workspace/galileo/gnu-efi-3.0/gnuefi/$ CC="${CC4GRUB}" ./configure-quark.sh $ make
4.2 output
work/efi/grub.efi
5 ROOTFS & bzImage
5.1 build
$ tar -xvf meta-clanton*.tar.gz $ cd meta-clanton* $ ./setup.sh $ source poky/oe-init-build-env yocto_build$ bitbake image-spi-galileo
5.2 output
The output of the build process is found in ./tmp/deploy/images/ and includes the following files:
image-spi-clanton.cpio.gz
image-spi-clanton.cpio.lzma
bzImage
grub.efi
6 cross compile toolchain
6.1 build
$ source poky/oe-init-build-env yocto_build$ bitbake image-spi-galileo -c populate_sdk
6.2 install
$ ./tmp/deploy/sdk/clanton-tiny-uclibc-x86_64-i586-toolchain-1.4.2.sh
6.3 usage
$ source /opt/clanton-tiny/1.4.2/environment-setup-i586-poky-linux-uclibc$ ${CC} myfile.c -o myfile
7 flash image
7.1 build
$ tar -xvf sysimage_*.tar.gz$ tar -xvf spi-flash-tools*.tar.gz$ ./sysimage/create-symlinks.sh$ cd sysimage/sysimage.CP-8M-debug# modify the layout.conf file in the [Ramdisk] section
# from image-spi-clanton.cpio.lzma to image-spi-galileo-clanton.cpio.lzma$ ../../spi-flash-tools*/Makefile
7.2 output
Flash-missingPDAT.cap - standard capsule file.
Flash-missingPDAT.bin - flash file with no platform data.
FVMAIN.fv – board-specific recovery file
8 Define platform data
8.1 build
修改platform-data配置文件
$ vim spi-flash-tools/platform-data/sample-platform-data.ini
参考下面的例子修改配置文件:
[Platform Type]id=1desc=PlatformIDdata.type=hex.uint16# ClantonPeak 2, KipsBay 3, CrossHill 4, ClantonHill 5, KipsBay-fabD 6 data.value=6# WARNING: the MRC parameters MUST match the platformID used above[Mrc Params]id=6ver=1desc=MrcParamsdata.type=file#data.value=MRC/clantonpeak.v1.bin#data.value=MRC/kipsbay.v1.bin#data.value=MRC/crosshill.v1.bin#data.value=MRC/clantonhill.v1.bindata.value=MRC/kipsbay-fabD.v1.bin[MAC address 0]id=3desc=1st MACdata.type=hex.stringdata.value=001320FDF4F2 #unique MAC address of your device[MAC address 1]id=4desc=2nd MAC
data.type=hex.string
data.value=02FFFFFFFF01
生成 spi-flash 镜像
$ cd spi-flash-tools/platform-data/$ ./platform-data-patch.py -p sample-platform-data.ini \-i ../../sysimage_4M*/sysimage.CP-8M-release/Flash-missingPDAT.bin
9 Programming Flash
将 CapsuleApp.efi 和 Flash-missingPDAT.cap 复制到U盘然后插入开发板USB接口
上电,当出现下面的提示时按 F7 进入启动菜单
Press [Enter] to directly boot.
Press [F7] to show boot menu options.
选择 "UEFI Internal Shell"
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
▒ Please select boot device: ▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
▒UEFI Payload ▒
▒Boot Device List ▒
▒UEFI Internal Shell ▒
▒UEFI Generic USB2.0-CRW 20090815198100000 ▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
▒ and to move selection ▒
▒ ENTER to select boot device ▒
▒ ESC to exit ▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
随后输入 "fs0:"
EFI Shell version 2.31 [1.0]
Current running mode 1.1.2
Device mapping tablefs0 :Removable HardDisk - Alias hd11a0b blk0PciRoot(0x0)/Pci(0x14,0x4)/USB(0x0,0x0)/HD(1,MBR,0x00000000,0x2000,0xE6C000)blk0 :Removable HardDisk - Alias hd11a0b fs0PciRoot(0x0)/Pci(0x14,0x4)/USB(0x0,0x0)/HD(1,MBR,0x00000000,0x2000,0xE6C000)blk1 :Removable BlockDevice - Alias (null)PciRoot(0x0)/Pci(0x14,0x4)/USB(0x0,0x0)Press ESC in 1 seconds to skip startup.nsh, any other key to continue.Shell> fs0:
输入命令 "CapsuleApp.efi Flash-missingPDAT.cap"
fs0:\> CapsuleApp.efi Flash-missingPDAT.cap
转载于:https://my.oschina.net/u/115346/blog/386041
Yocto on Quark X1000相关推荐
- QUARK的增强版C-QUARK问世,有效提升蛋白质结构从头预测精度
2021年8月18日,密西根大学张阳教授团队在Nature Communications上发表论文"Improving fragment-based ab initio protein st ...
- yocto linux dns,yocto-sumo源码解析(一): o
oe-init-build-env是yocto构建环境运行的第一个脚本,通过运行下面的命令: . oe-init-build-env build-arm64 即可对yocto项目进行构建,顾名思义,该 ...
- yocto中文环境搭建
2019独角兽企业重金招聘Python工程师标准>>> 我所使用的yocto版本是1.5.1,系统默认的locale是en_US,并不包含中文环境.但是在实际编译的过程中不仅仅是中文 ...
- imx6 板卡移植官方yocto版本(2_定制系统)
上一节中已经讲述了如何去构建编译环境,这一节讲一下如何定制专属于自己板卡的系统.1.配置linux内核官方repo下来的yocto项目里配置了多个内核可选,我们可以在yocto目录下/source/m ...
- imx6 板卡移植官方yocto版本(1_安装环境)
玩imx6板卡也有两年了,之前由于各种原因(主要是懒),一直用的是官方的LTIB版本,这里必须要吐槽一下这个LTIB,各种错误百出,而且严重挑系统,硬是将我从CentOS阵营搞到Ubuntu社区.最近 ...
- Yocto的使用实例
Yocto的使用实例 本文以往rootfs中添加一个软件包为例,阐述使用Yocto定制发行版的大致流程. 有关Yocto的功能和结构介绍,详见Yocto详解 1.开发环境构建 一般有两种情况:一种是 ...
- Yocto基本概念及介绍
Yocto详解 参考:http://www.yoctoproject.org/docs/2.1/mega-manual/mega-manual.html#creating-a-general-laye ...
- linux在mak时候出现错误,在使用yocto构建linux映像时出现“memfd戋create的静态声明跟随非静态声明”错误...
我正在使用 Yocto 建立系统 Ubuntu 18.04 主机.我正在遵循提供的步骤 here . 我正在为 Colibri iMX6ULL 模块上的计算机.但是,我的生成失败,它显示以下错误 de ...
- 根文件系统构建(Yocto方式)
本章有独立的教程,请参考<[正点原子]I.MX6U Yocto 构建根文件系统V1.0.pdf>!
- Yocto Project - basic - 01 - Quick Start
Yocto 是一个被广泛使用的操作系统,本节开始介绍: 文章的内容来自于Yocto的官方介绍文档. 1 简介 The Yocto Project is an open-source collabora ...
最新文章
- Learning to Rank 中Listwise关于ListNet算法讲解及实现
- [转]整理一些好的开源项目
- 对于 IE低版本不兼容问题的处理
- 算法:阶乘的五种算法
- leetcode - 931. 下降路径最小和
- 【博客项目】—用户修改功能(十一)
- 【MySQL】replace into 浅析之二
- geddy mysql_以ToDoList应用来学习Geddy
- 3步解决网盘限速,还能远程下载!
- android 检测cpu温度传感器,软件是如何测量手机CPU温度的?即使手机没有温度传感器...
- tf 设置多显卡_海美迪H7四代解码4k hdr局域网教程,用TF卡双启动libreELEC成功
- 秀米svg点击显示另一张图_时隔五年再用秀米,我发现了这个超强玩法
- python-ip端口扫描器
- latex打出 像小写l一样的字母
- TI高精度实验室-运算放大器-第十六节-全差分放大器
- 卷积神经网络 图像识别,卷积神经网络 图像处理
- 网络封包分析软件-wireshark
- 如何让我的应用自动填写短信验证码?
- 单线激光雷达与多线激光雷达
- ckeditor 工具栏配置
热门文章
- PS案例提升 【第1节】抠图--薄、透、露的朦胧美 案例二:扣取婚纱新娘
- 利用反射等离激元超表面的模拟光计算
- 基于无人机的目标检测平台——数据中转(安卓App)
- (总结)Web性能压力测试工具之Siege详解
- 35岁老年程序员的绝地翻身之路
- 将内存ffff:0~ffff:b单元中的数据复制到0:200~0:20b单元中
- 【2G模组Air202开发】Lua脚本编程实现MQTT协议连接Tlink平台(二)
- DBA-数据库管理员
- 计算机更改后怎么找不到桌面文件,电脑桌面的文件不见了怎么找回
- 京东无法登录显示服务器异常,京东账号异常怎么解决?方法介绍