mac ox驱动开发资源

本文档提供MacOSX内核编程与驱动开发的官方文档链接、开源代码资源及调试工具介绍,覆盖I/OKit基础、线程编程、内核编程等关键主题,并分享了USB设备驱动接口、人机界面设备接口等实用指南。

一.Mac OS X内核编程开发官方文档:

I/O Kit Fundamentals: I/O Kit基础 - Mac OS X系统内核编程

https://developer.apple.com/library/mac/#documentation/devicedrivers/conceptual/IOKitFundamentals/index.html

Threading Programming Guide:MAC OS X 线程编程指南 - Mac OS X系统内核编程

http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/Multithreading/index.html

Kernel Programming Guide:Mac OS内核编程 - Mac OS X系统内核编程

https://developer.apple.com/library/mac/#documentation/Darwin/Conceptual/KernelProgramming/index.html

Kernel Extension Programming Topics:Mac OS X内核扩展编程 - Mac OS内核编程

https://developer.apple.com/library/mac/#documentation/Darwin/Conceptual/KEXTConcept/index.html

Daemons and Services Programming Guide: 守护进程和服务编程指南 - Mac OS内核编程

https://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual/BPSystemStartup/index.html

Introduction to 64-Bit Transition Guide:

https://developer.apple.com/library/mac/#documentation/Darwin/Conceptual/64bitPorting/index.html

Technical Note TN2163- Building Universal I/O Kit Drivers:

https://developer.apple.com/library/mac/#technotes/tn2163/_index.html

Technical Note TN2063- Understanding and Debugging Kernel Panics:

https://developer.apple.com/library/mac/#technotes/tn2063/_index.html

Technical Note TN2118- Kernel Core Dumps:

https://developer.apple.com/library/mac/#technotes/tn2004/tn2118.html

理解与调试Mac OS X内核恐慌:

http://www.apple.com.cn/developer/mac/library/documentation/Hardware/Conceptual/tn2002/

在 Mac OS X 内核发生崩溃时,系统会在屏幕上显示一条内核恐慌信息。一旦发生这样的错误,只有通过重新启动才能恢复系统的运行。

二、MAC驱动开发官方文档

Accessing Hardware From Applications: 通过应用程序访问MAC硬件 - Mac OS X系统内核,MAC驱动开发

https://developer.apple.com/library/mac/#documentation/DeviceDrivers/Conceptual/AccessingHardware/AH_Intro/AH_Intro.html

USB Device Interface Guide:MAC OS X USB设备驱动接口指南 - MAC驱动开发

https://developer.apple.com/library/mac/#documentation/DeviceDrivers/Conceptual/USBBook/USBIntro/USBIntro.html

HID Class Device Interface Guide:MAC OS X人机界面设备接口指南 - MAC驱动开发

https://developer.apple.com/library/mac/#documentation/DeviceDrivers/Conceptual/HID/index.html

I/O Kit Device Driver Design Guidelines:I/O Kit设备驱动设计指南 - Mac OS X系统内核,MAC驱动开发

https://developer.apple.com/library/mac/#documentation/DeviceDrivers/Conceptual/WritingDeviceDriver/index.html

Mac OS X 上 USB 驱动程序的匹配技巧

MAC OS X USB 驱动程序匹配原则基于 USB 通用类规范 。

三.Mac OS X系统内核,MAC驱动官方开源代码:

MAC OS X苹果开源项目×××地址: http://opensource.apple.com/tarballs/

里面有非常多的MAC OS X开源项目,本人经常使用的有以下资源:

http://opensource.apple.com/tarballs/AppleUSBCDCDriver/

http://opensource.apple.com/tarballs/IOUSBFamily/

http://opensource.apple.com/tarballs/IOSerialFamily/

http://opensource.apple.com/tarballs/IONetworkingFamily/

四. Mac OS X系统内核,MAC驱动调试工具:

本人主要使用的就是Kernel Debug Kit,可以点以下链接,搜索Kernel Debug Kit即可。

(需要Apple Developer帐号,免费注册一个即可。)

https://developer.apple.com/downloads/index.action
///////////////////////////////win/////////////////////////////////////////////////////////
[作者] 猪头三
个人网站 :http://www.x86asm.com/

[序言]
很多人都对驱动开发有兴趣,但往往找不到正确的学习方式.当然这跟驱动开发的本土化资
料少有关系.大多学的驱动开发资料都以英文为主,这样让很多驱动初学者很头疼.本人从
事驱动开发时间不长也不短,大概也就3~4年时间.大多数人都认为会驱动开发的都是牛人,
高手之类的.其实高手,牛人不是这样定义的.我们在学习驱动开发之前,一定要明白一个道
理:术业有专攻,不要盲目跟风.

[贡献者]
1> defddr 看雪学院
2> StudyRush 看雪学院

