关于启动花屏(包括在系统使用中花屏现象,例如:屏幕任一位置出现的无规则长方型或正方型的色块)的问题,参见我以前的博文:《解决启动进度条花屏问题》,今天给出更新。

直接编辑:

<dict>
	<key>Comment</key>
	<string>Boot graphics glitch, 10.10.2 (1 of 2)</string>
	<key>Name</key>
	<string>IOGraphicsFamily</string>
	<key>Find</key>
	<data>QYjE6xE=</data>
	<key>Replace</key>
	<data>QYjE6zE=</data>
</dict>
<dict>
	<key>Comment</key>
	<string>Boot graphics glitch, 10.10.2 (2 of 2) (seems to have no effect)</string>
	<key>Name</key>
	<string>#IOGraphicsFamily</string>
	<key>Find</key>
	<data>hcB0a0g=</data>
	<key>Replace</key>
	<data>McB0W0g=</data>
</dict>

借助Clover Configurator:

Name: IOGraphicsFamily
Find: 4188C4EB11
Replace: 4188C4EB31
Comment: Boot graphics glitch, 10.10.2 (1 of 2)

Name: IOGraphicsFamily
Find: 85C0746B48
Replace: 31C0745B48
Comment: Boot graphics glitch, 10.10.2 (2 of 2)

由于x220的VGA口不给力(关于Hackintosh VGA的问题以后详谈),为应对不时之需,不得不考虑安装个Windows系统做备胎。为节省磁盘,决定尝试在一块SSD磁盘上安装双系统。 注:本文只记录关键点,细节各位自己研究。

整个安装过程比较简单,其中关键步骤为:

  • 制作Windows(这里主要指Windows 7/8,XP啥的老货就不考虑了)安装盘
  • 磁盘分区与Windows安装
  • Clover配置

Windows安装盘制作

这里需要注意,这里的安装盘一定要支持UEFI,不是随便拿个安装盘就可以使用的,由于制作UEFI安装盘比较麻烦,这里推荐个工具:rufus,这东东真心好使,只要插入USB盘,选择好安装盘格式及.iso文件即可。

内存跑分

磁盘分区与Windows安装

很多文章都说先装Windows再装OSX,其原因是老一代玩家都是用变色龙啥的,那个东东不支持EFI,另外,老版本的Windows也没有EFI支持,但是现在,这些都不是事儿了,完全可以根据需求选择安装顺序,我个人就是先装的OSX。在OSX中,用『磁盘工具』为Windows留空未分区空间即可,切记,不要用此工具创建DOS或NFS分区! Windows安装过程没什么好讲的,只是在选择安装分区时选择在未分区空间创建分区即可,剩下步骤和传统的Windows安装无区别。

Clover配置

安装完Windows后,磁盘的启动就被Windows Boot Manager接管了,这不是我们想要的结果,我们更希望由Clover统一管理。如何实现呢?

挂载EFI分区,将/EFI/CLOVER/CLOVERX64.efi复制到/EFI/Microsoft/Boot/目录下,将/EFI/Microsoft/Boot/目录下的bootmgfw.efi重命名为bootmgfw-orig.efi(这里需要注意了,必须用bootmgfw-orig.efi这个文件名),最后,将复制来的CLOVERX64.efi改名为bootmgfw.efi。

Clover会自动识别Windows,你在启动进入Clover界面时会看到有个Windows的选项,如果你对于显示的图标下面的文字不满意或想把这个启动项隐藏起来,你可以在用Clover Configurator的Gui段添加启动项。

这个网站就是用Jekyll(如果不知道是啥,自己研究下:http://jekyllrb.com/)维护的,而Sublime Text又是现在很火的编辑工具(真心好用,还跨平台),那么问题来了,如何用Sublime Text写Jekyll博文呢?下面博文只介绍下相关要点,避免大家走弯道,细节部分还请自己研究。

如何翻墙

这个本土问题一定要说道说道。安装Sublime Text完毕后一定要安装Package Control(不明白的自己研究:https://packagecontrol.io/)这个插件,这基本上是约定谷成的。安装这个东东没啥难的,网站上有写,可问题是你为了翻墙用了代理,这可咋办?你可以用如下命令安装,根据自己的情况替换代理设置(注意:urllib.request.ProxyHandler({“http”:”http://[proxy_username]:[proxy_password]@[proxy_IP_or_host]:[proxy_port]”})) 部分)

import urllib.request,os,hashlib; h = '7183a2d3e96f11eeadd761d777e62404e330c659d4bb41d3bdf022e94cab3cd0'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler({"http":"http://[proxy_username]:[proxy_password]@[proxy_IP_or_host]:[proxy_port]"})) ); by = urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by);

