第一次拔智齿

昨天到 Richmond 的一家专业口腔诊所拔掉了左下、由下的两颗智齿。说来也算是把加拿大医疗的整个流程走了一遍,耗时 3 个月有余。

首先是在 2009 年 2 月,我去本地一下普通口腔诊所做牙齿的常规检查和清洗。一般建议每人最好每半年都去看一次牙医,而我上一次还是去年 8 月在北京魏公村的北大口腔医院检查的。本地口腔医院对新来的客户(特别是有保险的),二话不说,先拍几个 X-光片子再说。除了常规的 X-光片外,他们还有一种“全景 X-光”(panoramic X-ray)的仪器,拍出来的口腔照片就像平面上表达的世界地图一样。

这一查就查出问题了:根据大夫的意见,4 颗智齿要拔,因其有不同程度的阻生。其中左下的一颗最严重,从图中可以明显看出是横着长的,应及时拔掉,否则后患无穷:(图片是以面对患者的视角观看,所以左下的牙齿在图上变成了右下。)

Bottom left wisdom tooth

Bottom left wisdom tooth

然而,检查诊所的大夫认为,下面的两颗智齿手术过于复杂,离神经又近,他们不具备这个能力做(还为我另外安排了一周后同一诊所的另一位大夫看,结论也是不能做)。但上面的两颗可以做。考虑到下面两颗更严重,所以先去拔下面的两颗。这家诊所为我开了一张“介绍信”,到另外一家诊所去做,名字也不再是普通的“dental clinic”了,而是“oral and maxillofacial surgery”(口腔与颚面外科)了。这家外科诊所业务繁忙,我可以预约到的时间已经是 3 月下旬了。

3 月下旬后去看,这是一个 50 多岁的大夫。他看过我的 X-光片和牙齿之后,认为可以做。然后就是一些 paper work,由于这在口腔科来看是个比较大的工程,需要让保险公司先看看能够报销多少。外科诊所向保险公司寄去材料,保险公司审核后,再继续预约。等我收到保险公司的通知时,已经是 4 月 10 日左右了。再和诊所预约拔牙,约到了 5 月 8 日。从这里我们也可以看出时间上的延迟都发生在什么地方:诊所──每次 1 个月,保险公司──2 周。

5 月 8 日,我带着保险公司出具的“此手术可 100% 报销”的通知来到诊所进行拔牙手术。扎了 6 针麻药(左下、右下各三针),也不知道是多大计量。20 分钟后开始正式手术。大夫与其助手忙了足有一个半小时。每颗牙拔好后,还要缝针。最后叮嘱了一些注意事项,开了 3 种处方药,要我自己去药店购买:

  • 去痛片:泰诺 3 号(Tylenol 3),成分含可待因、对乙酰氨基酚。疼痛难忍时服用,每两次间隔至少 4 小时。
  • 消炎药:地塞米松,每日 3 次,每次一片,共 12 片,服完为止。具有消肿的作用。
  • 抗生素:青霉素,每日 3 次,每次一片,共 21 片,服完为止。用来防止伤口感染。

回到家后,麻药效力还没有用尽,吃了一点冰淇淋和蔬菜汤。麻药药力过后,疼痛开始变得难忍,而且血一直流。吃了一片止疼片,之后就一直再没有出现无法忍受的疼痛。根据医生的说明,术后要按时吃药,前 2-3 天的疼痛、流血都是正常的,从第二天开始用温盐水漱口。缝合所用的线会在 7-14 天内自然分解,无需拆除。只能吃流食,这点比较痛苦,根据建议,吃富含营养的流体如水果汁、粥汤、蛋酒(eggnog)都可以。

第二天早上用温盐漱口时,发现伤口基本没有流血的感觉了。

Comments (1)

防止 7-Zip 生成的 ZIP 文件在 Mac OS X 下出现乱码

一直以来,我发现在 Mac OS X 中,不论用 Stuffit Expander 还是命令行下的 unzip,解压缩 Windows 下生成的某些 ZIP 文件时,解出来的中文文件名会变成乱码。不过,这种情况出现的次数很少,没有引起我的重视。今天终于觉得不能忍了,以几个简单关键词在 Google 上搜索,好像没有发现专门说这件事情的。于是决心花点时间研究它。

