Linux入门:解决硬件兼容问题

标签: linux 硬件 问题 | 发表时间:2011-04-15 13:07 | 作者:(author unknown) shuai
出处:http://www.guokr.com/

经过一番智力与耐力的考验,你现在终于把Linux安装到电脑上了,可是即便如此,也不可掉以轻心,因为下面还要进行软硬件兼容性的检测,说不定这里又会遇到拦路虎。

有些时候,Ubuntu或其它Linux系统的安装可能会十分成功,软件与硬件兼容得很好,好似早已磨合过很长时间。不过有时也会出现些意外,比如某个硬件的运行存在一些问题等,今天我们就来谈一谈,当Linux安装出现硬件瑕疵时,应如何进行修补。

注:和Linux入门系列的其他文章一样,本文同样是站在一个Ubuntu菜鸟用户的角度进行探讨。不过所涉及的内容和方法基本上通用,许多技巧也都适用于其他版本的Linux系统。文章的最后还提供了一些遇到问题时的解决途径,供大家参考。

首要工作:使Wi-Fi正常工作

你可以先把Wi-Fi驱动加载到CD或U盘上,然后按照安装Linux系统的方法进行安装,驱动Wi-Fi正常工作。

如果这招不灵的话,还可以找到硬件的Windows驱动,然后通过特定软件使其应用于Linux。假如安装系统时真的遇到Wi-Fi故障,我们就不能上网搜索解决方案,也无法下载相应的补丁程序了,实在是会很令人头大。

如果你想知道自己的无线网卡是否兼容Linux,可以去 HJ Heins的在线网站 进行检测。如果你的Wi-Fi硬件被标示为绿色,那就大可放心,这表明可兼容绝大部分的发行版。

即使不是绿色,也不代表完全束手无策,还可以去Ubuntu社区文档中进行查询,社区中遇到类似问题的其他用户可能已经发布了解决方案,这样你便可以依葫芦画瓢的进行操作。

除此之外,还可以采用查阅 常见故障排除指南 、求助谷歌在线搜索、Ubuntu论坛和其他社区资源等多种方法来解决问题。

/gkimage/cd/1o/v1/cd1ov1.png

假如所有这些尝试都无济于事,我们还有一个终极方案,即用Windows驱动进行替代。别喷饭,虽然听起来有点荒唐,但事实的确如此。我们可以先用特殊软件对Windows驱动进行打包,然后再将其应用到Linux中。

如果你想挑战一下,那就开始动手吧,先下载无线网卡的Windows驱动,解压缩。同时在Ubuntu中安装ndisgtk程序。接着按路径“系统>管理菜单”找到并启动“Windows无线驱动程序”,然后点击“安装新驱动”按钮,最后从Windows驱动文件包里加载INF文件就可大功告成。

其中的具体步骤,How-To Geek网站发布过教程进行逐步演示,可以在 这里 查看。

受限驱动安装

很多硬件制造商(如Intel等),会为硬件用户提供免费且开源的驱动程序,但是还有一些(如Nvidia,ATI,Broadcom等)则不会。作为一个完全开源的操作系统,大多数Linux发行版本身不会集成这些非开源的驱动,因此这部分用户就必须要手动安装相关的硬件驱动。

其实这些硬件也能找到第三方的开源驱动,例如Nouveau便是一个面向Linux用户的Nvidia第三方开源驱动,它对硬件的支持也相当不错,能够满足一般要求。不过要想充分发挥显卡的3D性能和高品质的画面性能,还是必须得安装相应显卡的受限驱动。

/gkimage/o6/nc/yj/o6ncyj.png

各个发行版安装受限驱动的方法迥异,以Ubuntu为例,Ubuntu内置了优异的受限驱动管理程序,能提供与硬件兼容的驱动,并支持一键安装。该程序位于“系统>管理>硬件驱动”。其他发行版安装受限驱动可能稍微繁琐,需要先上网获取相应的安装说明(如Mint和SUSE都有安装Nvidia受限驱动的说明)。