我们要通过Package Control安装其它插件,这时,如何设置代理呢? 点击:『Sublime Text』->『Preferences』->『Package Settings』->『Package Control』->『Settings - User』,打开Package Control.sublime-settings文件后添加(根据自己的情况修改与增减):

"http_proxy": "[proxy-host]:[proxy-port]",
"https_proxy": "[proxy-host]:[proxy-port]",
"proxy_username":"[pass]",
"proxy_password":"[user]"

安装 Jekyll插件

这里用的Sublime Text插件是sublime-jekyll,具体功能参见其网站介绍。安装完插件后,最重要的一步是设置Jekyll项目。

这里需要注意,使用这个插件一定要引Sublime Text项目这个概念,也就是说你的Jekyll博客必须归属于一个Sublime Text项目。

关于Sublime Text项目,请参见:https://www.sublimetext.com/docs/2/projects.html

打开项目设置文件,添加如下内容(根据实际情况替换其值):

{
    "folders":
    [
        {
            "follow_symlinks": true,
            "path": "/Users/gniu/Hackintosh/yekki.github.com/"
        }
    ],

    "settings":
    {
        "Jekyll":
        {
            "posts_path": "/Users/gniu/Hackintosh/yekki.github.com/_posts",
            "drafts_path": "/Users/gniu/Hackintosh/yekki.github.com/_drafts",
        }
    }
}

测试

打开你的博客项目,按:shift + cmd + p,输入:jekyll,就能看到相关命令了。 sublime-jekyll

注:由于我使用的模板是定制过的,所以,通过上述图形界面生成的博文总是不正确,所以我还是只能通过命令行创建新博文。

最近在重构hackintosh-laptop,其中用到非常多的脚本知识,脚本这东东是非常吃经验的,而这也是我的弱项。因此,今天起我会分享些重构过程中我认为重要的知识点。 先看一个典型的命令行:

grep --ignore-case -r "some string" /tmp

这个典型的命令行中分为三部分:

  • 可执行命令:grep
  • 选项(Options):–ignore-case与-r
  • 参数(Arguments):some string与/tmp

选项主要作用是改变应用的行为,比如:”ls -l”,”-l”这个选项就是改变文件列表的显示方式。 选项分两种表现形式,即:长格式与短格式。例如:上面的”–ignore-case”就是长格式,注意前面的”–“;而”-l”就是短格式。短格式可以将多个选项写在一起,例如:”ls -l -a -t”也可以写作”ls -lat”,当然,长格式更具描述性。

选项可以带参数也可以不带参数,带参数叫作标志(Flag),不带叫作开关(Switch)。长格式标志要用”=”赋参数值,例如:

curl --request=POST http://www.google.com

长格式开关的开与关标志一般如下表示:–foo和–no-foo。

再复杂一点的命令行应用会引入命令(Commmands)这一概念,例如:

git --no-papger push -v origin_master

这个命令行分为五个部分:

  • 可执行命令:git
  • 全局选项(Global Options):–no-pager
  • 命令(Command):push
  • 命令选项(Command Options):-v
  • 参数(Arguments):origin_master

全局选项顾名思义应该是对所有的命令起作用,而命令选项则是只适用于其所跟随的命令。命令的命名应该简短明确。

我的Lenovo X220中默认的Launchpad中的图标大小非常别扭(图标间距很大,图标很小),产生这个问题的原因是,Launchpad中的图标以网格排列,由于默认的行数太多,而图标横宽比是固定的,所以为了显示所有的图标,系统不得不把图标变小,而列数又不变,所以图标的间距显得很大。

解决这个问题的方法是通过如下命令:

设置行数与列数

$defaults write com.apple.dock springboard-rows -int 4
$defaults write com.apple.dock springboard-columns -int 7
$killall Dock

恢复默认行数与列数

$defaults delete com.apple.dock springboard-rows
$defaults delete com.apple.dock springboard-columns
$killall Dock

还有一个命令是删除图标分组(真心觉得这命令没啥用,没事儿别乱试,重新分组老麻烦了!)

$defaults write com.apple.dock ResetLaunchPad -bool TRUE;killall Dock