我在 Windows 下的 ZIP 文件大多数是用 7-Zip 这个自由软件生成的。虽然它的强项在于自己的 7z 格式,不过出于兼容性的考虑,我只是用它压缩 ZIP 格式文件,并解压缩所有常见的压缩文件格式。ZIP 文件标准自创立之初就没有、现在也没有记录文件名编码的信息,所以有很大一批 ZIP 文件都是以压缩包的创建者本地 locale 编码的,比如我遇到问题的几个 ZIP 文件内部的文件名就是用简体中文 GBK 编码的。而我 Mac OS X 的 locale 是 en_US.UTF-8,解开后自然不能正确识别 GBK 编码的文件名了。

阅读了 ZIP 文件格式这个 Wikipedia 条目,我发现最新的 ZIP 标准中建议使用 UTF-8 作为文件名的编码。这一点并不出乎意料,显然对于跨平台的需求,UTF-8 的编码是最理想的选择。下面的问题就是如何让 7-Zip 生成以 UTF-8 编码被压缩文件名的 ZIP 文件了。

在 Windows 下进行试验,我发现一个有意思的现象:当 Windows 系统的 locale 为简体中文(中国)时(“控制面板-区域和语言选项-高级-为非Unicode程序的语言选择 – Chinese (PRC)”),7-Zip 压缩出来的 ZIP 文件以 GBK 编码被压缩文件名;而当 Windows 系统的 locale 为英语(美国)时,压缩出来的 ZIP 文件编码竟然是 UTF-8!此外,在中文 locale 下,不论是以 GBK 还是 UTF-8 编码文件名的 ZIP 文件都能正常解开;而在英文 locale 下,只能解开 UTF-8 编码的文件,GBK 编码的文件解出来就是乱码。这表明, 7-Zip 是有处理 UTF-8 编码文件名的功能的。但是,为什么仅仅对英语(美国)代码页(也就是最基本的 ASCII )才会使用 UTF-8 呢?

继续查找,发现 UTF-8 的版本历史里面,自从 4.58 版本以来引入了 ZIP 内部文件名编码的概念。默认模式是,对于生成 ZIP 文件的文件名,如果当前 locale 代码页中有相应字符,就用当前代码页;如果没有,就使用 UTF-8。同时,7-Zip 也提供了两个模式,强制以 UTF-8 编码文件名,或强制以当前 locale 编码文件名(即不作转换)。

了解了这一点,解决方法就变得简单了:压缩 ZIP 文件时,使用 -mcu 选项强制使用 UTF-8 作为压缩文件名的编码。图形界面中的操作如下:

7-Zip "Add to archive" parameter

需要注意的是,7-Zip 的 Explorer shell 右键菜单中“Add to .zip” 这个项目只能以默认参数生成 ZIP 文件。如果希望生成在其他平台不出现乱码的 UTF-8 编码 ZIP 文件,就只能使用 “Add to archive…” 菜单项了。

Comments

Blackberry Pearl 的几个设计缺陷

使用 Blackberry Pearl 8130 这款智能手机已经半年多了。总的来说,它的功能还是比较实用的。随时随地拍出照片并以邮件发送,有一次还帮了点小忙。另外就是其内置的 GPS 功能,配合 Google Maps for Mobile,出门就不怕找不到路了。如果它拍摄的照片中包含 GPS 信息就更好了。

然而,我对 Blackberry Pearl 8130 (也许所有 Blackberry 中都存在)的几项设计感到不可理解,不知道有没有人有同感:

  • 当手机电池快没电时,Blackberry 会关闭手机信号(radio);然而,这时当手机充足电时信号也不会自动打开。显然这会使用户错过打入的电话。
  • 系统自带的闹钟开始振铃后,不能自动停止。有人说会持续响一个小时,不过我没有试过。
  • 当手机处于关机状态时,只要按一下开机按钮就会开机,而不是像大多数其他手机一样需要长按。这样,放在书包中有时会因为触碰造成自行开机。
  • 没有提供自动锁键盘的功能,需要自行指定一个按键实现此功能。
  • 在锁键盘的功能下,非常容易误拨紧急号码,原因是锁键盘后拨动滚轮,会出现一个菜单,其中第二项就是呼叫紧急号码。所以锁键盘状态下,只要滚轮转一下、按一下,911号码就被拨出了。
  • 系统没有提供彻底重新启动的功能。根据我的服务商提供的说明,必须通过“开机时拔下电池再重新装上”的方法实现冷启动。
  • 新来电号码保存到地址簿时,没有提供选择存储域的功能。这样,所有来电都只能保存到“Work 1”中,除非自己抄一遍。

