Linux环境搭建--开发板端

上节完成了平台端的环境搭建,我们的开发板端也要安装相应的服务。

一.首先说一下我们开发板的启动流程:

bootloader 初始化硬件,然后加载内核 kernel 然后挂接根文件系统,然后启动我们的应用程序。

二.

当然第一步是要下载我们的bootloader,可以使用j-link等进行烧写(不同板卡烧写方式不同),一般我们使用SD卡的方式进行烧写,SD卡需要制作成启动卡,制作方法可以百度。将我们的bootloader放入SD卡中,

 

关闭开发板电源,将拨码开关SW1调至(1000)(SD启动模式)

刚才做好的SD启动盘插入SD卡插槽

打开电源

然后烧到我们的flash中,之后就可以通过bootloader来进行更多的操作。

(u-boot的移植适配板卡后期详细说明)

boot烧写完成后,之后就可以从flash启动boot。拨号开关SW1 为0110 (从EMMC(FLASH的一种) 启动)

 

这个时候就可以通过串口查看到显示信息了。

如果没有打印信息,需要检查以下几个方面:

1. 连接串口线到板子的COM2口   //如果是用笔记本电脑的,需装usb转串口驱动(用360驱动大师在线装方便)

2. 确认拨号开关SW1 为0110 (从EMMC(FLASH的一种) 启动)

3.  检查 波特率设置, 流控设置

4. 可能为flash中u-boot被破坏了,切换到SD卡启动,重新烧写boot(SW1 改为1000)

 

 

三.配置网络实现三板互通。

 

https://blog.csdn.net/thisway_diy/article/details/77976776 可以参考韦东山老师的教程。

其实也是比较简单的,

------------------------          

 |板子   192.168.2.99   |

------------------------

------------------------

 |电脑 192.168.2.100   255.255.255.0  192.168.2.1 | //做中转用,和板子虚拟机IP要在同一网段, 且不能和它们IP一样    

------------------------

------------------------

 |虚拟机  192.168.2.129 |

 

此时我们通过电脑ping 虚拟机时ping的通的,但是虚拟机ping电脑是ping不通的。

这里注意我们要关闭我们电脑的杀毒软件,并且关闭防火墙。

windows 防火墙 à 高级设置 à 入站规则,启动文件和打印机共享(ICMPv4-in 专用公用)

此时就可以ping通了。

 

电脑和虚拟机的IP设置完了,接着要设置板卡的IP了。

 

启动板子,快速按任意键停在boot处,设置u-boot 的环境变量

# setenv serverip 192.168.2.129    //注意它与虚拟机里 ubuntu 的ip要一致

# setenv ipaddr 192.168.2.99

# setenv gatewayip  192.168.2.1

# saveenv   保存设置

# pri  /*查看设置后效果                        

 

# ping 192.168.2.129   //测试网络是否连通  ,注意在u-boot中, 它能ping电脑, 电脑不能ping它  //注意,要拔掉jtag线,否则ping 会重启

host 192.168.2.129 is alive    //is alive 表示ok   

Linux环境搭建--开发板端_第1张图片

          

    

四.查看boot的指令

通过help我们可以看到支持很多的命令,也可以更具需要进行添加。

1.使用tftp服务,实现内核的加载

tftp使用时,服务器ip要设置我们电脑的IP。

# setenv bootcmd tftp 41000000 uImage\;tftp 42000000 exynos4412-fs4412.dtb\;bootm 41000000 - 42000000 /* 设置tftp方式加载内核

 

  setenv bootcmd    设置环境变量(自启动命令 bootcmd)

  tftp 41000000 uImage\;  通过tftp从虚拟机/tftpboot目录下下载内核uImage到板子    的内存  41000000 处。\; 用于分割多个命令

  tftp 42000000 exynos4412-fs4412.dtb  通过tftp下载设备树文件 exynos4412-fs4412.dtb 到板子的内存  42000000 处

  bootm 41000000 - 42000000   启动内核(41000000处放的是内核uImage, 42000000处放的是设备树文件)

2.使用nfs服务,NFS根文件系统的挂载

首先启动虚拟机服务端的nfs服务。

虚拟机端cat /etc/exports 来查看路径。

 

#setenv bootargs root=/dev/nfs nfsroot=192.168.2.129:/nfs/rootfs rw console=ttySAC2,115200 init=/linuxrc ip=192.168.2.99  /* 挂载nfs  rootfs

  setenv bootarg  设置环境变量( bootarg是启动参数)

  root=/dev/nfs  指定根文件系统类型是 nfs

  nfsroot=192.168.2.129:/nfs/rootfs  指定source rootfs的位置(是在ip 是192.168.9.120的机器上 ,的/source/rootfs目录下). 注意/nfs/rootfs必须和前面NFS服务配置文件设置一致             

  # savenenv //保存环境变量

 

但是还是挂接不上,但是内核已经启动起来了。

参数正确,网络没问题,nfs虚拟机挂接没有问题,但是还是不行。

Linux环境搭建--开发板端_第2张图片

加载文件系统失败,具体原因应该是内核权限配置问题,在之后的内核编译中在详细进行问题查找。先更换内核继续进行。

 

五.练习

完成了环境的搭建。在电脑里写一个应用程序如hello.c ,里面就简单的输出你的创客注册的名字。 通过NFS的同步, 在板子上能运行该程序,输出你的名字?

1. 挂接上虚拟机的nfs文件系统,后将编译好的程序直接放到虚拟机目录下,开发板就能直接查看,然后直接运行即可,注意程序要使用arm-gcc 工具链进行编译。

 

arm-cortex_a8-linux-gnueabi-gcc hello.c -o hello

cp hello /home/linux/nfs/rootfs/ 目录下。

你可能感兴趣的:(#,Linux环境搭建)