U-boot移植

1.在虚拟机上设置NFS服务

1.NFS服务开启

sudo apt-get install nfs-kernel-server rpcbind

2.VI命令打开NFS配置文件/etc/export

sudo vi /etc/export

3.打开/etc/export后输入以下内容

/home/jonathan/linux/nfs *(rw,sync,no_root_squash)

(/home/jonathan/linux/nfs)为共享文件夹的路径

4.创建文件夹

cd /home/jonathan
mkdir linux
cd linux
mkdir nfs

5.重启NFS服务

sudo /etc/init.d/nfs-kernel-server restart

6.检测NFS服务器是否可用

本地挂载共享目录

sudo mount -t nfs 127.0.0.1:/home/jonathan/linux/nfs /mnt

在nfs目录下创建一txt文件

cd /home/jonathan/linux/nfs
touch test.txt

/mnt 目录下查看一下文件:

cd /mnt
ls

有 test.txt 文件说明 NFS 服务器部署成功,然后可以解除挂载

sudo umount /mnt

2.将U-Boot烧入SD卡

1、U-Boot简介

Linux 系统要启动就必须需要一个 bootloader 程序,也就说芯片上电以后先运行一段 bootloader程序。这段bootloader程序会先初始化DDR等外设,然后将Linux内核从flash(NAND,NOR FLASH,SD,MMC 等)拷贝到 DDR 中,最后启动 Linux 内核,它最主要的工作就是启动 Linux 内核。bootloader 和 Linux 内核的关系就跟 PC 上的 BIOS 和 Windows 的关系一样,bootloader 就相当于 BIOS。

有很多现成的 bootloader 软件可以使用,比如 U-Boot、vivi、RedBoot 等等,其中以 U-Boot 使用最为广泛。

2、下载U-Boot

uboot 官网为 http://www.denx.de/wiki/U-Boot/

种类

描述

uboot 官方的 uboot 代码

uboot 官方维护开发的 uboot 版本,版本更新快,基本包含所有常用的芯片。

半导体厂商的 uboot 代码

半导体厂商维护的一个 uboot,专门针对自家的芯片,在对自家芯片支持上要比 uboot 官方的好

开发板厂商的 uboot 代码

开发板厂商在半导体厂商提供的 uboot 基础上加入了对自家开发板的支持

本实验是 uboot 使用开发板厂商已经移植好的 ubootuboot-imx-2016.03-2.1.0-g8b546e4.tar.bz2

3、编译U-Boot

首先在 Ubuntu 中安装 ncurses 库,否则编译会报错,安装命令如下:

sudo apt-get install libncurses5-dev

解压缩 

tar -vxjf uboot-imx-2016.03-2.1.0-g8b546e4.tar.bz2

方法一: 手工编译 uboot

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_ddr512_emmc_defconfig

make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j12

ARCH=编译arm 设置目标为 arm 架构

CROSS_COMPILE 指定指定所使用的交叉编译器

方法二:shell脚本编译

​​​​示例代码  mx6ull_alientek_emmc.sh 文件代码

 #!/bin/bash

 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean

 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_ddr512_emmc_defconfig

 make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j12

使用 chmod 命令给予 mx6ull_alientek_emmc.sh 文件可执行权限,然后就可以使用这个 shell 脚本文件来重新编译 uboot,命令如下:

./mx6ull_alientek_emmc.sh

4、烧写U-Boot

使用imxdownload 软件将uboot 烧写到 SD 卡中,命令如下:

chmod   777   imxdownload //给予 imxdownload 可执行权限,一次即可

./imxdownload u-boot.bin /dev/sdd

5启动U-Boot

成以后将 SD 卡插到 I.MX6U-ALPHA 开发板上,BOOT 设置从 SD 卡启动,使用 USB 线将 USB_TTL 和电脑连接,也就是将开发板的串口 1 连接到电脑上。打开 MobaXterm,设置好串口参数并打开,最后复位开发板。

三、更改网络配置

将开发板接入网线

打开虚拟机,通过以下代码获取虚拟机ip地址(虚拟机网络设置必须在网桥模式下)

ifconfig

 

 获得虚拟机ip地址

在MabaXterm中输入以下代码,获取空闲ip地址

dhcp

 设置本机ip,网关,服务器地址

setenv ipaddr 192.168.1.151
setenv gatewayip 192.168.1.254
setenv serverip 192.168.1.109

 与虚拟机端进行连接

ping 192.168.1.109

 

显示连接成功

四、镜像传输

在虚拟机的nfs文件夹中放入zImage文件

用以下指令进行资源传输

nfs 80800000 192.168.61.106:/home/jonathan/linux/nfs/zImage

 注意:虚拟机端和开发板端nfs版本号需一致

修改nfs版本号

在虚拟机终端输入

sudo vim /etc/default/nfs-kernel-server

打开文件进行三项编辑,如下 

然后保存、退出,重启nfs服务即可 

五、利用boot命令启动linux

1.通过以下指令检验zImage是否导入开发板

mmc dev 1
fatcls mmc 1:1

易发现zImage文件已存在

输入以下代码进行驱动

fatload mmc 1:1 80800000 zImage
fatload mmc 1:1 83000000 imx6ull-14x14-emmc-4.3-800x480-c.dtb
bootz 80800000 - 83000000

 

看到开发板显示,则证明成功。

其他boot命令可参考

Boot命令使用 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JonathanQian-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值