[本内容适用环境及工具]
1> Windows系统下
2> VC6.0以及VS2003版本以上
3> Windows驱动开发包(DDK(老版本) WDK(新版本))
4> 有能力着可以安装VMWare

[本内容适用群体]
1> 具有C/C++语言基础的人
2> 具有80x86汇编基础的人
3> 具备高中以上文化水平的逻辑思维

[具备Windows系统理论书籍]
1> Windows核心编程
2> Win32多线程程序设计
3> 深入解析Windows操作系统
4> Windows操作系统原理

FAQ1:为什么需要[具备Windows系统理论书籍]这4本书?
答:驱动是Windows系统的一个重要的组成部分,深入Windows系统核心的一个体系,就
因为驱动跟系统内核联系得十分紧密,所以涉及了不少系统的基础理论以及原理.因此在学
习驱动开发之前必须先明白Windows 系统的基础开发理论,Windows系统的运作原
理,Windows系统的架构体系.那么我提供的上面4本书是目前市面上我认为最经典最全面
的书籍了.

[具备Windows驱动开发书籍]
1> Windows驱动开发详解
2> Windows设备驱动程序WDF开发

FAQ2:为什么需要[具备Windows驱动开发书籍]这2本书?
答:假设你对Windows系统的基础理论扎实了,也看完了所说的[Windows系统理论书籍]
这4本书,而且你还从事开发过Windows程序或者大程序的经验者.那么你进入Windows
驱动开发的时候,需要一本经典的驱动入门开发书籍即可正确入门.现在我提供了
[Windows驱动开发书籍]这2本书完完全全针对Windows驱动开发入门而编写的书籍.
当然我首要推荐<Windows驱动开发详解>这本书.本书的内容在目前来说,针对驱动开发
的讲解时非常到位了.包含了驱动开发理论 配置 驱动体系 等等......是一本不可多得
的好书.那么第2本,其实有点滥竽充数,但是他里面有少少涉及到WDF这个最新的驱动开
发理论的讲解,大家也就凑合着吧.

[具备Windows调试基础理论书籍]
1> 软件调试
2> Windows用户态程序高效排错

FAQ3:为什么需要[具备Windows调试基础理论书籍]这2本书?
答:在开发驱动的情况下,你少不了要调试驱动程序.那么如何调试驱动程序呢? Windows
已为你考虑到这个问题了并开发了一套强有力的调试工具:Windbg .如何学习这个工具的
调试呢?那么现在市面上只有这2本书针对Windbg讲解得还比较到位,至少针对调试命令
的使用,已经用中文讲解了,大家可以通过2本书先大概了解Windbg的调试命令,然后再进
一步进行GOOGLE搜索并深入学习.

[具备汇编基础理论书籍]
1> 汇编语言 作者:王爽
2> 80x86汇编语言程序设计教程[绿皮版 或者 黑皮版]

FAQ4:为什么需要[具备汇编基础理论书籍]这2本书?
答:由于在Windows环境下开发驱动,从而有个弊端,就是Windows的WDK,DDK文档少得
可怜,很多说明多是模糊的.因此导致我们开发的驱动极其不稳定,这时就需要逆向
Windows驱动的机制来加深理解.在一个由于驱动的不稳定性,会导致系统蓝屏,有时错误
并不会直接定位到你的代码,这时就需要汇编来分析错误的缘由.就如我前面介绍的[具备
Windows调试基础理论书籍] 基本是用汇编语言来阐述调试技术.

[驱动开发扩展书籍]
1> 寒江独钓-Windows内核安全编程
2> Windows内核原理与实现
3> Rootkit Windows内核安全防范
4> Windows内核情景分析

FAQ5:为什么需要[驱动开发扩展书籍]这4本书?
答:熟话说:学无止境,驱动开发领域是一个很庞大的体系,这归根于驱动框架多样化而决定
的.驱动包含了:文件驱动,磁盘驱动,显卡驱动,网络驱动,等等不同的种类,每一种类就是
一个领域,你决定你的能力需要扩展到多方面,那么你可以考虑先我这里提供的这4本书来
学习,通过阅读这3本书,你会发现驱动可以做很多你意想不到的事情.本人从事开发驱动
将近4年,也仅仅涉及 文件驱动,磁盘驱动以及一些小型驱动而已.这些的学习我也仅仅是
根据需求来进行选择性学习.每个人都有自己的能力极限,大家要量力而行.

备注:网友可以推荐其他好书

[推荐学习资源站点]
1> http://forum.driverdevelop.com/ 国内唯一个知识点比较全的驱动交流网站
2> http://www.osronline.com/ 国外著名的驱动开发社区
3> http://www.microsoft.com/whdc/default.mspx 微软官方驱动开发技术支

[推荐正确学习方式]
1> 认真阅读我提供的参考书籍
2> 多使用Google来解决你遇到的问题
3> 多尝试用驱动写你自己喜欢的功能
4> 提升你英文阅读能力,因为大部分有价值的资料来自于国外
5> 不要急于求成,不要浮躁,不要把驱动开发技术当做一种炫耀

