一、 实验目的
学会嵌入式RAMDISK的配置、移植,根据目标系统要求配置RAMDISK。
二、实验内容
本次实验使用Redhat linux 9.0 操作系统环境安装arm linux 的开发库及编译器。学习嵌入式RAMDISK的配置、移植,根据目标系统要求配置RAMDISK。以及ARM 开发板的使用和开发环境的设置。下载已经编译好的内核文件到嵌入式控制器中。
三、预备知识
C 语言的基础知识、程序调试的基础知识和方法,LINUX 的基本操作。
四、实验设备及工具(包括软件调试工具)
硬件:SZ7207G ARM 嵌入式开发板、PC 机Pentumn500 以上, 硬盘10G 以上。
软件:PC 机操作系统redhat linux 9.0 + linux 开发环境
五、实验步骤
1.进入LINUX开发环境
首先以ROOT用户登陆主机LINUX,在[root@localhost root]#输入:
[root@localhost root]# chroot /home/HLDK /x86/sbin/login
localhost login: root
passwd: linux1
输入正确的密码后会出现下面的提示:
Welcome to HMS720 ARM7 Linux Development Kit
Hynix Semiconductor Inc.
bash-2.03#
这时, 当前路径已经被改到/home/hms720 了
表示已进入开发系统
2、进入目录/home/hms720/LinuxHEI720/Boot
在BASH下输入:
bash-2.03#cd /home/hms720/LinuxHEI720/Boot
3、配置RAMDISK
在bash-2.03#下输入./mkroot
系统将运行RAMDISK配置脚本,并出现RAMDSIK配置菜单,各配置选项如下:
库选择选项(配置结果保存在/home/hms720/LinuxHEI720/Boot下module.list,file.list文件中显示)。
Library Select
[*]Glibc2.1.3 basic
[*]Glibc2.1.3 math
[ ]Lib pthread
[*]Lib termcap
系统工具选项
System Binary/Utility
[*] Basic(init, agetty, mingetty)
[*] Filesystem(fdisk, mkfs)
[*]Ext2 filesystem(mkfs.ext2)
[*]Minix filesystem(mkfs.minix)
[ ]MSDOS filesystem(mkfs.msdos, mkfs.dos, fsck.msdos,
fsck.vfat)
[*] Login utils(autologin, login, passwd, su)
/bin ,usr/bin 工具选项
/bin, /usr/bin Utility
[*] Bash shell
[ ]Tcsh shell
[*]Basic1(echo, cp, ls, ln, mkdir, mknod, mv pwd, rm, rmdir,
touch)
[*]Basic2(cat, chgrp, chmod, chown, date, head, sty, tail)
[*]Basic3(arch, basename, date, echo, hostname, id, sleep,
tty,uname)
[ ]Dd utility(dd)
[ ]Od utility(od)
[*]Disk utility(df)
[*]Mount utility(mount, umount)
[*]Process utility(kill, ps)
[*]Grep utility(grep, egrep, fgrep)
[*]Grep utility(sed)
[ ]Misc1 (cal, cksum, comm., csplit, cut, expand, fmt, fold)
[ ]Misc2 (join, paste, pr, sort, sum, tr)
[ ]Misc3 (tsort, unexpand, uniq)
Microwindows配置选项
Microwindows
Microwindows type
(X) NanoX
( )Mwin
Reference(VGA) board and PDA(LCD) board
(X)Ref_VGA_640x480
( )PDA_LCD_240x320
[ ]Demos
Network utility
[*] Basic (ifconfig)
FAT(vfat, msdos) module
[ ] MSDOS filesystem
[*]VFAT filesystem
PCMCIA Module
[*]PCMCIA module and utility
[*]IDE module
[*]Network module
---
Load an Alternate Configuration File
Save Configuration to an Alternate File
根文件系统映像包含基本的文件系统和一些有用的选项, 基本文件系统包含根文件系统目录和一些设备文件、数据库和在/etc下的一些脚本文件, 所有这些都被放在了~/LinuxHMS720/Boot/basicfs/目录下, 你可以增加自己所需要的目录, ( 确保这个目录是在菜单脚本里不存在, 否则会被覆盖掉。) 并修改脚本文件, 以使菜单脚本中包含你的目录.
4. 以上要求配置好各选项,保存并退出配置菜单
5.编译内核
在/home/hms720/LinuxHEI720/Boot下修改mkboot.pl文件:
“$maxSize=14”该为“$maxSize=20”
在BASH下输入:
hms720[0]% ./mkboot.pl
出现提示:
Reading “module.list” to get files to install
>>Size [2-20]:20
>>filesystem(1.ext2fs 2.minix):1
要求输入文件系统大小,文件系统大小在2-16M之间选择,文件系统大小应根据目标系统选择合适的大小,太小则不能装入应用程序,太大则浪费内存空间。
输入文件系统大小值后,系统会自动制作文件系统,系统完成后会在当前目录生成RAMDISK映象文件rootfs.img
6.文件系统修改
制作好的文件系统往往在使用过程中作修改,修改文件系统可以通过改变配置脚本来改变,但较复杂,当有新的应用程序要装入系统时可以将应用程序直接拷入文件系统而不需重新编译文件系统。
在/home/hms720/LinuxHEI720/Boot下输入
mount –o loop rootfs.img basicfs 将文件系统挂接在目录basicfs上,进入basicfs可以看到整个文件系统的内存,可以在目录中直接修改文件。
我们要修改文件系统中的/home/HLDK/home/hms720/LinuxHEI720/Boot/basicfs/etc/microwin/NANORC文件,用文本编辑器打开它,修改后的结果如下:
#/etc/microwin/NANORC
MICROWIN_HOME=/usr/microwin
PATH="$PATH:$MICROWIN_HOME/bin"
PATH="$PATH:/usr/nanox"
MOUSE_PORT=/dev/ttyS1
export MOUSE_PORT
MOUSE_TYPE=ms
export MOUSE_TYPE
/usr/microwin/bin/launcher.sh
#logout
除此之外我们还要修改文件系统中的/etc/rc.d/rc.sysinit文件并在/etc/rc.d/init.d目录增添文件,该文件夹共包含49项,主要用于系统服务程序的控制。修改后的sysinit文件内容如下:
#/etc/rc.d/rc.sysinit
#!/bin/sh
# Set the path
PATH=/bin:/sbin:/usr/bin:/usr/sbin
export PATH
# Read in config data.
if [ -f /etc/sysconfig/network ]; then
. /etc/sysconfig/network
else
NETWORKING=no
fi
HOSTNAME=localhost
rm -f /etc/mtab~ /etc/mtab~~
mount /proc
cp -f /proc/mounts /etc/mtab
# load modules
#modprobe ts-h7202
modprobe soundcore
modprobe h720x_sound
touch /var/run/utmp
touch /var/log/wtmp
chgrp utmp /var/run/utmp /var/log/wtmp
chmod 0664 /var/run/utmp /var/log/wtmp
另外最重要的是在文件系统中的/lib目录和/usr/lib目录中增加以后我们实验程序运行所需要的库文件,如jpeg图片格式的支持库(libjpeg.a)、编译flnx之后所生成的库文件(libfltk.a)和 microwindows运行所需要的支持库等等。
修改完成后输入
umount basicfs
可以保存卸下文件系统。
7.下载文件系统
在/home/hms720/LinuxHEI720/Boot下输入
gzip rootfs.img
将文件系统压缩成.gz文件,重新启动计算机进入WINDOWS,在WINDOWS下用USB将文件系统下载至目标板,并在超级终端中以root用户进入文件目录,观察其结果。
六、实验思考
如何将用户程序加入文件系统?如何选择合适的文件系统大小?