分类 默认分类 下的文章

 默认安装将会把中文区域设置为zh_CN.utf8,而GVim能识别的中文区域设置为zh_CN.UTF-8。因此GVim会在启动时报错,且 无法正常加载中文菜单。
解决方案:
Linux下编辑 ~/.vimrc,Windows下编辑安装目录下的_vimrc

在前面加入一下代码:
set langmenu=zh_CN.UTF-8                 "设置菜单语言
source $VIMRUNTIME/delmenu.vim    "导入删除菜单脚本,删除乱码的菜单
source $VIMRUNTIME/menu.vim          "导入正常的菜单脚本
language messages zh_CN.utf-8          "设置提示信息语言

安装最新版,可以始终保持最新:

1.在/etc/udev/rules.d/目录下添加一个诸如99.udisk2.rules

2.其中的内容诸如:

# This file contains udev rules for udisks 2.x
#
# Do not edit this file, it will be overwritten on updates
#

KERNEL=="mmcblk0"       , SUBSYSTEMS=="block", ENV{DEVTYPE}=="disk", ENV{UDISKS_IGNORE}="1"
KERNEL=="mmcblk0p[0-31]", SUBSYSTEMS=="block", ENV{DEVTYPE}=="partition", ENV{UDISKS_IGNORE}="1"

3.测试时先需要执行一下重新加载规则:

udevadm control --reload-rules

4.安装了gvfs后,gvfs也会多事的自动来mount一些分区,调用的也是udisk2的东西,

可以修改/usr/share/gvfs/remote-volume-monitors/udisk2.monitor,比如将IsNative修改为false

这两天大家纷纷将 OS X 系统升级到了 El Capitan,然后发现,一些注入的工具无法使用了,某些系统目录无法使用了,第三方未签名的 kext 无法加载了,问题一堆堆的。这是因为,Mac OS X 在 10.11 中全面启用了 System Integrity Protection (SIP) —— 系统完整性保护技术。

SIP 技术主要是用来限制 root 用户的权限,以提升系统的健壮性。

具体哪些目录受到保护,可以查看文件

/System/Library/Sandbox/rootless.conf

不被保护的列表存储在

/System/Library/Sandbox/Compatibility.bundle/Contents/Resources/paths

Mac 提供了内置 csrutil 配置来进行一些 SIP 的配置。在默认情况下,SIP 是开启状态,你可以用一下指令查看

$ csrutil status
System Integrity Protection status: enabled

可配置项如下,字面意思:

Apple Internal
Kext Signing
Filesystem Protections
Debugging Restrictions
DTrace Restrictions
NVRAM Protections

一. 白苹果用户

上面已经说过,Mac 提供了内置的 csrutil 工具来让用户进行一些配置,不过,你需要重启进入到 Recovery mode (Cmd + R on boot) 下进行操作。

csrutil 的一些常用命令

csrutil clear           # 清除 SIP 用户配置,即开启默认的 SIP
csrutil enable          # 开启 SIP
csrutil disable         # 禁用 SIP
csrutil status          # 查看当前 SIP 配置

关于 csrutil enable 可用参数为

csrutil enable --no-internal --without kext --without fs --without fs --without debug --without dtrace --without nvram

譬如说,如果你需要某系统目录的读写权限,譬如 homebrew 全新安装的时候,需要创建 /usr/local 目录,那么你需要

  1. 重启进入 Recovery mode
  2. 打开 Terminal.app,输入 csrutil enable --without fs
  3. 重启至正常系统下,打开 Terminal.app,安装 homebrew
  4. 再次重启至 Recovery mode
  5. 打开 Terminal.app,输入 csrutil enable
  6. 重启

如果想安装第三方的 kext,那么建议装在目录 /Library/Extensions/ 下。

二. 黑苹果 Clover 用户

这里只说 Clover 用户,你需要配置你的 Clover ,加入如下代码

<key>RtVariables</key>
<dict>
    <key>CsrActiveConfig</key>
    <string>0x11</string>
</dict>

<key>RtVariables</key> 跟 <key>SMBIOS</key> 同级,如下图

Clover config.plist

其中 CsrActiveConfig 的值 0x 后跟的是十六进制,Clover 中我们完全开启的值是 0x77,其中 77 转化为两进制为 01110111

对于 01110111,每一位开启 SIP 的特定功能,从右至左 8 个位置我们以 B0-B7 表示:

  • B0: 允许加载不受信任的 kext
  • B1: 解锁文件系统限制
  • B2: 允许 task_for_pid()调用
  • B3: 允许内核调试
  • B4: Apple 内部保留位,值为 1 等效于 csrutil enable
  • B5: 解锁 DTrace
  • B6: 解锁 NVRAM
  • B7: 允许设备配置

如此,我们很清楚了,如果我们只想加载修改的或第三方的 kext,只需 B0 于 B4 位置值为 1,则整个两进制值为 00010001,用 bc 命令行工具进行任意进制转换

$ echo "obase=16; ibase=2; 00010001"|bc
11

