1. 安装驱动重启后没有反应,并且在终端里输入kextstat | grep RadeonHD没有任何输出 这是因为你的系统里使用了某种显卡激活驱动。可能是你手动安装的,也可能是安装系统时勾选了显卡驱动的项目,还可能是boot或者 com.apple.Boot.plist里添加的。解决办法是或者手动删除那些激活驱动,或者重装系统时不要选择任何显卡驱动项,或者去除 boot/plist里的显卡激活部分。 「安裝」 1. 請解壓縮檔案後,將 RealtekRTL81xx.kext 放置桌面。 2. 使用 “終端機” 將 RealtekRTL81xx.kext 安裝至 /System/Library/Extensions 資料夾。 sudo cp -R ~/Desktop/RealtekRTL81xx.kext /System/Library/Extensions 3. 使用 “終端機” 修復系統權限。 diskutil repairPermissions / 4. 使用 “終端機” 重建緩存。 sudo touch /System/Library/Extensions 另外,的所有权和权限有问题:它被user_name用户和staff组所拥有,而它的目录 权限是rwxrwxr-x(八进制为775)。 出于安全原因,KEXT必须被root用户和wheel组所拥有。另外,KEXT的所有部件对 于非root用户都是不可写的。(关于KEXT的正确权限和所有权的更多信息,请见“ 测试和部署驱动程序”)。通过使用sudo命令获得root权限并对BadKEXT执行 kextload -t将会提供下面如列表 7-2所示的信息。 基本的质量控制 测试您的驱动程序的第一步是执行一个基本的质量控制过程。理想情况下,许多这 些检查应该是你的每天的日常开发的一部分: 内核扩展的权限和所有权是否正确?由于安全的原因,KEXT的任何组件都不能 对非超级用户是可写的。这意味着: KEXT中的所有文件和文件夹,包括KEXT自身,必须被root用户拥有(UID 0)。 KEXT中的所有文件和文件夹,包括KEXT自身,必须被wheel组拥有(GID 0 )。 KEXT中的所有文件夹,包括KEXT自身,必须拥有0755(八进制)或者 rwxr-xr-x(以ls -l显示)权限。 KEXT中的所有文件必须拥有0644(八进制)或者rw-r--r--(以ls -l显示 )权限。KEXT不能用来存放用户空间可执行程序。 在您的post-build和post-install脚本中,您可以使用这些shell脚本命令为 内核扩展设置正确的所有权和权限: /usr/sbin/chown -R root:wheel MyDriver.kext find MyDriver.kext -type d -exec /bin/chmod 0755 {} \; find MyDriver.kext -type f -exec /bin/chmod 0644 {} \; 您还可以以root身份复制驱动程序到一个临时目录,这样能够给这个内核扩展 正确的所有权和权限。 您是否测试过驱动程序是否有内存泄露?它能够正常卸载吗? 加载该驱动程序然后尝试卸载它(使用kextunload),如果它不能成功卸 载,那么此驱动程序留下了没有被释放的对象。您需要跟踪没有匹配的retain和 release。 问题参考见 http://bbs./viewthread-906447-1-1.html |
|