转载于:https://blog.51cto.com/haidragon/2089261

<think>好的,我需要帮助用户寻找并安装ox16pci954的驱动程序。首先,我需要明确这个设备的详细信息,比如厂商和具体型号。因为用户提供的型号“ox16pci954”可能拼写有误或者不完整,常见的PCI设备厂商如Oxford Semiconductor可能会有类似命名的产品。例如,Oxford Semiconductor的OX16 PCI系列芯片通常用于串口卡或多端口控制器。 根据用户的引用资料,特别是引用[2]中提到关于驱动冲突的解决方法,用户在安装驱动时可能需要检查系统现有的驱动是否冲突,尤其是Clover引导加载器中的相关kext文件。另外,引用[4]提到固件更新和安装linux-firmware的方法,这也可能与硬件驱动有关,尤其是在Linux系统中。 首先,用户应该确认设备的准确型号。可以通过在Linux下运行命令如`lspci -nn`查看PCI设备的厂商ID和设备ID,比如输出可能类似于`04xx:16xx`,其中xx部分需要具体确认。例如,Oxford Semiconductor的OX16C954芯片对应的ID可能是类似1415:9504(厂商ID 1415对应Oxford,设备ID 9504对应具体型号)。确认ID后,可以更准确地搜索驱动。 在Windows系统下,可以通过设备管理器查看设备属性,在“详细信息”选项卡中选择“硬件ID”来获取VEN和DEV代码。例如,VEN_1415&DEV_9504这样的信息能帮助定位驱动。 接下来,根据系统环境采取不同步骤: 对于Linux系统: 1. 更新系统固件和内核:运行`sudo apt update && sudo apt install linux-firmware`(引用[4])。 2. 检查内核是否已包含对应驱动Oxford芯片的驱动通常在内核模块中,如`serial`或`8250_pci`模块可能需要加载。 3. 如果内核未包含,可能需要从厂商网站或第三方仓库下载驱动源码进行编译安装。 对于Windows系统: 1. 访问Oxford Semiconductor官网(现可能属于Synaptics或另一家公司)的支持页面,查找OX16C954的Windows驱动。 2. 如果官网无资源,可尝试第三方驱动网站,但需注意安全性。 3. 安装时可能需要禁用驱动签名验证,尤其是较旧的驱动。 此外,引用[2]中提到移除冲突的kext或EFI驱动,如果在黑苹果环境中遇到问题,可能需要类似操作,确保没有其他驱动干扰。 如果用户无法找到官方驱动,可能需要联系设备制造商或寻求社区支持,如在论坛中询问是否有其他用户遇到相同问题并找到解决方案。同时,确保操作系统和固件都是最新版本,以兼容性更好。</think>关于寻找和安装OX16PCI954驱动程序的步骤如下: ### 1. 确认设备型号和厂商 - **关键操作**:通过硬件ID验证设备型号。 在Linux终端执行: ```bash lspci -nn | grep -i "Oxford" ``` 在Windows设备管理器中查看设备属性的`硬件ID`,例如`VEN_1415&DEV_9504`表示厂商为Oxford Semiconductor(1415),设备ID为9504[^4]。 ### 2. 根据系统环境选择安装方式 #### **Linux系统**: 1. **更新固件和内核驱动**: ```bash sudo apt update && sudo apt install linux-firmware ``` 此操作可更新包含常见硬件驱动的固件包。 2. **加载内核模块**: Oxford芯片驱动通常集成在内核中,尝试加载串口驱动模块: ```bash sudo modprobe 8250_pci ``` 检查是否识别设备: ```bash dmesg | grep tty ``` #### **Windows系统**: 1. **官方驱动下载**: - 访问Synaptics(Oxford已被收购)[支持页面](https://www.synaptics.com),搜索`OX16C954`或相关型号。 - 如果官网无资源,尝试第三方驱动库如[DriverGuide](https://www.driverguide.com),但需谨慎验证文件安全性。 2. **手动安装驱动**: - 在设备管理器中右键选择未知设备 → 更新驱动 → 手动指定驱动目录。 - 若驱动无签名,需在Windows启动时按`F8`禁用驱动签名验证[^2]。 ### 3. 处理驱动冲突(黑苹果/Hackintosh) 若在macOS环境中安装,需检查: - 移除冲突的kext:如`IO80211Family.kext`可能干扰PCI设备识别。 - 调整Clover引导的`drivers64UEFI`目录,保留单一内存修复驱动(如`OsxAptioFix2Drv-64.efi`)。 ### 4. 替代方案 如果驱动不可用: - **虚拟机穿透**:在虚拟机中直接映射PCI设备(需VT-d/AMD-Vi支持)。 - **定制驱动开发**:基于芯片手册编写简易驱动(需Linux内核编程知识)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值