转化为十六进制为 11,则 CsrActiveConfig 值为 0x11

如果要同时解锁 kext 与 fs 呢,00010011 --> ?

$ echo "obase=16; ibase=2; 00010011"|bc
13

十六进制值为 13CsrActiveConfig 值为 0x13

为了有助于我们的理解,看下表所示

ConfigrationN/ANVRAMDtraceinternalDebugPIDFSKextHEXClover
csrutil enable --no-internal 0 0 0 0 0 0 0 0 00 0x00
csrutil enable 0 0 0 1 0 0 0 0 10 0x10
csrutil enable --without kext 0 0 0 1 0 0 0 1 11 0x11
csrutil enable --without fs 0 0 0 1 0 0 1 0 12 0x12
csrutil enable --without debug 0 0 0 1 0 1 0 0 14 0x14
csrutil enable --without dtrace 0 0 1 1 0 0 0 0 30 0x30
csrutil enable --without nvram 0 1 0 1 0 0 0 0 50 0x50
csrutil disable 0 1 1 1 0 1 1 1 77 0x77
csrutil disable (no internal) 0 1 1 0 0 1 1 1 67 0x67

 

原链接:http://havee.me/mac/2015-10/system-integrity-protection-on-el-capitan.html

来源于论坛的方法:
1.新建bootmedia文件夹并放到用户目录(图标是一间尖顶小房子的文件夹)
2.把wowpc.iso(mac能直接打开ISO)里面文件释放出来修改,然后把修改好的文件全部拖进bootmedia文件夹
3.替换你的文件(主题、org.chameleon.Boot.plist等)
4.打开终端输入命令生成引导iso文件,需要密码
sudo -s
wowpc.iso虚拟光盘的编译方法:
sudo hdiutil makehybrid -o wowpc.iso bootmedia/ -iso -hfs -joliet -eltorito-boot bootmedia/usr/standalone/i386/cdboot -no-emul-boot -hfs-volume-name "Chameleon" -joliet-volume-name "Chameleon" -iso-volume-name "Chameleon"

CLOVER.iso虚拟光盘的编译方法:
sudo hdiutil makehybrid -o CLOVER.iso bootmedia/ -iso -hfs -joliet -eltorito-boot bootmedia/usr/standalone/i386/cdboot -no-emul-boot -hfs-volume-name "CLOVER" -joliet-volume-name "CLOVER" -iso-volume-name "CLOVER"


OSX懒人版虚拟光盘的编译方法:
编译速度还是很快的
事先在你的硬盘一分区制作好懒人版安装分区盘

sudo hdiutil makehybrid -o /Users/khmsoft123/Desktop/OSX_10.10_DP1.iso /Volumes/OS\ X\ Base\ System/ -iso -hfs -joliet -eltorito-boot bootmedia/usr/standalone/i386/cdboot -no-emul-boot -hfs-volume-name "OS X Base System" -joliet-volume-name "OS X Base System" -iso-volume-name "OS X Base System"

说明:
1、建议在安装分区拷贝个比较大一点的文件--(2--100MB或更大),这样在制作好光盘后,通过TransMac 软件打开此虚拟光盘,删除2--100MB的文件后(腾出空间来),便于大家添加自己的Extra目录,否则会提示空间不足无法拷贝到光盘镜像中。
2、/Users/khmsoft123/Desktop/OSX_10.10_DP1.iso  是保存的位置--可通过拖曳桌面文件到终端的方法后修改文件名
3、/Volumes/OS\ X\ Base\ System/     是你事先制作好的安装盘根目录---可通过拖曳分区图标到终端
4、OS X Base System     安装盘的名称---这个可自己根据喜好修改
5、/Users/khmsoft123    这个是OSX系统的用户名---每个人的应该是不一样的
6、bootmedia/usr/standalone/i386/cdboot   这个是光盘的启动文件---可通过拖曳cdboot的实际位置到终端
7、如果事先通过WIN系统打开过安装盘(安装了HFS+软件),建议删除WIN系统的$RECYCLE.BIN 回收站目录

 

原链接:http://bbs.pcbeta.com/viewthread-1526107-1-1.html

安装之初状态:
两块硬盘,都是MBR格式分区,
一块是机械硬盘,安装了WIN7 32位和Linux,一块是SSD,安装的是WIN7 64位与WIN10 64位
以前玩过Mavericks,安装的就是在硬盘的扩展分区,因此这次也是安装在扩展分区上。


硬盘本身已经在尾部预留了一块空白区,分成两个逻辑盘,一个是安装后的系统分区,一个是安装盘使用分区
在WINDOWS下划分硬盘时,都选择不格式化分区。

 

1.下载镜像包CDR(需要是懒人包,支持MBR等)

    最初下载的是http://bbs.pcbeta.com/viewthread-1662623-1-2.html链接的CDR,启动进不了图形界面
    然后下载的是http://bbs.pcbeta.com/viewthread-1663203-1-3.html链接的CDR,安装时报undefined error,检查发现缺少BaseSystem.dmg(分区留下的空间不够?)
    最后只好将后下载的Extra目录都复制到第一个版本的根目录,替换原来的,就OK了

