基于OrangePi H3的uboot移植

首先感谢参考的博客:https://blog.csdn.net/jklinux/article/details/72625586

         首先,你需要开发板厂家提供的SDK源码包,一般情况下,源码包下已经包含了该开发板适用的uboot、Linux系统内核以及文件系统源码包;并且厂家会为你提供编译这些源码时的默认配置文件。 简单介绍一下Linux操作系统的启动流程:uboot(sd卡内部)->Linux系统内核(加载到内存运行)->挂载busybox文件系统。

         接下来,你需要准备一张8G的高速的SD卡,因为香程派没有内部FLASH内存芯片,所以需要一张外置的SD卡作为存储器,包括后面的Linux系统内核镜像文件和文件系统,都将烧写在这张SD卡上。SD卡要实现删除所有的分区:ubuntu系统下可以使用一个可视化工具gparted来解决,Window下面进入磁盘管理后,可以删除磁盘的卷(这个不作详细阐述)。准备好SD卡后,我们开始在ubuntu系统上来完成编译移植。

         第一步:下载工具:dtc,该工具是用于Linux内核的设备树工具;官方下载地址:dtc工具源码下载。我在这里下载的版本是:dtc-1.6.0.tar.gz;下载后解压到目标目录,make&make install。你好需要下载一些交叉编译需要的依赖库:

yum install  libusb*
yum install glibc*i686
yum install zlib*i686
yum install libstdc++*i686 yum install  libusb*
yum install glibc*i686
yum install zlib*i686
yum install libstdc++*i686 

需要注意的是,这些依赖库的具体名称对应到ubuntu或redhat会有所区别,这里我列出ubuntu的:

sudo apt-get install libgtk2.0-0:i386 libxtst6:i386 gtk2-engines-murrine:i386 \
lib32stdc++6 libxt6:i386 libdbus-glib-1-2:i386 libasound2:i386
apt-get install zlib1g-dev

第二步:找到由厂家提供的SDK源码包,解压并进入目录:orangepi_sdk.tar.bz2;接下来的编译步骤其实与开发板厂家有关:



