很郁闷的一天

今天花了一天时间折腾一个事情,但是没有成功,感觉很不爽。 给别人买了一个IBM笔记本,考虑到使用者将来的水平有限,可能时不时需要重装,但是那么多驱动肯定把人给搞死了。联想的一键恢复(Rescue&Recovery)做的很强大,但是比较慢,比ghost慢好多,恢复过程还要重启n次。而且好像还给硬盘装很多很多的垃圾。于是就琢磨自己做个简单一点的一键恢复。 最简单的就是ghost了,网上有很多可以下载的现成的东西。不过这个机器不能从U盘boot,我唯一的一个可以boot的光盘它不认。后来就琢磨模仿IBM/Lenovo做的,做在硬盘上。网上有很多这么做的,叫做”f11″一键恢复。用的是IBM以前老的一个东西,简单的说叫bmgr。其实就是一个boot manager,他占据MBR的引导区,引导的时候如果你按一下F11,他就把一个LABEL是IBM_SERVICE的盘设为活动的,然后用那个盘启动。那个盘里装个dos,搞个config.sys, autoexec.bat,就可以很容易的备份、恢复了。 遇到的问题首先是那个分区不能在1024柱面以外。不知道时不时那个bootloader的问题。后来在C的前面分了一个区,把dos什么的弄上去,装bgmr(bmgr?)。终于可以boot进那个dos分区了。问题是,重启之后,那个bootloader很傻,不把dos分区设为非活动的,于是,就进不了原有的windows了!我fdisk把windows分区设为活动,结果windows还是进不了,因为boot.ini里面的分区不对了,应该是multi(0)….partition(2)了,因为我在前面用PQMagic加了一个分区! 这下麻烦了,而且由于MBR被改了,ThinkVantage那个蓝键也进不了R&R了,windows都没法装了。试着用windows xp的盘启动,蓝屏——大概是bootloader有问题,要求扫描病毒。。什么玩意。还好,最后找了一个vista,进入rescue console,notepad boot.ini,搞定。 windows回来了,但是恢复还没搞定,主要是那个不能自动改成active partition. 网上说可以用pqboot来改,但是我很怀疑。另外,这个分区还要被隐藏,不能被windows看到。。真麻烦。最后又去试了bmgr32,新版的bootloader,这回倒好,R&R恢复了,蓝键可以进原版的Lenovo恢复程序,却无法引导进我的IBM_SERVICE那个盘的dos,死活都进不去。 无奈的放弃了,还是想办法光驱启动ghost吧。。嘿嘿。。。 结论是,我真是一个爱折腾的人啊。。。

六月 23, 2007 · Shawn Ma

RunOnce

