您的位置:首页 > 编程语言 > PHP开发

一步一步制作yaffs/yaffs2根文件系统(六)---完善命令行提示符

2015-11-20 21:52 591 查看
 紧接上一节:     http://blog.csdn.net/mybelief321/article/details/10027917

   根据第五节可以看出,制作的根文件系统还不完善,首先那个命令行提示符就巨难看,表面功夫都没有做好,惭愧!在这里,我不再用自己移植的bootloader引导内核、根文件系统,而是用开发板自带的supervivi和内核,反正这样子省事!先简单介绍一下利用supervivi下载的方法,,之前的dnw、minicom设置详细解说就不说了,这也不是重点,我感觉既然都开始制作根文件系统了,这些都得接触到了吧。

1、 将咱们要下载的supervivi、内核镜像、上一节制作好的yaffs2文件系统存放在dnw所在文件夹里,注意,dnw的下载地址要设成0x3000 0000。


     

2、打开串口终端minicom,然后nor flash启动,可以看到superviv启动


     

3、下载supervivi

 在supervivi内输入:v  ,然后另一终端执行命令:sudo ./dnw supervivi-128M.bin  下载supervivi到nand flash分区


      


         

4、下载内核

在supervivi内输入:k,然后另一终端执行命令: sudo ./dnw zImage_X35.bin





5、下载咱们制作好的镜像文件

在supervivi内输入:y,然后另一终端执行命令:





6、在supervivi中输入:b,启动开发板,或者关掉电源,从nand flash启动,可以看到咱们制作的根文件系统。



真难看啊!

7、下面咱们就接着完善,首先就是把那个命令好弄好!我突然有个想法,我来回烧什么,直接在这个开发板系统上先做实验就行了啊,实验成功后再在我的电脑中将这些文件内容拷贝过去,对,就这么办了!接下来就是怎么修改了,于是我谷歌了“Linux下命令提示符”,原来是和/etc/profile有关,好吧,先创建它。

在系统中执行命令:cd etc 进入etc目录



执行命令:vi profile,添加profile文件。

在该profile文件里加了一句:PS1='[root@wws\W]#'



编写保存后,再执行命令:source /etc/profile ,“成功”了



8、成功个啥啊,谁会用这个wws的名字啊!再说,和书上比差得远呢。我还是直接把书上的贴出来。

在/etc 下执行命令:vi profile 修改此文件,将原来的内容全部删除,然后,放入以下代码:

ulimit -S -c 0 > /dev/null 2>&1

USER="`id -un`"

LOGNAME=$USER

PS1='[\u@\h\W]# ' 

PATH=$PATH

HOSTNAME=`/bin/hostname`

export USER LOGNAME PS1 PATH



ulimit -S -c 0 > /dev/null 2>&1  //首先  ulimit -S -c 0   是ulimit命令,-c选项:设置core文件的最大值,单位:blocks,就是段错误时产生的core文件,后面加文件大小。后面加上0,就是设置段错误不产生core文件。然后  > /dev/null  的意思就是ulimit输出的结果保存到/dev/null文件,而这个文件是系统的一个文件,它不保存任何信息。所以如果有不想的输出数据,重定向到这个文件就可以了,这时,标准输出(文件句柄1)是指向这个文件。最后,2>&1
的意思就是标准错误(文件名柄)复制文件句柄为1的地方,也就是/dev/null。所以,这句的意思,就是设置core文件大小为0,然后输出信息以及错误信息都不输出在>显示器上。

USER="`id -un`"   //id-un与whoami命令有相同的功能,获取当前的用户名。
LOGNAME=$USER  //LOGNAME表示当前的用户名,也就是命令提示符中[root@wws]#、[guest@wws]#中的root和guest字样。
PS1='[\u@\h\W]# ' //Linux系统提示符是用系统变量PS1来定义的。一般系统默认的形式是:[username@hostname 工作目录]$。其中,\u 表示当前用户名,\h表示运行shell的计算机名,\W表示当前的工作目录名,更多PS1的信息请百谷。
PATH=$PATH   //获得当前的环境变量。
HOSTNAME=`/bin/hostname`  //获得当前的主机名,这里/bin/hostname是一个命令
export USER LOGNAME PS1 PATH   //导出变量符号。注意:/etc/profile定义的变量是全局的,即对所有登录的Linux用户都有效。而在普通脚本里eport只在当前脚本以及子进程里有 效。

好了,现在保存退出!

9、执行命令:source /etc/profile ,使咱们的profile生效。



我去,怎么比开始还难看!奥,对了,还没有添加一个文件hostname。

10、同样在 /etc目录下执行命令:vi hostname,添加hostname文件



在里边任意填写自己喜欢的名,我这里填的是 wws ,填写完保存退出。

11、再执行:source /etc/profile  结果如下



额.......怎么没有变,对了,刚才在编写profile的时候,添加了/bin/hostname的命令,它怎么能执行呢?

12、修改 /etc/init.d/ 目录下的 rcS 文件,因为它定义了系统启动时执行的命令。



13、在rcS中最后一行添加:/bin/hostname -F /etc/hostname  表示从/etc/hostname中读取设置用户名



14、重新启动系统,这会出现下面的结果



还好,出来一个了,只剩下@前边显示root了。

15、至于怎么显示root,我看了看,这和 /etc/group点此了解  和  /etc/passwd点此了解 有关,我把刚才查的关于这两个文件的介绍转过来,建议去了解一下,毕竟不能光看教程走。

  现在,在 /etc 中添加 group 文件,该文件内容如下,其中部分内容我也是不懂,是从例程中码上去的。



内容如下

[plain] view
plaincopyprint?

root:*:0:  

daemon:*:1:  

bin:*:2:  

sys:*:3:  

adm:*:4:  

tty:*:5:  

disk:*:6:  

lp:*:7:lp  

mail:*:8:  

news:*:9:  

uucp:*:10:  

proxy:*:13:  

kmem:*:15:  

dialout:*:20:  

fax:*:21:  

voice:*:22:  

cdrom:*:24:  

floppy:*:25:  

tape:*:26:  

sudo:*:27:  

audio:*:29:  

ppp:x:99:  

16、在 /etc 中添加passwd 文件,只需要在其中添加一句 root::0:0:root:/root:/bin/sh





17、还需要在 /etc 下建立 shadow文件 ,内容可以为空,直接保存就可以了。

18、现在 /etc 下所有的文件如下图



19、重新启动系统,出来效果了。



20、好了,做实验成功了,现在可以将咱们修改过的内容或者添加的文件,添加到上一节制作完的根文件系统了。

21、上一节制作好的文件系统,点此下载 这一节修改后的文件系统,点此下载

今天天气真好,抓紧整理完,晚上散散步!

下一节http://blog.csdn.net/mybelief321/article/details/10068293
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: