Mac OS硬件驱动(.kext)安装方法
一、Mac驱动程序的概念
我想用我所理解的系统概念为各位稍微的介绍一下在Mac上的驱动程序概念,基本上,Mac OS X Tiger是一个UNIX架构的核心的系统,所以如果有一些UNIX系统概念其实在底层的架构会很容易了解,系统核心,通常会有包含了硬件支持的程序在内,也就是说有一些需要在系统核心启动就跟着支持的基础硬件组件(例如CPU 指令集支持、内存管理...),大多放在核心中,不过Mac是一种经由APPLE公司自行订制化的核心,基础的硬件支持大多也以APPLE计算机为主,但是,并不会把所有的驱动程序都放在核心中,通常只有『必要的』才会放在核心,不然核心可能会过度肥大,整个系统执行效率就更差。
那么还有许多硬件驱动怎么办呢?通常会把他作成模块程序,然后在核心本身支持模块加载功能,在Linux 中叫做 Kernel Loadable Modules(KLM) 的架构,而在Mac OS X 中,称为 Mac OS X Kernel Extension,其实就把他想成是『驱动程序』就可以了,也就是Mac OS X系统中许许多多的 .kext 文件名的程序集,大多放在 /System/Library/Extensions/ 中,当核心有需要就去找到相应的设备ID然后叫起那个程序来支持硬件。
而现在的MAC OSX86 中其实问题比较多就是在硬件没有驱动支持,也就是没有相应的驱动程序可以使用,相关的HCL (硬件兼容列表)可以到 http://wiki.osx86project.org/wiki/index.php/HCL 下找到,进而可以找到相应可使用的驱动程序。
看了第一部分,假设您已经有简单的概念后,我们知道,其实Mac的驱动程序就是 Kernel Extension,也就是硬件相对应的 .kext 档案,我无法告诉妳哪里一定找的到兼容的kext可以用,但是可以提供个下载驱动的地址http://www.weiphone.com/thread-1918-1-1.html
因为,kext 档案不一定每一种硬件都有人为他制作驱动,所以还是请您自己去查 相关的HCL (硬件兼容列表),先确定有支持,如果不在内建的系统中,应该都有下载kext的连结和说明,所以以下程序我都假设已经找到了kext的档案,
三、实例:安装T43网卡:
我当初找到了 T43 用的 Broadcomd 5751 的kext档案 AppleBCM5751Ethernet.kext
我以他为例安装入系统内的步骤如下:
1. 打开终端:
打开终端,执行:
sudo -s
然后键入你的密码,做好切换管理员的动作。
PS. sudo 是一个安全为考虑的执行管理指令的方法,这边不多做介绍。
2. 复制kext 到相应目录:
相应目录是 " /System/Library/Extensions/ " ,
只要把你找到的驱动 .kext 档案复制到 /System/Library/Extensions/ 中,
方法一:直接进入" /System/Library/Extensions/ "目录中,将自己的驱动 .kext 档案复制到里面,中途可能要输入密码;
方法二:假设你的驱动叫AppleBCM5751Ethernet.kext,并放在桌面的,
指令如下:
cp ~/Desktop/AppleBCM5751Ethernet.kext /System/Library/Extensions/
注意:请把AppleBCM5751Ethernet.kext换成你自己要安装的.kext驱动名
3. 更改文件权限:
文件权限是UNIX系统中蛮重要的一个观念,在Unix为基础的Mac OS X中也一样,就是要把这些复制到系统内的文件的权限切换成系统(管理员)拥有与使用,指令如下:
sudo chown -R root:wheel /System/Library/Extensions/AppleBCM5751Ethernet.kext
sudo chmod -R 755 /System/Library/Extensions/AppleBCM5751Ethernet.kext
注意:请把AppleBCM5751Ethernet.kext换成你自己要安装的.kext驱动名
4. 清除 kext 的快取:
要清除已经安装并制作快取的kext 快取内容,不然可能下次重启之后系统还是去读取快取,就不会读到新放进去kext 驱动
指令如下:
rm /System/Library/Extensions.kextcache
rm /System/Library/Extensions.mkext
kextcache -k /System/Library/Extensions
5. 系统重启:
硬件驱动后基本上是需要重启才会加载,可以点选右上角的苹果点选重启系统,或是使用指令 reboot 重启,接下来就是祈祷重启后系统一切正常,硬件支持良好啦!
驱动程序其实安装并不难,找不找的到驱动(kext)才是问题。
MAC OS驱动安装与卸载
假设您已经有简单的概念后,我们知道,其实Mac的驱动程序就是 Kernel Extension,
也就是硬件相对应的 .kext 档案,
我无法告诉妳哪里一定找的到兼容的kext可以用,但是可以提供个下载驱动的地址http://www.weiphone.com/thread-1918-1-1.html
因为,kext 档案不一定每一种硬件都有人为他制作驱动,
所以还是请您自己去查相关的HCL (硬件兼容列表),
先确定有支持,如果不在内建的系统中,应该都有下载kext的连结和说明,
所以以下程序我都假设已经找到了kext的档案,
我用我当初安装T43为例:
我当初找到了 T43 用的 Broadcomd 5751 的kext档案 AppleBCM5751Ethernet.kext
我以他为例安装入系统内的步骤如下:
1. 登入终端机:
在 [应用程序] 中的 [工具程序] 里面有一个 [终端机],点两下将它执行,sudo -s然后键入你的密码,做好切换管理员的动作。
PS. sudo 是一个安全为考虑的执行管理指令的方法,这边不多做介绍。
2. 复制kext 到目标档案夹:
目标档案夹大多是 " /System/Library/Extensions/ " ,
只要把你找到的驱动 .kext 档案复制到 /System/Library/Extensions/ 中,
方法一:直接进入" /System/Library/Extensions/ "目录中,将自己的驱动 .kext 档案复制到里面,中途可能要输入密码;
方法二:假设你的驱动叫AppleBCM5751Ethernet.kext, 并放在桌面的,
指令如下:cp ~/Desktop/AppleBCM5751Ethernet.kext /System/Library/Extensions/注意:请把AppleBCM5751Ethernet.kext换成你自己要安装的.kext驱动名
3. 更改档案权限:
档案权限是UNIX系统中蛮重要的一个观念,在Unix为基础的Mac OS X中也一样,
就是要把这些复制到系统内的档案的权限切换成系统(管理员)拥有与使用,
指令如下:sudo chown -R root:wheel /System/Library/Extensions/AppleBCM5751Ethernet.kext
sudo chmod -R 755 /System/Library/Extensions/AppleBCM5751Ethernet.kext注意:请把AppleBCM5751Ethernet.kext换成你自己要安装的.kext驱动名
4. 清除 kext 的快取:
要清除已经安装并制作快取的kext 快取内容,
不然可能下次重启之后系统还是去读取快取,
就不会读到新放进去kext 驱动
指令如下:rm /System/Library/Extensions.kextcache
rm /System/Library/Extensions.mkext
kextcache -k /System/Library/Extensions
5. 系统重启:
硬件驱动后基本上是需要重启才会加载,
可以点选右上角的苹果点选重启系统,或是使用指令 reboot 重启,
接下来就是祈祷重启后系统一切正常,硬件支持良好啦!
这就是基本程序了,其实大部分提供下载 kext 的都会说明这个程序,
但可能跟着做却不知道在做什么,希望上面的说明会有一些帮助,
有任何错误,也请前辈指正,任何问题也欢迎讨论,老话一句,教学相长。
卸载
rm -rf /System/Library/Extensions/XXXX.kext(这是不是每次卸载的驱动名称??,是不是所有的KEXT驱动都是这样卸载)
是的,删除老的驱动是这样的!
rm -rf /System/Library/Extensions.kextcache(这又是什么意思?)
mac系统有缓存机制,这个是把系统缓存的驱动也干掉!
rm -rf /System/Library/Extensions.mkext(这又是什么意思?)
跟上面差不多的意思.
kextcache -k /System/Library/Extensions(这又是什么意思?)
这个还是清除缓存的驱动
亲手教你如何安装Mac OS驱动
这里我以常见的显卡为例,来说明如何安装驱动。
首先你要检查你的显卡的核心(或其它硬件,下同,不再赘述)是否能够被OSX86所支持,只要核心被支持,那么一般来说相同核心不同品牌的产品都可以获得不同程度的支持;如果不确认是否支持,可以试试看,但如果明确不支持,自己有没有开发的能力,那你就只能祈祷有高手愿意开发驱动了。
确认得到支持后,我们就要寻找相关的驱动。在OSX里面,“包(package)”是一个无处不在的概念,无论是软件、文档还是硬件驱动都是以包的形式存在的。对于驱动,包的形式就是*.kext,实际上它的官方名是“内核扩展(kernel extension)”,这也就是为什么这个包的扩展名是kext了。简而言之,我们所要的驱动,就是个扩展名为kext的文件(虽然实际上是个文件夹,但在osx看来这是个文件包)。
那么从哪里获得这个文件呢?途径有以下几条:
1、如果真正的Mac上曾经使用过你的这款硬件,那么恭喜你,基本上你的硬件不会遇到太大的问题,或者干脆不会遇到问题。在一些情况下,甚至你无需作任何的修改和设置,硬件就是正常工作的(比如GMA900/950显示芯片)。
无论怎样,Mac上自带的驱动都在
你的Tiger安装盘/System/Library/Extensions/里面,你可以去看看。
当然也有特殊情况,比如Nvidia显卡,虽然Mac上也有使用,但在OSX86里面Nvidia显卡是没有官方的硬件驱动的;
2、如果真正的Mac上没有你现在用的这款硬件,刚才说的文件夹中也找不到相应的驱动,你可以到本站论坛的“各类安装光盘镜像、驱动和补丁索取/分享”去找找看,有一些第三方开发的驱动;
3、如果不符合上述情况,那么你就要去硬件芯片厂商的网站上去看看有没有硬件驱动的源代码下载,然后自己编译了,目前大家用的一些驱动就是通过这种方法得来的,比如8738声卡驱动,当然在你做这个工作之前,还是建议去本站论坛的“各类安装光盘镜像、驱动和补丁索取/分享”去找找看,或许早有人编译好了放出来也说不定。
更糟的情况是,厂商根本没有提供面向osx的驱动,那就要费些周折了。如果它至少提供了驱动源代码,你还有戏,你所要做的就是移植(porting)了,windows的移植难度我就不说了,linux会好很多,最理想的当然是面向bsd的驱动了。不过无论怎样,这个移植工作都不轻松。我的建议是,你不妨在论坛上发起一个项目,然后大家一起来解决。
最难受的情况莫过于,找不到任何源代码。那么唯一的路就是:把已有的驱动拿来逆向工程,macvidia(一个为osx86开发nvidia显卡驱动的项目)上的强人就是这么做的,当然,我知道这很难……
现在我假设你已经拿到了这个.kext文件包。接下来你要做的就是,在Finder中,或者在终端中把这个文件包放到
你的Tiger安装盘/System/Library/Extensions/
里面。然后打开磁盘工具修理磁盘权限,当然你也可以在终端中通过命令来进行(这里假设文件包的名字是driver.kext):
sudo chown -R root:wheel /System/Library/Extensions/driver.kext
sudo chmod -R 755 /System/Library/Extensions/driver.kext
操作的时候可能会要你输入密码,输入你的osx登录密码就行了。然后重新启动,一般来说你的硬件已经可以正常工作了,那么你就没有往下看的必要了,呵呵。
如果无法正常工作,比如安装了显卡驱动后,启动时连图形界面都看不到就停住了,也不要着急,首先使用下面2个办法中的一个登录到osx中去:
1、在计算机POST完、启动OSX时按F8,然后输入-x,此时OSX会以安全模式启动,图形界面 :-)
2、在计算机POST完、启动OSX时按F8,然后输入-s,此时OSX会以单用户模式启动,字符界面,如果你有unix/linux命令行知识的话可能更方便些,毕竟osx启动还是挺慢的。
不管你用那种方法,反正我假设你已经启动了osx并登录进去了,这是进行接下来操作的前提。
那么现在该做些什么呢?你要尝试修改驱动的“属性列表(property list)”文件,它的扩展名是.plist。它在哪里呢?实际上几乎每个包都有自己的plist文件……这里面我们专门说驱动的,它的名字是Info.plist会在驱动文件包(和上面一样,假设这个包叫做driver.kext)的/Contents/里面。这是一个xml文件,或者说纯文本文件,因此你可以很方便的修改它,比如用vi,或者任何你喜欢的图形化的文本编辑工具。
但是你可能遇到个问题,就是修改完了发现不能保存,这是因为没有相应的权限。对于高手来说相信这不是什么问题,但一般人如果不会处理的话,建议作如下操作:
1、在Finder里找到这个driver.kext,鼠标右键单击它,在菜单中选择“显示包内容”,进入Contents文件夹,找到Info.plist并把它拖到桌面上;
2、这时候你可以修改这个文件了,假设你已经修改完并保存了;
3、在Finder中把桌面的这个Info.plist拖到刚才的那个Contents里面,替换掉原来的;
4、修复权限,这个刚才讲过了。
现在我们来看如何修改其内容。
首先你需要知道你这个硬件的厂商ID和设备ID,方法有二:
1、在XP下查看,方法见Stiffy的帖子:
http://www.osx86china.com/bbs/viewtopic.php?t=9010
2、在OSX下点左上的Apple标志-〉关于本机-〉更多信息(系统概述),然后找到“显卡/显示器”,进去看……
这里假设你获得的厂商ID是3582,设备ID是8086,记下来一会儿用。
然后在Info.plist文件中找到“IOPCIMatch”,将其值改为
厂商ID设备ID,即[Copy to clipboard]
CODE:35828086。
接着保存,修复权限,重新启动看看,是不是可以用了?
Mac OS驱动文件(.kext)的安装方法
首先我们来了解Mac驱动程序的概念:
我想用我所理解的系统概念为各位稍微的介绍一下在Mac上的驱动程序概念,基本上,Mac OS X 是一个UNIX架构的核心的系统,所以如果有一些UNIX系统概念其实在底层的架构会很容易了解,系统核心,通常会有包含了硬件支持的程序在内,也就是说有一些需要在系统核心启动就跟着支持的基础硬件组件(例如CPU 指令集支持、内存管理...),大多放在核心中,不过Mac是一种经由APPLE公司自行订制化的核心,基础的硬件支持大多也以APPLE计算机为主,但是,并不会把所有的驱动程序都放在核心中,通常只有『必要的』才会放在核心,不然核心可能会过度肥大,整个系统执行效率就更差。
那么还有许多硬件驱动怎么办呢?通常会把他作成模块程序,然后在核心本身支持模块加载功能,在Linux 中叫做 Kernel Loadable Modules(KLM) 的架构,而在Mac OS X 中,称为 Mac OS X Kernel Extension,其实就把他想成是『驱动程序』就可以了,也就是Mac OS X系统中许许多多的 .kext 文件名的程序集,大多放在 /System/Library/Extensions/ 中,当核心有需要就去找到相应的设备ID然后叫起那个程序来支持硬件。
而现在的MAC OSX86 中其实问题比较多就是在硬件没有驱动支持,也就是没有相应的驱动程序可以使用,相关的HCL (硬件兼容列表)可以到http://wiki.osx86project.org/wiki/index.php/HCL下找到,进而可以找到相应可使用的驱动程序。 那里可以找到驱动?你可以在本站或是用搜索引擎进行搜索!
以下为安装方法,安装时先确认你找到的Kext是和你的系统硬件匹配的。安装前请把系统设置为English,安装完后到应用程序--实用工具--磁盘工具--修复磁盘权限,注销,没问题的话到声卡设置里看看有没有设备!
引用
方法一、自动安装:
1.下载 Kext_Helper_b7.zip (1229 K) 下载次数:5544 .Kext安装助手;
2.然后把准备好的xxx.kext (例如:ALC888.kext )拖到 Kext helper b7,
3.在password 打入你设的帐户密码,
4.按easy install, 等执行完.
5.然后自重新启动, 就搞定了.
引用
方法二、手动安装:
1.拷贝要安装或替换的kext文件到桌面
2.打开右上角Spotlight,输入Ter,打开Terminal程序。
3.输入 Sudo -s
4.输入系统密码回车
5.拷贝括号内代码(sudo rm -rf /Volumes/你的硬盘名/System/Library/Extensions/你要替换的.kext)到
Terminal窗口下回车执行。
6.拷贝括号内代码(sudo cp -R /Volumes/你的硬盘名/Users/你的用户名/Desktop/要安装的文件.kext
/Volumes/你的硬盘名/System/Library/Extensions/)到Terminal窗口下回车执行。
7.拷贝括号内代码(sudo chmod -R 755 /Volumes/你的硬盘名/System/Library/Extensions/安装的文件.kext)到Terminal窗口下回车执行。
8.拷贝括号内代码(sudo kextcache -k /system/library/extensions)到Terminal窗口下回车执行。
9.打开右上角Spotlight,输入disk,打开Disk Utility程序(磁盘工具)。
10.验证并修复磁盘权限。
11.重新启动,启动选项按 F8,输入 -f参数启动。
Pacifist解压pkg驱动,并卸载驱动图文教程
在安装pkg文件格式的驱动后,当发现并不能驱动时,需要对安装的驱动卸载掉,才能保证安装其它的驱动成功,这里教大家删除pkg文件方法(点击图片看大图);
1.安装Pacifist后,找到自己驱动的pkg源文件,这里用GMA915.pkg文件做例子,右键pkg源文件用Pacifist打开
2.这时会看见里面的文件,kext文件就是驱动,把他拖到桌面;
3.然后复制这个驱动名字,进行搜索,就会发现驱动了,然后删除即可装其它的驱动了!
ps:当然如果你安装的驱动时kext的话,就可以直接搜索kext文件名进行删除即可了,不过本站提供的驱动多数是pkg格式,方便大家安装,所以要用Pacifist查看kext文件,再进行查找删除驱动;
mac 驱动
免责声明:文章转载自《mac 驱动》仅用于学习参考。如对内容有疑问,请及时联系本站处理。
上篇c#读取xml文件到datagridview中Android的两种事件处理机制下篇
宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=