还有一个问题,就是如果使用网络,电量消耗会很快,这使得它每天都要充电。

Comments

近况通报

在美国东岸旅行一周后,我于9月初正式“relocation”到加拿大西岸的大温哥华地区开始工作。温哥华这里属于“太平洋时区”,目前晚于北京时间15小时。温哥华位于大约北纬49度、西经123度,纬度比北京要高,但冬季的气候却并不比北京冷。9月的雨水相对不多,不过最近开始增多了些。据说冬天的雨水会更多。

我现在住在温哥华的downtown,不日即会搬往Richmond。Richmond华人很多,在Richmond商业中心的地带,到处可见华人所开的店铺,经营内容包罗万象。据介绍,Richmond每年的降水量比Vancouver要少30%,详细原因我不是很清楚,不过倒是几次下雨时开车从Vancouver进入Richmond,都发现雨渐小直至停止了。趁着工作刚刚开始还不紧张,我正在计划前往温哥华各地游玩。

持国内驾照,可以在入境加拿大后的3个月内合法开车。只要在这3个月内通过BC省的笔试、路考,就可以领取当地驾照而不中断驾驶资格。由于我的国内驾照颁发日期距今不超过2年,所以考试后只能领取7级的驾照,其与标准的5级驾照相比,限制在于:(1)须在车后张贴“N”标识;(2)只能载一名其他乘客,但直系家庭成员除外;(3)驾车时体内不得含有酒精。在持有7级驾照满2年后,可以申请参加5级驾照的考试。

Comments

在美国“修理”ThinkPad

在美国期间,我“修理”了我的 ThinkPad。打电话给 ThinkPad 客服电话,报出机器型号、序列号,对方确认机器是在保修期内(而没有询问它为什么是在香港购买的)。然后我提出“需要一个新的键盘”,因为“有的按键不好用了”。然后他说“no problem”,并问我会不会自己更换。我说没问题,于是他留下我的联系方式(在美国的电话、地址、Email)。两天后,一个新的键盘被 DHL 寄送到我的住处,没有签字,就留在门口了。又过了几天,Email 信箱中收到了一份问卷调查,询问我对此次“维修”的满意程度如何。

然而,这个机器当时并没在美国──我带去的是 Macbook Pro。于是我把新的键盘带回来了再更换。我想,可能没有别的地方会比在美国修理 ThinkPad 更容易了。

Comments

WWDC 2008 & San Francisco visit

6 月 9-13 日,我前往美国旧金山参加苹果的 WWDC 2008。按说此篇日志早应该发出,但回来后一直忙于毕业设计、答辩,直到现在毕业了才有空更新。

关于这次会议,互联网上已有很多新闻与评论。会议无非是宣传 iPhone 3G,Cocoa 框架之类,确实有一定的意思。不过,我倒是借助这个机会,访问了旧金山及周边很多地方尤其是公司(Google)与学校(UC Berkeley, Stanford University),感受颇多。我甚至还通过此次美国访问,顺道过境了加拿大的多伦多与温哥华这两个主要城市(根据使馆主页,加拿大过境签证可以免费办理)。有关的照片已经放在我的 Picasa Web 上。

在美国期间,我使用 iPod Touch 来辅助我的旅途安排。在旧金山,很多地方都有无线网络,特别是 WWDC 会场(Moscone West)、住处(朋友家)、咖啡店。然而,信号却没有想象中的理想,总是时断时续。不过,这足以让我将本地的周边地图通过自带的 Maps 程序缓存下来,离线使用。我安装了一个 Compass 程序,当作指南针使用它的原理是根据系统时间计算当前太阳的方位,从而得知影子的方向,再与真实的影子方向对齐,即可知道哪边是北(只适用于北半球;南半球南北相反)。通过 iPod Touch 连入 Wifi 网络,也可随时随地查收邮件。

由于我事先购买了一个廉价的手机和预付费卡(AT&T Pay As You Go),一到美国就可以方便地联系。在外面,有找不到的地址,就通过 +1-800-GOOG-411 电话查询,结果还能以短信的形式发到手机上,方便向他人问路。可惜,我用的卡收发短信收费比电话还贵,让人难以理解的是甚至接收短信都要付钱。所以这个短信发送的服务我大概只用了有限的几次。

