【正点原子I.MX6ULL驱动开发学习笔记】一、基础环境搭建,快速启动开发板


下文所使用到的一些工具下载,提取码:rdw7

一、Windows、Ubuntu和开发板的网络设置(桥接方式)

将电脑和开发板通过网线连接到路由器上,如下图所示,要确保三者处于同一个局域网。

在这里插入图片描述

1.1、VMWare设置 - 有线网卡

VMWare选择桥接模式,方法如下:

在这里插入图片描述

在桥接模式中选择有线网卡(最好直接禁用windows的wifi网卡,不易混淆),如下图操作:

在这里插入图片描述

1.2、三者IP设置

Windows的有线网卡IP、ubuntu的IP、开发板的IP,三个IP必须处于同一网段。

  • 设置Windows IP【192.168.10.101】

Windows的IP一般都是由路由器DHCP自动分配的,在命令行执行:ipconfig,查看它的IP。

为了防止IP频繁更改,我们将IP设置为固定IP,设置方法如下:

在这里插入图片描述

  • 设置Ubuntu IP 【192.168.10.102】

Ubuntu的IP一般都是自动分配的,在命令行执行:ifconfig,查看它的IP。

同windows一样,为了防止IP频繁更改,我们将IP设置为固定IP,设置方法如下:

在这里插入图片描述
然后保存,关闭再打开网络连接即可。【需要提醒的一点,关闭再打开之后会看到子网掩码变成24,这是正常的】

  • 设置开发板IP(进入u-boot) 【192.168.10.103】

注意:设置开发板的IP之前,需要下载好U-boot并进入到开发板。【见1.1.4】

setenv ipaddr 192.168.10.103
setenv ethaddr 00:04:9f:04:d2:35
setenv gatewayip 192.168.10.1
setenv netmask 255.255.255.0
setenv serverip 192.168.10.102
saveenv

1.3、ping测试

一般windows有防火墙,Ubuntu或者开发板(运行Linux系统)PING Windows是PING不通的,这个不要紧,只要windows能PING通对方即可。注意,处于运行Uboot的开发板,不回应PING数据,所以外界是PING不通UBOOT的,只能在UBOOT去PING别的电脑。由上述分析,我们只需测试两个即可:Windows PING Ubuntu测试 和 u-boot PING Ubuntu测试。

  • Windows PING Ubuntu测试

在这里插入图片描述

  • u-boot PING Ubuntu测试

在这里插入图片描述

上面两个都可以PING通,才能说明三者IP设置没问题。

二、烧写u-boot到开发板

2.1、确定SD卡分区

将SD卡通过读卡器插入到PC【注:SD卡一定要是FAT32格式】,并接入到Ubuntu下。

SD卡分区确定,只需在SD卡插入前后分别在Ubuntu终端输入ls /dev/sd*,对比新出现的分区,即是SD卡对应的分区。

eg:我的SD卡插入Ubuntu后出现了/dev/sdb 和 /dev/sdb1,那么我的SD卡对应的烧写分区就是 /dev/sdb

2.2、赋予imxdownload脚本权限

chmod 777 imxdownload

2.3、烧写u-boot.bin到SD卡

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

三、设置u-boot环境变量,通过 tftp下载zImage和设备树文件

3.1、ubuntu安装配置 tftp 服务器

在 Ubuntu 中执行以下命令安装 TFTP 服务:

sudo apt-get install tftp-hpa tftpd-hpa

然后,创建 TFTP 服务器工作目录(注意要赋予全部权限),并打开 TFTP 服务配置文件,如下:

mkdir -p /home/clay/tftpboot
sudo chmod 777 /home/clay/tftpboot
sudo vim /etc/default/tftpd-hpa

在配置文件/etc/default/tftpd-hpa 中,修改TFTP_DIRECTORYTFTP_OPTIONS字段,示例如下:

在这里插入图片描述

最后重启tftp服务器:

sudo service tftpd-hpa restart

3.2、验证tftp服务器

将编译好的zImage文件放入到ubuntu的/home/clay/tftpboot目录,并赋予zImage文件777权限。

进入开发板的u-boot,输入tftp 80800000 zImage下载zImage文件。若如下图所示,则表示zImage下载成功,tftp服务器搭建成功。

在这里插入图片描述

3.2、准备zImage和dtb文件,设置u-boot环境变量

3.2.1、准备zImage和dtb文件

将zImage文件和imx6ull-alientek-emmc.dtb文件放置到/home/clay/tftpboot目录,如下图所示:

在这里插入图片描述

注:需要将dtb文件也赋予777权限

3.2.2、设置u-boot环境变量

将开发板上的拨码开关设置为SD卡启动,插入SD卡到开发板,进入u-boot。然后设置以下环境变量:

setenv bootcmd 'tftp 80800000 zImage;tftp 83000000 imx6ull-alientek-emmc.dtb;bootz 80800000 - 83000000'
saveenv

四、设置u-boot环境变量,通过nfs挂载根文件系统

4.1、ubuntu安装配置 nfs

首先,执行以下命令安装 NFS 服务:

sudo apt-get install nfs-kernel-server

然后编辑/etc/exports 文件,添加 NFS 服务导出的工作目录:

sudo vim /etc/exports

添加 NFS 目录:下面以/home/clay/为例,将其添加到/etc/exports 文件中, 如下:

/home/clay/nfs *(rw,nohide,insecure,no_subtree_check,async,no_root_squash)

最后,重启 NFS 服务:

sudo service nfs-kernel-server restart

4.2、验证nfs服务器

如果一切正常,可以在 Ubuntu 中测试 NFS 服务:

sudo mount -t nfs 127.0.0.1:/home/clay/nfs /mnt

这样访问/mnt目录和访问/home/clay/nfs目录就是一样的了

没有问题后,取消挂载

sudo umount /mnt

4.3、准备根文件系统,设置u-boot环境变量

4.3.1、准备根文件系统

rootfs.tar.bz2文件放置到/home/clay/nfs/rootfs目录,然后输入以下命令进行解压:

tar -jxvf rootfs.tar.bz2

4.3.2、设置u-boot环境变量

setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.10.102:/home/clay/nfs/rootfs ip=192.168.10.103:192.168.10.102:192.168.10.1:255.255.255.0::eth0:off'
saveenv

五、启动开发板

如果当前在u-boot中,直接输入boot即可启动Linux系统,否则按下开发板的复位键即可。

开发板启动后如下图所示:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/ReCclay/article/details/107143789