MAC OSX 驱动操作

摘要:
因为MacOSX是基于FreeBSD的操作系统,因此Unix下对文件权限的依赖就被继承了下来了。为了加快启动速度,MacOSX把本机的驱动制作成一个内核扩展缓存,开机时只加载这个缓存,而不必全部kext都要加载。diskutil是一个只有MacOSX才有的命令,其作用就是检测和修复磁盘权限。

mac ox系统的驱动安装常规操作:
下载到 *.kext 的驱动以后,都可以直接把它拖到 /System/Library/Extensions/ 下替换掉原来的文件。替换了以后,还需要修复权限才能够正常使用。因为 Mac OS X 是基于 FreeBSD 的操作系统,因此 Unix 下对文件权限的依赖就被继承了下来了。大家在替换了 *,kext 文件以后,必须要打开终端,输入如下命令:
sudo -s
chmod -R 755 /System/Library/Extensions
chown -R root:wheel /System/Library/Extensions
rm -rf /System/Library/Extensions.*
diskutil repairpermissions /
sudo -s (这个命令是把当前用户升级到系统管理员用户,当然,还要输入管理员密码。)
chmod -R 755 /System/Library/Extensions (这个命令是把 Extensions 下的所有文件的权限都设置成 755,关于权限数字的意义,请参考 Linux/Unix 的命令解释,限于篇幅,这里不说了。)
chown -R root:wheel /System/Library/Extensions (这个命令把 Extensions 下的所有文件的所有者和组别都设置成为 root:wheel。换句话说,Extensions 下的所有文件都设置成为管理员为所有者)
rm -rf /System/Library/Extensions.* (这个命令将删除系统的内核扩展缓存。为了加快启动速度,Mac OS X 把本机的驱动制作成一个 内核扩展缓存,开机时只加载这个缓存,而不必全部 kext 都要加载。我们为了让系统加载新更换的驱动,一定要把缓存删除才行。不过要注意,最后的 .* 是必不可少的。因为 rm -r 是一个递归操作,如果不加 .* 的话,这个命令将会把 Extensions 整个文件夹删除!)
diskutil repairpermissions / (这个命令将修复 / 下的所有文件的权限。diskutil 是一个只有 Mac OS X 才有的命令,其作用就是检测和修复磁盘权限。)
举例:
[MAC]基于X86的苹果系统驱动程序的安装。
苹果系统是基于UNIX的操作系统,其驱动的安装也类似于UNIX的。在真正的苹果电脑中安装OSX是根本不许要手动安装任何驱动的,但我们的想法是在普通机器上安装OSX,那就没那么好的运气保证你所有的硬件都能被OSX识别了,大部分时候我们需要手动安装驱动,网上有很多类型的驱动,甚至有苹果爱好者自己开发的驱动,而大多都是以驱动文件的形式存在,需要手动安装。
当你下载下来驱动之后,会发现所有的驱动文件后缀名字都是以kext结尾的,例如AppleAC97.kext为Intel版苹果的AC97声卡驱动。
安装驱动一般的步骤为:注意,UNIX系统区分大小写,所以务必看好以下命令的大小写
1、将驱动文件解压缩为.kext文件,放到桌面上。
2、打开终端(相当于windows中的命令行)。
3、输入cd ~/desktop (这一行的意思是进入桌面,使桌面成为当前目录)
4、输入sudo chown -R root:wheel *.kext (*.kext就是你的驱动文件,这一行的作用为为后面的操作赋予管理员权限)
5、输入你的root密码,然后回车,如果密码没有可以直接回车。
6、输入sudo chmod -R 755 *.kext (将驱动导入)
7、sudo kextload -v *.kext (加载驱动,如果正常就可以看到你设备的名称了)
8、如果驱动不正常,请输入sudo kextunload *.kext 然后再进行一便4~7,如还是不行那么旧得考虑驱动是否适合你的硬件了。
9、驱动正常后需要保存设定,使下次启动也能生效,输入sudo cp -R *.kext /system/library/extensions
10、重建驱动缓存sudo kextcache -k/*.kext
重新启动就可以使用你的新硬件了!

----------------------------------

本人在MAC OSX 下使用开源的LIBUSB驱动实现USB设备的SCSI命令通讯相关应用程序的开发时, 使用libusb_claim_interfaces函数总是返回3(即访问禁止),解决办法: 1.访问设备之前使用系统命令kextunload停止系统驱动模块 /System/Library/Extensions/IOUSBMassStorageClass.kext,命令如下; "kextunload /System/Library/Extensions/IOUSBMassStorageClass.kext" 2.然后使用libusb_claim_interfaces()函数,可成功调用,已经测试 3.使用完该程序中所有的usb功能的通讯调用后,可通过系统命令kextload重性加载该驱动模块,命令如下; "kextload /System/Library/Extensions/IOUSBMassStorageClass.kext",本人在项目中,除了实现SCSI相关的通讯之外,还要系统 支持USB的U盘访问的功能,故程序使用完LIBUSB的函数调用后,通过系统命令kextload重性加载该驱动来挂结U盘进行数据访问. 4.如果下次再要使用LIBUSB的libusb_claim_interfaces函数进行通讯时,请重复步骤1,2,3,如果步骤1出现kext is use or retained(cannot unload), 请不用管它,等1-3秒后,你也可以重新试一下不加载该驱动.kext,也许就不会报这个错,经过测试,果然可以不加载,OK。 5.总结,下次出现同样的问题或相类似的问题可以采用相同的方法解决,在此记下,以加深印象。 题外心得,多参考相关技术的资料,勤动手实践,一定可以解决存在的问题

免责声明:文章转载自《MAC OSX 驱动操作》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇springboot制作自定义starterandroid实现高性能,高并发,可延时线程池管理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Layui upload 上传有进度条

首先需要下载最新的 layui的js layui 有进度条是在 2.5.5的时候添加了进度条的功能,所有在也不用 xhr:function了 1、前台HTML <link href="~/Scripts/layui/css/layui.css" rel="stylesheet" /> <script src="~/Scripts/layu...

C#操作目录和文件

C#操作目录和文件 创建目录和文件 1、通过Path类的Combine方法可以合并路径。 string activeDir = @"C:myDir"; string newPath = System.IO.Path.Combine(activeDir, "mySubDirOne"); 2、目录的创建。 创建...

Hyperledger Fabric 安装

  前一篇已经准备好了运行环境,本篇将介绍Fabric的安装以及测试网络环境   Fabric的安装   HyperFabric安装大致可以分成两种,     第一:使用自带在脚本安装,可以下载fabric-sample和二进制文件到操作系统,简化安装过程。     第二:以源码在方式进行本地编译安装,此方式相对第一种比较复杂,需手动编译生存相应工具。  ...

这几个IDEA高级调试技巧,用完就是香

一个项目启动两次 测试分布式项目时,经常要一个项目启动2次,不用将一个项目打开多次启动,配置一下即可 1.点击Edit Configurations 2.勾选Allow parallel run 3.依次点击如下2个按钮 条件断点 有如下代码,只想让它在i == 10的情况下停下来 @Test public void condition() {...

microPython环境安装及使用

1.ESP8266_12E(NodeMCU1.0)(AI Thinker)板Arduino IDE环境安装 (1)方法1(自动安装,windows,mac,linux平台都可)http://arduino.esp8266.com/stable/package_esp8266com_index.json(2)方法2(手工安装库和工具,mac,linux)(a...

怎样修复“Windows/System32/Config/System中文件丢失或损坏”故障

怎样修复“Windows/System32/Config/System中文件丢失或损坏”故障 英文原文引自 http://xphelpandsupport.mvps.org/how_do_i_repair_a_missing_or_cor1.htm 此类错误通常说明计算机由于注冊表的原因不能启动,下列操作应该可以修正以上错误。然而,须要特别注意的是,你须...