【荔枝派Zero开发板试用体验】2 ubuntu16.4系统下的uboot编译

  • 荔枝
  • IC爬虫
  • LV4工程师
  • |      2017-06-19 19:39:05
  • 浏览量 1783
  • 回复:1
本帖最后由 IC爬虫 于 2017-6-24 20:12 编辑 本文主要介绍Uboot的结构,menuconfig里的常见配置选项,编译步骤等 编译环境: 系统: Ubuntu 16.04 开发板: Lichee Pi Zero (Allwinner V3s) Uboot 编译
  • 安装依赖:
apt-get install build-essential libncurses5-dev u-boot-tools debootstrap git binfmt-support libusb-1.0-0-dev pkg-config device-tree-compiler apt-get install gcc-arm-linux-gnueabihf
  • 下载 uboot 源码:
git clone -b v3s-spi-experimental https://github.com/Lichee-Pi/u-boot.git 1.Uboot的基本结构 下面来看看该uboot中的目录结构 86499了解了uboot的基本结构,我们可以知道一些相关的配置在什么地方了。
  • lichee的uboot配置文件放在confgs文件目录下面,名称为
LicheePi_Zero_480x272LCD_defconfig LicheePi_Zero_800x480LCD_defconfig LicheePi_Zero_defconfig 这3个配置是根据不同的Zero显示设备进行的配置,使用其中之一即可,可以在uboot目录下执行命令 make LicheePi_Zero_defconfig 这样配置就生效了。
  • 关于设备的配置引脚信息可以在arch/arm/dts的设备树下面进行查找。
通过查看arch/arm/dts/Makefile我们看到下面这段关于v3s的代码: dtb-$(CONFIG_MACH_SUN8I_V3S) += \ sun8i-v3s-licheepi-zero.dtb 我们基本可以找到对应的dtb文件就是sun8i-v3s-licheepi-zero.dtb 打开sun8i-v3s-licheepi-zero.dts(dtb是object文件,相当于*.o, dts相当于*.c)文件:
#include "sun8i-v3s.dtsi" //这个文件包含了sun8i-v3s系列的配置 #include "sunxi-common-regulators.dtsi" / { model = "Lichee Pi Zero"; compatible = "licheepi,licheepi-zero", "allwinner,sun8i-v3s"; aliases { serial0 = &uart0; }; chosen { stdout-path = "serial0:115200n8"; }; }; &mmc0 { pinctrl-0 = <&mmc0_pins_a>; pinctrl-names = "default"; broken-cd; bus-width = <4>; vmmc-supply = <®_vcc3v3>; status = "okay"; }; &uart0 { pinctrl-0 = <&uart0_pins_a>; pinctrl-names = "default"; status = "okay"; }; &usb_otg { dr_mode = "otg"; status = "okay"; }; &usbphy { usb0_id_det-gpio = <&pio 5 6 GPIO_ACTIVE_HIGH>; status = "okay"; };
从这个配置文件中可以看出,我们所用的stdout输出是用的uart0 波特率115200,mmc的配置, uart0的引脚采用的是uart0_pins_a 等。 如若需要修改对应的输出,可以在这个文件中修改。 2. menuconfig里的常见配置选项 编译uboot的需要生成.config文件来将该配置生效。 配置的生效有两步: 第一步,先将Zero默认的配置加载进来: Zero已经将配置定制好了,执行相应的命令就可以生成了。下面是生成配置的命令 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LicheePi_Zero_800x480LCD_defconfig 这个命令可以分为3个部分
  • 设置变量ARCH值为arm
  • 设置变量CROSS_COMPILE值为arm-linux-gnueabihf-
  • make LicheePi_Zero_800x480LCD_defconfig
最后一个make LicheePi_Zero_800x480LCD_defconfig才是重点,执行这条命令就可以对应生成一个编译所需要的配置文件.config 第二步,对于配置文件可以通过是图形界面的方式修改某一个特定配置选项 有了配置文件,需要的时候我们可以对其进行修改,linux提供了一种图形界面的方式,这种方式一般在后期需要改某些编译选项的时候,用户交互比较方便,现在我们可以来看看有哪些配置。 make ARCH=arm menuconfig 执行这个命令就可以出现一个UI交互比较好的配置文件选项,可以看下面的截图:
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:1
xiefy21 2017-07-12
不错,学习了,后面仔细啃……
0   回复
举报
发布
x
收藏成功!点击 我的收藏 查看收藏的全部帖子