该方法不仅适用于显卡驱动安装。如果无线网卡或其他硬件没有开源驱动,你也可以用同样的方法安装受限驱动。按照我个人的习惯,装完Linux系统后的第一件事,就是查看哪些硬件可以安装受限驱动,并进行安装。

受限格式:DVD,MP3,视频格式等

/gkimage/im/xn/68/imxn68.png

对于开源软件,Ubuntu还可以正常应付,但由于版权问题,当遇到MP3、DVD、版权字体等一些你认为理所应当具备的功能时,它可能就束手无策了。

但想实现上述常用功能其实非常容易,实际上,基本只需要两个步骤:

第一步:如果你现在就在Ubuntu系统中, 点击这里 安装ubuntu-restricted-extras。

如果你现在没启动Ubuntu,可以先在浏览器中点击该链接并收藏此页。你也可以从Ninite中提取该安装程序,或直接前往Ubuntu软件中心(从桌面左上角应用程序菜单中进入)搜索ubuntu-restricted-extras并进行安装。

第二步:打开Terminal(Applications->Accessories->Terminal),输入下面的命令行,按Enter键:

sudo /usr/share/doc/libdvdread4/install-css.sh

经过上述处理MP3、DVD等大部分音频视频格式,以及Java,Windows专用字体,和其他可能遇到的东东就都能正常使用了。很简单吧,是不是感觉不费吹灰之力就搞定了!

其他版本的Linux应用程序仓库中也会提供类似的“受限产品包”或安装程序。你只需在软件包管理器(YUM, Synaptic等)中,搜索MP3、avi、Windows media等关键词即可找到。

键位重新映射

通常情况下,安装完系统后,鼠标都能正常工作——左键,右键,滚轮,甚至有时前进、后退这样的附加键也能正常使用。不过,如果你想重新映射多按键鼠标的附加键,就需要进行一些手动处理了。具体的方法多种多样,但根据我个人的经验,xbindkeys应该是最容易的方案。下面我们就以把鼠标拇指键设定为Ctrl+T快捷键(用于Firefox打开新标签)为例,进行介绍。

首先,我们需要找出所要修改鼠标键的数字编号。鼠标的每个键都有自己的编号,但仅凭外观无法分辨。因此,我们来运行以下命令找出答案:

xev

将光标移动到该命令打开的窗口中,按下拇指键,将会显示如下代码:

ButtonPress event, serial 33, synthetic NO, window 0x4e00001, root 0x142, subw 0x0, time 568329, (93,19), root:(96,714), state 0x0, button 10, same_screen YES

代码最后一行的“button 10”就是我们要找的按键编号。这说明拇指键的编号是10。牢记这个数字,并按Ctrl + C退出xev,继续进行下一步操作。

下一步,我们将需要安装两个程序:xbindkeys和xautomation。在Ubuntu中,运行以下命令即可:

sudo apt-get install xbindkeys xautomation

之后,运行下面的命令来创建xbindkeys的配置文件:

xbindkeys --defaults > /home/your-user-name/.xbindkeysrc