旧金山的地铁系统不错,基本准时。但是铁轨感觉比较古旧,列车跑上去经常发出巨大的噪音,让人感觉是年久失修了。地铁在地下运行期间,手机一点信号都没有。

在旧金山旅行期间,我没有使用 GPS 记录设备,因为我还没有尝试在 Macbook Pro 上读取 iBlue 737 设备中的信息。不过,从旧金山经温哥华返回北京时,我用它记录下了整个航程。

Comments (1)

鸟枪换炮

最近,我买了一个 Macbook Pro,用来代替我一直使用的 ThinkPad T43。这个 Macbook Pro 是通过 Apple Developer Connection学生硬件购买优惠 购买的,比市场实际零售价优惠了很多,感谢 ditto 姐姐帮我带回。为了成为 学生会员,需要支付 99 美元的费用。同时,我还通过申请,获得了今年 6 月参加 WWDC 08 的资格。

Apple 的电脑产品我从高中就开始接触,但集中使用是在香港大学。当时学的一门多媒体课,绝大多数课程作业都是在 Power Mac G5 工作站上完成的。Mac OS X 是基于 BSD 的,也算是 Unix 的一个分支;基于先前 Linux 和 Solaris 平台的使用经验,切换到 Mac OS X 上并不困难。我觉得,Mac OS X 的许多设计都比 MS Windows 人性化,是 MS Windows 平台开发者们学习的榜样。

我的电脑买来就安装好了 Mac OS X 10.5 (Leopard)。常用的软件在 Mac OS X 上都有 port,比如 Mozilla Firefox,Skype,甚至 Microsoft Office(价钱不便宜)和 Messenger。基于开源的 jabber 协议的 Google Talk 可以用 iChat 登录,但不能传送语音和文件。播放音乐,我直接用了 iTunes,它可以与我的 iPod Touch 完美配合。

跨平台的 Java 程序自然不在话下。C、C++ 开发环境可以通过安装 Apple 提供的 Xcode 程序配置。GNU 的小工具,可以通过 Darwin Ports 来安装,该网站提供的 port 工具行为和 Debian 系中的 apt-get 有异曲同工之处,不过更像是 Gentoo 中的 emerge,因为它的程序安装是从源码开始编译的。

访问 Windows 计算机、搬移数据,可以通过 Windows 的“共享”功能,Mac OS X 内建 Samba 协议的支持。连接可以使用无线网络,在 Mac OS X 中称之为 Airport。

中文输入,我用的是 Fun Input Toy,目前没发现明显的缺点。它和 Windows 下常见的输入法操作习惯基本相符。

我这个版本的 Macbook Pro 支持 multi-touch,但是我发现只有 Apple 自己家的程序才对它有最全面的支持,不过还好一切似乎才刚刚开始(想想 Microsoft 新出的系统,刚发布时也只有自己家的应用程序才能最好地支持绝大多数新特性)。

Comments (2)

万网服务真糟糕

多年以前(2003年)的时候,我注册了第一个域名 class13.com,用于高中的班级网站。这个域名当时是在“中国万网”注册的。至于为什么选择它,理由很简单——我所在的高中——人大附中的域名就是在万网注册的。当时并不觉得230 元/两年(130 元/一年)的费用是非常贵的,以为域名注册的行情就是如此。在前两年的服务到期后,我又续上了两年的万网服务。

在使用过程中,陆续发现了万网的诸多限制。域名注册中的信息中,除了注册人外都可以改。但是,如果要修改域名注册人,必须交 600 元的“过户”费用才行。再如,万网提供的默认 DNS 服务器功能有限。对每个域名的 DNS 记录,如果超过 10 条,每 10 条还要另外付费。如果修改 DNS 服务器?对不起,必须修改“域名注册局”列表上的才可以,不能自由地修改为任何服务器。至于这个列表是什么,鬼才知道。此外,如果想从万网转出域名,还需要提交一份填妥的表格,连同身份证复印件寄给他们,经过批准才能转出。使用了国外的域名注册服务后,我才发现上述种种限制原来都是不存在的,价格还便宜,量又足。

