关闭

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

169人阅读 评论(0) 收藏 举报
分类:

 紧接上一节:     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 文件,该文件内容如下,其中部分内容我也是不懂,是从例程中码上去的。


内容如下

  1. root:*:0:  
  2. daemon:*:1:  
  3. bin:*:2:  
  4. sys:*:3:  
  5. adm:*:4:  
  6. tty:*:5:  
  7. disk:*:6:  
  8. lp:*:7:lp  
  9. mail:*:8:  
  10. news:*:9:  
  11. uucp:*:10:  
  12. proxy:*:13:  
  13. kmem:*:15:  
  14. dialout:*:20:  
  15. fax:*:21:  
  16. voice:*:22:  
  17. cdrom:*:24:  
  18. floppy:*:25:  
  19. tape:*:26:  
  20. sudo:*:27:  
  21. audio:*:29:  
  22. 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


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:278238次
    • 积分:4129
    • 等级:
    • 排名:第7748名
    • 原创:75篇
    • 转载:424篇
    • 译文:0篇
    • 评论:18条
    最新评论