虚拟机

faif | 06月 10, 2008 | HowTos, 开源与自由 | No Comments

虚拟机技术大行其道,wikipeida专有文章 进行比较,Vmware和VirtualPC是两个普通用户使用比较广泛的虚拟机,开源社区里面Qemu比较有名,基于它产生了很多衍生项目,它的长处在 于支持很多主机系统(hosts),也可以模拟各种目标硬件(模拟很多CPU体系结构)。IT考证青年们应该熟悉的就是著名的模拟cisco路由器硬件 (主要是模拟MIPS的CPU)的项目dynamips,可以transparent地跑思科的IOS,所以是被认为是用来学习CCNx甚至CCIE的利 器。还有就是模拟各种嵌入式主板的开源项目Skyeye ,主要由中国的程序员在开发,刚刚发行了1.2.5的测试套件支持ARM,PowerPc, Mips等流行的嵌入式芯片体系结构 ,对嵌入式编程有兴趣的可以试试。另外剑桥大学的Xen项目,基于Linux内核上的优化,商业化的很成功。不算是虚拟硬件技术的UML项目(User Mode Linux)成为ISP提供虚拟主机的廉价方案。

后来异军突起的,用户界面很友好的有Virtualbox,最早由介 绍我认识这个产品。VirtualPC最早是一家叫Connectix软件公司的产品,后来被微软收购了,同样VirtualBox是一家德国的软件公司 innotek GmbH开发的,该公司和当时的Connectix就很有技术上的联系,最近(2008年)也被微软的老对头Sun公司收购了。VirtualBox提供 两种版本,对个人用户都是免费的,一个binary版本含有私有软件的代码,一个的开源社区版(OSE)。OSE版的已经进入了“源”。用ubuntu和 debian的用户可以直接apt-get得到。

如果你安装的是binary版本,如果发现错误,需要再安装linux的源代码和运行系统的相应头文件,以便virtualbox编译安装相应的内核模块:

sudo apt-get install build-essential
sudo apt-get install linux-headers-`uname -r`
sudo /etc/init.d/vboxdrv setup
安装以后,如果运行出现权限问题,需要把你的用户名加入vboxusers组里,使用图形界面的话点击”system”->”administration” -> “users and groups”,修改设置。或者:
# usermod -a -G vboxusers yourusername

Virutalbox虚拟的硬件对老的操作系统的支持有点问题,例如windows98的显示问题,因为虚拟显示不是用显卡硬件实现而是通过软件addon提供的。而Virtual不提供针对Windows98的软件addon。

对此virtualbox的解释是由于没有付费的商业用户提出这一要求,所以这块模拟的问题,不是他们优先考虑的,但是有时与virutalbox有开源版本,而且很多代码基础和Qemu类似,所以鼓励用户贡献他们的patch,有兴趣的朋友可以试着移植。

题外话,有些朋友想试试linux,可以试试wubi安装 ,不用格式化分区,不用自己做双启动,不用破坏你原来的windoze,利用了Linux可以使用文件作为文件系统的特性。很方便的安装卸载如同windows下的应用程序。

ref: http://samiux.wordpress.com/2008/06/01/virtualbox-160-with-ubuntu-804-2624-17-generic-kernel/

Motorola手机V3解锁

faif | 02月 3, 2008 | HowTos | No Comments

2008-02-03 22:41

周五傍晚,驱车给同事送药的路上,风乍起,暴雪乱飞,回家后雪倒停了。而今年国内的南方,暴雪成灾,我们的民族真是多灾多难。

有 款几年前和T-mobile签的Motorola的V3手机,想拿出来给家人用,却不料手机是被锁定(Subsidy Lock)的。很讨厌手机公司这样的行为,合约完毕,用户应当有权处理自己的手机,何必要锁定网络呢。研究了一下,手机有三层安全锁定,用户锁定码 (lock code)两层:4位数字的,和6位数字的,就是缺省为0000或1234的code,用软件很容易覆盖原来的值,最后一层属于网络供应商的锁定 (Subsidy Lock)也就是防止你使用别的网络的sim卡,普通用户很难解开。出现的界面是这样的:

网上有很多收费的商业服务,只要你提供IMEI代码(手机的唯一识别码),可以购买解锁服务。网上有些DIY的解决方案,有一种需要打开手机外壳,寻找test points并用另外的mod芯片。但是如果你想用纯软件方法,无需硬件的话可以参照以下的步骤:

