博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一步一步制作yaffs/yaffs2根文件系统(六)---完善命令行提示符
阅读量:5166 次
发布时间:2019-06-13

本文共 3107 字,大约阅读时间需要 10 分钟。

转载于: http://blog.csdn.net/mybelief321/article/details/10040939

 

 根据第五节可以看出,制作的根文件系统还不完善,首先那个命令行提示符就巨难看,表面功夫都没有做好,惭愧!在这里,我不再用自己移植的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、下面咱们就接着完善,首先就是把那个命令好弄好!我突然有个想法,我来回烧什么,直接在这个开发板系统上先做实验就行了啊,实验成功后再在我的电脑中将这些文件内容拷贝过去,对,就这么办了!接下来就是怎么修改了,于是我谷歌了“下命令提示符”,原来是和/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]  
 
 
  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、上一节制作好的文件系统, 这一节修改后的文件系统,

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

转载于:https://www.cnblogs.com/tureno/articles/6634812.html

你可能感兴趣的文章
记一次nginx部署yii2项目时502 bad gateway错误的排查
查看>>
算法-插入排序(Insertion sorting)
查看>>
python字典
查看>>
常用window命令
查看>>
Python命名空间和作用域
查看>>
前端效果——持续更新。。。
查看>>
开发和常用工具推荐清单
查看>>
(排序)快速排序QuickSort
查看>>
[asp.net]登录协同工作平台安全解决方式
查看>>
看到一篇很有意思的文章:在中国,电商赚钱的原因是穷人太多。
查看>>
WP7.1 应用程序发布到Marketplace
查看>>
04-Spring的注解开发
查看>>
微信小程序之登录态维护(十一)
查看>>
Linux卸载MySql——ubuntu版
查看>>
【转自心声】华为眼中管理者的18种惰怠行为
查看>>
云与备份之(1):VMware虚机备份和恢复
查看>>
hdu 2647 (拓扑排序 邻接表建图的模板) Reward
查看>>
Codeforces 1105C Ayoub and Lost Array
查看>>
Android之自定义控件实现天气温度折线图和饼状图
查看>>
ubuntu12.04 安装配置jdk1.7 (转)
查看>>