cramfs文件系统制作.doc_第1页
cramfs文件系统制作.doc_第2页
cramfs文件系统制作.doc_第3页
cramfs文件系统制作.doc_第4页
cramfs文件系统制作.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、先准备好工具:(1)Busybox-1.13.4下载地址:/downloads/busybox-1.13.4.tar.bz2(2)cramfs-1.1工具下载地址: /download/cramfs-1.1.tar.gz 或则去官网/projects/cramfs/2、解压cramfs工具(这里我放在了根目录下):2、编译cramfs;3、cramfs工具制作好了,接下来我们解压Busybox。4、对Busybox进行配置,运行make menuconfig命令# make menuconfig这里咱们只配置一下静态就可以了。然后保存,退出。5、然后执行命令:make install注:编译“networking/interface.c”文件时可能会出现以下错误: CC networking/interface.onetworking/interface.c:818: error: ARPHRD_INFINIBAND undeclared here (not in a function)make1: * networking/interface.o Error 1make: * networking Error 2通过查看内核源代码目录中的“include/linux/ifarp.h”文件可得知“ARPHRDINFINIBAND”的值为“32”,然后修改“networking/interface.c”文件,在其中添加:#define ARPHRD_INFINIBAND 32 /* InfiniBand */5、最后看到下面结果就Ok啦!6、建立文件系统所需的目录和文件。$ mkdir bin dev etc home lib mnt proc sbin sys tmp var usr并且拷贝_install下面的四个文件到该目录下。7、以root身份建立节点文件/dev/console, /dev/nullmknod -m 600 dev/console c 5 1mknod -m 666 dev/null c 1 38. 建立配置文件如下:etc# vi profile #!/bin/sh#/etc/profile:system-wide .profile file for the Bourne shellsechoecho -n Processing /etc/profile.# Set search library pathexport LD_LIBRARY_PATH=/lib:/usr/lib# set user pathexport PATH=/bin:/sbin:/usr/bin:/usr/sbin#Set PS1USER = id -unLOGNAME=$USERPS1=uhW$ /这里很好玩的你可以把u换乘你的用户名比如,后面也可以跟上计算机名PATH=$PATHecho Done!etc# vi init.d/rcS #!/bin/sh# set hostname, needed host file in /etc directory#./etc/host#hostname cat /etc/host# mount all filesystem defined in fstabecho #mount all.#/bin/mount -a#/bin/chmod 0666 /dev/nullecho # starting mdev.#/bin/echo /sbin/mdev > /proc/sys/kernel/hotplugmdev -s/bin/shetc# lsfstab host inittab passwd shadow group init.d/ mdev.conf profile etc# vi fstab proc /proc proc defaults 0 0none /tmp ramfs defaults 0 0none /var ramfs defaults 0 0mdev /dev ramfs defaults 0 0sysfs /sys sysfs defaults 0 0etc# vi inittab :sysinit:/etc/init.d/rcS:respawn:-/bin/sh:ctrlaltdel:/bin/umount -a -r:shutdown:/bin umount -a -r:shutdown:/sbin/swapoff -aetc# vi ./usr/etc/init #!/bin/shifconfig eth0 11 upifconfig lo 9建立文件/etc/mdev.conf,内容为空etc# vi mdev.conf10复制主机/etc/下面的文件passwd, group, shadow文件到etc目录(这一步也可以不做)etc# cp /etc/group .etc# cp /etc/passwd .etc# cp /etc/shadow .ok,所需要的文件都已经建立ok了etc# lsfstab group host init.d inittab mdev.conf passwd profile shadowuboot中执行:setenv bootargs noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0 rootfstype=cramfs关于根文件系统中命令行提示符的显示我们经常用busybox生成根文件系统,可是根文件系统起来以后命令行提示符只有一个“#”号,没有像linux发行版那样是userhostname currentpath #,那么我们这里就说说如何让我们的根文件系统按这个方式显示。要修改命令行提示符,首先我们需要知道一个环境变量PS1,我们可以查看bash的帮助文档查看关于PS1的说明:bash有两级命令提示符,我们这里说的是第一级,这一级缺省的提示符是字符“$”(超级用户是“#”),我们可以通过修改PS1修改这个提示符,格式为:PS1=”command list”命令列表有很多参数如下:! 显示该命令的历史记录编号。# 显示当前命令的命令编号。 $ 显示$符作为提示符,如果用户是root的话,则显示#号。 显示反斜杠。 d 显示当前日期。 h 显示主机名。 n 打印新行。 nnn 显示nnn的八进制值。 s 显示当前运行的shell的名字。 t 显示当前时间。 u 显示当前用户的用户名。 W 显示当前工作目录的名字。 w 显示当前工作目录的路径我们查看我们发行版linux中的PS1.$echo echo $PS1uh W $ 看了发行版是如何显示命令行提示符,那么我们再看一下为什么我们做的根文件系统只显示一个#,用busybox生成的根文件系统使用的是ash,我们看下busybox中关于ash的文件。在busybox-1.15.4/shell/ash.h中有这样的语句/* PS1 depends on uid*/#if ENABLE_FEATURE_EDITING & ENABLE_FEATURE_EDITING_FANCY_PROMPTvps1.text = PS1=w $ ;#elseif (!geteuid()vps1.text = PS1=# ;#endif结合上面PS1参数我们可以看出在busybox生成的根文件系统中可能出现两种显示方式,一种是“currentpath $”另一种是 “#”这两种显示在较老的版本中都有。按照上面的方法修改我们的根文件系统中的命令行提示符。首先我们需要修改buxybox中配置,添加如下两个选项:Busybox Settings -Busybox Library Tuning -* Username completion* Fancy shell prompts如果不选择上面两项,文件系统是不是别PS1这个环境变量的参数的。创建/etc/hostname添加如下内容(我们的主机名):farsight修改/etc/init.d/rcS添加如下内容(导入主机名配置文件):/bin/hostname F /etc/hostname修改根文件系统中/etc/prof

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论