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