首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | linux相关 | linux认证 | 下载中心 | 专题
oklinux
 系统管理:中文环境 系统管理 桌面应用 内核技术 Linux基础:安装配置 常用命令 经验技巧 软件应用 Linux数据库:Mysql POSTGRE
 网络管理:网络安全 网络应用 Linux服务器 编程开发:PHP CC++ Python Perl SHELL 嵌入式开发 | PHP基础 PHP技巧 PHP应用 PHP文摘
 首页 linux资讯动态 Linux专题 | 其他Unix Linux解决方案 硬件相关 Linux认证 企业应用 Apache | 相关下载:资料 参考手册 服务器
 → 当前位置:首页>系统管理>内核技术>正文

将驱动及应用软件移植到Linux2.6内核

OKLinux www.oklinux.cn 2007-03-01 来源:oklinux收集整理 会员收藏 游客收藏

作为一个积极推进软件业革新的领头羊,Linux操作系统已成为开放系统运动的优秀代表。作为各种Linux发行版的共同核心,Linux内核多年来一直不间断地引进新技术进行革新,逐步提高自身的各种性能,例如可伸缩性、可用性和技术支持等。众多的改进都是围绕增加对其它架构、处理器、总线、端口和外设的支持而进行的。从Linux 2.2内核开始,因为每个新内核的诞生都要经过严格的检验和测试,所以其开发周期大约都保持在两年左右。

除了增加的新功能外,每个新版稳定的Linux内核都会对大量原有功能进行改进,对内部接口进行定制使其更加标准,提高与其它设备的兼容性,并简化对新设备和子系统的支持过程。这些改进中的一部分只与内核开发人员和硬件驱动程序编写者有关,而其它的则影响到系统启动、系统管理和应用软件设置等方面。

如果用户正在把现有的应用软件移植到一个基于2.6内核的Linux套件上,例如TimeSys Linux系统,那么也许不会花费多少功夫,原因是TimeSys Linux的性能已大大改进。此外还增加了对行业标准的支持,例如对POSIX的支持。然而,如果用户正在进行硬件驱动、定制系统级的应用软件或可定制的Linux根文件系统的移植,那么可以参考内核在内部构件、子系统、系统启动和系统管理上发生的基本变化。这会为用户节省许多开发时间,并大大减少用户在移植过程可能遇到的难题。

这里主要介绍如何将现有的硬件驱动、应用软件和嵌入式Linux组件移植到一个基于2.6内核的Linux套件中(我们以TimeSys Linux为例子)。并结合一些软件工具为用户提供所需的信息,帮助用户加快开发进程,控制软件转换和改进成本,甚至可以加快基于Linux系统的设备、系统和应用软件进入市场的速度。这里所列举的软件是TimeStorm Linux工具套件之类的工具软件。它们可以在开发、移植、调试和验证周期等方面为用户提供帮助。

基于2.6内核的设置

内核是Linux操作系统的核心。它管理着所有的系统线程、进程、资源和资源分配。与其它操作系统不同的是,Linux操作系统允许用户对内核进行重新设置。用户可以对内核进行“瘦身”,增加或消除对某些特定设备或子系统的支持。在开发嵌入式系统时,开发人员经常会减少系统对一些无用设备的支持,将节省下来的内存分配给各种应用软件。

Linux内核对各种硬件和端口的支持要靠各种硬件驱动程序来实现。这些驱动程序可以被直接写入内核,也可以针对某些特定硬件在需要时自动加载。通常情况下,可以被自动加载进内核的内核编码称为自动加载内核模块。

Linux内核的设置是通过内核设置编辑器完成的。内核设置编辑器可对每个内核设置变量进行描述,帮助用户决定哪些变量需要被清除,哪些需要写入内核,或者编成一个可加载内核模块在需要时进行加载。

建立新内核的第一步是对内核进行设置。当用户对内核进行设置时,必须先对内核和其它可加载内核模块进行编写和安装。如果用户要对原系统的内核进行构建设置,那么这一步是十分简单的。但如果用户要将原系统内核编译应用于其它目标系统,那么这一步就会变得相对困难一些。例如,当用户修改嵌入式系统的Linux内核时,很可能会先在一个桌面系统上对内核进行设置,然后再通过一套编译工具将其移植到嵌入式系统中。此类编译工具被称为交叉编译程序。

