基于Linux系统移植-环境搭建

                                                                                                                              环境搭建

 

1、             shell

 shell和shell脚本有什么区别?确切一点说,Shell就是一个命令行解释器, 它的作用就是遵循一定的语法将输入的命令加以解释并传给系统。它为用户提供了一个向Linux发送请求以便运行程序的接口系统级程序,用户可以用 Shell来启动、挂起、停止甚至是编写一些程序。 Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言(就是你所说的shell脚本)。作为命令语言,它互动式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。它虽然不是 Linux系统内核的一部分,但它调用了系统内核的大部分功能来执行程序、创建文档并以并行的方式协调各个程序的运行。

 

2、bootloader 作用

1、初始化硬件   2、搬内核到内存

 

3、镜像

 所谓镜像文件其实和ZIP压缩包类似,它将特定的一系列文件按照一定的格式制作成单一的文件,以方便用户下载和使用

 

4、  桥接

 

5、安装编译器时,最好不要去修改环境变量,因为如果以后有的编译器(arm-gcc)版本不一样,但是名称一样,但是想使用后来安装的编译器是无法的,最好是在使用的时候将要用的编译器名称一并写出来。

 

6、环境变量参数放在flash中,在U-BOOT启动时,会去读取环境变量参数,选择如波特率、IP、MAC等参数

 

7、U-boot中有一个IP 内核也有一个IP,这两个IP可以重复,因为当内核启动后U-boot就不再使用了,他的任务即完成。

 

8、Tftp和nfs的功能

 

Tftp:只是一个文件传输的工具,在u-boot启动后(如果是通过网络下载内核),会将u-boot(目标板为客服端)中所指向的tftp的服务器端(PC端)里的内核下载到内存中。然后开始运行内核。

TFTP协议是简单的文件传输协议,所以实现很简单,使用方便,正好适合目标板BOOTLOADER使用。但是文件传输是基于UDP,文件传输(特别是大文件)是不可靠的。

  Tftp:主机端tftp配置

1、    检查是否安装tftp server

   命令:dpkg –s  tftp-hpa

2、如果未安装,安装tftp-hpa

Apt-get install tftp-hpa tftp-hpa   (需要联网)

 

3、修改文件 vim/etc/default/tftpd-hpa,开启tftp服务

在root权限下

Vim /etc/default/tftpd-hpa

 

TFTP_USERNAME=”tftp”

TFTP_DIRECTORY=”/tftpboot”  服务器端存放文件的目录(即内核所在位置,此目录需要先创建)

(其他不做修改)

   4、创建tftpboot目录,启动tftp-server

      Mkdir /tftpboot

      Chmod a+w /tftpboot  修改此目录的权限

      Serveice  tftpd-hpa  restart     重启服务器

 

   5、在本机可以测试是否tftp是否正常

      Tftp  127.0.0.1

     Get   文件名(此文件名是在/tftpboot中存在的,会将文件下载到当前目录)

 

  6、在目标板上运行

     首先将目标板上的服务器的IP地址和服务器端tftp下载的文件路径设置到u-boot中。

     设置内核加载方式为tftp下载,set bootcmd

 

NFS:

服务的主要任务是把本地的一个目录通过网络输出,其他计算机可以远程地挂接这个目录并且访问文件。  实际中,本地计算机上设置一个根文件系统(相当于Ubuntu下那个根文件系统,但是对于Ubuntu来说只是一个目录),然后让目标板挂接到此目录,以后目标板的根文件系统就在此目录下,当在PC端操作此目录,目标表上同时更新,这是相当于镜像。

(1)设置共享目录

运行命令

#gedit /etc/exports

编辑nfs 服务的配置文件(注意:第一次打开时该文件是空的),添加以下内容:

/home/root_nfs*(rw,sync,no_root_squash)

其中:

/home /root_nfs 表示nfs 共享目录,它可以作为开发板的根文件系统通过nfs 挂接;

* 表示所有的客户机都可以挂接此目录(可以只允许某个IP访问,加入IP地址代替*,“*(“ 中间不能有空格 )

rw 表示挂接此目录的客户机对该目录有读写的权力

no_root_squash 表示允许挂接此目录的客户机享有该主机的root 身份

(2) 建立共享目录

(3) 启动和停止nfs 服务

在命令行下运行:

#/etc/init.d/nfs start

这将启动nfs 服务,可以输入以下命令检验nfs 该服务是否启动。

# mount -t nfs 服务器ip地址: /home/root_nfs  /mnt/ (/mnt/nfs ,其中nfs需要提前创建)

如果没有出现错误信息, 您将可以浏览到/mnt 目录中的内容和

/home/root_nfs 是一致的。

使用这个命令可以停止nfs 服务:

#/etc/init.d/nfsstop

 

7、注意u-boot的命令

   Pri 显示环境参数

   Set

 

9、      在VMware虚拟机环境下网卡桥接  双网卡设置

 

原理:在ubuntu下设置了两张虚拟的网卡,而在windows下有两张物理网卡,这样需要将ubuntu下的两张虚拟网卡桥接(镜像或者叫串联)到两张物理网卡上。然后各自使用物理网卡与外界通信。

 

 

步骤:(如果主机有两张物理网卡)

1、点击vmvare中的编辑------虚拟网络编辑器

 

2、添加到两个网络,都设置为桥接模式

 

3、为每个网卡设置IP地址(连接英特网的可以不用设置)  在有上角的上下图标

 

4、编辑设置IP地址 手动设置

 

 

5、在虚拟机中  设置项  设置桥接到物理网卡上

 

系统启动总结:

首先三星的s5pc100处理器内部有一个rom,会去将外部nand中U-boot读取到内存中,然后u-boot运行起来后,初始化硬件,并将内核搬移到内存中(内核存在网络虚拟文件中或者NAND中),然后开始运行内核,当内核运行起来后开始加载根文件系统(如果是调试阶段,将根文件系统挂在到PC机的文件目录下,直接在PC下编译文件,然后目标板自动更新,这样不用烧写到nand中,存放在PC机上的,镜像到目标板)。

 

 

 

 

 

 

 

 

 

 

 

             

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值