有人会说 .name 域名是个例外——(促销时首次注册)60 元人民币一年,世界上不太容易找到别的地方更便宜了。也许如此吧。不过我最近在帮一位朋友打理某个 .name 域名时,希望转出,和他们折腾了 2 个多月都没搞定。这个域名是在万网的下属某级代理商处注册的。按照他们的要求填写了表格、连身份证复印件寄过去,结果他们却说“没收到”。这不是公然侮辱我国邮政系统的可靠性么!最后不得不采纳他们的建议,先在万网主站(非任何代理商)注册一个“数字ID”,再由代理商将域名 push 到主 ID 中,也就是和他们脱离关系,再进行转移。这也许是因为代理商不愿意万网总公司看到已注册域名从他们手下“流失”,从而影响绩效考核吧。

为什么一定要转移 .name 域名呢?主要是我们想用自己的 DNS 服务器来解析它。在控制面板界面中反复提交,屡次失败。发信给万网技术支持提问,回复如下:

您要修改的是name的DNS,这两个DNS没有在name注册局注册过,所以无法修改成功。

原文中“name”误作“nema”,我帮他们改过来了。这个“name注册局”到底是什么东东?我 google 了一下,却发现这一概念出自万网自己的网页

10、为什么我在万网注册的.NAME域名无法在线修改DNS?
在万网申请的.NAME域名目前如需要做DNS修改,暂时只能使用在name域名注册局注册过的DNS服务器,其他DNS服务器无法使用。但.NAME域名注册局目前还不向其他用户提供.NAME域注册DNS的服务。用户可通过网上搜索的方式找到.NAME域名注册局的网站,查看相关的信息。

11、为什么万网.NAME的DNS服务器可以做域名解析?
万网已在.NAME域名注册局申请DNS服务器,所以在万网申请的.NAME域名可以通过万网的DNS服务器解析。万网将来也会提供对.NAME域名DNS服务器注册的服务。具体提供时间请关注我们的网站。

看,解释得多么合理啊!不过还是没有说明“name域名注册局”是什么东西。没关系,我们可以通过“网上搜索”的方式找到其网站。然而,经过反复查找,都没有找到万网说的这项“信息”。不得已,发信给注册局问问。发信后的第二天,也就是今天收到了回复:

If I understand you correctly, you want to do DNS resolution of ***.name on your own name servers instead of the ones provided by your registrar (for example dnsX.hichina.com). This is possible in the registry, and some of my friends do this currently.

Registrar or local policy might of course limit this, but you should be able to ask HiChina to for example create the name servers ns1.linshuang.info and ns2.linshuang.info on .name. Then they can do a domain-update on lizhen.name to set the name servers to the ones controlled by you. You then have full control of the DNS resolution.

Let me know if you have any further questions.

果然,“注册局”并没有限制用户自由地更换 DNS 服务器。我期待万网给出合理的解释。

Comments (1)

VMWare 6 安装 VMWare Tools for Linux 的一个问题

在 VMWare 中安装 Linux 操作系统,最好在装好后安装 VMWare Tools。其好处是可以接管运行于 VMWare 中的操作系统的一些设备驱动程序,使之更好地支持 VMWare 提供的各项功能。比如,安装 VMWare Tools 之后,鼠标就可以在虚拟机和宿主机之间平滑移动,而无需按 Ctrl+Alt 进行切换。安装的方法很简单,在 VM 菜单中选择“Install VMWare Tools”项即可。其实现的机制是:将虚拟机的光驱中的内容改换成一个含有 VMWare Tools 安装文件的 .iso 文件(可以在宿主机 VMWare 安装目录中找到为不同操作系统预备的这个 VMWare Tools “安装光盘”镜像)。

然而,在新版本 VMWare 中安装 Linux 下的 VMWare Tools,却遇到一些问题。更确切地,是 2.6.22 内核版本,在编译“vmhgfs”模块时出现问题。这个模块的功能是为虚拟机提供共享宿主文件系统的功能。这项功能允许用户在虚拟机中直接挂载宿主文件系统中的某个目录,并进行一些操作。

编译内核模块时的错误如下:

Trying to find a suitable vmhgfs module for your running kernel.

None of the pre-built vmhgfs modules for VMware Tools is suitable for your
running kernel.  Do you want this program to try to build the vmhgfs module for
your system (you need to have a C compiler installed on your system)? [yes]
Extracting the sources of the vmhgfs module.