2.创建两个扩展分区,一个是OSX的系统分区,一个是安装分区(windows下划分逻辑驱动器时都不要格式化)

3.下载硬盘助手,使用硬盘助手写入CDR文件至安装盘中(写入前的勾先去掉,然后选择分区,再勾上,就可以写入了,其他的勾都要去掉)

4.安装HFS+ FOR Windows

5.删除其中的所有的SLE目录下所有的nv打头的,IOBluetooth打头,AMD打头的

6.使用EasyBCD编辑Windows下的启动信息,将Chameleon的iso文件加入的启动菜单中,

7.启动Chameleon的iso,选择安装分区,进入安装界面后,使用磁盘工具选择抹除系统分区的内容,然后安装到此分区

8.安装成功后,删除安装后系统分区下的NV打头文件,IOBluetooth打头文件,AMD打头文件,及Geforce打头文件

9.拷贝安装分区下的Extra目录至系统分区中

10.此时可以进入系统了,设置完成后可以看到显卡能够识别为HD4600,但显存只有3M

11.下面开始修改DSDT以关闭独显

 参考:http://bbs.pcbeta.com/viewthread-1657146-1-1.htm,将其中的原始文件与修改后文件对比,根据对比结果修改自己的DSDT

修改后,屏幕左上角始终颜色不对,一通搜索后解决办法是:将ig-platform-id修改为0x00, 0x00, 0x16, 0x0c或者0x00, 0x00, 0x26, 0x0c均可,只是显存变成了1024M

虽然正常显示已经OK,但不能插入HDMI线,一插入就会黑屏,拔出来也恢复不了,估计是DSDT这边还需要修改,因为用HDMI线用得少,所以暂时不搞这个了

 

显示解决的办法还需要配合驱动:FakePCIID,加上相应的FakePCIID_Intel_HD_Graphics,FakePCIID_Intel_HDMI_Audio

 

12.显示正常后,解决声卡问题,由于在DSDT中已经修改OK了,只需要从网上下载脚本自动修改驱动即可

判断声卡是否正常被识别:https://github.com/toleda/audio_ALCInjection/blob/master/audio_codecdetect.command.zip

修改驱动脚本链接:https://github.com/toleda/audio_RealtekALC/blob/master/audio_realtekALC-110.command.zip

修改完后,用kext Wizards修复权限后重启,就可以在设置中打开声音了

经测试,耳机没问题,可以正确切换耳机、扬声器

 

 13.修改电源管理,电源管理原生可以支持启动,查看了一些资料,还是打上了电源管理kext的补丁

    下载AICPMPatch.zip

    使用这个命令打补丁:

cd ~/Downloads/AICPMPatch
sudo perl AICPMPatch.pl /System/Library/Extensions/AppleIntelCPUPowerManagement.kext/Contents/MacOS/AppleIntelCPUPowerManagement --patch

这么修改似乎没什么用,启动的LOG模式时,还会打印一条waitAppleIntel什么的time out.

 CPU变频用的还是原来BIOS的SSDT,似乎看起来没问题,反正我在用时看起来速度有变化,风扇也没有什么变化,CPU温度与windows下相差无几

 

14.电池问题

 参考资料,修改DSDT,主要是UPBI的函数,修改后老版本的ACPIBatteryManager启动没有问题(在电池掉下94%时开始变红说低电压,2014-11月的版本)

新版本的ACPIBatteryManager会打印一大堆fMaxCapacity > fDesignCapacity,有点编程经验的看看代码也是可以规避

就是UPBI函数中,往PBIF第1个位置加入的就是fDesignCapacity,第2个位置就是fMaxCapacity

因此,只需要判断fMaxCapacity如果大于fDesignCapacity,就用fMaxCapacity代替fDesignCapacity

从这儿大致可以看出神舟的偷懒啊。

15.USB接口

     一安装完就OK,不需要调整

16.无线,读卡器

    自带无线无解,读卡器通过WINDOWS系统下看是PCIE接口的,也是无解

安装完后的结果:

 

显示器信息,已经内建:

 

声卡信息,在升级至10.11.3时,声卡驱动被重新刷新了一把,然后再执行一个脚本就OK了

摄像头正常,打开FaceTime时能够看到功能可用

电池正常,从DSDT来看,这些信息其实都是读取出来的,并没有进行什么计算

 

网络使用的是RTL8111驱动,没有什么问题

显卡的硬件信息

USB一启动就正常,从这儿看到有个Bluetooth Radio,但从蓝牙那儿又是看不到的

设置中的声音,可以看到,都是内建了

节能器,可以睡眠,深度睡眠还不知道怎么试

显示器的亮度可以在这里调节,试过,有效

 

我使用的是变色龙加载,变色龙支持MBR是我使用的主要原因

最后来一张桌面截屏