上面的命令行中需要将your-user-name替换成你自己的用户名,另外此命令行也适用于其他版本的Linux。下一步,是对该文件进行编辑。打开文件管理器,找到主目录,进入View > Show Hidden Files。在文件列表的底部找到.xbindkeysrc文件,双击打开,并添加以下命令行到文件末尾(但要在 # End of xbindkeys configuration #之前):

# Thumb Button = Ctrl+T

"xte 'keydown Control_L' 'key T' 'keyup Control_L'"

b:10

Xte即是xautomation程序中的一个命令,它能模拟按键。“xte 'keydown Control_L' 'key T' 'keyup Control_L”语句是指,按下左Ctrl,再按下T,然后再放开Ctrl。 b:10则对应鼠标拇指键编号。明白了吗?不难吧。现在你就可以返回去用xev找出你想设置的鼠标按键编号,并按照上面的演示过程对其进行重新映射。如果你想知道键盘各个键的编号,则可以去查询xte附带的列表。

其实xbindkeys还可以完成很多其他的事情,在此就不再进行赘述,你可以先设定鼠标按键来练练手。更多的功能可以查看Ubuntu的 键盘快捷键指南 。另外,如果用xbindkeys加你的鼠标型号作为关键字进行Google搜索,也能找到很多很好的教程。祝你好运!

如何寻求帮助

/gkimage/qu/u2/51/quu251.png

Linux系统可进行的配置用无穷尽来形容也不夸张,只要你潜心研究就能发现可以做的事很多。而我们所做的Linux入门系列也仅仅是为了起到抛砖引玉的作用,广阔的未知领域还需同学们自己去探求,幸运的是,网络上关于Linux的社区众多,其中很多又都是高手云集,你在使用过程中遇到什么困难,可以去这些地方寻求帮助,相信肯定会有所收获。

Ubuntu社区文档 :这里经常能看到很热门的信息。在此你能了解很多常见的应用,比如我们上面讨论的重设鼠标按键等。运气好甚至能找到一些型号本本的全套硬件解决方案。事实上,不管是笔记本还是台式机,安装Linux后最好都去社区文档中看看是否有相同型号电脑的方案——如果碰巧找到,那无疑将省去很多麻烦,你只需按照文档提供的流程进行操作,就能使所有硬件都正常工作。

Arch Linux维基 :虽然它主要面向Arch Linux用户,但我认为Arch Linux维基是我所见过最好的Linux维基。浏览Arch Linux维基时,要记得把解决方案替换成你所用版本的命令(例如,当这里介绍用pacman来安装软件包时,你要记得要使用apt - get命令,或其他你所用发行版的命令),但毋庸置疑,这里仍然是获取资源的好地方,特别是一些涉及到命令行工具和硬件工作的资源。

Ubuntu论坛 :Ubuntu论坛是最大的Linux论坛之一,很多数问题都能在这里找到答案,你只需检索问题或故障的关键词即可。即使没能搜索到满意方案,你也可以自己发帖进行提问。总而言之,作为一名Linux新手,多在这个坛子泡一泡是不会吃亏的。

Google :坦率来讲,我认为Google是搜索解决方案的最好的方式。上述提到的资源都很好,但Google的综合性更高,所以这也是我最常用的途径。如果你所询问的问题有解决方案的话,一般会在前三个搜索结果中列出。另外,假如你想试用某个新的软件,也可以提前Google一下教程,这样能省去很多麻烦。

Lifehacker :也就是我们Linux入门系列文章的来源网站,这里潜伏着不少高手,他们可能回答不了过于具体的问题(如“我想用软件X,来做Y事,但却出现了错误代码。我该怎么办?”),但却善于处理一般性问题(如“如果我想把鼠标按键映射成Firefox打开新标签的快捷键,用什么方法最好?”),所以不妨也来尝试一下吧。


来源: lifehacker

相关 [linux 硬件 问题] 推荐:

Linux入门:解决硬件兼容问题

- shuai - 果壳网 guokr.com - 果壳网
经过一番智力与耐力的考验,你现在终于把Linux安装到电脑上了,可是即便如此,也不可掉以轻心,因为下面还要进行软硬件兼容性的检测,说不定这里又会遇到拦路虎. 有些时候,Ubuntu或其它Linux系统的安装可能会十分成功,软件与硬件兼容得很好,好似早已磨合过很长时间. 不过有时也会出现些意外,比如某个硬件的运行存在一些问题等,今天我们就来谈一谈,当Linux安装出现硬件瑕疵时,应如何进行修补.

linux xampp常见问题

- We_Get - 博客园-首页原创精华区
1.安装xampp4linux后,只能本机(http://localhost)访问,局域网内其他机器无法访问. 解答:在/opt/lampp/etc中修改httpd.conf,将Listen 80修改为Listen 本机ip地址:80 本机ip地址使用ifconfig 查看. 2.我按照1修改之后,局域网内的机器还是无法访问.

Linux 用命令行查看硬件信息

- Feng - Wow! Ubuntu
之前我们介绍过,在 Linux 上用图形化工具来查看硬件信息,现在我们再介绍一下用命令行方式来完成此工作. linux 查看硬件信息:proc. linux 查看硬件信息:终端命令行. linux 查看硬件信息:脚本. linux 查看硬件信息:proc. 使用/proc查看的硬件信息虽然丰富,但是可读性不好,尤其是我这样的菜鸟,可谓天文.

导致Linux Kernel电源问题原因可能找到

- Hitsmaxft - Solidot
自Linux 2.6.38 kernel开始,移动Linux用户发现电力消耗迅速飚升,电池续航时间迅速减少,这迫使部分用户放弃使用Linux发行版如Ubuntu 11.04,电源退化(regression)问题受到了许多人的关注,在Launchpad上有数百人报告这一bug. phoronix.com执行了一次自动耗电量测试,寻找出问题的根源.

java问题导致linux负载、cpu过高如何定位

- - CSDN博客推荐文章
1.用top找到最耗资源的进程id. 2.查询最消耗资源的java进程. 3.打印java 栈 信息. 4.将耗资源的javaPID转换为16进制(5920转1720<16进制>  去百度找 :十进制转十六进制). PID 对应 堆栈中的nid(16进制). 去stack.txt 中查找nid=1720的问题.

linux下几种常用的排查问题指令

- - Linux - 操作系统 - ITeye博客
它是一个基于rmi的应用,向远程机器提供本机jvm应用程序的信息. 实例:jstatd -J-Djava.security.policy=my.policy. my.policy文件需要自己建立,内如如下:. 这是安全策略文件,因为jdk对jvm做了jaas的安全检测,所以我们必须设置一些策略,使得jstatd被允许作网络操作.

linux下redis执行bgsave时,报overcommit_memory错误问题

- - 博学无忧
一台机器如果内存用完,在进行bgsave时,可能会报错. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.

探讨如何减少Linux服务器TIME_WAIT过多的问题

- - 企业架构 - ITeye博客
       今天早上一上班,有同事就反映公司好几个网站都打不开,登陆数据库. 服务器(windows),发现很卡,于是重启了下服务器,进入系统后,没过一会问题依旧,查看了下系统进程,发现mysql占用率达到99%,可以肯定的是mysql连接出现问题:.       根据TCP协议定义的3次握手断开连接规定,发起socket主动关闭的一方 socket将进入TIME_WAIT状态,TIME_WAIT状态将持续2个MSL(Max Segment Lifetime),在Windows下默认为4分钟,即240秒,TIME_WAIT状态下的socket不能被回收使用.

关于JVM(JDK),Tomcat,Linux的最大线程数问题

- - 孟飞阳的博客
一、JVM(JDK)最大线程数. JVM最大创建线程数量由JVM堆内存大小、线程的Stack内存大小、系统最大可创建线程数(Java线程的实现是基于底层系统的线程机制来实现的,Windows下_beginthreadex,Linux下pthread_create)三个方面影响. -Xmx  最大堆内存.

redis进程OOM被linux内核kill问题调查 - 简书

- -
运维人员收到zabbix告警说codis集群usa-9节点所在机器,原swap 4G 空间只剩下80k. 其立即登录该机器增加了约6G的swap空间. 接着收到某个应用的500错误告警,错误堆栈里提到codis该usa-9节点 “JedisConnectionException: Unexpected end of stream”,再次登录usa-9拿到 linux的系统日志如下:.