北京电子科技学院(BESTI)
实验报告
课程:信息安全系统设计基础 班级:1353
姓名:芦畅 傅冬菁
学号:20135308 20135311
成绩: 指导教师:娄家鹏 实验日期:2015.11.10
实验密级: 预习程度: 实验时间:15:30~18:00
仪器组次: 必修/选修: 实验序号:1
实验名称:实验一:Linux开发环境的配置和使用
实验目的与要求:
1.熟悉linux开发环境;
2.学会基于 S3C2410 的 linux 开发环境的配置和使用;
3.使用linux的armv4l-unknown-linux-gcc编译;
4.使用基于NFS方式的下载调试,了解嵌入式开发的基本过程;
5.正确使用连接线等实验仪器,并注意保护实验箱。
实验仪器:
名称 |
型号 |
数量 |
嵌入式开发平台 |
UP-NETARM2410-CL |
1 |
PC机 |
DELL |
1 |
实验内容、步骤与体会:
1. 启动实验平台
新建一个通信终端arm,在PC机串口设置窗口,设置通信的格式和协议。波特率为115200,数据位8,无奇偶校验,停止位1,无数据流控制。
2.通过ls查看程序目录
常见指令
ls 以默认方式显示当前目录文件列表 ls -a 显示所有文件包括隐藏文件 ls -l 显示文件属性,包括大小,日期,符号连接,是否可读写及是否可执行 cd〈目录〉 切换到当前目录下的子目录 cd / 切换到根目录 cd .. 切换到到上一级目录 rm 〈file〉 删除某一个文件 rm -rf dir 删除当前目录下叫dir的整个目录(包括下面的文件或子目录) cp 〈source〉 〈target〉 将文件source复制为target cp /root/source . 将/root下的文件source复制到当前目录 mv 〈source〉 〈target〉 将文件source更名为target cat 〈file〉 显示文件的内容,和DOS的type相同 find /path -name 〈file〉 在/path目录下查找看是否有文件file vi 〈file〉 编辑文件file man ls 读取关于ls命令的帮助 startx 运行Linux图形有环境 shutdown -h now 关闭计算机 reboot 重新启动计算机 扩展命令 tar 压缩、解压文件 解压文件 tar文件:tar xf xxx.tar gz文件: tar xzvf xxx.tar.gz bz2文件:tar xjvf xxx.tar.bz2 压缩文件 tar文件:tar cf xxx.tar /path gz文件: tar czvf xxx.tar.gz /path bz2文件:tar cjvf xxx.tar.bz2 /path mount -t ext2 /dev/hda1 /mnt 把/dev/hda1装载到/mnt mount -t iso9660 /dev/cdrom /mnt/cdrom 将光驱加载到/mnt/cdrom mount -t nfs 192.168.1.1:/sharedir /mnt 将nfs服务的共享目录sharedir加载到/mnt/nfs umount /dev/hda1 将/dev/hda1设备卸载,设备必须处于空闲状态
3.修改虚拟机, 实验箱,Windows XP的IP,使它们必须在同一网段。输入ifconfig,可以查看实验箱的IP,为192.168.0.121。
4.修改xp系统的ip,使它与arm机的ip在同一网段,这里设置ip为192.168.0.45。
5.进入虚拟机Redhat,依次点击从这里开始——系统设置——网络——编辑——设备——地址,设置ip为192.168.0.55
修改完IP,重启一下虚拟机,IP才能启作用。重启后在命令行中使用ifconfig确认修改正确。
6.安装arm编译器
在xp系统中点击开始——运行,输入虚拟机的ip。\\192.168.0.55,输入用户名bc,密码123456然后确定
就可以访问虚拟机的文件,把所需文件解压缩拷贝到共享文件夹bc中。
7.配置编译环境
进入虚拟机,列出目录,在命令行中输入./install.sh,开始安装配置。
8.在虚拟机中使用vi修改/root/.bash_profile文件中的PATH变量为PATH=$PATH:$HOME/bin:/opt/host/armv4l/bin/
之后执行source /root/.bash_profile.
9.在虚拟机中进入/root/bc,在此目录下编写hello.c文件。
输入armv4l-unknown-linux-gcc对hello.c进行编译,生成hello可执行文件。
10.在超级终端中将共享文件夹挂载好,建立开发板与虚拟机之间的通讯。输入命令“mount -t nfs -o nolock 192.168.0.234:/home/bc /host”,在超级终端中运行编译通过的hello可执行文件。
实验思考:
(1)为什么需要交叉编译?如何安装交叉编译环境?
在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。简单地说,交叉编译就是指编译器在某一个平台下能够编译出另外一个平台下运行的程序,主要是为了多平台应用程序使用的,比如某一个程序,在windows下和linux和MacOS下都有相应的运行版本,使用交叉编译就可以在一个平台下全部完成,而不用切换到对应的平台再去编译。要进行交叉编译,我们需要在主机平台上安装对应的交叉编译工具链(cross compilation tool chain),然后用这个交叉编译工具链编译我们的源代码,最终生成可在目标平台上运行的代码。
(2)实验箱、虚拟机Redhat、WinXP之间的IP需要满足什么关系?如何配置?为什么?
需要将三者的IP设置在同一网段,这样才能够保证相互通信。先在超级终端中输入ifconfig命令,查看超级终端ip,为192.168.0.121 ,然后在WinXP中本地连接的属性中设置本机ip与其在同一网段,ip为192.168.0.45,然后在Redhat中设置IP位192.168.0.55,也在同一网段。
(3)实验中mount命令中每个选项什么意思?
mount -t nfs -o nolock 192.168.0.55:/home/bc /host
mount是挂载命令,在linux系统中所有新硬盘或者光盘,或者ISO文件并不能直接被系统检测并挂载(现在部分系统使用桌面化,有自动挂载这个功能)
mount指令一般用法如下:
mount -t 文件类型 /dev/... dir
“nfs”指UNIX(LINUX) 文件网络共享
“-o nolock ”为关闭文件锁
“192.168.0.55:”为要挂接的设备
“/root/bc /host”表示挂载设备中/root/bc目录下的文件到本机host文件夹中
遇到的问题及解决方案:
(1)超级终端问题及解决方案
实验刚开始时,我先打开的arm开发板,再连接的线与电源,导致开发板一直不好使,但是我们重新连接了另一台电脑,仍然不好使,我们去找老师换了板子,之后先连接,后开开关,才可以正常运行。
(2)交叉编译问题及解决方案
我们一直很顺利的进行到最后一步,然而无法挂载,我重新检查了一遍实验步骤,发现还是没有明确实验箱、虚拟机Redhat、WinXP三者之间IP一定要在同一网段,但不能相同,第一次我把虚拟机与XP之间的IP设置成相同了,更改后就能正常挂载了。
实验总结:
本次试验是信息安全系统设计基础的第一次实验,刚开始我对这次实验硬件设备完全不懂,按照详实的实验指导书,一步一步做,我明白了实验具体步骤,试验后,我查询了相关资料,对实验中所用的指令也有了具体的理解。