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

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

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

编译
make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" MULTI=1 strip

安装dropbear并创建符号链接
make install
ln -s /home/devel/_rootfs/usr/bin/scp

4、利用交叉编译工具链,构建/lib目录
进入/home/devel/_rootfs,创建lib目录
cd /home/devel/_rootfs
bash> mkdir lib

将交叉编译环境库拷贝到这个目录下
cp /opt/14.2/ISE_DS/EDK/gnu/arm/lin64/arm-xilinx-linux-gnueabi/libc/lib/* lib -r

同样,将工具链拷贝到sbin/和usr/bin/下
cp /opt/14.2/ISE_DS/EDK/gnu/arm/lin64/arm-xilinx-linux-gnueabi/libc/sbin/* sbin/ -r
cp /opt/14.2/ISE_DS/EDK/gnu/arm/lin64/arm-xilinx-linux-gnueabi/libc/usr/bin/* usr/bin/ -r

意:很多网友说,自己的电脑上没有lin64文件夹,只有nt文件夹。这个问题是由于在安装ISE版本是,操作系统32位/64位决定的。我在XP(32位)下安装时也只有nt文件夹,因而我选择一个"懒"的方法:把OOB中的lib/、sbin/bin、 usr/bin文件夹直接拷贝出来,相应替换掉。

?usr/bin目录文件下载

?sbin目录文件下载

?lib目录文件下载

5、创建其他目录和相应配置
至此,几个重要的目录和文件都已经创建完毕,需要安装FHS要求把其他目录和文件创建。切换到_rootfs目录下,使用命令
mkdir dev etc etc/dropbear etc/init.d mnt opt proc root sys tmp var var/log var/www

创建"etc/fstab"文件,内容如下
LABEL=/ / tmpfs defaults 0 0
none /dev/pts devpts gid=5,mode=620 0 0
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
none /tmp tmpfs defaults 0 0

创建"etc/inittab"文件,内容如下
::sysinit:/etc/init.d/rcS
# /bin/ash
#
# Start an askfirst shell on the serial ports
ttyPS0::respawn:-/bin/ash
# What to do when restarting the init process
::restart:/sbin/init
# What to do before rebooting
::shutdown:/bin/umount -a -r

创建"etc/passwd"文件,内容如下
root:$1$qC.CEbjC$SVJyqm.IG.gkElhaeM.FD0:0:0:root:/root:/bin/sh

创建文件"etc/init.d/rcS" ,内容如下
#!/bin/sh

echo "Starting rcS..."

echo "++ Mounting filesystem"
mount -t proc none /proc
mount -t sysfs none /sys
mount -t tmpfs none /tmp

echo "++ Setting up mdev"

echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s

mkdir -p /dev/pts
mkdir -p /dev/i2c
mount -t devpts devpts /dev/pts

echo "++ Starting telnet daemon"
telnetd -l /bin/sh

echo "++ Starting http daemon"
httpd -h /var/www

echo "++ Starting ftp daemon"
tcpsvd 0:21 ftpd ftpd -w /&

echo "++ Starting dropbear (ssh) daemon"
dropbear
echo "rcS Complete"

并设置其权限
chmod 755 etc/init.d/rcS
sudo chown root:root etc/init.d/rcS

BTW,我们的后续设计中,为了实现应用程序上电后自动启动运行,可以修改rcS文件内容,将应用程序执行命令写入到rcS文件中。

6、生成ramdisk镜像文件

至此,根文件系统所有需要的目录和文件已经准备完毕。查看_rootfs下的内容

这个根文件系统能够被执行,还需要将其制作成image镜像文件,并压缩。

接下来的操作如果和xilinx wiki上操作一致,最终的文件系统并不能被识别,所以这里介绍的和xilinx wiki有少许不同。

创建镜像文件ramdisk8M.image,并设置大小为8M,文件系统格式为ext2:
cd ~
dd if=/dev/zero of=ramdisk8M.image bs=1024 count=8192
mke2fs -F ramdisk8M.image -L "ramdisk" -b 1024 -m 0
tune2fs ramdisk8M.image -i 0
chmod 777 ramdisk8M.image

大小可以按照需要自己调整,但是最好不要超过32M。

创建ramdisk目录,将ramdisk8M.image 挂载到该目录下,
mkdir ramdisk
mount -o loop ramdisk8M.image ramdisk/

接下来,只需要将_rootfs目录下的内容全部拷贝到ramdisk下即可
cp -R /home/devel/_rootfs/* ramdisk

注意,这里cp的参数一定是R而非r。

这样,这个镜像文件的内容就是_rootfs目录下的内容了。将其卸载就可
umount ramdisk/

到此,根文件系统镜像文件ramdisk8M.image 制作完成,将其压缩

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

网站地图

Top