Building the vmhgfs module.

Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-config2/vmhgfs-only'
make -C /lib/modules/2.6.22-14-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.22-14-generic'
  CC [M]  /tmp/vmware-config2/vmhgfs-only/backdoor.o
  CC [M]  /tmp/vmware-config2/vmhgfs-only/backdoorGcc32.o
  CC [M]  /tmp/vmware-config2/vmhgfs-only/bdhandler.o
  CC [M]  /tmp/vmware-config2/vmhgfs-only/cpName.o
  CC [M]  /tmp/vmware-config2/vmhgfs-only/cpNameLinux.o
  CC [M]  /tmp/vmware-config2/vmhgfs-only/cpNameLite.o
  CC [M]  /tmp/vmware-config2/vmhgfs-only/dbllnklst.o
  CC [M]  /tmp/vmware-config2/vmhgfs-only/dentry.o
  CC [M]  /tmp/vmware-config2/vmhgfs-only/dir.o
  CC [M]  /tmp/vmware-config2/vmhgfs-only/eventManager.o
  CC [M]  /tmp/vmware-config2/vmhgfs-only/file.o
  CC [M]  /tmp/vmware-config2/vmhgfs-only/filesystem.o
/tmp/vmware-config2/vmhgfs-only/filesystem.c: In function ‘HgfsInitFileSystem’:
/tmp/vmware-config2/vmhgfs-only/filesystem.c:582: error: too few arguments to function ‘kmem_cache_create’
/tmp/vmware-config2/vmhgfs-only/filesystem.c:593: error: too few arguments to function ‘kmem_cache_create’
make[2]: *** [/tmp/vmware-config2/vmhgfs-only/filesystem.o] Error 1
make[1]: *** [_module_/tmp/vmware-config2/vmhgfs-only] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.22-14-generic'
make: *** [vmhgfs.ko] Error 2
make: Leaving directory `/tmp/vmware-config2/vmhgfs-only'
Unable to build the vmhgfs module.

The filesystem driver (vmhgfs module) is used only for the shared folder
feature. The rest of the software provided by VMware Tools is designed to work
independently of this feature.
If you wish to have the shared folders feature, you can install the driver by
running vmware-config-tools.pl again after making sure that gcc, binutils, make
and the kernel sources for your running kernel are installed on your machine.
These packages are available on your distribution's installation CD.
[ Press Enter key to continue ]

根据上面提示的错误,可以发现,是编译器在编译某个文件时发生语法错误。这种低级的错误居然会在 VMWare 这个成熟的产品中发生?感到不可思议。于是展开 vmware-tools-distrib/lib/module/source/vmhgfs.tar 文件,打开 filesystem.c,找到 593 行附近代码在调用函数:

   /* Setup the inode slab allocator. */
   hgfsInodeCache = compat_kmem_cache_create("hgfsInodeCache",
                                             sizeof (HgfsInodeInfo),
                                             0,
                                             SLAB_HWCACHE_ALIGN,
                                             HgfsInodeCacheCtor);

这段代码调用的函数 compat_kmem_cache_create 并非 Linux 本身的 system call,而是经过一层兼容性嵌套。很快就能够找到这个定义,在同一 tar 包中的 compat_slab.h 文件中,到有关片段如下:

/*
 * Destructor is gone since 2.6.23-pre1.
 */
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 22) || defined(VMW_KMEMCR_HAS_DTOR)
#define compat_kmem_cache_create(name, size, align, flags, ctor) \
                kmem_cache_create(name, size, align, flags, ctor, NULL)
#else
#define compat_kmem_cache_create(name, size, align, flags, ctor) \
                kmem_cache_create(name, size, align, flags, ctor)
#endif

这段代码的目的是,根据不同的 Linux 内核版本选择不同的系统调用形式。根据注释,意思是说从 2.6.23-pre1 版本的内核开始,系统调用 kmem_cache_create 将少了一个参数。而开始所提到的错误恰好是这个函数调用出现参数不够的问题。仔细分析后发现,原来 2.6.22 版本的内核也被当成了 2.6.23 以后的处理办法,当然不对了!

解决方法:将第 26 行的

#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 22) || defined(VMW_KMEMCR_HAS_DTOR)

改为

#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 22) || defined(VMW_KMEMCR_HAS_DTOR)

重新打包,执行安装程序,问题即可解决。

注:本文的解决方法来自这个论坛

Comments

寄往美国的挂号信可于 USPS 网站上查询邮寄状态

一个偶然的发现:从国内寄往美国的挂号信、EMS 邮件可于 美国邮政服务(USPS)网站 上查询投递状态。只要将邮寄时收据上的条码号输入即可查询。

这一点,连中国邮政 11185 的客服人员都不知道。

Comments (1)