虚拟机Ubuntu8.04平台下编译安装linux内核
每一个Linux发行版都有自己专门的工具去构建自定义的内核. 本文主要介绍在Ubuntu平台上编译内核, 如何从www.kernel.org(也叫vanilla kernel)获得最新且未改动的内核源代码来构建一个自定义的内核, 这样你可以使用自己的内核而不是发行版的内核, 另外也介绍了如何给内核打补丁, 从而方便增加新的功能.
下面的工作我都在Ubuntu 6.10 Server ("Edgy Eft")和Ubuntu 6.06 Desktop ("Dapper Drake")上经过了测试.
我想首先要说的是文章中构建自定义内核的方式不是唯一的, 还有许多其它的方式, 这不过是我习惯的方式. 我不能保证使用后不会出现任何问题.
1. 预备工作
我推荐使用root用户执行下面所有的步骤. 如果你还没有创建root登陆口令, 请运行下面的命令:
sudo passwd root
然后, 以root身份登陆:
su
如果你想使用一般用户来替代root用户, 记住在本文所有命令前输入sudo, 比如当我运行
apt-get update
你需要运行下面的命令来替代, 等.
sudo apt-get update
1.1 Ubuntu 6.10上的/bin/sh ("Edgy Eft")
在Ubuntu 6.10, /bin/sh缺省是一个链接到/bin/dash的字符链接. 当你编译软件源代码的时候, /bin/dash似乎还存在问题. 至少我已经遇到了一些问题. 所以我把/bin/sh链接到了/bin/bash.
如果你使用Ubuntu 6.10, 现在你可以运行:
rm -f /bin/sh
ln -s /bin/bash /bin/sh
2 安装必需的软件包 (为内核编译做准备)
首先我们升级软件(包)库:
apt-get update
然后我们安装所有需要的软件包:
apt-get install kernel-package libncurses5-dev fakeroot wget bzip2
3 下载内核源代码
接下来我们下载需要的内核到/usr/src目录(去www.kernel.org网站下载你需要的内核版本, 比如. linux-2.6.18.1tar.bz2(你可以从这里下载所有的2.6内核: http://www.kernel.org/pub/linux/kernel/v2.6/). 然后下载到/usr/src目录:
cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.1.tar.bz2
然后解压内核源代码, 创建一个指向内核源代码目录的linux字符链接:
tar xjf linux-2.6.18.1.tar.bz2
ln -s linux-2.6.18.1 linux
cd /usr/src/linux
4 给内核源代码打补丁(可选)
有时你的缺省内核不支持新买的设备, 你需要安装新的驱动. 或者你需要使用虚拟技术或其它高级的技术, 而这些现有的内核都不支持. 这样情况下你需要给给内核源代码打补丁(当然补丁已经发布..)
现在我们假设你已经下载需要的补丁(以下例子我叫它patch.bz
相关文档:
Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。
服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。 ......
一:前言
最近在研究android的sensor driver,主要是E-compass,其中用到了Linux input子系统.在网上也看了很多这方面的资料,感觉还是这篇分析的比较细致透彻,因此转载一下以便自己学习,同时和大家分享!
(这篇博客主要是以键盘驱动为例的,不过讲解的是Linux Input Subsystem,可以仔细的研究一下!)
键盘驱动将检 ......
Linux中的服务认识
Linux下自动启动的服务都在/etc/rc.d/init.d/目录下,比如说mysql。如果不想让一个服务自动运行,把/etc/rc.d/init.d/目录下的这个服务脚本移除掉就可以(一定要移除吗,不可以使用类似Window下的手动启动?)。
可以操作的状态:
start   ......
Kscope是Linux下的一款类似于SourceInsight工具,下面将其安装过程总结如下:
1.先下载kscope
kscope最新安装版本kscope-1.6.2.tar.gz
http://download.chinaunix.net/download/0006000/5469.shtml
按照说明#./configure
#make
&nb ......
最近一直在忙项目,做的过程中遇到一个很纠结的事情。需要用shell脚本轮训数据库,数据执行完毕以后才能调用其他的shell脚本。在这里总结一下,与大家共享。
脚本如下:
shell 脚本如下:
#!/bin/sh
SQL_DIR=/home/tang/tek/sql/tek
SHELL_DIR=/home/tang/tek/sh/tek
LOG_DIR=/home/tang/tek/logs
. /home/tang/.bas ......