Chinaunix首页 | 论坛 | 博客
  • 博客访问: 52301
  • 博文数量: 16
  • 博客积分: 631
  • 博客等级: 上士
  • 技术积分: 180
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-13 10:52
文章分类

全部博文(16)

文章存档

2010年(16)

我的朋友

分类: LINUX

2010-04-13 19:01:48

如果要安装软件直接用:yum install fuse命令,如果还没有那个软件的话,则系统直接会帮你下的。
要在文件系统中查找某个文件:find –name fuse命令来实现。
./configure: permission denied 用ls -hl一看原来configure文件没有可执行的权限-rw-r—r--,所以需要更改权限:chmod 700 configure,然后用ls –hl configure只察看configure的信息。
注意用google搜索要把特殊字符去掉,就用如下关键字:. configure permission denied
Configure: error:no acceptable C compiler found in $PATH 这个错误发生的原因是因为没有装gcc。
软件默认是装在/usr/local,而下载的那些东西是临时文件,等装完了就删掉了。
Make menuconfig 出错了,yum install ncurses-devel后再运行。
如果对内核的文件进行更改之后,那么只需make ; make modules ; make modules_install,然后重启一下,这时候内核只需要对那些更改的文件进行重编译(是增量编译)。如果是模块的话,只需要用make modules ;和make modules_install对内核模块重编译。
用dmesg 命令来查看系统的信息。
在建立了md后一定要记得用以下命令去更改配置文件:
# echo DEVICE /dev/sdb[5-8] > /etc/mdadm.conf
# mdadm -Ds >> /etc/mdadm.conf
# mdadm -D /dev/md0 >> /etc/mdadm.conf
否则当设备被停止后就不能被激活了。
一定要记住:编译完要修改/boot/grub/grub.conf文件,把grub的default改为新编译的内核,然后重启,进入你编译的内核。
如果RAID没有stop或还挂载在机器就关机或重启,那么重启之后就找不到RAID了,需要重新配置RAID,或出现其它的各种各样的问题。
安装fuse:
./configure 默认安装在/usr/local中,这样需要修改一些参数,将export PKG_CONFIG_PATH=$PKG_CONFIG_PATH :/usr/local/lib/pkgconfig加入/etc/profile,运行. /etc/profile,将/usr/local/lib加入/etc/ld.so.conf中,运行ldconfig。
./configure –prefix /mnt/userspace 就可以指定安装目录,只要是不安装在/usr目录下,其它的目录都要配置上面的东东。
make
make install
然后进example目录
gcc –Wall `pkg-config fuse --cflags --libs` hello.c –o hello。用pkg-config fuse --cflags –libs查看此命令是否可用(注意这里的是``符合在tab键的左上角而不是‘’,如果用‘’则会显示error Please add –D_FILE_OFFSET_BITS=64 to your compile flags)这是对example目录下的hello.c进行的测试,如果是自己写的your.c就可以到your.c所在的目录去进行同样的操作,只不过把hello.c换成your.c而已。如果有错误:error Please add -D_FILE_OFFSET_BITS=64 to your compile flags! 那么就用如下命令:# gcc -Wall `pkg-config fuse --cflags --libs` -D_FILE_OFFSET_BITS=64 fusexmp.c -o fusexmp
./hello /mnt/hello
cd /mnt/hello  这是你所编写的文件系统所在的目录。
Ls
卸载上面安装的fuse:“rmmod fuse”,“make uninstall”,“make clean”;
发行版是没有内核代码树的,所以安装完发行版后就必须去编译内核。
字符设备的步骤:
make
insmod ./HSDM.ko(对应的模块名)
cat /proc/devices来查看是否有HSDM这一项没如果有就说明已经加载了。
mknod /dev/HSDM c 100 0 (100是主设备号,0是次设备号码)
这样这个字符设备就可以用/dev/HSDM这个路径来访问了。
然后用用户态程序来验证这个设备。
gcc –o test.o test.c 
./test.o这样就可以看到HSDM的读写信息。

把raid5以模块的形式编译内核,编译后重启,进行模块加载:insm od md(或者用mdprobe md)。以后每次对模块进行更改,只需要用:make modules(只对模块编译);然后make modules_install(就是把编译的模块copy到/lib/modules/2.6.32/kernels下去);进行模块重编译,而无需用make(所有的都要编译) ;make modules_install ; make install 的步骤,也无需重启。
如果没有用modprobe md命令把md模块加载的话,用mdadm 就会出现:cannot open /dev/md0: No such device or address的错误。
Make moudules
如果出现如下错误:No rule to make target ‘moudules’ . stop
是因为当前目录下没有moudules这个东西,其它的类似。
做RPC文件,先把文件拷贝到要做server、client、osd的机器的某个目录下面,然后在相应的目录下进行./server
阅读(1543) | 评论(0) | 转发(0) |
0

上一篇:编译内核

下一篇:raid的一些见解

给主人留下些什么吧!~~