昨晚老婆拿回来他们公司的一个电脑,说是买了一个联通的的CDMA卡装不上驱动,但是在联通那里就是好的,在我们家的另一个电脑上也可以装上。 我吃完饭就开始折腾它。那是联想的一个PCMCIA卡。最先是怀疑这个机器的PCMCIA槽是不是没有驱动,因为的确不插卡的时候也有一个unknow device。但是松下的网站上根本没有PCMCIA的驱动,也没有chipset的驱动。后来发现这是一个hotkey的设备,就当了一个驱动下来,准备装上。有趣的是,这个设备居然安装不上,快安装完了的时候报错:2: The system cannot find the file specified. 很奇怪,反复安装了几遍,都不行。 后来再去装卡的驱动,联想自带的驱动安装程序比较有意思,插入卡之后,明显看到一些窗口一闪,然后就不见了,系统发出错误的声音,应该是驱动没有被sign的窗口。安装失败它也不报错,好在它还把inf文件放在安装好的目录底下了,这时候windows也能认出那个设备名,叫Lenovo,但是驱动没有装好。手动安装,指定inf文件,果然出没有sign的警告,忽略,到最后一步的时候,居然出跟hotkey那个一样的错误:文件找不到。 有趣的是,出了错误之后,那个设备到是work了,不再有一个问号,联想的CDMA1x拨号程序也能找到这个设备,但是连不上,而且重启之后这个设备又出问题了。 既然文件找不到,我就看看它要找哪个文件——事实证明,这是走了弯路,这个驱动在别的地方是好的,而且松下的hotkey驱动应该也没有问题的。我下了Mark的filemon (File Monitor)程序,来看看它到底要找那个文件。但是在那些NOT FOUND的文件中,却没有发现太多有意义的东西。我也试图把需要的sys文件,dll文件都多复制几份,但是都没有成功。 于是我走了更远的弯路,因为我发现windows安装驱动的程序(rundll32 newdev.dll)会在%windir%下,一般也就是c:\windows下,写一个setupapi.log,里面有详细的如何处理inf文件的记录。察看之。发现inf文件里描述的文件都找到了,并且都已经成功复制了,但是安装快结束的时候,居然就除了那个system cannot find the file specified的错误。hotkey的安装也是一样的。 黔驴技穷,google之,用”install driver system cannot find he file specified”去搜,翻了一翻,还真有人遇到过,他的说法是,HKLM\software\microsoft\windows\currentversion\下,runonce这个键被人给删了,可能是某个特傻缺的uninstaller干的,然而安装驱动的程序往往要在这个RunOnce下面写点东西,并且Open这个registry key不成功的时候,返回值也是2,就是cannot find the file! 解决方法很简单,在那个地方建立一个结点,叫做RunOnce就好了。我一看,果然我那个机器没有这个key!!果然,加上之后,hotkey和卡的驱动都很容易装上了。 最后那个拨号还是不work,我注意到那个卡应该是装两个驱动的,另外一个是一个modem,应该是这个设备没有被安装上,而且不是PnP的。再运行一次联想的安装程序,嗯,搞定。 结论是,知之为知之,不知google之啊! PS. 如果我不用filemon,而是用更NB的procmon (process monitor)的话,我应该也能自己发现那个RunOnce的问题。Mark Russinovich的确写了一些好tool的。

四月 11, 2007 · Shawn Ma

IPOD 修好了,开始折腾e680i

周一硬盘送到了,不过感觉不是特好,里面还有嘎达的生音。Anyway,装上去之后,使劲一扣,就好了。然后用最新的IPOD updater 2006-1-3,更新一下它的firmware。 Rockbox看起来不错,不过界面还是不如苹果做得好,而且似乎比较费电,暂时不用他了。不过用rockbox可以不用itunes upload歌曲,直接可以播放文件系统里面的mp3,比较好。我试了用floola来给ipod加歌曲,有两个问题:一个是新装的ipod不能用,必须要用itunes加至少一首歌。这是因为这个软件没法自己创建ipod的数据库,必须itunes来做这件事。第二就是很多中文tag显示的不对,显然是使用的iso-8859-1的编码。嗯。。还需要改进。对了,canvendish,这个软件是有linux版本的。 关于IPOD的firmware,其实就是装在那块硬盘上的了。如果你用windows的磁盘管理器去看ipod的磁盘,就会发现在你放歌曲的盘之外还有一个小分区,里面装的就是ipod的系统软件了。Rockbox就是修改这个分区的MBR,放了一个rockbox bootloader来实现双启动的。嗯,bootloader,很熟悉吧。。。rockbox本身是直接放在FAT32分区里面的。如果要装ipod linux,他没法装在FAT32上,必须要再弄一个ext3的FS,看起来比较麻烦。。。 IPOD就折腾到这里吧。前两天跟老婆换了她的e680i,忍不住又hack了一下,主要是默认的AMCSL字体很难看,记得以前我把simsun.ttf放进去的时候还是很不错的。在网上看了一些帖子,发现那些人还是很有想法的。他们的hacking基本是这样的: 修改rootfs,在/etc/rc.d/rc2.d里面加两个启动脚本,S70和S75,link到/diska/和/mmc/mmca1下,这样,只要在userfs或者mmc卡上写上两个脚本,这两个脚本就可以执行了,这样就可以做很多的事情。 rootfs的修改方法大概是,把刷机过程中的smg文件,用linux mount一下,然后cp出来,修改内容,再用mkcramfs作出来,就可以了,同理可以搞任何一个分区。 这样一来,要替换字体就比较容易了,只要在启动脚本里面把ttf文件,甚至包括fontdef.cfg,用mount –bind替换掉原来的文件就可以了。当然,如果ttf文件放在userfs上,那么机器就不能使用大容量磁盘模式,只能使用usbnet模式,好在这个模式下可以使用smb通过网上邻居来访问,不错。变通的方法就是启动的时候把这个文件cp到/tmp下去,也就是内存里。当然这样ttf文件不能太大。 还有人修改/usr/language里面的内容,就可以直接替换现有的theme了。。我用了一个apple的theme,感觉不错。 又拿起pst,又见MontaVista,颇有点怀念呢。记得我第一次去moto,就看见老姚在烧板子,我就傻乎乎在那看着……

