2011.10.9 Evo Yang
ARM嵌入式linux复习心得总结1:
一、Linux定制安装:
今天重新安装配置了一遍Linux,我使用的是Vmware7.0安装RHEL5.5,对于Linux的安装主要是要选择定制安装也就是Vmware7.0(下面简称Vm)中新建虚拟机开始部分选择”Custom(advanced)”,因为这里我所使用的FTP、sumba等服务器是需要定制加上的一开始没有注意结果悲剧了…(以后一定要仔细的选择!!),在next后面应该选择最后一个选项这样自定义的选项会更加多,同样可以选择定制安装的一些选项,在这里同样有个地方要注意:
1、最好使用默认的内存分配方式
2、*(重要)选择bridged networking 的网络连接方式(这里要注意,第一次安装的时候没有注意使用的是默认值也就是NET模式,最后在设置NFS和sumba服务器的时候(也可能是其他的操作错误)无法与PC机ping通讯这里花费了大量的时间研究!
后面就是Linux系统的安装了,这里我使用的是图形化界面的安装(以前大一的时候用命令行安过一次自己英语太垃圾了,安了整整一上午…)
3、在最后配置的时候防火墙要禁用,因为这里防火墙会阻止一切自发的与本机联网的事件,在后面使用NFS以及sumba服务器的时候是不能打开的,第一次安装的时候吃过这方面的亏以后要注意!
4、禁用SELinux,这个也是与安全有关的,现在暂时禁用就可以了。
二、再次回顾了一下Linux的命令,这里比较熟悉,跟走路一样这里必须专业起来!总的来说有一下几个命令必须灵活运用:
1、useradd(添加用户名,后面使用sumba服务器的时候需要用到,使用率较低)
2、passwd(添加用户密码,一般配合useradd使用,使用率较低)
3、su(切换用户,经常用)
4、shutdown(关机命令,用法有多种,我一般不用,虚拟机直接断电就行了)
5、cp(拷贝,不解释)
6、mv(移动或更名,不解释)
7、rm(删除,不解释)
8、mkdir(创建目录)
9、cd(改变工作目录,经常用)
10、pwd(显示当前目录)
11、ls(查看目录)
12、tar(针对tar.gz打包和解压,这里主要记住 tar cvzf * 和tar xvzf * 一个是压缩,一个是解压)
13、tar(针对tar打包和解压,这里主要记住 tar cvf * 和tar xvf * 一个是压缩,一个是解压)
14、unzip(解压zip文件)
15、chmod (更改权限)
16、df(查看磁盘使用情况)
17、ifconfig(查看网络配置、查看ip等)
18、netstat(查看网络状态)
19、grep(查找字符串,这个其实很重要,但自己总是忘记可能是一般不用的原因)
20、rpm (用于软件安装)
21、mount(挂载,很重要用语挂载CDROM、硬盘以及共享文件等)
22、find(找到*文件存在路径)
三、vi编辑器的使用,使用比较熟练好像加“!”的都是强制执行的。
四、安装tftp服务器:
常用命令:*netstat –a | grep tftp 这里检测当前tftp的情况,在资料上是说检测安装情况,我觉得不是应该是检测启动情况,当然这个也是包括安装与否的,这里要注意!有的时候他是安装上的但是没有打开,查看配置文件是就会发现disable 默认是 = yes 意思是默认是关闭的我们有几种方法将他打开:
1、 使用setup命令启动tftp
2、 配置 #vi /etc/xinetd.d/tftp 中把disable中的yes改为no
3、 使用命令启动 #/etc/init.d/xinetd start
五、安装NFS服务器: 这个功能是共享Linux与Linux之间文件的,后面开发ARM的时候联通内核与文件系统使用
六、安装samba服务器
首先是要配置samba服务器的配置文件位置在:#vi /etc/samba/smb.conf
在Share Definitions中添加
【root】
Comment = Root Ditectories
Browseable = yes
Writable = yes
Path = /
valid users = smb
valid users = MYDOMAIN\%s
其中可以在【home】前在命令模式下输入“6yy”(复制这六行!)然后再输入“p”(粘贴)然后再修改,这样修改起来比较方便,也是绝大多数教程都使用的方法,其中要注意几点:
1、 要是使用复制方法然后修改的话要注意看清楚Comment这行后面Root Ditectories 这行的Root是不要忘了修改【homes】中式Home而【root】中是Root切记!(这里自己在前一次安装的时候没有留意导致后面Samba 服务器不能使用!!!)
2、 smb 这是用户名这里引用一下教材的语言:添加用户,注意添加用户的用户与修改配置文件部分valid users = smb相同,如果smb用户存在则不需要添加!!
配置完毕要重新启动samba服务器 #/etc/init.d/smb restart
最后在windows中运行即可。
七、Samba、NFS等PC与虚拟机的网络配置(重点)
这里着重总结一下这次网络的配置,虚拟机的网络配置非常重要,即使Linux不需要上网可是他们之间的数据传送也是十分必要的,例如Vmtools这个工具,smb、NFS、tftp等,我在这里的网络配置花费了大量的时间研究,主要是samba服务器总不能配置成功,网上也有许多的方法不过讲的都很细许多功能的实现都比较抽象,我之所以总是没有成功在上面的几个方面上已经详细的解释了,这里不再次做总结,其中有几点与老师或查资料得到的几点信息在这里要总结一下:
1、 在所有的服务器等联网活动之前一定要把网络通信配置好!在PC中首先要ipconfig一下查询一下PC机网络配置情况(ip、网关等)然后再在虚拟机中使用命令setup打开网络配置去掉自动分配IP选用静态ip然后将ip等项目输入进去,这里要输入的一共三项,后两项是相同的只有ip是需要改变的,切记要分配在同一个网段!!这样才能实现局域网功能
2、 我问了问教授Linux的一位老师他曾经因为更改了本地连接的IP导致虚拟机上的网络服务器不能用了,当更改回原来的ip才能使用,这里我并没有出现这种情况因为我在设置ip的时候使用的是动态分配地址的ip路由器,在设置完成后并没有出现服务器失效的情况所以我认为这里老师可能使用了某个ip绑定了吧。
八、Vmtools的安装使用
这个工具很好用在XP中安装比较方便,但在Linux中有点儿复杂,当然只是有点儿而已,使用Vmware自动下载就可以完成后Linux自动加载了一个cdrom里面就有一个vmtools的tar 解压包(有时需要自己加载)他在文件中找到安装文件安装即可。这里引用一下网络同仁的资源我觉得他写的吧、简单明了(
http://www.linuxdiyf.com/viewarticle.php?id=66813)
安装linux时,一定要安装gcc和kernel-source,VMware要对内核头文件进行编译。注:linux区分大小写,例如,用户名root和Root就是两个用户了。你想进入tmp目录,而你输入的是Tmp,嘿嘿,肯定是进不去的!
按下alt+f2,输入konsole 新建一个终端。
注:如果你不是以root用户登录,你不能安装程序。用su命令可以切换到root用户,不会用命令的话,注销后用root登录。
输入 /sbin/telinit 3
用root登录,输入root的密码,如果你忘了,我只能同情你了。按下alt+ctrl把鼠标切出来,点击菜单上的“安装VMware-tools”。
回到虚拟机中,挂载cdrom。
mount /dev/cdrom /mnt/cdrom进入cdrom目录
cd /mnt/cdrom将光盘中的内容复制到tmp目录下
cp VM* /tmp/
注:*号是通配符。还有,输入单个命令时按Tab自动输入。
进入tmp目录
cd /tmp
解压缩.tar.gz文件
tar zvxf VMware*.tar.gz
屏幕哗哗的闪呀!进入解压后的vmware-tools-distrib目录
cd vmware-tools-distrib
执行安装文件
./vm*.pl
一路默认回答,皆按回车键。
以上都很顺利,很多人都卡在了这里,这个该死的目录怎么也找不到,why?是因为你没安装gcc或kernel-source,回本文开头去看吧!
配置你的x windows 设置。输入yes并按回车键。
选择你linux的显示屏幕大小。
Enioy!
最后显示的是VMware开发组的注记。要让他们知道中国有这么多用破解版的,他们就不这么写了。呵呵。
输入startx启动Xwindows
OK。
我就是参考这个文章安装完成的它使用的是红旗的Linux不过我在红帽的Linux5中同样使用顺利所以将此贴贴上便于以后参考!
九、Makefile
Makefile是个将多个文件链接编译的工具使用方法很简单假设有两个文件一个是main.c 一个是fun.c以及同文件 fun.h
建立Makefile文件输入:
main:main.o fun.o
gcc main.o fun.o –o main
main.o:main.c fun.h
gcc –c main.c –o main.o
fun.o:fun.c fun.h
gcc –c fun.c –o fun.o
clean:
rm –f main *.o ( 这部分代码在make clean时执行!)
从中可以看出编译的规律
目标:汇编文件…..
gcc 汇编文件1、汇编文件2、….. –o 目标文件名(这里同编译一条代码时相同)
十、文件编程-文件创建
#include
#include
#include
#include
#include
void create_file(char *filename)
{
If(create(filename,0666)<0) //创建文件函数判断创建是否成功 后面的是文件的权限:可读可写不可执行!
{
printf(“create file %s failure!
”,filename);
exit(EXIT_FAILURE);
}
Else
{
Printf(“create file %s success!”,filename);
}
}
Int main(int argc,char *argv[]) // 这里的argc是程序参数个数(如ls –a 这就是两个参数,也就是说是两个字符串,而argv【】表示的是参数名字 argv【0】=ls argv【1】= -a 后面应该还有一个参数char *env 代表的是环境变量的字符串(各种路径))
{
If(argc<2) //判断文件是否符合要求,这个一般小于0就行
{
Perror(“you haven’t input the filename,please try again!
”);
Exit(EXIT_FAILURE); //这个最后等于1 其实就是个return 1;
}
Create_file(argv[1]);
Exit(EXIT_SUCCESS); //这个最后等于0 其实就是个return 0;
}
十一、今天心得体会:错误与进步同在!!正视错误,解决错误,取得进步!!