1、二、实验内容及步骤预期结果(或其概述)实验结果(可截全图或部分图)cd /ls列出当前目录中的文件,但不包含隐含文件。rootlocalhost root# lsanaconda-ks.cfg Documents install.log.syslog Settings Applications install.log open.c zylinuxll显示文件或子目录的详细信息,包括文件类型和权限、文件状态、所有者、组、大小、修改时间和文件名。rootlocalhost root# ll总用量 88-rw-r-r- 1 root root 912 2009-06-14 anaconda-ks.c
2、fgdrwxr-xr-x 6 root root 4096 2009-06-14 Applicationscd /tmp进入/tmp,列出其所有文件及目录。rootlocalhost root# cd /tmprootlocalhost tmp# lsjd_sockV4 qcop-msg-qpe ssh-XXDy3Hjekde-root qcop-msg-quicklauncher ssh-XXt1P8AYmkdir abc建立目录abc,显示可看到建立成功。rootlocalhost tmp# mkdir abcabc qcop-msg-filebrowser ssh-XX5MvE75cd
3、abcmkdir 123进入abc,并建立目录123,显示成功。rootlocalhost tmp# cd abcrootlocalhost abc# mkdir 123rootlocalhost abc# ls123cd .rm rf abc返回到上级目录,删除当前目录下的子目录abc,包含其下所有文件和子目录,并不提示用户确认。rootlocalhost tmp# rm -rf abccd /mnt/hgfswhoami进入指定目录,显示当前用户。rootlocalhost tmp# cd /mnt/hgfsrootlocalhost hgfs# whoamirootpwd显示用户当前所处
4、目录。rootlocalhost hgfs# pwd/mnt/hgfsdate显示当前时间。rootlocalhost hgfs# date四 1月 1 00:24:23 CST 2004cal显示本月日历。rootlocalhost hgfs# cal 一月 2004日 一 二 三 四 五 六 1 2 3 4 5 6 7 8 9 1011 12 13 14 15 16 1718 19 20 21 22 23 2425 26 27 28 29 30 31su - rootuseradd tonnypasswd 123456切换用户到root,添加用户tonny和密码。rootlocalhost
5、 hgfs# su rootrootlocalhost /# useradd tonnyuseradd: user tonny existsrootlocalhost /# passwd tonnyChanging password for user tonny.New password:BAD PASSWORD: it is too simplistic/systematicRetype new password:passwd: all authentication tokens updated successfully.rootlocalhost /# init 6重启。当前系统进入重启状
6、态。以tonny及密码登录后的Linux桌面图标重启后,用新用户名和密码重新登录。新建终端,并开始操作:su tonny切换用户。tonnylocalhost tonny$ su rootPassword:rootlocalhost tonny# su tonnyrootlocalhost tonny#ps -aux显示进程。rootlocalhost tonny# ps -auxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.5 0.0 1368 84 ? S 01:12 0:04 initroot 2 0.0 0
7、.0 0 0 ? SW 01:00 keventdroot 3 0.0 0.0 0 0 ?00 kapmdroot 4 0.0 0.0 0 0 ? SWN 01:00 ksoftirqd_CPU0ifconfig配置网卡和显示网卡信息。rootlocalhost root# ifconfigeth0 Link encap:Ethernet HWaddr 00:0C:29:75:97:FAinet addr:192.168.38.166 Bcast:192.168.38.255 Mask:255.255.255.0UPBROADCAST RUNNING MULTICAST MTU:1500 Me
8、tric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:TX packets:19 errors:0 carrier:ifconfig eth0 down关闭eth0端口。显示端口已关闭。rootlocalhost root# ifconfig eth0 downrootlocalhost root#Message from syslogdlocalhost at Thu Jan 1 00:11:05 2004 .localhost kernel: vmxnet_close: failed to finish all pending tx.
9、lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:ifconfig eth0 up重新开启端口。显示端口重开。rootlocalhost root# ifconfig eth0 upUP BROADCAST RUNNING MULTICAST MTU:55 errors:clear清空界面rootlocalhost root# clear三、思考题1、如何删除一个非空的目录?答:新建一个目录a,在其中新建目录b,c。使用rm rf a删除目录a
10、,其下b,c目录也一并删除。2、如何修改Linux虚拟机的IP地址?用命令“ifconfig eth0 原IP地址 目的IP地址”可达到目的,例如“ifconfig eth0 192.168.23.151 192.168.38.166”四、实验总结及体会(必须写)本次试验主要是熟悉和更好的掌握linux命令,使我们回忆起命令的使用。过程中有一点阻碍,但经过同学和老师的指导,还是顺利的完成了任务。Linux命令还是和很有用处的,有时用起来可能比使用窗口更加快速便捷。只要好好掌握并熟悉命令的使用,对我们还是有好处的。实验3-4 模块程序开发简单实验2013/09/181、掌握模块程序的开发流程。2
11、、掌握模块程序查看、加载、卸载命令cd /root/zylinux/drive(需自建)查看到drive目录下文件rootlocalhost root# cd zylinux/driverootlocalhost drive# lshello_module_1.c hello_module_2.cvi hello_module_1.c(注:源码后附)编辑hello_module_1.c使用下面命令对模块源码进行编译:gcc c hello_module_1.c DMODULE D_KERNEL_-DLINUX Wall O2 I/usr/src/linux-2.4/includels hell
12、o_module_1.o查看文件rootlocalhost drive# ls hello_module_1.ohello_module_1.olsmod查看已加载模块rootlocalhost drive# lsmodModule Size Used by Tainted: PFmousedev 5492 1 (autoclean)input 5856 0 (autoclean) mousedevparport_pc 9076 1 (autoclean)lp 8996 0 (autoclean)parport 37056 1 (autoclean) parport_pc lpautofs 1
13、3268 0 (autoclean) (unused)ide-cd 35708 0 (autoclean)insmod hello_module_1.o加载hello_module_1.o模块rmmod hello_module_1卸载模块cd tmpvi hello_module_2.c编辑hello_module_2.cgcc c hello_module_2.c DMODULE D_KERNEL_-DLINUX Wall O2 I/usr/src/linux-2.4/includels hello_module_2.o列出文件显示加载的模块insmod hello_module_2.o加
14、载hello_module_2.ormmod hello_module_2删除模块显示模块实验源码:1、为什么要安装交叉编译工具?因为开发板和PC机的体系结构不一样,PC端编译工具编译的文件不能在开发板上运行。通过这个实验,我对模块程序的开发流程有了一定的认识和理解,初步掌握了模块程序查看、加载、卸载的命令,能够独自编写出简单的模块程序。在实验中,做到条理清晰,认真仔细,还是很容易掌握这部分内容的。实验5-6 LED驱动程序2013/10/161、掌握LED驱动程序的框架2、掌握有关LED驱动的数据结构3、了解LED驱动的系统调用cd /root/zylinux/drive(无则自建)mkdi
15、r led_driver切换到drive,创建目录,列出目录rootlocalhost drive# mkdir led_driverled_drivercd led_drivermkdir drivercd dirvermkdir ledscd leds切换到led_driver,创建目录dirver,leds,切换到ledsrootlocalhost drive# cd led_driverrootlocalhost led_driver# mkdir driverrootlocalhost led_driver# cd dirverrootlocalhost driver# mkdir
16、ledsrootlocalhost driver# cd ledsrootlocalhost leds#vi magic-leds.c(源代码在压缩包zy.rar中)编辑magic-leds.cvi Makefilemake编辑MakeFIle,显示文件列表rootlocalhost leds# makearm-linux-gcc -O2 -Wall -D_KERNEL_ -DMODULE -I/zylinux/kernel/include -I. -march=armv4t -c -o -mapcs -c magic-leds.c -o magic-leds.omake: arm-linux
17、-gcc: Command not found * magic-leds.o Error 127rootlocalhost leds# lsleds.ko magic-leds.c magic-leds.o Makefilecd /root/zylinux/drivemkdir testcd testmkdir ledcd led切换drive目录 创建test led 目录。rootlocalhost leds# cd /root/zylinux/driverootlocalhost led_driver# mkdir testrootlocalhost led_driver# cd tes
18、trootlocalhost test# mkdir ledrootlocalhost test# cd ledvi main.c编辑main.c 函数编辑makefile文件rootlocalhost led# makearm-linux-gcc -O2 -Wall -c main.c -o main.orootlocalhost led# lsled main.c main.o Makefile建立超级终端。使用NFS将Linux虚拟主机的/root/zylinux目录mount到目标机的/mnt目录。设Linux虚拟主机的IP地址为:192.168.0.166。在目标机上使用如下moun
19、t命令:mount t nfs 192.168.0.166:/root/zylinux /mnt o nolock然后进入目标机的/mnt目录:cd /mntcd ylf/drive/led_driver/driverinsmod leds.ko加载leds.ko模块cd ylf/drive/led_driver/test./led运行led,开发板上的LED1闪烁后熄灭1、字符设备驱动程序常用哪些数据结构?其各自的作用是什么?常用的有file_operations,file等数据结构;file_operations定义了文件操作接口,这个结构的每一个成员的名字都对应着一个调用,起着联系应用程
20、序和设备驱动的作用;file是执行open函数时产生的,每打开一个文件就产生一个struct file,供设备驱动关联的函数使用。2、字符设备驱动程序包含哪些函数?包括read(),write(),open(),ioctl(),release()等接口函数,加载函数以及卸载函数。 通过此次实验,我对LED驱动程序的框架有了比较深刻的了解和掌握,理解了有关LED驱动的数据结构,对LED驱动的系统调用也有了一定的了解。我感觉这部分的知识有些难度,在做实验的时候应下些功夫,认真仔细,结合教材,一步一步的做下去,不要急于求成。实验7-8 按键驱动程序2013/10/231、掌握按键驱动程序的框架2、掌
21、握有关按键驱动的数据结构3、掌握按键驱动程序开发常用的系统调用mkdir key_driver建立key_driver目录cd key_drivermkdir keycd key切换到key_drive.创建key目录vi magic-key.c编写magic-key.c建立相关目录编写main.c编辑makefile文件,显示列表cd ylf/drive/key_driver/driverinsmod key.ko加载key.kocd ylf/drive/key_driver/test./key运行key,按下开发板的KEY1几次超级终端就显示几次1、请简要说明net_device和sk_buf在网络驱动程序中所起的作用net_device结构体提供了对所有网络设备的操作集合;sk_buf用于管理套接字缓冲区的结构,在数据包的发送和接收中起着重要的作用,Linux网络各层之间的数据发送都是通过sk_buf来进行的。 通过此次实验,我对按键驱动程序的框架有了比较深刻的了解和掌握,理解了有关按键驱动的数据结构,对按键驱动的系统调用也有了一定的了解。由于上次做了LED驱动程序的实验,因此这次做按键驱动程序,上手要快一些,能独立完成这个实验。不过在实验时仍要小心仔细,不要大意。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1