交叉编译程序在一类系统运行的同时会生产一系列二进制编码。这些编码是专门为另一类系统而设计的。两种系统有着完全不同的处理器或架构。在对内核或模块的编译过程中,用户必须通过多种多样的环境变量或Makefile设置来确定具体的交叉编译程序。用户还可以直接使用一个诸如TimeSys之类的集成开发环境来实现这一目标。TimeStorm可以帮助用户很容易地选择交叉编译程序。同样,当用户对Linux的内核和模块进行交叉编译使之应用于嵌入式系统时,如果没有TimeStorm之类的软件,那么用户必须通过额外的设置和Makefile手工修改,才能确定内核和模块的安装过程和安装位置。

基于Linux 2.6内核的设置较以往已经简便多了。Linux 2.6内核采用新的图形设置编辑器使内核的编译和设置变量的从属关系确定变得更加简单。过去基于2.x的内核为用户提供了四种基本的内核设置编辑器:

◆config 服务于内核设置的一个冗长的命令行界面;

◆oldconfig 一个文本模式的界面,主要包含一个已有设置文件,对用户所发现的内核资源中的设置变量进行排序;

◆menuconfig 一个基于光标控制库的终端导向编辑器,可提供文本模式的图形用户界面;

◆xconfig 一个图形内核设置编辑器,需要安装X-Window系统。

前三种编辑器在设置2.6内核时仍可使用,在运行“make xconfig”后,原有的界面被两个新的图形设置编辑器所代替。这需要具体的图形库和X-Window系统的支持。另外,用户还可以通过“make defconfig”命令,利用所有内核设置变量的缺省值自动建立一个内核设置文件。

用新图形编辑器设置内核

当用户运行“make xconfig”命令后,会产生一个更加健壮的新的图形编辑器。新的内核设置编辑器使用Trolltech公司的Qt工具套件。

当用户执行命令“make gconfig”时,屏幕会显示第二个图形设置编辑器。该设置编辑器最初显示一个由两个面板组成的图形界面,如图2所示。用户可以通过鼠标点击工具栏上的“Split”按钮,将gconfig改变成与xconfig界面类似的图形界面。该内核设置编辑器需要GTK2(GIMP Toolkit, Version 2)工具的支持。大多数桌面Linux都自带有GTK2工具。

通常情况下,由“make gconfig”命令调出的编辑器界面不如“make xconifg”命令调出的界面详尽和易用。除非用户拥有一些诸如TimeSys、 TimeStorm Linux开发套件之类的设置工具,不然建议用户使用“make xconfig”命令对内核进行设置。

内核设置技巧

内核设置选项内容很多,这里限于篇幅只列举几个通用的技巧和建议。对Linux 2.6内核的设置要比以前版本简单得多,但是它却有着更多的设置选项。这意味着对于一个无法在硬件上启动并运行,或者无法支持现有应用软件的内核进行设置将变得更加容易。

作为一个常用技巧,在xconfig或gconfig编辑器Options选单下提供了几种非常有用的内核设置选项。

◆ Show all options选项。系统显示所有可用的内核设置选项,即使是某选项由于各种原因无法被选取(通常情况下是由于与之相关的选项未被选取)。这一选项可以帮助用户了解所需要的选项是否存在于内核资源中。

◆ Show debug info选项。系统显示与帮助窗口中所选选项相关的内核设置变量。这一选项可以帮助用户了解激活其它内核设置选项所需的前提选项。

◆ Show Name选项。系统显示与每个内核设置选项相关的内核设置变量的名称,可以帮助确定内核设置变量间的从属关系。

如果用户已经根据需要对内核进行了设置,而且用来对内核进行编译和安装的“make”命令与Linux 2.6内核不同,那么为了方便起见,用户可以使用“make help”命令来显示设置2.6内核的所有有效选项。

其它的“make”命令还包括“make dep”。该命令可以提供变量从属关系信息。此外,“make”命令还可以对内核和其它选择安装的驱动程序进行编译。其中,“make install”和“make modules_install”是两个基本、常用的“make”命令。

建立新的内核设置文件

