Mini2440通过nfs启动linux系统总结
(20xx-05-01 10:40:29)
开发主机我用的虚拟机,linux系统为fedora8,下面是具体步骤。
主机下:
1.建立NFS共享目录,我这里把共享目录建在/opt/mini2440;
2.解压文件,把mini2440光盘里的linux目录下root_qtopia.tgz解压到/opt/mini2440下,命令:#tar zvxf root_qtopia.tgz –C /opt/mini2440/,之后/opt/mini2440/下会出现root_qtopia目录;
3.设置共享目录,运行命令:#gedit /etc/exports,编辑nfs配置文件,打开后文件是空的,在文件中加入:/opt/mini2440/root_qtopia *(rw,sync,no_root_squash),保存退出。其中,/opt/mini2440/root_qtopia是共享目录,*表示所有客户机都可以挂载此目录,rw表示挂载此目录的客户机对此文件可读写的权力,no_root_qtopia表示允许挂载此目录的客户机拥有root身份。
4.启动nfs服务,有两种方法,一种是输入命令:#/etc/init.d/nfs start,这将启动nfs服务,输入命令:#/etc/init.d/nfs stop,关闭nfs服务。要想在每次开机都自动启动nfs服务,需输入命令:#serviceconf,此时会弹出linux的服务配置窗口,找到nfs这一项,选中它并启动,然后保存退出即可。
5.此时,主机的nfs服务已经配置完毕,可以输入命令:#mount –t nfs localhost:
/opt/mini2440/root_qtopia /mnt/,输入后如果不提示任何消息,说明nfs已经挂载成功,进入/mnt目录下看看是否有/opt/mini2440/root_qtopia文件夹下的内容。如有,则主机搞定!
注意:要是windows和linux虚拟机IP地址保持在同一网段,我现在的windows的ip为:192.168.1.150,linux虚拟机ip地址是:192.168.1.112。
下面开始配置mini2440开发板
1.打开windows下的超级终端,连接好串口线、网线、电源,选择nand flash启动开发板,在启动时迅速按空格键,进入vivi模式
2.在Supervivi模式下输入如下命令
Supervivi> param set linux_cmd_line "console=ttySAC0 root=/dev/nfs
nfsroot=192.168.1.112:/opt/mini2440/root_qtopia
ip=192.168.1.230:192.168.1.112:192.168.1.1:255.255.255.0:sbc2440.arm9.net:eth0:off" 其中 ,param set linux_cmd_line 是设置启动 linux 时的命令参数。其各参数的含义 如下:
nfsroot 是自己开发主机的IP 地址。
“ip=”后面:
第一项(192.168.1.230)是目标板的临时IP(注意不要和局域网内其他IP 冲突);
第二项(192.168.1.112)是开发主机的IP;
第三项(192.168.1.1)是目标板上网关(GW)的设置;
第四项(255.255.255.0)是子网掩码;
第五项是开发主机的名字(一般无关紧要,可随便填写)
eth0 是网卡设备的名称。
3.要想每次启动都通过nfs启动系统,输入命令:Supervivi>menu,按下s,然后再按下w,将启动命令写入flash,成功!以后每次都可以以NFS方式启动。如不进行此操作,以后要想通过nfs启动系统都要对开发板进行上面环境变量的设置。
4.输入boot,按enter键即可通过nfs启动系统
注:用ifconfig eth0 192.168.1.230可以设置linux开发板的ip地址,但重启后又变成默认,要想保存改变的ip地址,需要改掉/etc/eth0-setting里面的IP就可以永久保存了。
第二篇:Linux系统总结
Makefile Makefile关系到了整个工程的编译规则。一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。
在 Linux(unix )环境下使用GNU 的make工具能够比较容易的构建一个属于你自己的工程,整个工程的编译只需要一个命令就可以完成编译、连接以至于最后的执行。不过这需要我们投入一些时间去完成一个或者多个称之为Makefile 文件的编写。
makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,它解释Makefile 中的指令(应该说是规则)。在Makefile文件中描述了整个工程所有文件的编译顺序、编译规则。Makefile 有自己的书写格式、关键字、函数。像C 语言有自己的格式、关键字和函数一样。而且在Makefile 中可以使用系统shell所提供的任何命令来完成想要的工作。Makefile(在其它的系统上可能是另外的文件名)在绝大多数的IDE 开发环境中都在使用,已经成为一种工程的编译方法。
例子 :(一个相对复杂的例子,嵌入式编程中经常用到的,详细情况请参考 嵌入式linux应用开发完全手册)
01 src := $(shell ls *.c) /*把当前目录下所有c源代码赋给变量src*/ 02 objs := $(patsubst %.c,%.o,$(src)) /*调用makefile 中的函数patsubst, 用.o文件代替.c文件*/
03
04 test: $(objs)
05 gcc -o $@ $^
06
07 %.o:%.c
08 gcc -c -o $@ $<
09
10 clean:
11 rm -f test *.o
上述Makefile中的“$@", "$^", "$<" 称为自动变量。
$< -o $@ 是自动化变量 $<表示所有依赖目标,就是.c文件 ;$@表示生成目标,就是.o文件
makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。可见,makefile都成为了一种在工程方面的编译方法。
Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。
1、显式规则。显式规则说明了,如何生成一个或多的的目标文件。这是由Makefile的书写者明显指出,要生成的文件,文件的依赖文件,生成的命令。
2、隐晦规则。由于我们的make有自动推导的功能,所以隐晦的规则可以让我们比较粗糙地简略地书写Makefile,这是由make所支持的。
3、变量的定义。在Makefile中我们要定义一系列的变量,变量一般都是字符串,这个有点你C语言中的宏,当Makefile被执行时,其中的变量都会被扩展到相应的引用位置上。
4、文件指示。其包括了三个部分,一个是在一个Makefile中引用另一个Makefile,就像C语言中的include一样;另一个是指根据某些情况指定Makefile中的有效部分,就像C语言中的预编译#if一样;还有就是定义一个多行的命令。有关这一部分的内容,我会在后续的部分中讲述。
5、注释。Makefile中只有行注释,和UNIX的Shell脚本一样,其注释是用“#”字符,这个就像C/C++中的“//”一样。如果你要在你的Makefile中使用“#”字符,可以用反斜框进行转义,如:“/#”。
最后,还值得一提的是,在Makefile中的命令,必须要以[Tab]键开始。