编译uboot:
	
   1). 解包orangepi_sdk.tar.bz2	
       进入orangepi_sdk目录
	
   2). mkdir output            //创建目录,用于存放编译生成的程序镜像
       mkdir output/u-boot/     //创建uboot子目录
       mkdir output/dtb/       //创建设备树子目录
	
       yum install ncurses*   // ncurses是个终端的图形库, 用于配置编译项使用

       进入toolchain/sunxi-tools目录:
	 执行make   //编译出用于生成内核的script.bin工具(bin2fex  fex2bin)	
         cp bin2fex fex2bin sunxi-fexc  /bin/   //复制这几个工具到系统的bin目录
	
   3). 回到orangepi_sdk目录下: 
       
       make config_uboot  // 配置uboot, 出现配置界面后,直接退出就可以了.

       make uboot         // 编译uboot
	 第一次时会发生错误: make_uboot.sh: line 31: mkimage: command not found
       发生错误后: cp source/u-boot-2016.07/tools/mkimage /bin/
       再次执行"make uboot"	   //mkimage工具用于内核镜像上加文件头用

       
       编译完成后,在output/u-boot/目录里有:
	boot.scr                   script.bin                 u-boot-sunxi-with-spl.bin

	// boot.src其实是个uboot环境变量存放文件

   4). 把sd卡放入读卡器,再接入pc, 确认它的设备文件(一般是/dev/sdb)
	make install_uboot sdcard=/dev/sdb   //把uboot镜像烧入sd卡的指定扇区位置 

   5). 安装pc端的uart工具
	yum install minicom*

	配置minicom:  minicom -s
		    +-----[configuration]------+
		    | Filenames and paths      |
		    | File transfer protocols  |
		    | Serial port setup        |
		    | Modem and dialing        |
		    | Screen and keyboard      |
		    | Save setup as dfl        |
		    | Save setup as..          |
		    | Exit                     |
		    | Exit from Minicom        |
		    +--------------------------+
	    选择"Serial port setup"
	    +-----------------------------------------------------------------------+
	    | A -    Serial Device      : /dev/ttyUSB0                              |
	    |                                                                       |
	    | C -   Callin Program      :                                           |
	    | D -  Callout Program      :                                           |
	    | E -    Bps/Par/Bits       : 115200 8N1                                |
	    | F - Hardware Flow Control : No                                        |
	    | G - Software Flow Control : No                                        |
	    |                                                                       |
	    |    Change which setting?                                              |
	    +-----------------------------------------------------------------------+
	    注意: /dev/ttyS0表示PC机后面的RS232接口, usb转232接口得设为/dev/ttyUSB0
	  
	    选择好后, “Save setup as dfl”, 保存好后,以后使用时直接输入命令"minicom"即可	 
	    // 退出minicom,  先按"ctrl+a", 松手后再按'q'键,即可选择退出

     6). 把sd卡接到板子上,接上电源线,uart线.在minicom里会有信息:
	U-Boot SPL 2016.07-cazure (May 22 2017 - 12:28:32)
	DRAM: 512 MiB
	Trying to boot from MMC1


	U-Boot 2016.07-cazure (May 22 2017 - 12:28:32 +0800) Allwinner Technology

	CPU:   Allwinner H3 (SUN8I 1680)
	Model: Xunlong Orange Pi
	DRAM:  512 MiB
	MMC:   SUNXI SD/MMC: 0
	In:    serial
	Out:   serial
	Err:   serial
	Net:   No ethernet found.
	starting USB...
	USB0:   USB EHCI 1.00
	USB1:   USB OHCI 1.0
	scanning bus 0 for devices... 1 USB Device(s) found
	Hit any key to stop autoboot:  0          //出现这句信息时按任意键就会停住
	u-boot@orangepi#

 

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 《基于zynqmp的uboot移植与kernel移植教程(非Petalinux开发方式).pdf》是一份关于基于Zynq MP SoC的U-Boot和kernel移植教程的文档。这份教程主要介绍了如何将U-Boot和kernel移植到基于Zynq MP SoC的板子上,并且使用非Petalinux的开发方式。 在这份教程中,首先会介绍Zynq MP SoC的基本知识,包括其硬件架构、启动流程等。然后会详细讲解如何从源码编译和配置U-Boot,包括交叉编译环境的搭建、配置U-Boot的环境参数等。接着会介绍如何将编译好的U-Boot烧录到板子上,并通过串口进行调试。 在移植kernel的部分,教程会分享如何配置Linux内核,包括选择适合的内核版本和配置选项。然后会讲解如何进行内核的编译,并将编译好的内核镜像烧录到板子上。最后,教程还会介绍如何配置文件系统和启动参数,以便正确启动内核。 整篇文档详细叙述了U-Boot和kernel的移植方法,提供了具体的步骤和截图进行演示,对于想要进行Zynq MP SoC的开发者来说非常有帮助。同时,也提供了一些调试技巧和常见问题的解决方法,帮助开发者更快地定位和解决问题。 总之,《基于zynqmp的uboot移植与kernel移植教程(非petalinux开发方式).pdf》这份教程是一份非常实用的资料,对于想要进行Zynq MP SoC的U-Boot和kernel移植的开发者来说是一份很好的参考指南。 ### 回答2: 《基于ZynqMP的Uboot移植与Kernel移植教程(非Petalinux开发方式).pdf》是一本关于在ZynqMP上进行Uboot移植和Kernel移植的教程。ZynqMP是赛灵思公司生产的一款嵌入式处理器,具有双核ARM Cortex-A53处理器和硬件可编程逻辑的特点。 该教程提供了一步一步的指导,帮助读者学习如何将Uboot引导加载程序和Kernel操作系统移植到ZynqMP平台上。 首先,教程介绍了ZynqMP的基本架构和硬件资源,包括处理器核心、外设和可编程逻辑。然后,教程详细解释了Uboot和Kernel的概念和功能,以及它们在嵌入式系统中的作用。 接下来,教程介绍了Uboot和Kernel的移植流程。针对Uboot移植,教程首先讲解了Uboot的编译和烧录过程,然后指导读者如何修改Uboot的配置文件以适配ZynqMP平台的硬件资源。针对Kernel的移植,教程详细讲解了Kernel的编译和配置选项,以及设备树的使用方法。教程还涵盖了Uboot和Kernel之间的交互过程,以及如何使用设备树来访问硬件资源。 最后,教程提供了一些常见问题的解答和调试技巧,帮助读者在实际的移植过程中解决可能遇到的问题。 总之,《基于ZynqMP的Uboot移植与Kernel移植教程(非Petalinux开发方式).pdf》是一本非常实用的教程,适合想要在ZynqMP平台上进行Uboot和Kernel移植嵌入式开发人员阅读和参考。 ### 回答3: 基于ZynqMP的U-Boot移植与Kernel移植教程(非Petalinux开发方式)是一本介绍如何在ZynqMP平台上进行U-Boot和Kernel移植的教材。下面将用300字阐述一些主要内容。 首先,该教程对ZynqMP平台进行了简要介绍,包括其硬件架构、资源分配和系统框图等。读者可以了解到ZynqMP平台的基本特点,为后续的移植工作打下基础。 在U-Boot移植方面,教程详细介绍了U-Boot的编译方法和启动过程,包括编译工具链的安装、配置并编译整个U-Boot项目,并将编译好的U-Boot镜像烧写到目标设备上。 接下来,教程介绍了如何进行Kernel移植。教程首先介绍了ZynqMP平台上常用的Linux内核版本,并提供了基础的内核源码下载链接。然后,教程详细解释了Kernel的配置方法,包括使用make menuconfig进行配置和修改配置文件。读者可以学习如何根据具体需求进行内核配置,定制适合自己应用场景的内核。 另外,教程还介绍了设备树文件(Device Tree)的使用和配置。它解释了设备树文件的结构和作用,并提供了例子,让读者了解如何进行自定义设备的配置。 最后,教程还介绍了如何通过串口进行调试和启动,以及如何通过网络进行远程调试等内容。这些内容对于实际应用和调试非常有用。 总而言之,基于ZynqMP的U-Boot移植与Kernel移植教程(非Petalinux开发方式)详细介绍了如何在ZynqMP平台上进行U-Boot和Kernel的移植工作。通过这本教程,读者可以学习到基本的移植方法和技巧,并且可以根据教程中的例子进行实践,提升自己在嵌入式系统开发方面的能力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值