lv13 环境搭建 2

一、开发板运行Linux需要的原料

1.1 u-boot-fs4412.bin

开机运行的第一个裸机程序被称为bootloader,主要负责:

  1. 加载内核可执行文件到内存运行

  2. 给待运行的内核准备好启动参数

  3. 加载二进制设备树文件到内存

  4. 安装系统

u-boot是一个开源的bootloader程序,u-boot-fs4412.bin由其源码编译生成,详情见《系统移植之u-boot移植》课程

1.2 uImage

Linux内核的裸机可执行文件,由Linux源码编译生成,编译过程参见本章第三节,或参见《系统移植之内核移植》课程

1.3 exynos4412-fs4412.dtb

ARM-Linux内核启动、运行过程中需要一些来自各芯片手册的编程依据,该文件专门用于记录这些依据

设备树文件有两种格式:

  1. .dts、.dtsi:文本形式,便于书写、修改

  2. .dtb:二进制形式,由.dts文件经专门工具处理后生成

1.4 rootfs.tar.xz

Linux内核运行成功后,需要运行第一个应用程序(即祖先进程)以及后续其它应用程序

而任何应用程序的运行需要各种文件的支持,如:可执行文件、库文件、配置文件、资源文件

这些文件的持久保存和按路径访问需要外存分区特定文件系统的支持

rootfs就是Linux系统根目录所在的分区,其内包含根分区下众多常用app所需的文件

根分区的制作过程请见《系统移植之根文件系统的制作》课程

rootfs.tar.xz文件是根分区打包生成的压缩文件

为了统一起见:

  1. 大家ubuntu版本统一为ubuntu14.04 32位版,否则有些安装步骤可能有变化

  2. 大家统一在ubuntu系统登录用户家目录下创建文件夹fs4412,用于存放后面安装环境所用的所有文件,过程如下:

1. cd ~
2. mkdir fs4412
3. 将uImage u-boot-fs4412.bin exynos4412-fs4412.dtb gcc-4.6.4.tar.xz mkimage rootfs.tar.xz sdfuse_q.zip linux-3.14-fordriver.tgz等8个文件传到~/fs4412目录下备用

二、交叉工具链的安装

cd ~/fs4412
​
sudo tar xvf  gcc-4.6.4.tar.xz -C /opt 
​
cd /opt/gcc-4.6.4/bin
​
pwd 
#复制pwd命令的输出结果 ------ 完整的绝对路径
​
cd ~
​
vim .bashrc
#在.bashrc文件的最后一行添加:export PATH=$PATH:第6步复制的路径
#保存退出.bashrc
​
.  .bashrc #让第9、10步的修改生效
​
arm加两次tab键,能看到一坨的arm-none-linux开头的显示则说明安装成功

三、tftp安装

#安装tftp-hpa tftpd-hpa:
sudo apt-get install tftp-hpa tftpd-hpa
​
sudo mkdir /tftpboot #创建tftp服务端共享目录
sudo chmod -R 777 /tftpboot #修改目录权限
​
#修改服务端配置文件---tftpd-hpa
sudo vim /etc/default/tftpd-hpa
#文件内容如下:
#RUN_DAEMON="no"
#OPTIONS="-s /tftpboot -c -p -U tftpd"
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s"
​
#运行服务端
sudo service tftpd-hpa restart
​
#测试
cd /tftpboot
touch xxx
vim xxx #随便输入一些内容后保存退出
cd ~
tftp 127.0.0.1
tftp>get xxx
tftp>q
cat xxx #查看xxx内容为上面输入的内容则表示安装成功,否则安装过程有问题

四、NFS安装

#nfs 安装
sudo apt-get install nfs-kernel-server
​
#编辑服务端配置文件----/etc/exports
sudo vim  /etc/exports
#在其内添加一行,内容如下:
/opt/4412/rootfs *(rw,sync,no_root_squash,no_subtree_check)
​
#创建挂载点目录并修改挂载点目录的访问权限
sudo mkdir /opt/4412/rootfs -p
sudo chmod 777 /opt/4412/rootfs
​
#启动NFS服务端(每一次修改/etc/exports都要重启nfs)
sudo service nfs-kernel-server restart
sudo service rpcbind restart
​
#验证安装是否正确
#在/opt/4412/rootfs下创建一个空文件
cd /opt/4412/rootfs
touch test
sudo  mount 127.0.0.1:/opt/4412/rootfs   /mnt
#127.0.0.1(这是被挂目录的主机IP)     
#ubuntu上NFS服务器上被挂目录的绝对路径/opt/4412/rootfs
#/mnt(挂载的目的地)
​
ls -l /mnt #如果有test的话就说明ok了
sudo rm /mnt/test
sudo mount /mnt #卸掉挂载的目录

你可能感兴趣的:(嵌入式开发,arm开发)