四月 4, 2007 · Shawn Ma

Rockbox rocks!

今天装了一个rockbox,在被分成两半的ipod上。 What could I say? FANTASTIC!!! Rockbox是ipod上播放软件的替代品。其实他不光可以装在ipod上,还可以装在很多其他播放器上,比如iriver的。 他比ipod自带的多很多功能, 比如: 支持很多的播放文件格式:mp3, ac3, aac/mp4, mpc, ogg/vorbis, wav, aiff, flac, alac, wavpack. 支持均衡器(Equalizer),还有crossfeed——这是干嘛的? 更精确的音量控制。 可以使用主题(theme) 支持ReplayGain 可以看jpeg图片和文本文件。。。 可以玩doom。。。 支持unicode。。 据说On-The-Go的功能也增强了 还有很多plugin。。 en, in summary, it is an interesting toy for ipod.

三月 31, 2007 · Shawn Ma

拆了IPOD

两年前买的一个ipod,四代,20G的。前几天老婆用来备份几个文件,结果,拷不出来了!研究后发现,是硬盘坏了。保修期已过,这个玩意就没啥用了,打算再买一个nano之类的。 昨天试图把它废物利用一下,因为原来放歌曲的地方应该还是好的,于是去当了一个itunes 7.1,发现苹果的软件特别的无耻,装itunes一定要装quicktime,然后这两个软件就跟大管家一样,自动关联了很多后缀,启动了一对服务,quicktime还autorun,itunes还要管理你的music,我靠,不可忍。去网上search一下,发现有一些替代品,比如floola。同时发现,网上有人自己修ipod,无非是换硬盘、电池之类的。于是我想把我这个也休一下好了,现在小硬盘还是很便宜的嘛!于是去找了一个如何拆ipod的video,并把我的ipod给拆了。 我没有那个录像上说的工具,只好使用小改锥。而且把表面划伤了一点点……sorry ipod,以后给你买个漂亮的衣裳。 ipod其实就是上下两面直接扣在一起的,撬开就是这样: 里面那个蓝色包着的,就是硬盘了!硬盘头上那条黄色的,就是接硬盘的数据线,下面屁股上黑色那个,只是一块海绵。 我把硬盘翻了过来。 反面有一块蓝色海绵垫着的,底下那块镜子似的是电池。别的,就是电路板了。。。 把海绵用刀子挂下来,他是用不干胶粘上去的。 看,这就是硬盘了,TOSHIBA MK2004GAL。 拆了硬盘的ipod,STILL KICKING! 盒子的两部分有一个小导线连着的,很容易扒开,于是,尘归尘,土归土(啊,这个照的很不好,懒得再拍了) 最后,我研究了一下硬盘,发现它是1.8寸的MicroDrive的硬盘,你看,他的接口,其实是跟CF卡是一样的: 我没有CF卡做比较,因为在相机里……,不过我的确试图把CF卡插到ipod里面去,发现不行,虽然针数是一样的,但是那个接口上还有一个突起,导致CF卡插不进去。 然后就是试图去找一个这个硬盘了,首先他不是我最开始想象的笔记本硬盘那样的,比那个要小!试着找了找看是不是有其他的牌子或者新款的硬盘,比如容量大一些的,结果如下: MK2004GAL是东芝很久以前出的20G硬盘,GAL系列可以放在ipod里,另外的GAH系列是两碟的,厚一些,就放不了了,GAL系列新款的有MK2006GAL, MK 3006GAL, MK3008GAL, MK4007GAL, MK4009GAL。其中30xx是30G的,40xx是40G的。另外还有一家也生产,不过接口一样,大小不一样。。最后去淘宝找了找,居然还是卖MK2004GAL最多。。。最后买了一个,350¥,现在就等这个新硬盘到货了。。。

三月 31, 2007 · Shawn Ma