1. 检查手机的引导信息(同时按住三个键,星号(*),井号( #) 和电源键),如果引导区软件(bootloader,相当于电脑的BIOS,cisco路由器的boot monitor模式)的版本号大于7.D0的话,需要把手机引导文件降级到7.D0,我的手机是7.E0,所以需要降级。

2. 下载安装手机引导区和操作系统改写软件(俗称刷机软件),可以使用”Motorola RSD Lite Multi-Flash/Multi-Flex “,简称RSD Lite,我使用的版本3.4。

3. 下载老版本7.D0的引导区文件“bl_826-828_to_07d0_for_V3_by_Archy.V2.shx ”,使用RSD改写手机的bootloader,降级bootloader,并用步骤一验证其版本确实是7.D0,注:降级引导区并不影响手机操作系统的版本,如果你的手机刷了新版的操作系统,bootloader的降级一般不会影响手机的使用。

4. 下载moto手机unlock软件unlocker :改软件只能对引导文件7.D0版的V3进行解锁,使用之前,必须使手机进入引导区模式(同时按住三个键,星号(*),井号( #) 和电源键),进行unlocking。

5. 重启手机,你的解锁工作结束了,应该可以插入任何网络的sim卡了。

刚来英国的时候不懂,店大欺客,换网络的时候老是保不住手机号码(手机公司的sales会想方设法阻止你换网保留号码)。但是英国电信看门狗部门ofcom明文规定如果消费者需要,在到2009年九月所有移动网络必须实行两小时内号码交接 。同样,国内的移动通信的用户也在为自己的权利做斗争

Reference:

http://www.hackthev3.com/how_to_unlock_motorola_v3....

IIS 安装问题

faif | 01月 22, 2008 | HowTos | No Comments

自从变成自由软件和开源软件的“烦死”以后,一直有点anti微软,所以多年不装IIS。当然IIS是微软操作系统自NT以后(?)自带的,早就显示了其涉足web service的野心。昨天因为某些原因需要在XP sp2安装IIS。在安装过程中出现了如下的错误:
“setup cannot copy the file staxmem.dll …”
这个著名的错误是微软的894351号问题,(http://support.microsoft.com/kb/894351)。这个staxmen.dll明明在i386目录下,但是就是拷贝不过来。微软官方的解决方案是使用
esentutl /g Drive:\WinDir\security\database\secedit.sdb
命令来检查你的文件安全数据库,如果报错,就采取方案一,如果不报错,就采取方案二。我的系统恰恰不报错,如果采取方案二,极其繁琐,需要升级sp2之前的xp和sp2的工具盘等等。
但实际上完全不用这么麻烦,直接用esentutl的修复参数不管三七二十一把secedit.sdb修复一边,IIS就可以正常安装了,命令如下:
esentutl /p %windir%/security/database/secedit.sdb
留个记号,以备不时只需。
ref:

Windows网桥和Netsh

faif | 12月 8, 2007 | HowTos | No Comments

家 里的电脑通过Dlink的无线路由器共享上网,共享文件,拖大文件的时候动不动就把DLink给搞重启了。传统的以太网在这方面确实比无线要稳定多了。听 说只有cisco的无线访问接入点(Access Point)能达到有线的接入水平,没有测试过,反正现在流行的便宜的家用无线路由器都不怎么样,用过一个Belkin也一样。曾经在 EtherSound的论坛上看到一个香港人用无线网络配置数字录音室网络的测评,无线远还不能达到要求。

我把两台WindowsXP电脑还是用网线连接起来,每台电脑同时还有无线上网的Interface,一开始用 了一下Windows的网桥的功能。微软真是混淆网络概念,网桥传统意义上是二层协议上的网络设备,应该和传统交换机一样的功能工作在Mac层,而微软的 网桥是可以桥连两个IP网段的,三层设备?建立网桥的时候果然出现了无线网卡显示连接但是不工作的情况:

bridgefig03.jpg

问题出在大多数无线网卡不支持“混杂网络模式(promiscuous mode)”,可以用XP自带的命令Netsh强制打开桥连模式:

  1. 在开始-》运行-》窗口中输入命令:netsh bridge show
  2. 注意哪块网卡不支持桥连或者是禁用的。然后用命令:netsh bridge set a 1 e,强制打开桥连模式。

bridgefig04.jpg

注意到netsh命令还是很强大的,可以不用点击鼠标,而用命令行模式来修改IP地址等网络参数,防火墙设置,甚至是OSPF路由设置和路由表维护等等,对 于服务器和批量维护很方便。看来windows的网络模块有所长进。netsh顾名思义应还是network shell吧,但是微软的这个shell实在是太差进,我还每次都习惯性的去摸tab键,GUI易用是易用了,但是命令行为何不做一点点努力呢,不说像 Linux,MacOSX这样吧,连IOS都不如。听说vista的shell改进了很多,不过估计近几年我是不会用这个操作系统的吧。

 
参考文献:
 

Firefox2.x的tab页

faif | 06月 28, 2007 | HowTos | No Comments

不喜欢firefox2.0版本每个tab页面上都有一个红叉(关闭),而关闭了1.0版本在右上角关闭tab的按钮。反正在tab上点中键就可以自然关闭了。
以下是修改方法,使得firefox的tab行为和以前一样:
  1. 打开about:config页面
  2. 找到配置键值:browser.tabs.closeButtons
  3. 把原来的缺省值由1改为3就可以了。

开源的魔兽世界

faif | 05月 28, 2007 | 技术八卦, HowTos | No Comments

开源的魔兽世界
by faif saved on 28 May 2007

开源社区常常有很多出人意表的项目,让人往往击节叹赏。例如当年在普通PC电脑上虚拟运行苹果机系统的Pearpc。把微软游戏机xbox改装成家庭影音中心的xbox-media center,以及在ipod上安装linux的ipodlinux等项目。在电脑游戏方面当然也有很多出色的开源项目。

暴 雪公司的游戏历来都是精品。网络游戏大热以后,它推出的基于10年游戏历史的网游:《魔兽世界》也更是名声在外(当然有好有坏,坏名声在于它太吸引人以致 于很多人沉湎其中)。网络游戏的盈利模式和传统电脑游戏不同,月费和其他的周边产品使得其赢利空间远远大于传统电脑游戏。对于网游运营商来说很大的一个问 题是私服的问题。很多私服的软件是从网游开发公司或者运营公司内部非法的流出来的,比如说网游《仙境传说》的私服。

而现在大多数魔兽世界 的“私服”实际上是服务端软件的模拟器。是在对客户端游戏软件和与服务端的进行通信的数据进行分析解密以后,开发出来的模拟原游戏服务器功能的软件,这样 的模拟器软件大都也是开源软件。比如像现在大部分魔兽私服使用的Mangos服务端软件,mangos项目是一个开源的自由软件(如同linux或者 firefox),并且遵守其中最为严格的GPL协议。

MaNGOS 是(Massive Network Game Object Server) 的缩写。由于暴雪公司对类似的开发小组采取过一些法律行动。为了避免麻烦,如同它的名字,mangos强调自己并非一个魔兽服务器模拟器,而是一个开源的 多人在线游戏服务器的软件。说到底是个网游的游戏引擎。Mangos开发小组强调其软件是用c++和C#编程语言,实现 的一个支持大型多人在线角色扮演游戏服务器的程序框架,在这个框架下,它理论上应该支持任何客户端的网络游戏,由于现在很多人使用魔兽世界来对它进行测 试,所以针对魔兽世界的脚本和数据库文件比较完善,很多人就利用这个开源项目来实现魔兽私服。而游戏的内容,例如故事情节,任务场景的脚本等都是由别的小 组独立开发的。

开发小组一再强调,这是个研究,教育性质的对怎样开发大型网游的服务器端有好处的项目,是一个技术细节毫无保留向公众开放的软件,是一件很有 意义的事情,如果你使用它作为盈利目的,那你本身就违反了软件的协议。所以任何利用mangos项目进行私服活动的组织和个人都违反了mangos的宗 旨,mangos项目也不会对它们负责。mangos的技术细节上是这样的,核心部分是个和特定游戏没有关系的核心框架程序,主要是进行进程调度,创造世界,建立心跳机制,处理网络接入 等。数据库可以使用的开源数据库软件MySQL。至于游戏内容数据库,游戏人物,时间,世界脚本,都是由这个核心程序所支持的扩展 脚本来实现,所以有一些独立出来的项目专门模拟魔兽世界来开发支持mangos的核心程序。现在mangos的核心程序已经放到著名的协同开发网站 sourceforge上开发了,使用的协同开发工具是subversion。大家都可以从sourceforge的subversion数据库中下载最 新的 源代码程序。

为 了测试这个Mangos我自己安装了一个测试了以下,自己对魔兽世界的游戏本身没有太多的了解,请了几个玩过魔兽世界的朋友测试了一下,都说各方面已经很 完美了。最新的Mangos项目已经支持了魔兽世界的扩展版“燃烧的远征”,简称TBC,对应的魔兽客户端版本到了2.0以上。以下的安装测试步骤适用于 魔兽世界客户端1.12.1或1.12.2的版本。

一、安装需求:

  1. 操作系统Windows Xp,解压软件推荐7-zip 。(mangos论坛上有人在linux,macosx上安装,为了提取地图方便这里使用windows XP)
  2. 魔兽世界的客户端软件,升级到1.12.1版本以上。
  3. 编译好的Mangos二进制文件。(你也可以自己编译,我这里提供的是Mangos Rev 3462,3462是开发数据库的版本号),下载地址:    http://filebeam.com/22b7839a746adbd95f3ac3853f3bf9ed
    http://www.megaupload.com/?d=T0SGUOQB
  4. 地图提取工具ad.exe(这个地图提取工具是专门针对1.12.x版本的客户端的,TBC需要比较新的ad.exe,TBC的地图提取工具不适用老版本的地图),下载地址:http://www.megaupload.com/?d=DZW472B4
  5. mpq文件包提取工具MPQE_1.2.rar,暴雪公司的游戏都采用一种叫mpq的文件格式,是Mike O’Brien Pack的缩写,这个Mike就是暴雪公司的首席游戏程序开发人员,和创始者。我们需要使用mpqe.exe从客户端里提取相关文件。下载地址:
    http://www.megaupload.com/?d=VL2DXHXW
  6. 开源数据库软件MySql
    官网:MySQL
    或者用我下载的版本:http://www.megaupload.com/?d=ODYRBWSF
  7. MySQL的客户端软件SQLyog,编译管理操作数据库
    官网:here
    我下载的版本5.30:http://www.megaupload.com/?d=DD0LK19H
  8. 游戏内容数据库,配合Mangos Rev 3462的版本。
    文件名:CompleteSDB156-Mangos3462.rar
    下载地址:
    http://www.megaupload.com/?d=0EME2U4Y

二、安装MySQL数据库,以及SQLyog客户端

  1. 点击安装文件选择典型安装(Typical)
  2. 配置数据库服务器”Configure the MySQL Server Now”,选择标准配置”Standard Configuration”。
  3. 确认安装成windows的服务程序和自动启动服务”Install as Windows Service”、”Launch the MySQL Server Automatically”。
  4. 输入你的root用户的密码。可以打开的使用root远程管理数据库的选项,便于远程管理,和链接。
  5. 应用你的设置。
  6. 点击安装SQLyog的安装文件,安装到缺省路径,运行SQLyog。
  7. 当SQLyog运行后,需要输入以下信息:
    • MySQL主机地址:可以输入你的本机IP地址或者”localhost”。
    • 用户名(UserName):root
    • 密码(Password):在第4步里面你配置的密码。
    • 数据库(database(s))输入:”realmd;mangos”
  8. 点击连接,这样客户端就连接到你的MySQL数据库服务器上了。
  9. 在左边一栏右键点击“root@localhost”,选择建立数据库”Create Database”。
  10. 当提示输入数据库名称的时候输入:”mangos”。
  11. 重复第9,10步建立数据库”realmd”。

三、安装Mangos服务器,配置路径

  1. 建立一个目录,例如:”C:\MaNGOS”
  2. 把你下载的mangos的二进制文件解压到这个目录里面。
  3. 检查你的两个重要的服务器配置文件:“mangosd.conf”和“realmd.conf”。其中“mangosd.conf”里面可以配置物品,金钱的掉落率,经验值的增长率等等。

四、解压安装地图文件

  1. 把ad.exe放在魔兽世界的安装目录下,例如(”C:\World of Warcraft”)
  2. 建立一个子目录叫maps,结构为:(”C:\World of Warcraft\maps”)
  3. 运行ad.exe文件。耐心等待ad.exe把魔兽世界的地图信息提取到maps目录下。
  4. 将maps子目录拷贝到”C:\MaNGOS”目录下,结构为:”C:\MaNGOS\maps”,里面的地图文件大概有2400多个。
  5. 可以安全的删除”C:\World of Warcraft”下的maps子目录了。

五、解压安装提取的*.dbc文件

  1. 在你的mangos的安装目录下建立dbc子目录,结构为:(”C:\MaNGOS\dbc”)
  2. 为了将暴雪公司的mpq文件的内容解压出来,将提取工具mpqe.exe拷贝在魔兽世界安装目录的data目录下,结构为:(”C:\World of Warcraft\data”)
  3. 打开dos窗口,进入魔兽世界的data目录(cd “C:\World of Warcraft\data”)。
  4. 执行以下命令:
    mpqe /p dbc.MPQ   DBFilesClient\*.dbc
  5. mpqe工具将魔兽的游戏信息提取到了\MPQOUT\DBFilesClient目录下,整个结构为:(”C:\World of Warcraft\data\MPQOUT\DBFilesClient”)
  6. 当mpqe运行结束后,可以将所有的*.dbc拷贝到你的mangos的dbc目录下:(”C:\MaNGOS\dbc”),你大概有158个*.dbc文件。
  7. 你可以安全删除魔兽世界下的dbc文件目录:(”C:\World of Warcraft\data\MPQOUT”)了。

七、下载安装数据库内容,前文说过,mangos只是游戏引擎,游戏的内容,建立的数据库由独立小组开发,我们这里使用著名的Silver’s Database Site的库。版本号为SDB156.

  1. 将下载的CompleteSDB156-Mangos3462.rar文件解压,里面有几个数据库文件。找到其中“realm-database-full.sql”和“mangos-full-for-rev3462.sql”文件。
  2. 使用SQLyog连接到你的数据库。
  3. 在左栏找到realmd,点击右键选择”Restore from SQL Dump”,找到“realm-database-full.sql”,导入数据库文件。
  4. 同样找到mangos,点击右键选择”Restore from SQL Dump”,找到“mangos-full-for-rev3462.sql”,导入数据库文件。

八、配置数据库,配置文件,运行开源魔兽服务器!本文只为测试游戏,在局域网中玩。

  1. 使用SQLyog连接到你的数据库。
  2. 找到realmd,展开找到”realmlist”选项。
  3. 在右下找到”Table Data”。
  4. 在name一项填入你的服务器名字,例如叫faif
  5. 在地址address一项可以使用”localhost” 或者你的IP地址。
  6. 在realmd数据库下找到account表,点击”Table Data”,建立你的游戏帐号,里面已经由几个内置的帐号,你可以参照gm,普通玩家的帐号建立你的用户名,密码。
  7. 在mangos目录下打开realmd.conf文件,找到
    “LoginDatabaseInfo =” 改为:”LoginDatabaseInfo = “127.0.0.1;3306;root;[password];realmd” 这里的IP地址可以是你的IP,[password]是你的密码。存盘。
  8. 在mangos目录下打开mangosd.conf文件,找到如下的内容,并设置如下:
    • DataDir = “.”
    • WorldDatabaseInfo = “127.0.0.1;3306;root;[password];mangos”
    • LoginDatabaseInfo = “127.0.0.1;3306;root;[password];realmd”

    同样,这里的IP地址可以是你的IP,[password]是你的密码。存盘。

  9. 到这里基本就大功告成了。先运行realmd.exe文件,稍等,运行mangosd.exe,魔兽服务器就已经运行了。
  10. 连接到你的魔兽服务器,修改你的魔兽世界客户端的realmlist.wtf的文件,将127.0.0.1,或者你的IP地址填在里面,例如:“set realmlist 127.0.0.1″

到此为止,开源的魔兽服务器就架设成功了,我给朋友建立了几个gm帐号,他们测试了一下,觉得这个版本的做的很不错了,开源的宗旨是知识的分享,开源社区黑客们的探索精神不得不让人佩服。

Reference

修改WindowsXP的产品密钥

faif | 12月 7, 2006 | HowTos | No Comments


安装windows XP以后,如果你是企业版,原先的Product Key(产品密钥?序列号?)流出,被屏蔽,因而不能通过验证和正常在线升级,这时候需要修改产品密钥安装新的合法的密钥。微软的这篇文章提供了方法:
http://support.microsoft.com/kb/328874

一个方法是修改注册表:
“HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\Current Version\WPAEvents”中“OOBETimer”的键值。
只要修改里面任意的一个值。然后用
命令
“%systemroot%\system32\oobe\msoobe.exe /a”
调出激活产品窗口,点击更新密钥,把新的序列号输入就行了。当然原文还给出了另一个方法,并给出了源代码:使用vb脚本更新序列号,用于批量的更新。

留个记号,以便以后再要用到。

Powered by WordPress with Pool theme design by Borja Fernandez.
Entries and comments feeds. Valid XHTML and CSS. ^Top^