微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 制作ZedBoard上linux根文件系统(ramdisk)

制作ZedBoard上linux根文件系统(ramdisk)

时间:02-10 来源:网络整理 点击:

Digilent的OOB设计给出了一个ZedBoard上完整的运行的linux系统所需要的所有文件,包括配置FPGA的bit文件、 配置ARM PS系统的First-Stage boot loader(FSBL)和引导linux需要的Second-Stage boot loader(SSBL)、Linux内核zImage、设备树文件devicetree_ramdisk.dtb 以及根文件系统ramdisk8M.image.gz。linux在运行时,加载这个ramdisk8M.image.gz镜像文件到DDR3中来执行实现根文件系统的建立,很多并不像在ubuntu中对文件系统操作那样简单。本小节介绍如何制作ZedBoard可运行的根文件系统ramdisk8M.image.gz镜像文件,参照xilinx wiki 。

通过本小节的学习,在以后的开发中,可以更加顺利的修改文件系统,给设计带来方便。

硬件平台:Digilent ZedBoard

开发环境:Windows XP 32 bit + Wmare 8.0 + Ubuntu 10.04 + arm-linux-xilinx-gnueabi交叉编译环境

Zedboard linux: Digilent OOB Design

1、FHS(Filesystem Hierarchy Standard)标准介绍

当我们在linux下输入ls / 的时候,见到的目录结构以及这些目录下的内容都大同小异,这是因为所有的linux发行版在对根文件系统布局上都遵循FHS标准的建议规定。该标准规定了根目录下各个子目录的名称及其存放的内容:

目录名

 

存放的内容

 

/bin

 

必备的用户命令,例如ls、cp等

 

/sbin

 

必备的系统管理员命令,例如ifconfig、reboot等

 

/dev

 

设备文件,例如mtdblock0、tty1等

 

/etc

 

系统配置文件,包括启动文件,例如inittab等

 

/lib

 

必要的链接库,例如C链接库、内核模块

 

/home

 

普通用户主目录

 

/root

 

root用户主目录

 

/usr/bin

 

非必备的用户程序,例如find、du等

 

/usr/sbin

 

非必备的管理员程序,例如chroot、inetd等

 

/usr/lib

 

库文件

 

/var

 

守护程序和工具程序所存放的可变,例如日志文件

 

/proc

 

用来提供内核与进程信息的虚拟文件系统,由内核自动生成目录下的内容

 

/sys

 

用来提供内核与设备信息的虚拟文件系统,由内核自动生成目录下的内容

 

/mnt

 

文件系统挂接点,用于临时安装文件系统

 

/tmp

 

临时性的文件,重启后将自动清除

 

制作根文件系统就是要建立以上的目录,并在其中建立完整目录内容。其过程大体包括:

编译/安装busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目录
利用交叉编译工具链,构建/lib目录
手工构建/etc目录
制作根文件系统的镜像文件
下面就来详细介绍这个过程。

1、编译安装busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目录

首先下载BusyBox源码,使用命令
git clone git://git.busybox.net/busybox

当然,和往常一样,为了给上不了国外网站的同学们提供便利,这里提供一个国内的下载链接:
busybox下载

下载后,切换到busybox目录,并进行默认配置
make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- defconfig

使用命令
make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- menuconfig

打开可视化界面配置

逐一进入
BusyBox SetTIngs->InstallaTIon OpTIons->BusyBox installaTIon prefix

将目录设置为
/home/devel/_rootfs

保存后退出,并安装busybox
make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- install

安装好后,我们能够在/home/devel/_rootfs目录下看到生成了的bin sbin usr/bin usr/sbin 目录,其下包含了我们常用的命令,这些命令都是指向bin/busybox的软链接。

3、安装Dropbear
我对dropbear的功能不是很明白,从百度上获取到的信息是"dropbear实现完整的SSH客户端和服务器版本2协议。它不支持SSH版本1 的向后兼容性,以节省空间和资源,并避免在SSH版本1的固有的安全漏洞。还实施了SCP的。SFTP支持依赖于一个二进制文件,可以通过提供的OpenSSH或类似的计划。"由于xilinx wiki上有这样的步骤,还是老老实实的做吧。

下载dropbear,并解压
wget
tar xfvz dropbear-0.53.1.tar.gz

配置dropbear
./configure --prefix=/home/devel/_rootfs --host=arm-xilinx-linux-gnueabi --disable-zlib CC=arm-xilinx-linux-gnueabi-gcc LDFLAGS="-Wl,--gc-sections" CFLAGS="-ffunction-sections -fdata-sections -Os"

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top