Linux Redhat AS 4中编译内核与以往版本的区别 (转)
Linux Redhat AS 4中编译内核与以往版本的区别
曾经被问及为何在Redhat AS4中找不到内核源代码目录,开始时回答对方在安装时漏选了源码包,对方回答我已经重装过四遍,一个包一个包找过来眼都对起来了也没找到。真见鬼,我在电话里说要不你先到/usr/src目录下找找看,试着做做。
后来他发了一个邮件给我,包含如下错误:
# make mrproper
scripts/Makefile.clean:10: Documentation/DocBook/Makefile: No such file or directory
make[1]: *** No rule to make target `Documentation/DocBook/Makefile'. Stop.
make: *** [_mrproper_Documentation/DocBook] Error 2
于是研究了一下AS4,才发现自己很落伍,传统的编译步骤有所变化。
在Linux AS 4的发行注记中找到解释:
当内核源码已经存在在内核的 .src.rpm 文件中时,为内核源码提供一个独立的软件包就变得没有必要。因此,红帽企业 Linux 4 不再包括 kernel-source 软件包。需要这些内核源码的用户可以在 kernel .src.rpm 文件中找到。通过这个文件建立一个快速扩展的资源树…
这就是说当红帽企业认为为内核源码提供一个独立的软件包不再重要时,作为用户的我们如果想定制、升级、重编内核就得折腾一下了。/usr/src/kernels 目录不是源代码目录,rpm源代码包也不在AS 4的七张安装光盘中(至少我没能找到)。
1. 获得 kernel.src.rpm 包
通过uname命令确定自己需要的rpm的源代码包为
kernel-2.6.9-22.EL.src.rpm
没有许可证,所以无法直接用up2date下载。网上找了半天,下载地址为:http://ftp.redhat.com/pub/redhat/linux/updates/enterprise/4AS/en/os/SRPMS/
(Redhat相关下载的东西一向比较杂乱,如果当你看到此文时无法通过以上地址下载,请您继续折腾着寻找)
2. 生成kernel源代码安装包
# rpm -ivh kernel-2.6.9-22.EL.src.rpm
源码被解压至 /usr/src/redhat/SOURCES 目录,并且在 /usr/src/redhat/SPECS 目录中建立 kernel-2.6.spec 文件。
# cd /usr/src/redhat/SPECS/
# vi kernel-2.6.spec
%define buildup 1
%define buildsmp 1
%define buildsource 1
%define buildhugemem 1
将buildsource的值从0改为1
# rpmbuild -ba --target=x86_64 ./kernel-2.6.spec
如果遇到类似以下的错误:
make[1]: *** [nonint_oldconfig] Error 7
make: *** [nonint_oldconfig] Error 2
error: Bad e
相关文档:
1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI) 就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......
Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。
服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。 ......
在Linux系统中我一般采用编译源码的方式来安装Apache,有两种方法可以让Apache在系统启动时自动启动。
1. 在/etc/rc.d/rc.local中增加启动apache的命令,例如:/usr/local/httpd/bin/apachectl start
2. 将apache注册为系统服务
首先将apachectl命令拷贝至/etc/rc.d/init.d目录下,改名为httpd
使用编辑器打开httpd文件 ......
本文转载于: http://hi.baidu.com/peruke/blog/item/7f1f34580a0eb6d89c82043b.html
Linux是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。通常每个用户默认的环境都是相同的,这个默认环境实际上就是一组环境变量的定义。用户可以对自己的运行环境进行定制,其方法就是修改相应的系统环境 ......
选定行的范围:,逗号
$ sed -n '/test/,/check/p'
example--所有在模板test和check所确定的范围内的行都被打印。
$ sed -n '5,/^test/p'
example--打印从第五行开始到第一个以test开始的行之间的所有行。
$ sed '/test/,/check/s/$/sed te ......