這次去香港主要是為了看奧運的馬術比賽,在雙魚河。
第一天
一大早就赶到虹橋,發覺奧運期間的2次安檢也不是想象中那麼慢。和上次一樣,花了2小時多一點到了寶安,順利坐上了K568前往羅湖。中途由于司机開得太猛,爆胎了,只能被迫上了之後那輛K568,順利到達口岸,在羅湖的橋上我拿出了手機想看一下申請的漫遊是不是有用,呵呵,滿格信號,半信半疑,叫妮妮拿出她沒有漫遊的手機對比一下。問題來了,死活找不到她的手機,這下妖了,難到掉了?我立刻打她手機,無人接听,還好,應該沒有落入他人之手,問題是在哪呢?我一刻不停的打,妮妮仔細聽聲音,完了,不在身上,也不在包裏,難到在路上掉了?或者是在K568上?那一定完了,K568到站之後就立馬上客,客滿即走,看樣子要去香港再買部手機了,哎!出師不利阿!!!不過妮妮這時拿了通行證就跑向了關卡,我知道她要去K568到這里的一路上找一下,必竟現在還是無人接听狀態。我不停打了大概15分鍾,突然有人接起來了,哇塞!陪伴了妮妮一年的N95失而复得!後來妮妮說還好手機是掉在了爆胎的那輛上,之後那輛早就開走去寶安了。她發現爆胎的那輛司機正坐在車上吃午飯,而後她上去找了一圈沒找到,正准備离開的時候突然聽到自己手機響,才在加坐的夾縫裏找到的。如果當時我沒有打她手機的話估計真的要買新手機去了。哈哈!
到了銅羅灣後立馬去換領了奧運馬術門票。哈哈!晚上吃了頓日本料理,發覺价格和上海差不多,還便宜呢!
第二天 大嶼山
起的不是很早,換東涌線來到大嶼山。原來這里有個OUTLETS,看樣子從山上下來到里面買點東西是個不錯的選則哦。哈哈。本來是想坐纜車上山的,可看了一下這坐纜車的人數,當即決定坐纜車下面的直達大巴——大嶼通!這山路叫驚險阿~~~!路上風景很不錯,還看到了牛,哈哈,山上還有個湖泊,很美~~!在接近蓮花禪寺的時候發覺那里雲霧繚繞,后來進了寺才發現這些雲霧都是三根光盤直經的香燒出來的,倒~~~!
在寺中門票加中飯的素齊是$60,素齊多是多得2個人根本吃不完,難到這是為了體現佛主的大慈大悲?
回家坐的是E11,發覺比軌道交通快不少,才花了30分鐘就到銅羅灣了,難怪票价要比地鐵貴哦,呵呵。
第三天
在雙魚河高爾夫球場舉行的馬術室外越野賽是早上8:00開始的,我們要從銅羅灣赶到金鍾坐頭班奧運班次5:15的地鐵,最終要在比賽前1小時到東鐵的粉嶺站坐奧運馬術穿梭巴士到雙魚河。一大早4:15就起來准備,然后頭一次坐上了紅色的士。發覺副駕駛座位由于把波箱的位置都包括了,所以真的很寬,可以坐2個人。一個起步費$16就到了金鍾地鐵站,發覺等候5:15分那班的多半都是老外!
老天真不作美,居然下雨,不過還好賽事主辦方提供每人雨披,否則就慘了。
第四天
睡到早上10點,呵呵,這幾天起得最晚的一天。四處逛逛買點東西,下午5點坐上東鐵去羅湖。
Wednesday, August 13, 2008
Sunday, June 22, 2008
这几天突然想玩WII,发觉WII也能运行HOMEBREW了,阿哈哈
论坛逛了一圈想看看有什么好玩的游戏,结果发现就在近日WII的ZELDA漏洞被利用,而且可以跟PSP一样运行自制程序了,哦哟哟,爽了,WII终于升值了(升使用价值,不是升价格,呵呵)。http://hbc.hackmii.com/下载了homebrew_channel的beta8安装iso,刻盘安装,一切顺利。唯一惋惜的就是错过了升级3.2j,依旧停留在3.1j。现在的3.3j据说有猫腻,不能升,反正不急升,有自制才最重要。
有了这个channel之后所有的自制程序都可以通过这个频道免zelda光盘引导了,利马下载了OPERA的WAD文件,然后用WAD MANAGER这个自制程序安装,成功!发现破解的wiiware现在都可以很顺利的通过wad manager安装了,省钱,哈哈。不过下了几个wiiware的游戏,就一个不能玩,就是那个玛丽医生,估计是要3.2j才能玩,可恶的升级~~!
最让我兴奋的是自制程序的fc、SFC、MD等模拟器都能通过homebrew channel正常运行。这下可以免去买GC手柄的开销,直接用WIIMOTE就OK了。
像PSP一样wii能直接运行SD卡上的LINUX(GC-LINUX可以通过homebrew channel运行)。具体没试过。
能运行linux才是无敌的~~!因为LINUX上能跑你想要的程序哦。
有了这个channel之后所有的自制程序都可以通过这个频道免zelda光盘引导了,利马下载了OPERA的WAD文件,然后用WAD MANAGER这个自制程序安装,成功!发现破解的wiiware现在都可以很顺利的通过wad manager安装了,省钱,哈哈。不过下了几个wiiware的游戏,就一个不能玩,就是那个玛丽医生,估计是要3.2j才能玩,可恶的升级~~!
最让我兴奋的是自制程序的fc、SFC、MD等模拟器都能通过homebrew channel正常运行。这下可以免去买GC手柄的开销,直接用WIIMOTE就OK了。
像PSP一样wii能直接运行SD卡上的LINUX(GC-LINUX可以通过homebrew channel运行)。具体没试过。
能运行linux才是无敌的~~!因为LINUX上能跑你想要的程序哦。
Saturday, June 21, 2008
试了一把psp上的linux
uClinux v2.6.22-uc1,在http://dl.qj.net上能下载到,uClinux应该是专门用在嵌入式系统上的一个LINUX版本,老外很钻研阿,搞到PSP上了。我的PSP自制系统是3.52m33,把uClinux v2.6.22-uc1下载后放在运行1.5程序的文件夹下就OK了。
果然能够正常运行,但毕竟uClinux单薄了点,没办法,PSP内存的问题导致啊~~!输入法很奇特,使用L和R或者L+R。唯一遇到的一个问题是发觉用halt命令不能退到自制系统,而是直接关机了,说明uClinux的运行时跟自制系统无任何关系哦。
果然能够正常运行,但毕竟uClinux单薄了点,没办法,PSP内存的问题导致啊~~!输入法很奇特,使用L和R或者L+R。唯一遇到的一个问题是发觉用halt命令不能退到自制系统,而是直接关机了,说明uClinux的运行时跟自制系统无任何关系哦。
Tuesday, April 15, 2008
linux里把显存当swap或者ramdisk
原先认为显存大如果不玩游戏是浪费,现在看来在LINUX里并非如此,划出大部分显存当作swap也是个好主意,至少可以让swap脱离疯狂旋转的硬盘,呵呵~~!看了一下 "http://gentoo-wiki.com/TIP_Use_memory_on_video_card_as_swap" 的guide,自己动手把256M的显存的后128M划了出来当swap,nice~~!
2.6的内核已经加入了MTD(Memory Technology Device),首先当然是要在内核中启用罗。
Device Drivers --->
Memory Technology Devices (MTD) --->
Memory Technology Device (MTD) support
[* or M]Direct char device access to MTD devices
[* or M]Caching block device access to MTD devices
Self-contained MTD device drivers --->
[* or M]Uncached system RAM
[* or M]Physical system RAM
我是全make成module,然后在/etc/modprobe.autoload.d/kernel-2.6中加入,启动时自动加载的。
GUIDE上说"Uncached system RAM" is the slram driver,"Physical system RAM" is the phram。不知道这2个到底有什么区别,我是用了slram,phram应该是一样的。
内核搞定之后就是要找出显存的起始地址了,使用lspci -vvv | grep 256,因为我知道自己的显存的大小,所以直接加上过滤得到
Region 0: Memory at fe029000 (32-bit, non-prefetchable) [size=256]
Region 0: Memory at d0000000 (64-bit, prefetchable) [size=256M]
Region 4: I/O ports at de00 [size=256]
Region 0: I/O ports at ee00 [size=256]
Region 0: I/O ports at ce00 [size=256]
Region 1: Memory at fdcff000 (32-bit, non-prefetchable) [size=256]
只要prefetchable的那条,即Region 0: Memory at d0000000 (64-bit, prefetchable) [size=256M],这里的d0000000也就是0xd0000000(HEX形式)就是我们所要的显存起始地址。
然后就是做加减法运算,先要把预留给显卡用的显存算好(单位是byte),给他128M,那就是128*1024*1024=0x08000000,这个值和起始地址一加,得到的就是我们准备使用的那剩下的128M显存的起始地址,即0xd8000000。有了这个值之后把我们要用的显存的大小也用HEX表示,即要用剩下128M=0x8000000。
然后#modprobe slram map=VRAM,0xd8000000,+0x8000000
## cat /proc/mtd
dev: size erasesize name
mtd0: 08000000 00004000 "VRAM"
这就说明这个slram模块加载成功了。
最后就是要创建一个设备文件,这样就可以通过那个MTD设备文件来使用我们从显存里划出来的那部分了。
因为我使用了udev,所以直接
#modprobe mtdchar
#modprobe mtdblock
就可以了,这样那个mtd设备文件就出来了,即/dev/mtdblock0
最后就是把mtdblock0这个设备文件看成普通的硬盘分区当成swap用了。
mkswap /dev/mtdblock0
swapon /dev/mtdblock0 -p 10
为了不要每次重新启动之后都这样设置,就在/etc/fstab中把原来的swap那行注释掉,换成
/dev/mtdblock0 none swap sw,pri=10 0 0
接下来的任务就是要在LINUX启动时自动重新mkswap一下,因为LINUX不像FreeBSD那样不需要swap标志来使用swap分区。因此要在init过程的swapon -a这个命令执行之前mkswap,在以前的版本是到/sbin/rc这个脚本里去加,现在是在/etc/init.d/localmount这个脚本里,在'swapon -a'这个命令前添加'awk -- '/swap/ && ($1 !~ /#/) { system("mkswap "$1"") }' /etc/fstab',这样就可以自动找到fstab中未被注释掉的swap分区,在其上面执行mkswap。
最后要确保/etc/modules.autoload.d/kernel-2.6文件中有如下3行来自动加载模块:
slram map=VRAM,0xd8000000,+0x8000000
mtdchar
mtdblock
OK,全部搞定,重启之后top一下:
top - 06:46:57 up 44 min, 1 user, load average: 0.22, 0.06, 0.02
Tasks: 70 total, 2 running, 68 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3%us, 0.2%sy, 0.0%ni, 99.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4048616k total, 377812k used, 3670804k free, 16052k buffers
Swap: 131064k total, 0k used, 131064k free, 132188k cached
最后的最后就是要注意的地方,如果使用的是官方显卡驱动,那么他会把所有显存都用掉,那就和我们使用的那部分冲突了,所以我使用的是vesa的驱动,可以自己设置VideoRam这个值,这样就不会使用到我们划出来的部分。其实你可以算出以你的分辨率和色彩需要使用多少显存,然后把剩下的都划出来,估计不超过16M,那真的是大大部分都可以划出来了。
2.6的内核已经加入了MTD(Memory Technology Device),首先当然是要在内核中启用罗。
Device Drivers --->
Memory Technology Devices (MTD) --->
Memory Technology Device (MTD) support
[* or M]Direct char device access to MTD devices
[* or M]Caching block device access to MTD devices
Self-contained MTD device drivers --->
[* or M]Uncached system RAM
[* or M]Physical system RAM
我是全make成module,然后在/etc/modprobe.autoload.d/kernel-2.6中加入,启动时自动加载的。
GUIDE上说"Uncached system RAM" is the slram driver,"Physical system RAM" is the phram。不知道这2个到底有什么区别,我是用了slram,phram应该是一样的。
内核搞定之后就是要找出显存的起始地址了,使用lspci -vvv | grep 256,因为我知道自己的显存的大小,所以直接加上过滤得到
Region 0: Memory at fe029000 (32-bit, non-prefetchable) [size=256]
Region 0: Memory at d0000000 (64-bit, prefetchable) [size=256M]
Region 4: I/O ports at de00 [size=256]
Region 0: I/O ports at ee00 [size=256]
Region 0: I/O ports at ce00 [size=256]
Region 1: Memory at fdcff000 (32-bit, non-prefetchable) [size=256]
只要prefetchable的那条,即Region 0: Memory at d0000000 (64-bit, prefetchable) [size=256M],这里的d0000000也就是0xd0000000(HEX形式)就是我们所要的显存起始地址。
然后就是做加减法运算,先要把预留给显卡用的显存算好(单位是byte),给他128M,那就是128*1024*1024=0x08000000,这个值和起始地址一加,得到的就是我们准备使用的那剩下的128M显存的起始地址,即0xd8000000。有了这个值之后把我们要用的显存的大小也用HEX表示,即要用剩下128M=0x8000000。
然后#modprobe slram map=VRAM,0xd8000000,+0x8000000
## cat /proc/mtd
dev: size erasesize name
mtd0: 08000000 00004000 "VRAM"
这就说明这个slram模块加载成功了。
最后就是要创建一个设备文件,这样就可以通过那个MTD设备文件来使用我们从显存里划出来的那部分了。
因为我使用了udev,所以直接
#modprobe mtdchar
#modprobe mtdblock
就可以了,这样那个mtd设备文件就出来了,即/dev/mtdblock0
最后就是把mtdblock0这个设备文件看成普通的硬盘分区当成swap用了。
mkswap /dev/mtdblock0
swapon /dev/mtdblock0 -p 10
为了不要每次重新启动之后都这样设置,就在/etc/fstab中把原来的swap那行注释掉,换成
/dev/mtdblock0 none swap sw,pri=10 0 0
接下来的任务就是要在LINUX启动时自动重新mkswap一下,因为LINUX不像FreeBSD那样不需要swap标志来使用swap分区。因此要在init过程的swapon -a这个命令执行之前mkswap,在以前的版本是到/sbin/rc这个脚本里去加,现在是在/etc/init.d/localmount这个脚本里,在'swapon -a'这个命令前添加'awk -- '/swap/ && ($1 !~ /#/) { system("mkswap "$1"") }' /etc/fstab',这样就可以自动找到fstab中未被注释掉的swap分区,在其上面执行mkswap。
最后要确保/etc/modules.autoload.d/kernel-2.6文件中有如下3行来自动加载模块:
slram map=VRAM,0xd8000000,+0x8000000
mtdchar
mtdblock
OK,全部搞定,重启之后top一下:
top - 06:46:57 up 44 min, 1 user, load average: 0.22, 0.06, 0.02
Tasks: 70 total, 2 running, 68 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3%us, 0.2%sy, 0.0%ni, 99.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4048616k total, 377812k used, 3670804k free, 16052k buffers
Swap: 131064k total, 0k used, 131064k free, 132188k cached
最后的最后就是要注意的地方,如果使用的是官方显卡驱动,那么他会把所有显存都用掉,那就和我们使用的那部分冲突了,所以我使用的是vesa的驱动,可以自己设置VideoRam这个值,这样就不会使用到我们划出来的部分。其实你可以算出以你的分辨率和色彩需要使用多少显存,然后把剩下的都划出来,估计不超过16M,那真的是大大部分都可以划出来了。
Sunday, April 13, 2008
Saturday, April 12, 2008
linux的tmpfs与windows的ramdisk
在windows上用的是ramdisk,可以把内存作为硬盘用,发觉在上面作压缩等操作很爽啊,把windows的temp文件夹和ie临时文件夹都放上面,开网页速度也有提高,把bt下载暂时存放在ramdisk上再也不用担心有损硬盘了,不过鱼和熊掌不能兼得,现在担心的是BT下到最后一点断电了怎么办?在linux上2.4之前的kernel也使用ramdisk,之后开始在内核中增加了tmpfs的支持,于是直接尝试tmpfs,把gentoo编译时的临时文件夹/var/tmp/portage挂载成tmpfs。
tmpfs和ramdisk有些不同,在windows里我创建了512M的一个ramdisk之后内存就直接被用去了512M,不管你有没有往这个分区放东西,而tmpfs挂载的64M的/tmp并没有一上来就全部用掉64M内存,而是要多少从内存中取多少直到64M。这么看来tmpfs还是比较能够节约内存的,就算分配了2G的tmpfs分区,不往里放东西也不用担心2G内存会白白耗在那里。而且就算装满2G,把这2G东西都删了,那这2G又都还给内存了。
其实这就是ramdisk和tmpfs本质的区别,一个是块设备,而tmpfs是一个文件系统。但tmpfs也有一个问题,因为是文件系统,所以在内存吃紧的时候可能会使用到swap,又回到硬盘了,昏倒。看样子主要关键还是要内存,内存大才是硬道理!但至少巧妙使用ramdisk或者tmpfs可以使得系统速度有很大的提升。
tmpfs和ramdisk有些不同,在windows里我创建了512M的一个ramdisk之后内存就直接被用去了512M,不管你有没有往这个分区放东西,而tmpfs挂载的64M的/tmp并没有一上来就全部用掉64M内存,而是要多少从内存中取多少直到64M。这么看来tmpfs还是比较能够节约内存的,就算分配了2G的tmpfs分区,不往里放东西也不用担心2G内存会白白耗在那里。而且就算装满2G,把这2G东西都删了,那这2G又都还给内存了。
其实这就是ramdisk和tmpfs本质的区别,一个是块设备,而tmpfs是一个文件系统。但tmpfs也有一个问题,因为是文件系统,所以在内存吃紧的时候可能会使用到swap,又回到硬盘了,昏倒。看样子主要关键还是要内存,内存大才是硬道理!但至少巧妙使用ramdisk或者tmpfs可以使得系统速度有很大的提升。
Friday, April 11, 2008
gentoo开机启动第二块网卡
首先要把网卡驱动编译进内核或模块加载,
此时使用ifconfig eth1命令应该能看到网卡的信息。
然后在/etc/conf.d/net中把第二块网卡配置好。
之后使得开机启动第二块网卡。
#ln -s /etc/init.d/net.eth0 /etc/init.d/net.eth1
#rc-update add eth1 default
此时使用ifconfig eth1命令应该能看到网卡的信息。
然后在/etc/conf.d/net中把第二块网卡配置好。
之后使得开机启动第二块网卡。
#ln -s /etc/init.d/net.eth0 /etc/init.d/net.eth1
#rc-update add eth1 default
Subscribe to:
Posts (Atom)