对Linux内核进行设置的有效手段之一是使用“make oldconfig”命令。该命令可以在现有内核设置文件的基础上建立一个新的内核设置文件。如果用户目前没有内核设置文件,可以通过执行这条命令或启动任意一个图形内核设置编辑器建立一个。

在内核升级设置过程中,“make oldconfig”命令十分有用。“make oldconfig”命令可以使内核设置进程读取用户已有的设置信息,从而提示用户输入某一内核设置变量的值。这一变量在已有的内核设置文件中是找不到的。

现在进行一个测试,将现有的内核设置从基于2.4内核的Linux套件移植到基于2.6内核的Linux套件中。首先将名为.config的文件复制到Linux 2.6内核源代码所在的目录下。例如,这里要把一个定制设置文件从基于2.4内核的TimeSys Linux 4.1移植到基于2.6内核的TimeSys Linux中,主要步骤如下:

# cd /opt/timesys/linux/4.1/iq80315/src/2.4.21-timesys-4.1/kernel
# cp .config /opt/timesys/linux/5.0/iq80315/src/2.6-timesys-5.0/kernel
# cd /opt/timesys/linux/5.0/iq80315/src/2.6-timesys-5.0/kernel
# make oldconfig

这时,系统会提示用户输入表示当前所有未定义内核设置变量的值。输入完毕后,“make oldconfig”命令会自动生成一个升级的内核设置文件。这时用户就可以着手建立新内核了。当然用户也可以继续使用功能更强大的内核设置编辑器对内核进行设置,例如xconfig。

小结

对于基于2.6内核的Linux发行版而言,简化系统设置显得更加重要。新的图形设置编辑器大大简化了用户对2.6内核的设置。目前,TimeSys工具软件在2.6内核设置中的应用十分广泛。然而,随着新技术的不断涌现,每个新的架构、端口、子系统和其它设备都会增加内核设置变量的数量,这些变量都是用户需要了解的。

其它软件工具可为内核设置提供集成支持,例如Target Configurator。作为TimeStorm Linux开发套件中的一个组件,Target Configurator由Open Source Eclipse架构提供动力。为了进一步简化内核设置,TimeSys Linux包括已定制的内核设置文件,这些文件将带来良好的性能、常规开发方式和较强的纠错能力。无论用户使用哪种工具和套件,对Linux 2.6内核的设置都改进了很多。

上一篇:全面了解Linux操作系统核心配置文件   下一篇:按需对Linux系统内核进行定制和修改

收藏于收藏夹】 【评论】 【推荐】 【投稿】 【打印】 【关闭

相关文章
·按需对Linux系统内核进行定制和修改
·全面了解Linux操作系统核心配置文件
·三分钟编译支持NTFS的Linux系统模块
·linux内核启动地址的确定
·ubuntu 6.10 下编译2.6.19内核并安装NVIDIA
·教菜鸟编译自己的内核2.6.19
·内核编译过程之前
·Linux内核源代码的目录结构简单介绍
·通过Linux内核观察/proc/pid/statm
·关于Linux系统内核抢占补丁的原理说明
发表评论
密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。)
站内搜索
阅读排行榜
·基于S3C44B0微处理器的uCl
· 深入理解LINUX内核中文版
·Kernel command using Lin
·Linux操作系统的内核编译
·Process priority and con
·Linux 2.6内核如何武装Fed
·通过振动向Linux ThinkPad
·主流嵌入式Linux系统下GUI
·用命令行加挂Linux的文件
·推荐:Linux用户态与内核
最新文章
·用Tftp向目标板烧写Linux
·交叉编译Linux内核(2.6.22
·UNIX操作系统的加锁解锁:
·基于2.6.9内核小型Linux系
·Linux系统中使用GCC CPU参
·Linux系统的引导过程详细
·Linux系统的内核初始化过
·Linux系统高手之路 内核编
·Linux高手之内核编译过程
·Linux系统内核模块和驱动
·Linux系统下编译支持NTFS
·Linux系统中用内核KHTTPD
·Linux系统内核分析 使用GD
·Linux操作系统的内核解读
·通过Linux系统的内核观察/

设为首页 - 加入收藏 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2007 All rights reserved OKLinux.Cn 版权所有