日志标签 Debian
nVidia 显卡在 Debian sarge 最新 linux 内核中的驱动
7月30日
我的笔记本安装的是 Debian sarge,上次升级内核到 linux 2.6.32-5, nVidia 的驱动就一直没有跑起来,今天下班后,仔细研究了一下。
先说一下 nouveau 和 nVidia 驱动的历史
Linux 和 Windows 相比,让用户觉得上手比较难,一个很重要的原因就是驱动不易安装。
- Windows 本身内置了大量的设备驱动
- 因为 Windows 的普及,硬件厂商首选是开发针对 Windows 的设备驱动
- 再有一个就是 Windows 升级比较缓慢,Windows XP 的历史都快10年了,硬件厂商的支持难度要小
就 nVidia 显卡来说,其实 Linux 的支持也是满不错的:
- Linux 内置了 nv 驱动:xserver-xorg-video-nv 。对 2D 支持尚可,3D 则是完全的不支持
- nVidia 官方曾经发布过开源的驱动 nvidia-glx 但不久就宣布不再支持。现在 nVidia 提供非开源的 Linux 驱动,在官网提供下载链接: http://www.nvidia.com/object/unix.html
- 因为 nVidia 官方的驱动和 Linux 操作系统的开放版权向背,各个 Linux 发行版都没有将 nVidia 官方的驱动集成到发行版中,造成用户安装 Linux 不能像 Windows 那样下载拆包即装的硬件驱动,只能使用功能较弱的内置驱动。
为了发挥显卡的最大功效,使用 3D 桌面或者运行 Google Earth 之类软件,我是这样安装 nVidia 驱动的:
- 首先在 Linux 中要安装 gcc,g++ 等软件开发环境,因为编译硬件驱动需要。
- 下载 nVidia 驱动。见官方驱动下载网页:http://www.nvidia.com/object/unix.html
- 启动 Linux 到文本控制台。如果进入了 X Window,需要杀掉 X,进入控制台界面。
- 运行从 nVidia 下载的软件包,按照界面一步一步操作,即可编译出内核模组和 Xorg 的设备驱动
- 编辑 /etc/X11/xorg.conf 设置: Driver “nvidia”
- 如果 Linux 升级?需要重新执行上面的步骤。
是不是太繁琐了?谁让你频繁升级呢? :-D
好消息是 Nouveau 来了,你看其中有字母 n 和 v,猜出来了么?这是 nVidia 在 Linux 下新的开源驱动名称。Nouveau 是通过针对 nVidia 显卡驱动反向工程,实现的 nVidia 开源显卡驱动,目标是提供完全的 3D 驱动支持。较 Linux 之前提供的 nv 驱动大大的前进了,甚至有一天会盖过官方的驱动。
阅读全部内容 »
Debian 文件偷换
7月9日
Debian “文件偷换”?在我们对开源软件定制的时候,用到了很多“偷换”的技术实现 Linux 的定制。当然群英汇大部分应用属于彻底的定制开发,采用软件包重新发布的形式提供服务。但是也有少部分的软件,例如 Apache2,PHP5,shorewall,只是对这些软件包自身的配置文件进行定制修改,这时如果采用软件包重新发布就显得非常笨拙和多此一举。采用配置文件“偷换”,起到事半功倍的效果。
为什么要文件“偷换”,而不是“光明正大”的覆盖呢?
- Debian 会检查文件包的文件冲突,不允许两个不同的软件包(A 和 B)安装相同的文件。
如果新安装的软件包(B)提供的文件已经由其它的软件包(A)安装过了,则拒绝安装新的软件包(B)。 - 如果新的软件包(B)在 POSTINST脚本(安装后自动执行的脚本)中,以拷贝文件的方式覆盖其它软件包(A)提供的文件,当然是可以的。但是,如果软件包A 有了新的版本,升级软件包A,会导致软件包B的定制文件被软件包A新的文件所覆盖。
Debian 本身提供的 dpkg-divert 提供了光明正大的文件“偷换”功能:
- 软件包 A 安装,配置文件保存在 /etc/a/file 中。
- 软件包 B 安装,执行 dpkg-divert 命令,声明将原来 /etc/a/file 移动到其它位置 /etc/other/place
- 软件包 B 自己的配置文件 /etc/b/file 链接到 /etc/a/file
- 软件包 A 升级的时候,会发现自己的配置文件 /etc/a/file 被指定到新位置 /etc/other/place,会将新的配置文件保存到 /etc/other/place 中。
Debian 文件偷换有两个常见的模式。
- 模式1:文件链接方式:
- 软件包 A 提供配置文件 /etc/file
- 软件包 B 提供配置文件 /etc/file.ossxp
- 软件包 B 的 postinst 脚本执行 dpkg-divert
- 将 /etc/file 重命名为 /etc/file.ossxp-orig
- 将 /etc/file.ossxp 链接为 /etc/file
- 模式2:文件移动方式
- 软件包 A 提供配置文件 /etc/fileA
- 软件包 B 提供配置文件 /etc/fileB。注意该配置文件不能是 /etc/fileA(第三模式)。
- 软件包 B 的 POSTINST 脚本执行 dpkg-divert,将 /etc/fileA 移动到 /usr/share/B/etc-fileA 中
在之前的一篇博客《群英汇部分应用的 /etc/init.d/ 下脚本名称改变》中曾经提到用 Debian Config Package 软件 和 CDBS 脚本,可以非常简单的实现上述两种文件偷换模式。而且根本无须编程,只是修改配置而已。
但是简单是有代价的。我们被限制在这两种“文件偷换”的模式中,而这两种模式都只在特定的场合可行,也就是说在特定情况下,都有副作用。当我们需要第三种模式的时候,就无法实现了,需要在彻底了解文件偷换机制后,脱离 CDBS ,手工编程实现。这两种模式有什么问题,以及怎么实现第三条道路呢?
阅读全部内容 »
群英汇部分应用的 /etc/init.d/ 下脚本名称改变
3月9日
更新:2010/7/10日,改进了部分系统定制包的打包机制,/etc/init.d/ 下的脚本恢复原来的名字。可以参考博客《Debian 文件偷换》。
群英汇最近对 ossxp-ntp, ossxp-apache2, ossxp-secure-fw-shorewall 作了升级,升级后,可能会感到不适应。
- 原来在 /etc/init.d 下的脚本是: /etc/init.d/ntp, /etc/init.d/apache2, /etc/init.d/shorewall
- 此次修改之后,脚本改为:/etc/init.d/ossxp-ntp, /etc/init.d/ossxp-apache2, /etc/init.d/ossxp-secure-fw-shorewall
这是为什么呢?
Debian 最新版本的 sysv-rc 包,提供了对 /etc/init.d/ 下脚本启动优化的功能,会根据启动脚本的对服务的依赖关系,自动建立启动顺序,而不是像以前那样完全凭借软件包维护者手工设定序号确定服务加载顺序。
让服务的加载更加合理,让启动的速度更快。
可 sysv-rc 包和群英汇调整 /etc/init.d/ 下脚本名称有什么关系呢?
Linux 应用程序失去输入焦点问题的解决
3月9日
最早在这个博客(Debian 版本升降级)中就已经提到了,在 Debian 版本升级后,发现部分应用在 Alt-Tab 切换时,输入焦点失去,无法进行切换。当时以为版本降级可以解决,但是因为最终没有找到具体是哪个包造成的,又不想将系统回退到 Lenny,最终我的笔记本一直带病工作,最近很多同事的机器都已经传染了这个毛病,今天终于解决了这个问题。
简单的一句话:卸载 scim,安装 fcitx 输入法。
Debian/Linux下Redmine的安装步骤
3月9日
前提条件是:你的机器上已经安装了 ruby , rake, rails 和 mysql数据库。
至于ruby和rails的版本对应情况可以参考:http://www.redmine.org/wiki/redmine/RedmineInstall
Debian/Linux下Sphinx-for-chinese (中文全文搜索)的安装
3月4日
Sphinx是一个基于SQL的全文检索引擎,但对中文用户来说一个致命的缺陷是不支持中文。后来在网上发现了一个基于 Sphinx 的支持切词的全文搜索引擎 sphinx-for-chinese。下载下来安装使用后发现很好用,下面介绍一下具体的安装过程。
阅读全部内容 »
Debian/Linux上的txt文本文件拷到Mp3后变成乱码
3月1日
最近我在网上下载了一些好的英语学习资料,然后想拷贝到Mp3里浏览,不料打开一看全部是乱码? :-? 上网搜索之后终于找到了原因,并解决了。下面分享一下我的解决方法。
阅读全部内容 »
Debian/Linux下sphinx的安装
2月26日
sphinx的介绍
Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用 程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为MySQL 也设计了一个存储引擎插件。

最新评论