星期日, 十二月 30, 2007
来篇扯蛋的:错觉……嗯,绝对是错觉!
话说在那遥远的N年之前,我还是有一个女朋友的,美丽,温柔,善良,既有loli性格,又有御姐的气质,还有隐隐约约些百合的香味……,嗯,反正很萌就是了。那真是一段快乐的时光。
终于,快要大学毕业了。
对门宿舍有个西北兄弟,人直爽,某日一起出行,看到我的女友,惊呼:“那是你老婆么?她怎么用看路人甲的眼神来看你?!”
我定睛一瞟,瞟到了另一位美女的丝袜美腿……真萌……哎,这事就这么过去了吧,反正当时我就是个路人甲。
没多久,我该过生日了,生日啊,好像每年都是很狼狈的,遥想小学那几年,不是阴天下雨就是罚站写检查,再遥想高二那年,初恋女友就把分手当做生日礼物送给我,我一直都怀疑她是不是我的冤家派来玩我的。好像大学这几年生日还比较平常,和宿舍的兄弟吃喝是件很快乐的事情。这样说来,这个生日应该会不错才对。
生日前一天,我说:“美女,明天有空么?我们……”
“啊,明天我男朋友要来,我要和他玩一天……啊,我先走了!”
那微风吹来的微笑,那看星星一般的眼神,还有那的不不知道是在和谁说话一般的语气……这,这一定是路人甲对路人乙说的,路人乙真可悲。心里这么想着,我立刻环顾四周,嗯……100米外发现路人甲,nani……路人乙已经遁地了?!……不对,这分明就是女主角的台词,路人甲这种小角色怎么可能说的出来!难到我是路人乙?!怎么可能……不过她确实已经闪人了。
哎,这模式好像在哪里见过……嗯,这一定是错觉,绝对是!
这份华丽的让不夜城的灯火都黯然失色的厚礼我还是收下了,你说这有办法能不收么?我只想对我的那些为了玩我而默默无闻辛勤耕作的冤家们说一句话:“算你们狠!”
不过离校的时候,还是搞了点小动作,想把这厚礼送回去,当然,最后还是可耻的失败了。难道我真的这么见利忘义?!
借蛋蛋里伪娘大人的一句名言:“……真是太失态了!”
弹指N年,干啥啥不成,做啥啥不是,嗯,废柴的很有境界。
前不久,初恋女友寄来一个红双喜,瞟了一眼,男人的名字很猥琐,嗯,冤家大人们,你们真的好有情调哦。算了,算了,我又不控人妻,这样如果还去参加婚礼那就太没品了。给她打个电话,“哎,结婚了啊,你老公的名字很有气势哎,是哪家的公子哥?……哦,年轻的副总裁啊,了不起!很有英雄美人的感觉哦……那个,很抱歉哎,婚礼我去不了,要去单位面试啊……真的很抱歉啊,哦,祝你们……”。他老母的,那边挂了,好伤心。
我看看手上的请柬,这个……是错觉吧,嗯,很像外面北风吹来的红纸片……
每年一次的圣诞节快到了,给那曾经的女友寄点礼物吧,毕竟很长一度时间里她对我还是很好的,虽然生日的那个“欢乐大礼包”撑的我这N年来一直胃疼,不过我也答应送她一些特别的礼物当做纪念,可还一直拖着呢,都拖了N年了。嗯,我就是磨神,希望得到真传的同学们赶快来拜我吧。把礼物的事和她说了之后,没想到她很高兴的接受了,早知道这样,我真想把那个“欢乐大礼包”还没有吃掉的部分还给她,不过,如果真的那么做了,那可就“真是太失态了”。嗯,太不体面了……。
之后又和她聊了几句,感觉现在她挺快乐的,就像一个快乐的小loli。真是太萌了……再聊了几句,哦,naruhodo,原来是要让我帮她做东西啊。没想到啊,没想到啊,看来我还是有利用的价值的。我的人生又有希望了,神啊,果然没有抛弃我。
听她说了详细的情况,嗯,果然是搬砖的活……搬吧,开始锻炼身体了。虽然现在我还只是个民工,不过好像有一点点那时的感觉了,真的会重新开始么?翻了翻她的相册,有最近的一些照片,都是些幸福的二人合影。这也没我啥事啊……
我在圣诞夜的满月向着上帝和真主祈祷……“万能的神啊,我可以读以前的存档么?只要和她在一起的那个就可以了,我好向她表白啊。”
……真主说:“@!#$^%@#$%!!!#$%#%^&%!”
对不起哦,我忘了,他是说阿拉伯语的,嘿嘿嘿,听不懂哦。
还是上帝说的明白:“Save had not found.”……哎?不会吧,我玩的太high而忘了存档了?!kuso……
也许我一直都是优秀的路人甲,根本就没有抢过男主角的戏,好伤心。啊,那感觉也是错觉吧……错觉……嗯,绝对是错觉!差点忘了,还有一句“真实太失态了”。
以上纯属扯蛋,如有雷同,你实在是太萌了。
后记:
礼物是一条围巾,其实这个应该是N年前的礼物,现在才送,怎样的感情才能经得起如此的等待?
礼物还是寄出了,当然,按照惯例,是在圣诞节之后了,元旦恐怕也赶不上了。
这个暖冬啊,我送围巾做什么呢?
终于,快要大学毕业了。
对门宿舍有个西北兄弟,人直爽,某日一起出行,看到我的女友,惊呼:“那是你老婆么?她怎么用看路人甲的眼神来看你?!”
我定睛一瞟,瞟到了另一位美女的丝袜美腿……真萌……哎,这事就这么过去了吧,反正当时我就是个路人甲。
没多久,我该过生日了,生日啊,好像每年都是很狼狈的,遥想小学那几年,不是阴天下雨就是罚站写检查,再遥想高二那年,初恋女友就把分手当做生日礼物送给我,我一直都怀疑她是不是我的冤家派来玩我的。好像大学这几年生日还比较平常,和宿舍的兄弟吃喝是件很快乐的事情。这样说来,这个生日应该会不错才对。
生日前一天,我说:“美女,明天有空么?我们……”
“啊,明天我男朋友要来,我要和他玩一天……啊,我先走了!”
那微风吹来的微笑,那看星星一般的眼神,还有那的不不知道是在和谁说话一般的语气……这,这一定是路人甲对路人乙说的,路人乙真可悲。心里这么想着,我立刻环顾四周,嗯……100米外发现路人甲,nani……路人乙已经遁地了?!……不对,这分明就是女主角的台词,路人甲这种小角色怎么可能说的出来!难到我是路人乙?!怎么可能……不过她确实已经闪人了。
哎,这模式好像在哪里见过……嗯,这一定是错觉,绝对是!
这份华丽的让不夜城的灯火都黯然失色的厚礼我还是收下了,你说这有办法能不收么?我只想对我的那些为了玩我而默默无闻辛勤耕作的冤家们说一句话:“算你们狠!”
不过离校的时候,还是搞了点小动作,想把这厚礼送回去,当然,最后还是可耻的失败了。难道我真的这么见利忘义?!
借蛋蛋里伪娘大人的一句名言:“……真是太失态了!”
弹指N年,干啥啥不成,做啥啥不是,嗯,废柴的很有境界。
前不久,初恋女友寄来一个红双喜,瞟了一眼,男人的名字很猥琐,嗯,冤家大人们,你们真的好有情调哦。算了,算了,我又不控人妻,这样如果还去参加婚礼那就太没品了。给她打个电话,“哎,结婚了啊,你老公的名字很有气势哎,是哪家的公子哥?……哦,年轻的副总裁啊,了不起!很有英雄美人的感觉哦……那个,很抱歉哎,婚礼我去不了,要去单位面试啊……真的很抱歉啊,哦,祝你们……”。他老母的,那边挂了,好伤心。
我看看手上的请柬,这个……是错觉吧,嗯,很像外面北风吹来的红纸片……
每年一次的圣诞节快到了,给那曾经的女友寄点礼物吧,毕竟很长一度时间里她对我还是很好的,虽然生日的那个“欢乐大礼包”撑的我这N年来一直胃疼,不过我也答应送她一些特别的礼物当做纪念,可还一直拖着呢,都拖了N年了。嗯,我就是磨神,希望得到真传的同学们赶快来拜我吧。把礼物的事和她说了之后,没想到她很高兴的接受了,早知道这样,我真想把那个“欢乐大礼包”还没有吃掉的部分还给她,不过,如果真的那么做了,那可就“真是太失态了”。嗯,太不体面了……。
之后又和她聊了几句,感觉现在她挺快乐的,就像一个快乐的小loli。真是太萌了……再聊了几句,哦,naruhodo,原来是要让我帮她做东西啊。没想到啊,没想到啊,看来我还是有利用的价值的。我的人生又有希望了,神啊,果然没有抛弃我。
听她说了详细的情况,嗯,果然是搬砖的活……搬吧,开始锻炼身体了。虽然现在我还只是个民工,不过好像有一点点那时的感觉了,真的会重新开始么?翻了翻她的相册,有最近的一些照片,都是些幸福的二人合影。这也没我啥事啊……
我在圣诞夜的满月向着上帝和真主祈祷……“万能的神啊,我可以读以前的存档么?只要和她在一起的那个就可以了,我好向她表白啊。”
……真主说:“@!#$^%@#$%!!!#$%#%^&%!”
对不起哦,我忘了,他是说阿拉伯语的,嘿嘿嘿,听不懂哦。
还是上帝说的明白:“Save had not found.”……哎?不会吧,我玩的太high而忘了存档了?!kuso……
也许我一直都是优秀的路人甲,根本就没有抢过男主角的戏,好伤心。啊,那感觉也是错觉吧……错觉……嗯,绝对是错觉!差点忘了,还有一句“真实太失态了”。
以上纯属扯蛋,如有雷同,你实在是太萌了。
后记:
礼物是一条围巾,其实这个应该是N年前的礼物,现在才送,怎样的感情才能经得起如此的等待?
礼物还是寄出了,当然,按照惯例,是在圣诞节之后了,元旦恐怕也赶不上了。
这个暖冬啊,我送围巾做什么呢?
星期二, 十二月 25, 2007
多个硬盘分区问题解决
以前安装hackintosh的时候,都是要分出一个fat32的分区,如果整个硬盘都是hfs+就会无法引导。
今天突然发现原来是分区的可引导属性在搞鬼,osx的磁盘工具会把最后一个抹掉的hfs+分区变成可引导的。
解决的办法也很简单,在gparted里调整一下可引导属性即可,也许用最后再格式化一次要装系统的分区也可以。
今天突然发现原来是分区的可引导属性在搞鬼,osx的磁盘工具会把最后一个抹掉的hfs+分区变成可引导的。
解决的办法也很简单,在gparted里调整一下可引导属性即可,也许用最后再格式化一次要装系统的分区也可以。
星期二, 十二月 11, 2007
星期日, 十二月 09, 2007
星期二, 十二月 04, 2007
搜索到一点彼岸花的资料
【梵语】
曼珠沙华(manjusaka)红色彼岸花
曼陀罗华(mandarava)白色彼岸花
【相关神话传说】
彼岸花,恶魔的温柔。传说中自愿投入地狱的花朵,被众魔遣回,但仍徘徊于黄泉路上,众魔不忍,遂同意让她开在此路上,给离开人界的魂们一个指引与安慰。
此花一名曼珠沙华,红色花又名彼岸花,也称为Red Spider Lily。人称“草莫见花莫见”。在日本被称作マンジュシャゲ,发音是曼珠沙华,花语是“分离/ 伤心/不吉祥/死亡之美”。
相传此花只开于黄泉,一般认为是只开在冥界三途河边、忘川彼岸的接引之花。花如血一样绚烂鲜红,铺满通向地狱的路,且有花无叶,是冥界唯一的花。花香传说有魔力,能唤起死者生前的记忆。在黄泉路上大批大批的开着这花,远远看上去就像是血所铺成的地毯, 又因其红得似火而被喻为“火照之路”,也是这长长黄泉路上唯一的风景与色彩。当灵魂渡过忘川,便忘却生前的种种,曾经的一切都留在了彼岸,往生者就踏着这花的指引通向幽冥之狱。
彼岸花属于石蒜科(Lycoris Herb),属名是希腊神话中女海神的名字。因为石蒜类的特性是先抽出花葶(总梗)开花,花末期或花谢后出叶;还有另一些种类是先抽叶,在叶枯以后抽葶开花,所以彼岸花花开时看不到叶子,有叶子时看不到花,花叶两不相见,生生相错。因此才有“彼岸花,开彼岸,只见花,不见叶”的说法。春天是球根,夏天生长叶子,秋天立起开花,冬天叶子又慢慢退去,花开时看不到叶子,有叶子时看不到花,花叶两不相见,生生相错。相念相惜永相失。如此轮回而花叶永不相见,也有着永远无法相会的悲恋之意。
传说,很久很久以前,城市的边缘开满了大片大片的彼岸花,也就是曼珠沙华。守护彼岸花的是两个妖精,一个花妖叫曼珠,一个是叶妖叫沙华。他们守候了几千年的彼岸花,可是从来没有见过面,因为花开的时候,花开时看不到叶子,有叶子时看不到花,花叶两不相见,生生相错。他们疯狂地想念着彼此,并被这种痛苦折磨着。终于有一天,他们决定违背神的规定偷偷地见一次面。那一年的曼珠沙华红艳艳的花被惹眼的绿色衬托着,开得格外妖冶美丽。神怪罪下来,这也是意料之中的.曼珠和沙华被打入轮回,并被诅咒永远也不能在一起,生生世世在人间受到磨难。从那以后,蔓珠沙华又叫做彼岸花,意思是开放在天国的花,花的形状像一只只在向天堂祈祷的手掌,可是再也没有在城市出现过。这种花是开在黄泉路上的,曼珠和沙华每一次转世在黄泉路上闻到彼岸花的香味就能想起前世的自己,然后发誓不分开,在下一世再跌入诅咒的轮回。
彼岸华的花语是哀伤的回忆 ……
在民间,春分前后三天叫春彼岸,秋分前后三天叫秋彼岸。是上坟的日子。彼岸花开在秋彼岸期间,非常准时,所以才叫彼岸花。而它生长的地方大多在田间小道,河边步道和墓地,所以别名也叫做死人花。一到秋天,就绽放出妖异浓艳得近于红黑色的花朵,整片的彼岸花看上去便是触目惊心的赤红,如火,如血,如荼。
曼珠沙华这个名字出自梵语「摩诃曼珠沙华」,原意为天上之花,大红花,天降吉兆四华之一。佛典中也说曼珠沙华(曼殊沙华)是天上开的花,白色而柔软,见此花者,恶自去除。佛家语,荼蘼是花季最后盛开的花,开到荼蘼花事了,只剩下开在遗忘前生的彼岸的花。佛经记载有“彼岸花,开一千年,落一千年,花叶永不相见。情不为因果,缘注定生死。”
曼珠沙华的美,是妖异、灾难、死亡与分离的不祥之美。或者是因为它深艳鲜红的色泽让人联想到血,也或者是因为它的鳞茎含有剧毒,在一般的文学作品中,它的形象通常是与“疯狂、血腥”之类的概念相联系起来的。在炎之蜃气楼的邂逅篇《真皓き残响》中,桑原水菜笔下写到景虎自杀的瞬间,看到喷出的鲜血如同盛放成群的彼岸花。
佛曰:
梵语波罗蜜
此云到彼岸
解义离生灭
著境生灭起
如水有波浪
即名为此岸
离境无生灭
如水常流通
即名为彼岸
有生有死的境界
谓之此岸
超脱生死的境界
谓之彼岸
是涅盘的彼岸
佛说彼岸
无生无死
无若无悲
无欲无求
是个忘记一切悲苦的及乐世界
而有种花
超出三界之外
不在五行之中
生于弱水彼岸
无茎无叶
绚灿绯红
佛说那是彼岸花
彼岸花开
花开彼岸时,
只一团火红;
花开无叶,
叶生无花;
相念相惜却不得相见,
独自彼岸路。
(注:三途河,也叫做“三途川”。传说中,“三途河”是生界与死界的分界线。因为水流会根据死者生前的行为,而分成缓慢、普通和急速三种,故被称为“三途”。
就像生与死只有轮回可以跨越一样,渡过“三途河”的方法也只有一个,那就是“三途河”上的渡船,除此之外别无他法。然而渡船是要付船费的,没有路费的灵魂将不能登上渡船,就算登上了,也会被船夫丢进“三途河”。那些无法渡河的灵魂在轮回欲望的驱使之下,会涉水渡河,但是“三途河”的河水不但没有浮力,而且还具有能够腐蚀灵魂的剧毒。那些下水的灵魂将永远没有上岸的机会了,只能变成“三途河”里的水鬼。永远无法转生的痛苦和彻骨冰冷的河水使那些水鬼对其它还有轮回希望的灵魂产生了妒忌。只要有灵魂落水,他们就会一拥而上,将其拉入河底也变成和他们一样的水鬼。)
【花语】日本花语:“悲伤回忆” 朝鲜花语:“相互思念” 中国花语:“优美纯洁”
曼珠沙华(manjusaka)红色彼岸花
曼陀罗华(mandarava)白色彼岸花
【相关神话传说】
彼岸花,恶魔的温柔。传说中自愿投入地狱的花朵,被众魔遣回,但仍徘徊于黄泉路上,众魔不忍,遂同意让她开在此路上,给离开人界的魂们一个指引与安慰。
此花一名曼珠沙华,红色花又名彼岸花,也称为Red Spider Lily。人称“草莫见花莫见”。在日本被称作マンジュシャゲ,发音是曼珠沙华,花语是“分离/ 伤心/不吉祥/死亡之美”。
相传此花只开于黄泉,一般认为是只开在冥界三途河边、忘川彼岸的接引之花。花如血一样绚烂鲜红,铺满通向地狱的路,且有花无叶,是冥界唯一的花。花香传说有魔力,能唤起死者生前的记忆。在黄泉路上大批大批的开着这花,远远看上去就像是血所铺成的地毯, 又因其红得似火而被喻为“火照之路”,也是这长长黄泉路上唯一的风景与色彩。当灵魂渡过忘川,便忘却生前的种种,曾经的一切都留在了彼岸,往生者就踏着这花的指引通向幽冥之狱。
彼岸花属于石蒜科(Lycoris Herb),属名是希腊神话中女海神的名字。因为石蒜类的特性是先抽出花葶(总梗)开花,花末期或花谢后出叶;还有另一些种类是先抽叶,在叶枯以后抽葶开花,所以彼岸花花开时看不到叶子,有叶子时看不到花,花叶两不相见,生生相错。因此才有“彼岸花,开彼岸,只见花,不见叶”的说法。春天是球根,夏天生长叶子,秋天立起开花,冬天叶子又慢慢退去,花开时看不到叶子,有叶子时看不到花,花叶两不相见,生生相错。相念相惜永相失。如此轮回而花叶永不相见,也有着永远无法相会的悲恋之意。
传说,很久很久以前,城市的边缘开满了大片大片的彼岸花,也就是曼珠沙华。守护彼岸花的是两个妖精,一个花妖叫曼珠,一个是叶妖叫沙华。他们守候了几千年的彼岸花,可是从来没有见过面,因为花开的时候,花开时看不到叶子,有叶子时看不到花,花叶两不相见,生生相错。他们疯狂地想念着彼此,并被这种痛苦折磨着。终于有一天,他们决定违背神的规定偷偷地见一次面。那一年的曼珠沙华红艳艳的花被惹眼的绿色衬托着,开得格外妖冶美丽。神怪罪下来,这也是意料之中的.曼珠和沙华被打入轮回,并被诅咒永远也不能在一起,生生世世在人间受到磨难。从那以后,蔓珠沙华又叫做彼岸花,意思是开放在天国的花,花的形状像一只只在向天堂祈祷的手掌,可是再也没有在城市出现过。这种花是开在黄泉路上的,曼珠和沙华每一次转世在黄泉路上闻到彼岸花的香味就能想起前世的自己,然后发誓不分开,在下一世再跌入诅咒的轮回。
彼岸华的花语是哀伤的回忆 ……
在民间,春分前后三天叫春彼岸,秋分前后三天叫秋彼岸。是上坟的日子。彼岸花开在秋彼岸期间,非常准时,所以才叫彼岸花。而它生长的地方大多在田间小道,河边步道和墓地,所以别名也叫做死人花。一到秋天,就绽放出妖异浓艳得近于红黑色的花朵,整片的彼岸花看上去便是触目惊心的赤红,如火,如血,如荼。
曼珠沙华这个名字出自梵语「摩诃曼珠沙华」,原意为天上之花,大红花,天降吉兆四华之一。佛典中也说曼珠沙华(曼殊沙华)是天上开的花,白色而柔软,见此花者,恶自去除。佛家语,荼蘼是花季最后盛开的花,开到荼蘼花事了,只剩下开在遗忘前生的彼岸的花。佛经记载有“彼岸花,开一千年,落一千年,花叶永不相见。情不为因果,缘注定生死。”
曼珠沙华的美,是妖异、灾难、死亡与分离的不祥之美。或者是因为它深艳鲜红的色泽让人联想到血,也或者是因为它的鳞茎含有剧毒,在一般的文学作品中,它的形象通常是与“疯狂、血腥”之类的概念相联系起来的。在炎之蜃气楼的邂逅篇《真皓き残响》中,桑原水菜笔下写到景虎自杀的瞬间,看到喷出的鲜血如同盛放成群的彼岸花。
佛曰:
梵语波罗蜜
此云到彼岸
解义离生灭
著境生灭起
如水有波浪
即名为此岸
离境无生灭
如水常流通
即名为彼岸
有生有死的境界
谓之此岸
超脱生死的境界
谓之彼岸
是涅盘的彼岸
佛说彼岸
无生无死
无若无悲
无欲无求
是个忘记一切悲苦的及乐世界
而有种花
超出三界之外
不在五行之中
生于弱水彼岸
无茎无叶
绚灿绯红
佛说那是彼岸花
彼岸花开
花开彼岸时,
只一团火红;
花开无叶,
叶生无花;
相念相惜却不得相见,
独自彼岸路。
(注:三途河,也叫做“三途川”。传说中,“三途河”是生界与死界的分界线。因为水流会根据死者生前的行为,而分成缓慢、普通和急速三种,故被称为“三途”。
就像生与死只有轮回可以跨越一样,渡过“三途河”的方法也只有一个,那就是“三途河”上的渡船,除此之外别无他法。然而渡船是要付船费的,没有路费的灵魂将不能登上渡船,就算登上了,也会被船夫丢进“三途河”。那些无法渡河的灵魂在轮回欲望的驱使之下,会涉水渡河,但是“三途河”的河水不但没有浮力,而且还具有能够腐蚀灵魂的剧毒。那些下水的灵魂将永远没有上岸的机会了,只能变成“三途河”里的水鬼。永远无法转生的痛苦和彻骨冰冷的河水使那些水鬼对其它还有轮回希望的灵魂产生了妒忌。只要有灵魂落水,他们就会一拥而上,将其拉入河底也变成和他们一样的水鬼。)
【花语】日本花语:“悲伤回忆” 朝鲜花语:“相互思念” 中国花语:“优美纯洁”
在线漫画站
在印象中比较好的两个在线漫画站:
漫漫看:www.manmankan.com
收藏的漫画可以用海量来形容,只是速度不如从前了,经常要为一张画等很长一段时间。偶尔还有缺页。
欧漫路:http://www.comic6.com/index.php
最近刚发现的,更新速度比较快,而且是论坛形式的,不用注册就可以观看。网站的速度也还可以。
漫漫看:www.manmankan.com
收藏的漫画可以用海量来形容,只是速度不如从前了,经常要为一张画等很长一段时间。偶尔还有缺页。
欧漫路:http://www.comic6.com/index.php
最近刚发现的,更新速度比较快,而且是论坛形式的,不用注册就可以观看。网站的速度也还可以。
星期日, 十二月 02, 2007
星期三, 十一月 28, 2007
发现一个小巧的文本编辑器cotEditor
在osx里一直没有找到一个小巧的支持语法的纯文本编辑器,一直在用textWrangler和jedit,不过这两个家伙都不快,textWrangler也不太舒服。
无意中发现了CotEditor,现在是sourceforge上的一个项目,我最喜欢sourceforge上的东西了,随便下载,哈哈哈。
无意中发现了CotEditor,现在是sourceforge上的一个项目,我最喜欢sourceforge上的东西了,随便下载,哈哈哈。
星期二, 十一月 20, 2007
Firefox3 beta1第一印象
看到solidot说firefox3 beta1出来了,传说中的ff3终于出来,赶紧下来试试。
第一印象,这个软件的界面还是“建设中”,原先的主题都用不了,而默认的主题似乎也有问题,标题栏是白色的,和系统的很不协调。这个问题不严重,正式版应该就没有这样的事情了。
接着,还是界面。osx版本终于改用本地控件了,当然只是网页中的空间是本地主题,这个算是一个不错的改进。不过之前说的增强本地化不会就这么点动作吧?
然后是中文方面的。这次不用再费劲的去调整那两个css了,什么都不管,中文显示的就不错。问题还是有的,比如baidu的“百度一下”竟然还是宋体。现在还不能确定,因为系统改动比较多,也许问题还是没有解决。
最后是稳定性。从下载到现在才刚刚10分钟,没什么好说的。我猜好不到哪里去。
更新:
刚才又下载了linux版的,现在用了一会儿,感觉比osx版的要好一些。界面的本地化也做得比较不错,目前没有什么毛病。
第一印象,这个软件的界面还是“建设中”,原先的主题都用不了,而默认的主题似乎也有问题,标题栏是白色的,和系统的很不协调。这个问题不严重,正式版应该就没有这样的事情了。
接着,还是界面。osx版本终于改用本地控件了,当然只是网页中的空间是本地主题,这个算是一个不错的改进。不过之前说的增强本地化不会就这么点动作吧?
然后是中文方面的。这次不用再费劲的去调整那两个css了,什么都不管,中文显示的就不错。问题还是有的,比如baidu的“百度一下”竟然还是宋体。现在还不能确定,因为系统改动比较多,也许问题还是没有解决。
最后是稳定性。从下载到现在才刚刚10分钟,没什么好说的。我猜好不到哪里去。
更新:
刚才又下载了linux版的,现在用了一会儿,感觉比osx版的要好一些。界面的本地化也做得比较不错,目前没有什么毛病。
星期日, 十一月 11, 2007
星期四, 十一月 08, 2007
firefox在OSX中显示中文的问题 2
更正一下上次说的userChrome.css和userContent.css的问题。
上次写的有错误,字体的名称应该加上引号。
*{
font-family:"Lucida Grande","华文黑体";
}
加上引号后,可以解决一些网站的问题,不过有些网站的中文还是很丑,blogger在写blog的时候那个文本框就是。
上次写的有错误,字体的名称应该加上引号。
*{
font-family:"Lucida Grande","华文黑体";
}
加上引号后,可以解决一些网站的问题,不过有些网站的中文还是很丑,blogger在写blog的时候那个文本框就是。
星期三, 十月 31, 2007
如何在windows linux osx之间交换数据
自从用osx之后,不同格式的分区之间的数据交换就一直是一个严重的问题。linux支持的格式比较多,但是除了自身的格式 之外,其他系统的也只是支持fat32。很明显,现在fat32已经不能满足要求了,随便一个什么dvd的iso都有可能超过4G。osx也有同样的问题,除了自身的格式之外,也是只支持fat32。osx和linux对ntfs的支持也只有read only,虽然说ntfs 3G支持在linux和osx上写入ntfs,但是根据实际的使用经验,很多目录都列不出来。
现在三个系统都可以读取并且支持4G以上文件的是:ext2/3,hfs+,ntfs,ufs
ufs先不考虑,它有很多中标准,solaris和bsd的就不一样,几种bsd之间的也不一样,osx好像支持自己的ufs。
ntfs也无法在linux和osx上完美的实现读写,也不考虑了。
在windows上用ifs可以读写ext2/3,除了不支持权限和日志之外,还算完美,用macdrive可以读写hfs+的分区,当然也是不支持日志。
在linux上,内核本身就支持hfs+的读写,也是不支持日志,需要在osx里把日志关闭才可以在linux中读写。在有日志的时候就是read only。
在osx中关闭某个卷的日志:
sudo diskutil disableJournal "/Volumes/nameofdisk"
然后在linux中mount:
mount -t hfsplus /dev/xxx /media/MACDRIVE
参考:
http://fosswire.com/2007/09/12/dealing-with-mac-formatted-drives-on-linux/
星期三, 十月 24, 2007
这世界太有爱了,活着真好
这是……心的血,在滑落着。
一个模糊的世界,虚幻与飘渺,这是梦境吗?
不可能!但是怀疑就像一柄冰冷的利剑刺穿我的心脏一般,让我无法忽视它的存在。
真的是梦吗?如果是梦,我愿意让我的生命随着这梦一起破碎!
那,这到底是什么?
依然在滑落着,落入九天的星河一般的滑落着……那是,心的血。
泪水划出一条柔美的曲线,那是它胜利的丰碑,它在肆意地嘲笑着的,是我的软弱。
无法掩饰,我也不想掩饰。我只是在寻找,拼命的在寻找,寻找那个能让我如此坦然的理由!
然而,失落的爬山虎却已经围着我,缠绕着我,遮蔽起最后一点希望。
什么!为什么还要活着?!迷茫的漩涡正在吞噬的我的灵魂,那是黑暗,无尽的黑暗。
色彩在跳动着。不,那是华丽的爱!
那是……
华丽的爱与模糊的世界,我找到了,正是那华丽的爱!
活着,就是为了要见证的华丽的爱!
这是……心的血。不!这是甘泉!依然在滑落着。
是她和她,是姐姐的华丽的爱。
她和她是有爱的,华丽的爱。……难道……这是……百合的香味吗?
御姐爱,百合香……谢谢你,姐姐!
什么,你说你能理解我写的什么?!
啊!完了!你已经没救了!赶紧找个黄道吉日自己了断了吧!
一个模糊的世界,虚幻与飘渺,这是梦境吗?
不可能!但是怀疑就像一柄冰冷的利剑刺穿我的心脏一般,让我无法忽视它的存在。
真的是梦吗?如果是梦,我愿意让我的生命随着这梦一起破碎!
那,这到底是什么?
依然在滑落着,落入九天的星河一般的滑落着……那是,心的血。
泪水划出一条柔美的曲线,那是它胜利的丰碑,它在肆意地嘲笑着的,是我的软弱。
无法掩饰,我也不想掩饰。我只是在寻找,拼命的在寻找,寻找那个能让我如此坦然的理由!
然而,失落的爬山虎却已经围着我,缠绕着我,遮蔽起最后一点希望。
什么!为什么还要活着?!迷茫的漩涡正在吞噬的我的灵魂,那是黑暗,无尽的黑暗。
色彩在跳动着。不,那是华丽的爱!
那是……
华丽的爱与模糊的世界,我找到了,正是那华丽的爱!
活着,就是为了要见证的华丽的爱!
这是……心的血。不!这是甘泉!依然在滑落着。
是她和她,是姐姐的华丽的爱。
她和她是有爱的,华丽的爱。……难道……这是……百合的香味吗?
御姐爱,百合香……谢谢你,姐姐!
什么,你说你能理解我写的什么?!
啊!完了!你已经没救了!赶紧找个黄道吉日自己了断了吧!
星期日, 十月 14, 2007
firefox在OSX中显示中文的问题
firefox在osx的英文环境中,某些汉字显示为“?” ,在firefox2.0.0.x中依然如此。
这里说了一种解决的办法。
http://hi.baidu.com/dawgdash/blog/item/6157a138c501b227b8998ff1.html
全文引用一下:
//////////////////////
Firefox在苹果 Mac OS X 上,一直被诟病对中文支持不好。我用的是 Firefox 2.0.0.7 英文版,以及英文界面的Mac OS X Tiger。我遇到的问题有:浏览网页的时候掉字,一些中文字显示为问号;在地址栏,搜索栏,以及一些英文网页的文本框中,输入中文的时候,光标对不准字,修改更加是乱七八糟;标签上的中文,有时候会超过标签区域,显示到外面来;一些网页中的中文,复制的时候,选不准位置。
这些问题的确难以忍受。但是Firefox的兼容性,完善的标签浏览功能,还有庞大的插件资源,使人无法割舍。
仔细分析,不难发现,其实这些中文问题,都是出在了字体上。比如搜索百度或者谷歌,会发现一些用户通过拷贝微软的宋体(Microsoft Office for Mac中包含),可以解决最头痛的掉字的问题。如果拷贝宋体到/Library/Fonts中,还可以解决中文选取的问题。这些试验说明 Firefox 在某些中文场合,还默认依靠宋体。这的确是非常奇怪,应该是 Firefox 的 bug。除去掉字问题,其他问题看上去都像是出在 Firefox 不知道该使用什么字体,也不知道当前使用的是什么字体。
解决办法也很简单,告诉 Firefox 在显示界面和渲染网页中,在需要渲染中文的时候,使用某些特定的字体。UserChrome.css 和 UserContent.css 可以达到这样的目的。
具体细节是,在 UserChrome.css 和 UserContent.css 中加入下面的代码:
* {
font-family: Lucida Grande, 华文黑体;
}
需要注意的是,一定要把文件保存为 UTF-8 格式(我是用vim的set encoding=utf-8来确保)。不然 Firefox 无法明白“华文黑体“。(Lucida Grande 和华文黑体,都是苹果的默认字体,也是 Safari 默认字体。)
上面的改动后,经过试验,我遇到的这些中文问题已经全部解决。
/////////////////
不过在我这里还没有解决问题,最后还是要把simsun.ttc复制到/Library/Fonts里算了。
这里说了一种解决的办法。
http://hi.baidu.com/dawgdash/blog/item/6157a138c501b227b8998ff1.html
全文引用一下:
//////////////////////
Firefox在苹果 Mac OS X 上,一直被诟病对中文支持不好。我用的是 Firefox 2.0.0.7 英文版,以及英文界面的Mac OS X Tiger。我遇到的问题有:浏览网页的时候掉字,一些中文字显示为问号;在地址栏,搜索栏,以及一些英文网页的文本框中,输入中文的时候,光标对不准字,修改更加是乱七八糟;标签上的中文,有时候会超过标签区域,显示到外面来;一些网页中的中文,复制的时候,选不准位置。
这些问题的确难以忍受。但是Firefox的兼容性,完善的标签浏览功能,还有庞大的插件资源,使人无法割舍。
仔细分析,不难发现,其实这些中文问题,都是出在了字体上。比如搜索百度或者谷歌,会发现一些用户通过拷贝微软的宋体(Microsoft Office for Mac中包含),可以解决最头痛的掉字的问题。如果拷贝宋体到/Library/Fonts中,还可以解决中文选取的问题。这些试验说明 Firefox 在某些中文场合,还默认依靠宋体。这的确是非常奇怪,应该是 Firefox 的 bug。除去掉字问题,其他问题看上去都像是出在 Firefox 不知道该使用什么字体,也不知道当前使用的是什么字体。
解决办法也很简单,告诉 Firefox 在显示界面和渲染网页中,在需要渲染中文的时候,使用某些特定的字体。UserChrome.css 和 UserContent.css 可以达到这样的目的。
具体细节是,在 UserChrome.css 和 UserContent.css 中加入下面的代码:
* {
font-family: Lucida Grande, 华文黑体;
}
需要注意的是,一定要把文件保存为 UTF-8 格式(我是用vim的set encoding=utf-8来确保)。不然 Firefox 无法明白“华文黑体“。(Lucida Grande 和华文黑体,都是苹果的默认字体,也是 Safari 默认字体。)
上面的改动后,经过试验,我遇到的这些中文问题已经全部解决。
/////////////////
不过在我这里还没有解决问题,最后还是要把simsun.ttc复制到/Library/Fonts里算了。
星期一, 十月 01, 2007
星期二, 九月 11, 2007
Liquidmaya/Pixie on Hackintosh
Pixie 2.2.2版本已经支持OSX(这个是邮件列表上说的),但是如果用xcode来安装的话,就会遭遇可耻的失败。在pixie的wiki上说可以用传统的make来安装,不过要先装fink和libtiff。我感觉还是make亲切,xcode如果失败的话,找问题比较麻烦,尤其是那种不是自己写的项目。不多说了,看wiki吧,
然后是Liquidmaya,sourcefouge上提供的是06年的,有点老,而且没有intel mac版,只有ppc版,最高只有maya8.0的。说什么都要自己编译了。编译liquidmaya也离不开fink,先要装svn-client。sourceforge的svn提供的是https形式的,可是fink里没有svn-client-ssl的二进制包,自己编译当然也可以,不过又要装一大堆东西。幸运的是sourceforge的svn也可以用http形式访问,可以check out的了。
pixie的编译没有什么好说的,就是用内存比较多,大概要2G,编译的过程比编译liquidmaya省心多了。
编译liquidmaya都是用xcode来做的,问题比较多,一个一个来说吧。
1 没有文件libstdc++.a,应该是libstdc++-static.a。
2 project里的architectures应该选intel,也就是i386。
3 Targets里,要修改libquid-pixie maya8.0,编辑它的属性,把8.0改成8.5。search paths里把8.0的路径改成8.5的路径,它用的是$(MAYA_LOCATION),不知道这个变量应该在哪里改,.profile不起作用,直接用常量路径替换即可。
4 在linking里,other linker flags中,把-lIMF改成-lIlmImf,maya8.5-osx里没有libimf。
然后可以编译了,编译完成后,可以参考那个ppc的二进制包,看看目录结构是怎样的,创建一个相同的目录结构把文件复制过去即可。环境变量什么的就不说了,看wiki吧。
在ppc的二进制包中,有个liqmaya.so,用xcode编译的时候编译不出来。邮件列表上说,g++ -bundle -flat_namespace -undefined suppress -I/Applications/Graphics/Pixie/include liqMayaDisplayDriverPixie.cpp -L/Applications/Graphics/Pixie/lib -lri -o liqmaya.so ,这样还不行,少liqMayaDisplayDriverPixie.h和os.h。第一.h在liquidmaya的include里,os.h在pixie源码的src/common里,所以这两个位置也要-I。编译出来后,这个liqmaya.so却不知道改如何用,反正没有它插件也能加载和输出rib。
现在的liquid已经可以把maya的场景输出为rib了,但是却无法渲染,只能到terminal里用rndr来渲染,而且framebuffer不工作,什么也不显示,只能输出tiff文件。不管怎么说,已经能工作了。
顺便再说一说编辑器,cutter是非常不错的rsl和rib编辑器,可惜只能安全存取750k以内的文件,我导出的rib有11M,cutter立刻死掉了。jedit表现还可以,不过不能拽滚动条,往下一拽就死。能够信赖的只有vim和emacs。macvim.org提供了独立程序版的vim,再dock上有图标,用起来方便点。
我原本以为pixie的occlusion会比较快,最后,我真的很失望。
然后是Liquidmaya,sourcefouge上提供的是06年的,有点老,而且没有intel mac版,只有ppc版,最高只有maya8.0的。说什么都要自己编译了。编译liquidmaya也离不开fink,先要装svn-client。sourceforge的svn提供的是https形式的,可是fink里没有svn-client-ssl的二进制包,自己编译当然也可以,不过又要装一大堆东西。幸运的是sourceforge的svn也可以用http形式访问,可以check out的了。
pixie的编译没有什么好说的,就是用内存比较多,大概要2G,编译的过程比编译liquidmaya省心多了。
编译liquidmaya都是用xcode来做的,问题比较多,一个一个来说吧。
1 没有文件libstdc++.a,应该是libstdc++-static.a。
2 project里的architectures应该选intel,也就是i386。
3 Targets里,要修改libquid-pixie maya8.0,编辑它的属性,把8.0改成8.5。search paths里把8.0的路径改成8.5的路径,它用的是$(MAYA_LOCATION),不知道这个变量应该在哪里改,.profile不起作用,直接用常量路径替换即可。
4 在linking里,other linker flags中,把-lIMF改成-lIlmImf,maya8.5-osx里没有libimf。
然后可以编译了,编译完成后,可以参考那个ppc的二进制包,看看目录结构是怎样的,创建一个相同的目录结构把文件复制过去即可。环境变量什么的就不说了,看wiki吧。
在ppc的二进制包中,有个liqmaya.so,用xcode编译的时候编译不出来。邮件列表上说,g++ -bundle -flat_namespace -undefined suppress -I/Applications/Graphics/Pixie/include liqMayaDisplayDriverPixie.cpp -L/Applications/Graphics/Pixie/lib -lri -o liqmaya.so ,这样还不行,少liqMayaDisplayDriverPixie.h和os.h。第一.h在liquidmaya的include里,os.h在pixie源码的src/common里,所以这两个位置也要-I。编译出来后,这个liqmaya.so却不知道改如何用,反正没有它插件也能加载和输出rib。
现在的liquid已经可以把maya的场景输出为rib了,但是却无法渲染,只能到terminal里用rndr来渲染,而且framebuffer不工作,什么也不显示,只能输出tiff文件。不管怎么说,已经能工作了。
顺便再说一说编辑器,cutter是非常不错的rsl和rib编辑器,可惜只能安全存取750k以内的文件,我导出的rib有11M,cutter立刻死掉了。jedit表现还可以,不过不能拽滚动条,往下一拽就死。能够信赖的只有vim和emacs。macvim.org提供了独立程序版的vim,再dock上有图标,用起来方便点。
我原本以为pixie的occlusion会比较快,最后,我真的很失望。
星期五, 九月 07, 2007
星期三, 九月 05, 2007
ThemePark创建OSX的主题
http://www.geekspiff.com/software/themepark/tutorial/
pxm#图片部分都有名称,clr#部分则没有。
All About clr# and clut Resources
These resources are used to save particular colors. As far as I can tell, the only resource that actually does anything is clr# 384. The following shows what this resource is used for. Please note that almost everything in this list is only effective for Carbon applications - Cocoa almost always uses hard-coded colors. If you know of any additions or mistakes, please don't hesitate to let me know!
Resource Type: clr# Resource ID: 384
Index 00: Dialog Active Text Color
Index 01: Dialog Inactive Text Color
Index 02: Alert Active Text Color
Index 03: Alert Inactive Text Color
Index 04: Modeless Dialog Active Text Color
Index 05: Modeless Dialog Inactive Text Color
Index 06: Window Header Active Text Color
Index 07: Window Header Inactive Text Color
Index 08: Placard Active Text Color
Index 09: Placard Inactive Text Color
Index 10: Placard Pressed Text Color
Index 11: Push Button Active Text Color
Index 12: Push Button Inactive Text Color
Index 13: Push Button Pressed Text Color
Index 14: Bevel Button Active Text Color
Index 15: Bevel Button Inactive Text Color
Index 16: Bevel Button Pressed Text Color
Index 17: Popup Button Active Text Color
Index 18: Popup Button Inactive Text Color
Index 19: Popup Button Pressed Text Color
Index 20: Icon Label Text Color
Index 21: List View Text Color (and Open/Save dialog list color)
Index 22: Document Window Title Active Text Color
Index 23: Document Window Title Inactive Text Color
Index 24: Movable Modal Window Title Active Text Color
Index 25: Movable Modal Window Title Inactive Text Color
Index 26: Utility Window Title Active Text Color
Index 27: Utility Window Title Inactive Text Color
Index 38: Popup Window Title Active Text Color
Index 29: Popup Window Title Inactive Text Color
Index 30: Active menu title text color
Index 31: Selected menu title text color
Index 32: Disabled menu title text color (OS uses a lighter variation)
Index 33: Active menu item text color
Index 34: Selected menu item text color
Index 35: Inactive menu item text color (OS uses a lighter variation)
Index 36: Popup Label Active Text Color
Index 37: Popup Label Inactive Text Color
Index 38: Tab Front Active Text Color
Index 39: Tab Non Front Active Text Color
Index 40: Tab Non Front Pressed Text Color
Index 41: Tab Front Inactive Text Color
Index 42: Tab Non Front Inactive Text Color
Index 43: Icon Label Selected Text Color
Index 44: Bevel Button Sticky Active Text Color
Index 45: Bevel Button Sticky Inactive Text Color
Index 46: unknown
Index 47: Finder file-item subtext (activated with View -> Show View Options -> Show Item Info)
pxm#图片部分都有名称,clr#部分则没有。
All About clr# and clut Resources
These resources are used to save particular colors. As far as I can tell, the only resource that actually does anything is clr# 384. The following shows what this resource is used for. Please note that almost everything in this list is only effective for Carbon applications - Cocoa almost always uses hard-coded colors. If you know of any additions or mistakes, please don't hesitate to let me know!
Resource Type: clr# Resource ID: 384
Index 00: Dialog Active Text Color
Index 01: Dialog Inactive Text Color
Index 02: Alert Active Text Color
Index 03: Alert Inactive Text Color
Index 04: Modeless Dialog Active Text Color
Index 05: Modeless Dialog Inactive Text Color
Index 06: Window Header Active Text Color
Index 07: Window Header Inactive Text Color
Index 08: Placard Active Text Color
Index 09: Placard Inactive Text Color
Index 10: Placard Pressed Text Color
Index 11: Push Button Active Text Color
Index 12: Push Button Inactive Text Color
Index 13: Push Button Pressed Text Color
Index 14: Bevel Button Active Text Color
Index 15: Bevel Button Inactive Text Color
Index 16: Bevel Button Pressed Text Color
Index 17: Popup Button Active Text Color
Index 18: Popup Button Inactive Text Color
Index 19: Popup Button Pressed Text Color
Index 20: Icon Label Text Color
Index 21: List View Text Color (and Open/Save dialog list color)
Index 22: Document Window Title Active Text Color
Index 23: Document Window Title Inactive Text Color
Index 24: Movable Modal Window Title Active Text Color
Index 25: Movable Modal Window Title Inactive Text Color
Index 26: Utility Window Title Active Text Color
Index 27: Utility Window Title Inactive Text Color
Index 38: Popup Window Title Active Text Color
Index 29: Popup Window Title Inactive Text Color
Index 30: Active menu title text color
Index 31: Selected menu title text color
Index 32: Disabled menu title text color (OS uses a lighter variation)
Index 33: Active menu item text color
Index 34: Selected menu item text color
Index 35: Inactive menu item text color (OS uses a lighter variation)
Index 36: Popup Label Active Text Color
Index 37: Popup Label Inactive Text Color
Index 38: Tab Front Active Text Color
Index 39: Tab Non Front Active Text Color
Index 40: Tab Non Front Pressed Text Color
Index 41: Tab Front Inactive Text Color
Index 42: Tab Non Front Inactive Text Color
Index 43: Icon Label Selected Text Color
Index 44: Bevel Button Sticky Active Text Color
Index 45: Bevel Button Sticky Inactive Text Color
Index 46: unknown
Index 47: Finder file-item subtext (activated with View -> Show View Options -> Show Item Info)
星期二, 九月 04, 2007
vmware fusion中使用物理硬盘和wacom tablet
以前写过一篇在vmware中使用wacom tablet的文章,在vmware fusion中基本上也是通用的。而且,在vmware中简单一点,只要修改一下vmx文件即可。在修改完成之后,在windows里鼠标指针不会随着数字笔动,这仅仅是刷新的问题,在windows的鼠标设置里,打开“鼠标轨迹”即可。当然,同一时刻只能有一个系统可以使用HID设备(包括tablet)。
再来说一下在vmware fusion中使用物理硬盘,这个工作要稍微麻烦点。
首先要用vmware-rawdiskCreator创建一个物理硬盘的vmdk,这是一个命令行工具,没有图形界面,在/Library/Application Support/VMware Fusion/里面,不带参数执行一下可以得到帮助。
./vmware-rawdiskCreator print /dev/disk0,列出disk0的分区情况。
Nr Start Size Type Id Sytem
-- ---------- ---------- ---- -- ------------------------
1 63 52100496 BIOS AF HFS+
2 52100622 52100496 BIOS C Win95 FAT32 (LBA)
3 104201181 52100307 BIOS 83 Linux
现在要给第2个分区(FAT32)创建一个vmdk。
./vmware-rawdiskCreator create /dev/disk0 2 ~/Disk0s2dev "ide"
2就是Nr那一栏中的数字, ~/Disk0s2dev是创建出来的vmdk的名字和路径,可以随便设置,一会儿要复制到vmx的目录里,"ide"是在虚拟机中硬盘的类型。命令执行后,在~/里产生两个文件:Disk0s2dev.vmdk和Disk0s2dev-pt.vmdk,要自己把它们复制到vmx所在的目录。
然后打开虚拟机,创建一个虚拟硬盘,大小0.1G即可。关掉虚拟机,用一个文本编辑器(比如jedit)打开vmx文件,找到刚才创建的那个虚拟硬盘,改成刚才用vmware-rawdiskCreator创建Disk0s2dev.vmdk文件,Disk0s2dev-pt.vmdk可以不用管。保存vmx文件。
运行虚拟机,要求输入管理员密码,windows会发现新的硬盘。同时,osx中,disk0s2会自动umount。只有关闭虚拟机后才可以再次mount。
参考:
http://www.vmware.com/community/message.jspa?messageID=674382
再来说一下在vmware fusion中使用物理硬盘,这个工作要稍微麻烦点。
首先要用vmware-rawdiskCreator创建一个物理硬盘的vmdk,这是一个命令行工具,没有图形界面,在/Library/Application Support/VMware Fusion/里面,不带参数执行一下可以得到帮助。
./vmware-rawdiskCreator print /dev/disk0,列出disk0的分区情况。
Nr Start Size Type Id Sytem
-- ---------- ---------- ---- -- ------------------------
1 63 52100496 BIOS AF HFS+
2 52100622 52100496 BIOS C Win95 FAT32 (LBA)
3 104201181 52100307 BIOS 83 Linux
现在要给第2个分区(FAT32)创建一个vmdk。
./vmware-rawdiskCreator create /dev/disk0 2 ~/Disk0s2dev "ide"
2就是Nr那一栏中的数字, ~/Disk0s2dev是创建出来的vmdk的名字和路径,可以随便设置,一会儿要复制到vmx的目录里,"ide"是在虚拟机中硬盘的类型。命令执行后,在~/里产生两个文件:Disk0s2dev.vmdk和Disk0s2dev-pt.vmdk,要自己把它们复制到vmx所在的目录。
然后打开虚拟机,创建一个虚拟硬盘,大小0.1G即可。关掉虚拟机,用一个文本编辑器(比如jedit)打开vmx文件,找到刚才创建的那个虚拟硬盘,改成刚才用vmware-rawdiskCreator创建Disk0s2dev.vmdk文件,Disk0s2dev-pt.vmdk可以不用管。保存vmx文件。
运行虚拟机,要求输入管理员密码,windows会发现新的硬盘。同时,osx中,disk0s2会自动umount。只有关闭虚拟机后才可以再次mount。
参考:
http://www.vmware.com/community/message.jspa?messageID=674382
星期二, 八月 28, 2007
Cursor Theme,鼠标指针的主题(2)
更正一下上一篇文章中的错误。
在CoreGraphics中,4517A0~4534A0都是Arrow和I-beam鼠标指针的样式。
4517A0+400 16*16 Arrow白底黑框 无阴影
451BA0+400 16*16 Arrow黑底白框 无阴影
451FA0+400 16*16 Arrow黑底白框 无阴影
4523A0+400 16*16 Ibeam无阴影
4527A0+400 16*16 Ibeam粗 无阴影
452BA0+900 24*24 Arrow有阴影
4534A0+400 16*16 Arrow黑底白框 无阴影
在CoreGraphics中,4517A0~4534A0都是Arrow和I-beam鼠标指针的样式。
4517A0+400 16*16 Arrow白底黑框 无阴影
451BA0+400 16*16 Arrow黑底白框 无阴影
451FA0+400 16*16 Arrow黑底白框 无阴影
4523A0+400 16*16 Ibeam无阴影
4527A0+400 16*16 Ibeam粗 无阴影
452BA0+900 24*24 Arrow有阴影
4534A0+400 16*16 Arrow黑底白框 无阴影
星期日, 八月 26, 2007
Cursor Theme,鼠标指针的主题
Mighty Mouse可以改变鼠标的样式,不过至今没有1.3版的sn,也没有破解。虽然Mighty Mouse只要$10,貌似很便宜,可以换成¥的话,就是¥80了,作为一个只是换鼠标主题的软件来说太贵了。
把Mighty Mouse踢开后,现在两种选择,要么继续忍受那个丑陋的I-beam满天飞,要么就hack系统的指针样式。在忍无可忍之后,我选择了后者。
然后就开始了漫长而枯燥的搜索和分析过程,developer.apple.com上没有什么很有价值的东西,example也看过了,都没有什么帮助。开始以为改进一下CarbonCocoa_PictureCursor这个 例子应该能实现,后来发现困难还是比较大的。只能hack系统中的资源了。curosrdata中没有包含arrow/I-beam等指针的图像,据说是包含在某个运行库中。
又仔细分析了一下Mighty Mouse里的那个QECursorDefaults.plist文件,其实.MightyMouse文件也是一个xml,把后缀改成.plist就可以用property list editor编辑了,看到里面又com.apple.coregraphics.arrow之类的keyword。系统并没有com.apple.coregraphics这个文件,估计应该是包含那个库里。最有可能的就是在CoreGraphics.framework里。
漫长的搜索+一点点运气+第六感和合作,终于在CoreGraphics里找到了,Arrow/I-beam/Alias/....的图像。在里面连续的存放着指针的图像,没有找到在哪里定义图像的大小和热点,没有和图像数据放在一起。这个问题不算严重。
10.4.10的CoreGraphics,偏移4527A0~452BA0存放的是I-beam的图像 ,大小16*16*4=1024字节,图像大小16*16,每点4字节,前3字节是rgb,第4字节是alpha。在Mighty Mouse的数据中,也是每个像素4字节,但是alpha是第1字节,后面3字节是rgb。
4527A0~452BA0 400Byte I-beam
452BA0~4534A0 900Byte arrow
4534A0~ alias
文件都放到自己的主页上了。
把Mighty Mouse踢开后,现在两种选择,要么继续忍受那个丑陋的I-beam满天飞,要么就hack系统的指针样式。在忍无可忍之后,我选择了后者。
然后就开始了漫长而枯燥的搜索和分析过程,developer.apple.com上没有什么很有价值的东西,example也看过了,都没有什么帮助。开始以为改进一下CarbonCocoa_PictureCursor这个 例子应该能实现,后来发现困难还是比较大的。只能hack系统中的资源了。curosrdata中没有包含arrow/I-beam等指针的图像,据说是包含在某个运行库中。
又仔细分析了一下Mighty Mouse里的那个QECursorDefaults.plist文件,其实.MightyMouse文件也是一个xml,把后缀改成.plist就可以用property list editor编辑了,看到里面又com.apple.coregraphics.arrow之类的keyword。系统并没有com.apple.coregraphics这个文件,估计应该是包含那个库里。最有可能的就是在CoreGraphics.framework里。
漫长的搜索+一点点运气+第六感和合作,终于在CoreGraphics里找到了,Arrow/I-beam/Alias/....的图像。在里面连续的存放着指针的图像,没有找到在哪里定义图像的大小和热点,没有和图像数据放在一起。这个问题不算严重。
10.4.10的CoreGraphics,偏移4527A0~452BA0存放的是I-beam的图像 ,大小16*16*4=1024字节,图像大小16*16,每点4字节,前3字节是rgb,第4字节是alpha。在Mighty Mouse的数据中,也是每个像素4字节,但是alpha是第1字节,后面3字节是rgb。
4527A0~452BA0 400Byte I-beam
452BA0~4534A0 900Byte arrow
4534A0~ alias
文件都放到自己的主页上了。
星期日, 八月 05, 2007
Linux又发展到一个调整期了
国外,kernel开发小组中一名重要的开发人员宣布退出,在最用用户体验方面,gnome只是在炒冷饭,3.0还只是停留在模糊的概念中,kde4已经发布了第一个alpha测试版,然而用户体验远未达到预期中“革命性的”改善,整体构架已经确定了,估计最终版也不会有什么打的变化。有相当多不错的linux程序在06年下半年和07年上半年停止的开发,也有许多优秀的程序停止的维护,更多的程序是处在半死不活的状态中。
国内,开发方面实在没有什么好说的,从来没有活跃过。各大linux社区的也渐渐的沉寂,尽管某人借开源和微软的名声炒了自己一把,但是对linux社区的发展没有任何贡献,只是增加了一些闲聊的话题罢了。
今年对linux社区贡献最大的应该是dell,敦促ati推出优质的linux驱动,恐怕也只有它有这个能力了。
总而言之,linux的泡沫再一次破了,接下来应该又是一个闷着头发展的时期了,再接着就是下一次泡沫……
国内,开发方面实在没有什么好说的,从来没有活跃过。各大linux社区的也渐渐的沉寂,尽管某人借开源和微软的名声炒了自己一把,但是对linux社区的发展没有任何贡献,只是增加了一些闲聊的话题罢了。
今年对linux社区贡献最大的应该是dell,敦促ati推出优质的linux驱动,恐怕也只有它有这个能力了。
总而言之,linux的泡沫再一次破了,接下来应该又是一个闷着头发展的时期了,再接着就是下一次泡沫……
星期五, 七月 27, 2007
星期三, 七月 11, 2007
Hackintosh 10.4.10
先说一下机子的配置:
E6320/Giga 965p-ds3/1G ddr2 667/影驰PCIE 7600GS 256M,两个SATA硬盘都接在ich8的sata上(黄色),一个ide硬盘和一个ide的DVDRW都接在jmicron的ide接口上(jmicron提供了一个ide插槽和2个紫色的sata插槽)。
Bios中相关设置如下:
SATA AHCI Mode: AHCI
SATA Port0-3 Native Mode: Enable //网上的帖子都是说要把这个设置为disable,不过我用Enable也是可以安装和使用的
.
Onboard SATA/IDE Device: Enable
Onboard SATA/IDE Ctrl Mode: IDE //不论是安装还是使用,IDE都是没有问题的。这个还可以设置为AHCI,装上jmicron的驱动后osx没有问题,但是windows里的驱动会失效,ide硬盘和光驱都找不到。
安装:
这个确实没有什么好说的,用光盘实际安装,Kernel选SSE3-2,补丁和驱动都不用选,等到升级至10.4.10之后再装。这块板子(可能整个系列)装uphuck 1.3是比较省心的。
软件随便吧,macfuse和ntfs3g最好不用,它们不仅很慢而且不支持ntfs上的大文件。
关于分区的问题,我的一个sata上装的xp,另一个硬盘打算装osx和linux,所以分区表选择用mbr,硬盘是用osx的磁盘工具分的,分三个,osx在第一个卷上。这样安装后osx无法从这个硬盘上引导,需要用ntldr或者grub来引导,这方面的文章很多,不在这里说了。
系统调整:因为我是用了一段时间后才升级到10.4.10的,下面的过程和就是实际的调整顺序,但是如果是新装的系统的话,可以先升级到10.4.10,这样可以少装一边驱动。
驱动可以从这里下载:http://www.osxcm.cn/download/
1、装网卡驱动。
能上网了,再解决其他的问题也方便。
下载Yukon.zip(恐怕要在别的系统里先下载好),解压直接安装。装好后先不要重启,要修改/System/Library/Extensions/IONetworkingFamily.kext/Contents/PlugIns/AppleYukon.kext/Contents/Info.plist,把8053替换成8056,把4362替换成4364。重启,再次进入系统的时候就可以配置网络了。
2、装显卡驱动。
按说装光盘上那个natit驱动即可,不过试了所有g80之前的titan和natit驱动,包括nvidiaEFI,都不能正常驱动我的显卡,虽然装上后CI/QE都是默认打开的,但是屏幕就是不停的黑屏和恢复。装上G80的驱动后就好了,原因不知道,搜遍了各大论坛,也没有看到我这种情况的。如果发现显卡没有被正常支持,可以试试G80的驱动,也许会有转机。
AGP的显卡可能要麻烦点,我没有AGP的卡,不多说了。
3、装声卡驱动。
光盘上有AzaliaAudio的驱动,这个驱动是可以用的,两声道输出,无mic输入。如果没有什么更多的要求的话,用这个即可。
如果希望更完美一点,可以下载ALC888Audio驱动,这个支持3声道和6声道输入+mic/linein输入。需要注意的是,DS3主板在windows中显示的音效芯片为883,连deviceid都是883的,但是883的驱动并不能让它在osx里工作。
4、打印机和摄像头
如果设备厂商有驱动的话,直接装上即可。如果没有驱动的话,打印机就没有办法了,摄像头可以用macam,大部分廉价的webcam用的都是中兴的芯片,macam可以很好的支持。macam可以从http://webcam-osx.sourceforge.net/下载。
5、升级至10.4.10、
BT下载10.4.10的升级包:
http://bbs.think-different.cn/thread-3860-1-1.html
将几个zip都解压(我只解压了mach_intel.zip和dsmos.kext.zip),并且打开一个终端,一会儿安装到最后可能什么程序都用不了。直接安装10.4.10的update包,Graphics我没有装,如果装的话,需要再装一次显卡驱动。在安装到写回执的时候进度条会一直停在那里。这试就要用terminal了,把刚才得到的mach_kernel复制到/,替换原来的,把dsmos.kext复制到/System/Library/Extensions/里,替换原来的。用reboot命令重启。
升级后,网卡和声卡驱动可能需要重新安装。
6、ich8的本地驱动。
在10.4.10中,加入了对ich8m的支持,这是官方提供支持。当然ich8m和ds3上的ich8并不完全一样,但不管怎么说,这也是本地支持,只需要修改一下deviceid即可。
编辑 /System/Library/Extensions/AppleAHCIPort.kext/Contents/Info.plist,找到0x28298086,改成0x28248086,这个是ich8的,如果是ich8r或者其他的ich8系列可以参考intel的技术手册。
到这里,基本上就完成了。
对于ds3/ds4还有一个整合的驱动,就是那个gigabyte_ds3-4pack[1].1.2.zip,里面的网卡驱动仍然要修改deviceid,其它的可以直接用,声卡驱动和azaliz的效果是一样的,如果要求不高的话,直接用这个也很省事。
后记:
休眠支持。一般来说,能运行hackintosh已经是万幸,就算什么功能不被支持,那也是理所当然的。这个休眠功能就是如此。Natit&Titan都不能很好的让N卡支持休眠,尤其是在台式机上。然而,NVidiaEFI驱动却做到了。如果可以用EFI驱动的话,应该优先考虑使用它,不仅支持512M的卡,而且还可以支持休眠。现在对于我的机子来说,唯一有问题的就是USB键盘和鼠标,唤醒后要都拔下来再插上才行。
E6320/Giga 965p-ds3/1G ddr2 667/影驰PCIE 7600GS 256M,两个SATA硬盘都接在ich8的sata上(黄色),一个ide硬盘和一个ide的DVDRW都接在jmicron的ide接口上(jmicron提供了一个ide插槽和2个紫色的sata插槽)。
Bios中相关设置如下:
SATA AHCI Mode: AHCI
SATA Port0-3 Native Mode: Enable //网上的帖子都是说要把这个设置为disable,不过我用Enable也是可以安装和使用的
.
Onboard SATA/IDE Device: Enable
Onboard SATA/IDE Ctrl Mode: IDE //不论是安装还是使用,IDE都是没有问题的。这个还可以设置为AHCI,装上jmicron的驱动后osx没有问题,但是windows里的驱动会失效,ide硬盘和光驱都找不到。
安装:
这个确实没有什么好说的,用光盘实际安装,Kernel选SSE3-2,补丁和驱动都不用选,等到升级至10.4.10之后再装。这块板子(可能整个系列)装uphuck 1.3是比较省心的。
软件随便吧,macfuse和ntfs3g最好不用,它们不仅很慢而且不支持ntfs上的大文件。
关于分区的问题,我的一个sata上装的xp,另一个硬盘打算装osx和linux,所以分区表选择用mbr,硬盘是用osx的磁盘工具分的,分三个,osx在第一个卷上。这样安装后osx无法从这个硬盘上引导,需要用ntldr或者grub来引导,这方面的文章很多,不在这里说了。
系统调整:因为我是用了一段时间后才升级到10.4.10的,下面的过程和就是实际的调整顺序,但是如果是新装的系统的话,可以先升级到10.4.10,这样可以少装一边驱动。
驱动可以从这里下载:http://www.osxcm.cn/download/
1、装网卡驱动。
能上网了,再解决其他的问题也方便。
下载Yukon.zip(恐怕要在别的系统里先下载好),解压直接安装。装好后先不要重启,要修改/System/Library/Extensions/IONetworkingFamily.kext/Contents/PlugIns/AppleYukon.kext/Contents/Info.plist,把8053替换成8056,把4362替换成4364。重启,再次进入系统的时候就可以配置网络了。
2、装显卡驱动。
按说装光盘上那个natit驱动即可,不过试了所有g80之前的titan和natit驱动,包括nvidiaEFI,都不能正常驱动我的显卡,虽然装上后CI/QE都是默认打开的,但是屏幕就是不停的黑屏和恢复。装上G80的驱动后就好了,原因不知道,搜遍了各大论坛,也没有看到我这种情况的。如果发现显卡没有被正常支持,可以试试G80的驱动,也许会有转机。
AGP的显卡可能要麻烦点,我没有AGP的卡,不多说了。
3、装声卡驱动。
光盘上有AzaliaAudio的驱动,这个驱动是可以用的,两声道输出,无mic输入。如果没有什么更多的要求的话,用这个即可。
如果希望更完美一点,可以下载ALC888Audio驱动,这个支持3声道和6声道输入+mic/linein输入。需要注意的是,DS3主板在windows中显示的音效芯片为883,连deviceid都是883的,但是883的驱动并不能让它在osx里工作。
4、打印机和摄像头
如果设备厂商有驱动的话,直接装上即可。如果没有驱动的话,打印机就没有办法了,摄像头可以用macam,大部分廉价的webcam用的都是中兴的芯片,macam可以很好的支持。macam可以从http://webcam-osx.sourceforge.net/下载。
5、升级至10.4.10、
BT下载10.4.10的升级包:
http://bbs.think-different.cn/thread-3860-1-1.html
将几个zip都解压(我只解压了mach_intel.zip和dsmos.kext.zip),并且打开一个终端,一会儿安装到最后可能什么程序都用不了。直接安装10.4.10的update包,Graphics我没有装,如果装的话,需要再装一次显卡驱动。在安装到写回执的时候进度条会一直停在那里。这试就要用terminal了,把刚才得到的mach_kernel复制到/,替换原来的,把dsmos.kext复制到/System/Library/Extensions/里,替换原来的。用reboot命令重启。
升级后,网卡和声卡驱动可能需要重新安装。
6、ich8的本地驱动。
在10.4.10中,加入了对ich8m的支持,这是官方提供支持。当然ich8m和ds3上的ich8并不完全一样,但不管怎么说,这也是本地支持,只需要修改一下deviceid即可。
编辑 /System/Library/Extensions/AppleAHCIPort.kext/Contents/Info.plist,找到0x28298086,改成0x28248086,这个是ich8的,如果是ich8r或者其他的ich8系列可以参考intel的技术手册。
到这里,基本上就完成了。
对于ds3/ds4还有一个整合的驱动,就是那个gigabyte_ds3-4pack[1].1.2.zip,里面的网卡驱动仍然要修改deviceid,其它的可以直接用,声卡驱动和azaliz的效果是一样的,如果要求不高的话,直接用这个也很省事。
后记:
休眠支持。一般来说,能运行hackintosh已经是万幸,就算什么功能不被支持,那也是理所当然的。这个休眠功能就是如此。Natit&Titan都不能很好的让N卡支持休眠,尤其是在台式机上。然而,NVidiaEFI驱动却做到了。如果可以用EFI驱动的话,应该优先考虑使用它,不仅支持512M的卡,而且还可以支持休眠。现在对于我的机子来说,唯一有问题的就是USB键盘和鼠标,唤醒后要都拔下来再插上才行。
星期四, 七月 05, 2007
黑金塔的世界
星期六, 六月 23, 2007
linux中的设备节点(/dev/*)(转)
http://www.linuxsir.org/bbs/showthread.php?t=306623
设备管理是linux中比较基础的东西,但是由于Linux智能程度的越来越高,Udev的使用越来越广泛,使得越来越多的Linux新用户对 /dev 目录下的东西变得不再熟悉。有时候遇见问题就会变得抓狂
本文是我在写作《DIY 一个基于LFS的实用 Mini-LAPP 服务器》过程中整理的资料,拿出来与大家共享
Linux 中的设备有2种类型:字符设备(无缓冲且只能顺序存取)、块设备(有缓冲且可以随机存取)。每个字符设备和块设备都必须有主、次设备号,主设备号相同的设备是同类设备(使用同一个驱动程序)。这些设备中,有些设备是对实际存在的物理硬件的抽象,而有些设备则是内核自身提供的功能(不依赖于特定的物理硬件,又称为"虚拟设备")。每个设备在 /dev 目录下都有一个对应的文件(节点)。可以通过 cat /proc/devices 命令查看当前已经加载的设备驱动程序的主设备号。内核能够识别的所有设备都记录在原码树下的 Documentation/devices.txt 文件中。在 /dev 目录下除了字符设备和块设备节点之外还通常还会存在:FIFO管道、Socket、软/硬连接、目录。这些东西没有主/次设备号。
Linux内核所能识别的所有设备都记录在
http://www.lanana.org/docs/device-list/
而内核原码树中的 Documentation/devices.txt 可能不是最新版本。
了解这些设备的最基本要求就是对 每个设备文件的含义了如指掌,下面就医列表的形式列出常见的设备文件以及相应的含义(比较偏僻的就省略了):
----------------------------------------------------------------------
主设备号 设备类型
次设备号=文件名 简要说明
----------------------------------------------------------------------
0 未命名设备(例如:挂载的非设备)
0 = 未空设备号保留
1 char 内存设备
1 = /dev/mem 直接存取物理内存
2 = /dev/kmem 存取经过内核虚拟之后的内存
3 = /dev/null 空设备。任何写入都将被直接丢弃,任何读取都将得到EOF。
4 = /dev/port 存取 I/O 端口
5 = /dev/zero 零字节源,只能读取到无限多的零字节。
7 = /dev/full 满设备。任何写入都将失败,并把errno设为ENOSPC以表示没有剩余空间。
8 = /dev/random 随机数发生器。完全由用户的输入来产生随机数。
如果用户停止所有动作,则停止产生新的随机数。
9 = /dev/urandom 更快,但是不够安全的随机数发生器。尽可能由用户的输入来产生随机数,
如果用户停止所有动作,则把已经产生的随机数做为种子来产生新的随机数。
10 = /dev/aio 异步 I/O 通知接口
11 = /dev/kmsg 任何对该文件的写入都将作为 printk 的输出
1 block RAM disk
0 = /dev/ram0 第1个 RAM disk (initrd只能使用ram0)
1 = /dev/ram1 第2个 RAM disk
...
200 = /dev/ram200 第200个 RAM disk
4 char TTY(终端)设备
0 = /dev/tty0 当前虚拟控制台
1 = /dev/tty1 第1个虚拟控制台
...
63 = /dev/tty63 第63个虚拟控制台
4 block 如果根文件系统以是以只读方式挂载的,那么就不可能创建真正的设备节点,
此时就使用该设备作为动态分配的主(major)设备的别名
0 = /dev/root
5 char 其他 TTY 设备
0 = /dev/tty 当前 TTY 设备
1 = /dev/console 系统控制台
2 = /dev/ptmx 所有 PTY master 的复用器
7 char 虚拟控制台捕捉设备(这些设备既允许读也允许写)
0 = /dev/vcs 当前虚拟控制台(vc)的文本内容
1 = /dev/vcs1 tty1 的文本内容
...
63 = /dev/vcs63 tty63 的文本内容
128 = /dev/vcsa 当前虚拟控制台(vc)的文本/属性内容
129 = /dev/vcsa1 tty1 的文本/属性内容
...
191 = /dev/vcsa63 tty63 的文本/属性内容
7 block 回环设备(用一个普通的磁盘文件来模拟一个块设备)
对回环设备的绑定由 mount(8) 或 losetup(8) 处理
0 = /dev/loop0 第1个回环设备
1 = /dev/loop1 第2个回环设备
...
8 block SCSI 磁盘(0-15)
0 = /dev/sda 第1个 SCSI 磁盘(整个磁盘)
16 = /dev/sdb 第2个 SCSI 磁盘(整个磁盘)
32 = /dev/sdc 第3个 SCSI 磁盘(整个磁盘)
...
240 = /dev/sdp 第16个 SCSI 磁盘(整个磁盘)
分区表示方法如下(以第3个 SCSI 磁盘为例)
33 = /dev/sdc1 第1个分区
34 = /dev/sdc2 第2个分区
...
47 = /dev/sdc15 第15个分区
对于Linux/i386来说,分区1-4是主分区,5-15是逻辑分区。
9 block Metadisk(RAID)设备
0 = /dev/md0 第1组 metadisk
1 = /dev/md1 第2组 metadisk
...
metadisk 驱动用于将同一个文件系统分割到多个物理磁盘上。
10 char 非串口鼠标,各种杂项设备和特性
1 = /dev/psaux PS/2鼠标
131 = /dev/temperature 机器内部温度
134 = /dev/apm_bios APM(高级电源管理) BIOS
135 = /dev/rtc 实时时钟(Real Time Clock)
144 = /dev/nvram 非易失配置 RAM
162 = /dev/smbus 系统管理总线(System Management Bus)
164 = /dev/ipmo Intel的智能平台管理(Intelligent Platform Management)接口
173 = /dev/ipmikcs 智能平台管理(Intelligent Platform Management)接口
175 = /dev/agpgart AGP图形地址重映射表(Graphics Address Remapping Table)
182 = /dev/perfctr 性能监视计数器
183 = /dev/hwrng 通用硬件随机数发生器
184 = /dev/cpu/microcode CPU微代码更新接口
186 = /dev/atomicps 进程状态数据的原子快照
188 = /dev/smbusbios SMBus(系统管理总线) BIOS
200 = /dev/net/tun TAP/TUN 网络设备(TAP/TUN以软件的方式实现了网络设备)
TAP模拟了以太网帧(第二层),TUN模拟了IP包(第三层)。
202 = /dev/emd/ctl 增强型 Metadisk RAID (EMD) 控制器
220 = /dev/mptctl Message passing technology (MPT) control
223 = /dev/input/uinput 用户层输入设备驱动支持
227 = /dev/mcelog X86_64 Machine Check Exception driver
228 = /dev/hpet HPET driver
229 = /dev/fuse Fuse(用户空间的虚拟文件系统)
231 = /dev/snapshot 系统内存快照
232 = /dev/kvm 基于内核的虚构机(基于AMD SVM和Intel VT硬件虚拟技术)
11 block SCSI CD-ROM 设备
0 = /dev/scd0 第1个 SCSI CD-ROM
1 = /dev/scd1 第2个 SCSI CD-ROM
...
13 char 核心输入设备
32 = /dev/input/mouse0 第1个鼠标
33 = /dev/input/mouse1 第2个鼠标
...
62 = /dev/input/mouse30 第31个鼠标
63 = /dev/input/mice 所有鼠标的统一
64 = /dev/input/event0 第1个事件队列
65 = /dev/input/event1 第2个事件队列
...
95 = /dev/input/event1 第32个事件队列
21 char 通用 SCSI 设备(通常是SCSI光驱)
0 = /dev/sg0 第1个通用 SCSI 设备
1 = /dev/sg1 第2个通用 SCSI 设备
...
29 char 通用帧缓冲(frame buffer)设备
0 = /dev/fb0 第1个帧缓冲设备
1 = /dev/fb1 第2个帧缓冲设备
...
31 = /dev/fb31 第32个帧缓冲设备
30 char iBCS-2 兼容设备
0 = /dev/socksys 套接字访问接口
1 = /dev/spx SVR3 本地 X 接口
32 = /dev/inet/ip 网络访问接口
33 = /dev/inet/icmp
34 = /dev/inet/ggp
35 = /dev/inet/ipip
36 = /dev/inet/tcp
37 = /dev/inet/egp
38 = /dev/inet/pup
39 = /dev/inet/udp
40 = /dev/inet/idp
41 = /dev/inet/rawip
此外,iBCS-2 还需要下面的连接必须存在
/dev/ip -> /dev/inet/ip
/dev/icmp -> /dev/inet/icmp
/dev/ggp -> /dev/inet/ggp
/dev/ipip -> /dev/inet/ipip
/dev/tcp -> /dev/inet/tcp
/dev/egp -> /dev/inet/egp
/dev/pup -> /dev/inet/pup
/dev/udp -> /dev/inet/udp
/dev/idp -> /dev/inet/idp
/dev/rawip -> /dev/inet/rawip
/dev/inet/arp -> /dev/inet/udp
/dev/inet/rip -> /dev/inet/udp
/dev/nfsd -> /dev/socksys
/dev/X0R -> /dev/null
36 char Netlink 支持
0 = /dev/route 路由, 设备更新, kernel to user
3 = /dev/fwmonitor Firewall packet 复制
59 char sf 防火墙模块
0 = /dev/firewall 与 sf 内核模块通信
65 block SCSI 磁盘(16-31)
0 = /dev/sdq 第17个 SCSI 磁盘(整个磁盘)
16 = /dev/sdr 第18个 SCSI 磁盘(整个磁盘)
32 = /dev/sds 第19个 SCSI 磁盘(整个磁盘)
...
240 = /dev/sdaf 第32个 SCSI 磁盘(整个磁盘)
66 block SCSI 磁盘(32-47)
0 = /dev/sdag 第33个 SCSI 磁盘(整个磁盘)
16 = /dev/sdah 第34个 SCSI 磁盘(整个磁盘)
32 = /dev/sdai 第35个 SCSI 磁盘(整个磁盘)
...
240 = /dev/sdav 第48个 SCSI 磁盘(整个磁盘)
89 char I2C 总线接口
0 = /dev/i2c-0 第1个 I2C 适配器
1 = /dev/i2c-1 第2个 I2C 适配器
...
98 block 用户模式下的虚拟块设备(分区处理方式与 SCSI 磁盘相同)
0 = /dev/ubda 第1个用户模式块设备
16 = /dev/udbb 第2个用户模式块设备
...
103 block 审计(Audit)设备
0 = /dev/audit 审计(Audit)设备
128-135 char Unix98 PTY master
这些设备不应当存在设备节点,而应当通过 /dev/ptmx 接口访问。
136-143 char Unix98 PTY slave
这些设备节点是自动生成的(伴有适当的权限和模式),不能手动创建。
方法是通过使用适当的 mount 选项(通常是:mode=0620,gid=<"tty"组的gid>)
将 devpts 文件系统挂载到 /dev/pts 目录即可。
0 = /dev/pts/0 第1个 Unix98 PTY slave
1 = /dev/pts/1 第2个 Unix98 PTY slave
...
153 block Enhanced Metadisk RAID (EMD) 存储单元(分区处理方式与 SCSI 磁盘相同)
0 = /dev/emd/0 第1个存储单元
1 = /dev/emd/0p1 第1个存储单元的第1个分区
2 = /dev/emd/0p2 第1个存储单元的第2个分区
...
15 = /dev/emd/0p15 第1个存储单元的第15个分区
16 = /dev/emd/1 第2个存储单元
32 = /dev/emd/2 第3个存储单元
...
240 = /dev/emd/15 第16个存储单元
180 char USB 字符设备
96 = /dev/usb/hiddev0 第1个USB人机界面设备(鼠标/键盘/游戏杆/手写版等人操作计算机的设备)
...
111 = /dev/usb/hiddev15 第16个USB人机界面设备
180 block USB 块设备(U盘之类)
0 = /dev/uba 第1个USB 块设备
8 = /dev/ubb 第2个USB 块设备
16 = /dev/ubc 第3个USB 块设备
...
192 char 内核 profiling 接口
0 = /dev/profile Profiling 控制设备
1 = /dev/profile0 CPU 0 的 Profiling 设备
2 = /dev/profile1 CPU 1 的 Profiling 设备
...
193 char 内核事件跟踪接口
0 = /dev/trace 跟踪控制设备
1 = /dev/trace0 CPU 0 的跟踪设备
2 = /dev/trace1 CPU 1 的跟踪设备
...
195 char Nvidia 图形设备(比如显卡)
0 = /dev/nvidia0 第1个 Nvidia 卡
1 = /dev/nvidia1 第2个 Nvidia 卡
...
255 = /dev/nvidiactl Nvidia 卡控制设备
202 char 特定于CPU模式的寄存器(model-specific register,MSR)
0 = /dev/cpu/0/msr CPU 0 的 MSRs
1 = /dev/cpu/1/msr CPU 1 的 MSRs
...
203 char CPU CPUID 信息
0 = /dev/cpu/0/cpuid CPU 0 的 CPUID
1 = /dev/cpu/1/cpuid CPU 1 的 CPUID
...
===================================================================
这部分详细说明一些应该或可能存在于 /dev 目录之外的文件。
链接最好使用与这里完全相同的格式(绝对路径或相对路径)。
究竟是使用硬链接(hard)还是软连接(symbolic)取决于不同的设备。
必须的链接
必须在所有的系统上都存在这些连接:
链接 目标 链接类型 简要说明
/dev/fd /proc/self/fd symbolic 文件描述府
/dev/stdin fd/0 symbolic 标准输入文件描述府
/dev/stdout fd/1 symbolic 标准输出文件描述符
/dev/stderr fd/2 symbolic 标准错误文件描述符
/dev/nfsd socksys symbolic 仅为 iBCS-2 所必须
/dev/X0R null symbolic 仅为 iBCS-2 所必须
[注意] /dev/X0R 是 <字母 X>-<数字 0>-<字母 R>
推荐的链接
推荐在所有的系统上都存在这些连接:
链接 目标 链接类型 简要说明
/dev/core /proc/kcore symbolic 为了向后兼容
/dev/ramdisk ram0 symbolic 为了向后兼容
/dev/ftape qft0 symbolic 为了向后兼容
/dev/bttv0 video0 symbolic 为了向后兼容
/dev/radio radio0 symbolic 为了向后兼容
/dev/i2o* /dev/i2o/* symbolic 为了向后兼容
/dev/scd? sr? hard 代替 SCSI CD-ROM 的名字
本地定义的链接
下面的链接很可能需要根据机器的实际硬件配置创建其中的一部分甚至全部。
这些链接仅仅是为了迎合习惯用法,它们既非必须也非推荐。
链接 目标 链接类型 简要说明
/dev/mouse mouse port symbolic 当前鼠标
/dev/tape tape device symbolic 当前磁带
/dev/cdrom CD-ROM device symbolic 当前CD-ROM
/dev/cdwriter CD-writer symbolic 当前CD-writer
/dev/scanner scanner symbolic 当前扫描仪
/dev/modem modem port symbolic 当前调制解调器
/dev/root root device symbolic 当前根文件系统所在设备
/dev/swap swap device symbolic 当前swap所在设备
/dev/modem 不应当用于能够同时支持呼入和呼出的modem,因为往往会导致锁文件问题。
如果存在 /dev/modem ,那么它应当指向一个恰当的主 TTY 设备。
对于SCSI设备,
/dev/tape 和 /dev/cdrom 应该分别指向"cooked"设备 /dev/st* 和 /dev/sr* ;
而 /dev/cdwriter 和 /dev/scanner 应当分别指向恰当的 /dev/sg* 。
/dev/mouse 可以指向一个主串行 TTY 设备、一个硬件鼠标、
或者一个对应鼠标驱动程序的套接字(例如 /dev/gpmdata)。
套接字和管道
持久套接字和命名管道可以存在于 /dev 中。常见的有:
/dev/printer socket lpd 本地套接字
/dev/log socket syslog 本地套接字
/dev/gpmdata socket gpm 鼠标多路复用器(multiplexer)
/dev/gpmctl socket (LFS-LiveCD中出现)
/dev/initctl fifo pipe init 监听它并从中获取信息(用户与 init 进程交互的通道)
挂载点
以下名称被保留用于挂载特殊的文件系统。
这些特殊的文件系统只提供内核界面而不提供标准的设备节点。
/dev/pts devpts PTY slave 文件系统
/dev/shm tmpfs 提供对 POSIX 共享内存的直接访问
===================================================================
终端(或TTY)设备是一种特殊的字符设备。终端设备是可以在会话中扮演控制终端角色的任何设备,
包括:虚拟控制台、串行接口(已废弃)、伪终端(PTY)。
所有的终端设备共享一个通用的功能集合:line discipline,
它既包含通用的终端 line discipline 也包含SLIP和PPP模式。
所有的终端设备的命名都很相似。这部分内容将解释命名规则和各种类型的TTY(终端)的使用。
需要注意的是这些命名习惯包含了几个历史遗留包袱。
其中的一些是Linux所特有的,另一些则是继承自其他系统,
还有一些反映了Linux在成长过程中抛弃了原来借用自其它系统的一些习惯。
井号(#)在设备名里表示一个无前导零的十进制数。
虚拟控制台(Virtual console)和控制台设备(console device)
虚拟控制台是在系统视频监视器上全屏显示的终端。
虚拟控制台被命名为编号从 /dev/tty1 开始的 /dev/tty# 。
/dev/tty0 是当前虚拟控制台。
/dev/tty0 用于在不能使用帧缓冲设备(/dev/fb*)的机器上存取系统视频卡,
注意,不要将 /dev/console 用于此目的。
/dev/console 由内核管理,系统消息将被发送到这里。
单用户模式下必须允许 login 使用 /dev/console 。
串行接口(已废弃)
这里所说的"串行接口"是指 RS-232 串行接口和任何模拟这种接口的设备,
不管是在硬件(例如调制解调器)还是在软件(例如ISDN驱动)中模拟。
在linux中的每一个串行接口都有两个设备名:
主设备或呼入(callin)设备、交替设备或呼出(callout)设备。
设备类型之间使用字母的大小写进行区分。
比如,对于任意字母X,"tty"设备名为 /dev/ttyX# ,而"cu"设备名则为 /dev/cux# 。
由于历史原因,/dev/ttyS# 和 /dev/ttyC# 分别等价于 /dev/cua# 和 /dev/cub# 。
名称 /dev/ttyQ# 和 /dev/cuq# 被保留为本地使用。
伪终端(PTY)
伪终端用于创建登陆会话或提供其它功能,
比如通过 TTY line discipline (包括SLIP或者PPP功能)来处理任意的数据生成。
每一个 PTY 都有一个master端和一个slave端。按照 System V/Unix98 的 PTY 命名方案,
所有master端共享同一个 /dev/ptmx 设备节点(打开它内核将自动给出一个未分配的PTY),
所有slave端都位于 /dev/pts 目录下,名为 /dev/pts/# (内核会根据需要自动生成和删除它们)。
一旦master端被打开,相应的slave设备就可以按照与 TTY 设备完全相同的方式使用。
master设备与slave设备之间通过内核进行连接,等价于拥有 TTY 功能的双向管道(pipe)。
===============================
你可能会很奇怪,为什么没有 /dev/hda 这样的设备,难道不常用么?
原因在于从 2.6.19 开始,内核引入了新的ATA驱动,将SATA/IDE硬盘同意使用 /dev/sd? 来表示了,所以 /dev/hd? 就没有存在的必要了
设备管理是linux中比较基础的东西,但是由于Linux智能程度的越来越高,Udev的使用越来越广泛,使得越来越多的Linux新用户对 /dev 目录下的东西变得不再熟悉。有时候遇见问题就会变得抓狂
本文是我在写作《DIY 一个基于LFS的实用 Mini-LAPP 服务器》过程中整理的资料,拿出来与大家共享
Linux 中的设备有2种类型:字符设备(无缓冲且只能顺序存取)、块设备(有缓冲且可以随机存取)。每个字符设备和块设备都必须有主、次设备号,主设备号相同的设备是同类设备(使用同一个驱动程序)。这些设备中,有些设备是对实际存在的物理硬件的抽象,而有些设备则是内核自身提供的功能(不依赖于特定的物理硬件,又称为"虚拟设备")。每个设备在 /dev 目录下都有一个对应的文件(节点)。可以通过 cat /proc/devices 命令查看当前已经加载的设备驱动程序的主设备号。内核能够识别的所有设备都记录在原码树下的 Documentation/devices.txt 文件中。在 /dev 目录下除了字符设备和块设备节点之外还通常还会存在:FIFO管道、Socket、软/硬连接、目录。这些东西没有主/次设备号。
Linux内核所能识别的所有设备都记录在
http://www.lanana.org/docs/device-list/
而内核原码树中的 Documentation/devices.txt 可能不是最新版本。
了解这些设备的最基本要求就是对 每个设备文件的含义了如指掌,下面就医列表的形式列出常见的设备文件以及相应的含义(比较偏僻的就省略了):
----------------------------------------------------------------------
主设备号 设备类型
次设备号=文件名 简要说明
----------------------------------------------------------------------
0 未命名设备(例如:挂载的非设备)
0 = 未空设备号保留
1 char 内存设备
1 = /dev/mem 直接存取物理内存
2 = /dev/kmem 存取经过内核虚拟之后的内存
3 = /dev/null 空设备。任何写入都将被直接丢弃,任何读取都将得到EOF。
4 = /dev/port 存取 I/O 端口
5 = /dev/zero 零字节源,只能读取到无限多的零字节。
7 = /dev/full 满设备。任何写入都将失败,并把errno设为ENOSPC以表示没有剩余空间。
8 = /dev/random 随机数发生器。完全由用户的输入来产生随机数。
如果用户停止所有动作,则停止产生新的随机数。
9 = /dev/urandom 更快,但是不够安全的随机数发生器。尽可能由用户的输入来产生随机数,
如果用户停止所有动作,则把已经产生的随机数做为种子来产生新的随机数。
10 = /dev/aio 异步 I/O 通知接口
11 = /dev/kmsg 任何对该文件的写入都将作为 printk 的输出
1 block RAM disk
0 = /dev/ram0 第1个 RAM disk (initrd只能使用ram0)
1 = /dev/ram1 第2个 RAM disk
...
200 = /dev/ram200 第200个 RAM disk
4 char TTY(终端)设备
0 = /dev/tty0 当前虚拟控制台
1 = /dev/tty1 第1个虚拟控制台
...
63 = /dev/tty63 第63个虚拟控制台
4 block 如果根文件系统以是以只读方式挂载的,那么就不可能创建真正的设备节点,
此时就使用该设备作为动态分配的主(major)设备的别名
0 = /dev/root
5 char 其他 TTY 设备
0 = /dev/tty 当前 TTY 设备
1 = /dev/console 系统控制台
2 = /dev/ptmx 所有 PTY master 的复用器
7 char 虚拟控制台捕捉设备(这些设备既允许读也允许写)
0 = /dev/vcs 当前虚拟控制台(vc)的文本内容
1 = /dev/vcs1 tty1 的文本内容
...
63 = /dev/vcs63 tty63 的文本内容
128 = /dev/vcsa 当前虚拟控制台(vc)的文本/属性内容
129 = /dev/vcsa1 tty1 的文本/属性内容
...
191 = /dev/vcsa63 tty63 的文本/属性内容
7 block 回环设备(用一个普通的磁盘文件来模拟一个块设备)
对回环设备的绑定由 mount(8) 或 losetup(8) 处理
0 = /dev/loop0 第1个回环设备
1 = /dev/loop1 第2个回环设备
...
8 block SCSI 磁盘(0-15)
0 = /dev/sda 第1个 SCSI 磁盘(整个磁盘)
16 = /dev/sdb 第2个 SCSI 磁盘(整个磁盘)
32 = /dev/sdc 第3个 SCSI 磁盘(整个磁盘)
...
240 = /dev/sdp 第16个 SCSI 磁盘(整个磁盘)
分区表示方法如下(以第3个 SCSI 磁盘为例)
33 = /dev/sdc1 第1个分区
34 = /dev/sdc2 第2个分区
...
47 = /dev/sdc15 第15个分区
对于Linux/i386来说,分区1-4是主分区,5-15是逻辑分区。
9 block Metadisk(RAID)设备
0 = /dev/md0 第1组 metadisk
1 = /dev/md1 第2组 metadisk
...
metadisk 驱动用于将同一个文件系统分割到多个物理磁盘上。
10 char 非串口鼠标,各种杂项设备和特性
1 = /dev/psaux PS/2鼠标
131 = /dev/temperature 机器内部温度
134 = /dev/apm_bios APM(高级电源管理) BIOS
135 = /dev/rtc 实时时钟(Real Time Clock)
144 = /dev/nvram 非易失配置 RAM
162 = /dev/smbus 系统管理总线(System Management Bus)
164 = /dev/ipmo Intel的智能平台管理(Intelligent Platform Management)接口
173 = /dev/ipmikcs 智能平台管理(Intelligent Platform Management)接口
175 = /dev/agpgart AGP图形地址重映射表(Graphics Address Remapping Table)
182 = /dev/perfctr 性能监视计数器
183 = /dev/hwrng 通用硬件随机数发生器
184 = /dev/cpu/microcode CPU微代码更新接口
186 = /dev/atomicps 进程状态数据的原子快照
188 = /dev/smbusbios SMBus(系统管理总线) BIOS
200 = /dev/net/tun TAP/TUN 网络设备(TAP/TUN以软件的方式实现了网络设备)
TAP模拟了以太网帧(第二层),TUN模拟了IP包(第三层)。
202 = /dev/emd/ctl 增强型 Metadisk RAID (EMD) 控制器
220 = /dev/mptctl Message passing technology (MPT) control
223 = /dev/input/uinput 用户层输入设备驱动支持
227 = /dev/mcelog X86_64 Machine Check Exception driver
228 = /dev/hpet HPET driver
229 = /dev/fuse Fuse(用户空间的虚拟文件系统)
231 = /dev/snapshot 系统内存快照
232 = /dev/kvm 基于内核的虚构机(基于AMD SVM和Intel VT硬件虚拟技术)
11 block SCSI CD-ROM 设备
0 = /dev/scd0 第1个 SCSI CD-ROM
1 = /dev/scd1 第2个 SCSI CD-ROM
...
13 char 核心输入设备
32 = /dev/input/mouse0 第1个鼠标
33 = /dev/input/mouse1 第2个鼠标
...
62 = /dev/input/mouse30 第31个鼠标
63 = /dev/input/mice 所有鼠标的统一
64 = /dev/input/event0 第1个事件队列
65 = /dev/input/event1 第2个事件队列
...
95 = /dev/input/event1 第32个事件队列
21 char 通用 SCSI 设备(通常是SCSI光驱)
0 = /dev/sg0 第1个通用 SCSI 设备
1 = /dev/sg1 第2个通用 SCSI 设备
...
29 char 通用帧缓冲(frame buffer)设备
0 = /dev/fb0 第1个帧缓冲设备
1 = /dev/fb1 第2个帧缓冲设备
...
31 = /dev/fb31 第32个帧缓冲设备
30 char iBCS-2 兼容设备
0 = /dev/socksys 套接字访问接口
1 = /dev/spx SVR3 本地 X 接口
32 = /dev/inet/ip 网络访问接口
33 = /dev/inet/icmp
34 = /dev/inet/ggp
35 = /dev/inet/ipip
36 = /dev/inet/tcp
37 = /dev/inet/egp
38 = /dev/inet/pup
39 = /dev/inet/udp
40 = /dev/inet/idp
41 = /dev/inet/rawip
此外,iBCS-2 还需要下面的连接必须存在
/dev/ip -> /dev/inet/ip
/dev/icmp -> /dev/inet/icmp
/dev/ggp -> /dev/inet/ggp
/dev/ipip -> /dev/inet/ipip
/dev/tcp -> /dev/inet/tcp
/dev/egp -> /dev/inet/egp
/dev/pup -> /dev/inet/pup
/dev/udp -> /dev/inet/udp
/dev/idp -> /dev/inet/idp
/dev/rawip -> /dev/inet/rawip
/dev/inet/arp -> /dev/inet/udp
/dev/inet/rip -> /dev/inet/udp
/dev/nfsd -> /dev/socksys
/dev/X0R -> /dev/null
36 char Netlink 支持
0 = /dev/route 路由, 设备更新, kernel to user
3 = /dev/fwmonitor Firewall packet 复制
59 char sf 防火墙模块
0 = /dev/firewall 与 sf 内核模块通信
65 block SCSI 磁盘(16-31)
0 = /dev/sdq 第17个 SCSI 磁盘(整个磁盘)
16 = /dev/sdr 第18个 SCSI 磁盘(整个磁盘)
32 = /dev/sds 第19个 SCSI 磁盘(整个磁盘)
...
240 = /dev/sdaf 第32个 SCSI 磁盘(整个磁盘)
66 block SCSI 磁盘(32-47)
0 = /dev/sdag 第33个 SCSI 磁盘(整个磁盘)
16 = /dev/sdah 第34个 SCSI 磁盘(整个磁盘)
32 = /dev/sdai 第35个 SCSI 磁盘(整个磁盘)
...
240 = /dev/sdav 第48个 SCSI 磁盘(整个磁盘)
89 char I2C 总线接口
0 = /dev/i2c-0 第1个 I2C 适配器
1 = /dev/i2c-1 第2个 I2C 适配器
...
98 block 用户模式下的虚拟块设备(分区处理方式与 SCSI 磁盘相同)
0 = /dev/ubda 第1个用户模式块设备
16 = /dev/udbb 第2个用户模式块设备
...
103 block 审计(Audit)设备
0 = /dev/audit 审计(Audit)设备
128-135 char Unix98 PTY master
这些设备不应当存在设备节点,而应当通过 /dev/ptmx 接口访问。
136-143 char Unix98 PTY slave
这些设备节点是自动生成的(伴有适当的权限和模式),不能手动创建。
方法是通过使用适当的 mount 选项(通常是:mode=0620,gid=<"tty"组的gid>)
将 devpts 文件系统挂载到 /dev/pts 目录即可。
0 = /dev/pts/0 第1个 Unix98 PTY slave
1 = /dev/pts/1 第2个 Unix98 PTY slave
...
153 block Enhanced Metadisk RAID (EMD) 存储单元(分区处理方式与 SCSI 磁盘相同)
0 = /dev/emd/0 第1个存储单元
1 = /dev/emd/0p1 第1个存储单元的第1个分区
2 = /dev/emd/0p2 第1个存储单元的第2个分区
...
15 = /dev/emd/0p15 第1个存储单元的第15个分区
16 = /dev/emd/1 第2个存储单元
32 = /dev/emd/2 第3个存储单元
...
240 = /dev/emd/15 第16个存储单元
180 char USB 字符设备
96 = /dev/usb/hiddev0 第1个USB人机界面设备(鼠标/键盘/游戏杆/手写版等人操作计算机的设备)
...
111 = /dev/usb/hiddev15 第16个USB人机界面设备
180 block USB 块设备(U盘之类)
0 = /dev/uba 第1个USB 块设备
8 = /dev/ubb 第2个USB 块设备
16 = /dev/ubc 第3个USB 块设备
...
192 char 内核 profiling 接口
0 = /dev/profile Profiling 控制设备
1 = /dev/profile0 CPU 0 的 Profiling 设备
2 = /dev/profile1 CPU 1 的 Profiling 设备
...
193 char 内核事件跟踪接口
0 = /dev/trace 跟踪控制设备
1 = /dev/trace0 CPU 0 的跟踪设备
2 = /dev/trace1 CPU 1 的跟踪设备
...
195 char Nvidia 图形设备(比如显卡)
0 = /dev/nvidia0 第1个 Nvidia 卡
1 = /dev/nvidia1 第2个 Nvidia 卡
...
255 = /dev/nvidiactl Nvidia 卡控制设备
202 char 特定于CPU模式的寄存器(model-specific register,MSR)
0 = /dev/cpu/0/msr CPU 0 的 MSRs
1 = /dev/cpu/1/msr CPU 1 的 MSRs
...
203 char CPU CPUID 信息
0 = /dev/cpu/0/cpuid CPU 0 的 CPUID
1 = /dev/cpu/1/cpuid CPU 1 的 CPUID
...
===================================================================
这部分详细说明一些应该或可能存在于 /dev 目录之外的文件。
链接最好使用与这里完全相同的格式(绝对路径或相对路径)。
究竟是使用硬链接(hard)还是软连接(symbolic)取决于不同的设备。
必须的链接
必须在所有的系统上都存在这些连接:
链接 目标 链接类型 简要说明
/dev/fd /proc/self/fd symbolic 文件描述府
/dev/stdin fd/0 symbolic 标准输入文件描述府
/dev/stdout fd/1 symbolic 标准输出文件描述符
/dev/stderr fd/2 symbolic 标准错误文件描述符
/dev/nfsd socksys symbolic 仅为 iBCS-2 所必须
/dev/X0R null symbolic 仅为 iBCS-2 所必须
[注意] /dev/X0R 是 <字母 X>-<数字 0>-<字母 R>
推荐的链接
推荐在所有的系统上都存在这些连接:
链接 目标 链接类型 简要说明
/dev/core /proc/kcore symbolic 为了向后兼容
/dev/ramdisk ram0 symbolic 为了向后兼容
/dev/ftape qft0 symbolic 为了向后兼容
/dev/bttv0 video0 symbolic 为了向后兼容
/dev/radio radio0 symbolic 为了向后兼容
/dev/i2o* /dev/i2o/* symbolic 为了向后兼容
/dev/scd? sr? hard 代替 SCSI CD-ROM 的名字
本地定义的链接
下面的链接很可能需要根据机器的实际硬件配置创建其中的一部分甚至全部。
这些链接仅仅是为了迎合习惯用法,它们既非必须也非推荐。
链接 目标 链接类型 简要说明
/dev/mouse mouse port symbolic 当前鼠标
/dev/tape tape device symbolic 当前磁带
/dev/cdrom CD-ROM device symbolic 当前CD-ROM
/dev/cdwriter CD-writer symbolic 当前CD-writer
/dev/scanner scanner symbolic 当前扫描仪
/dev/modem modem port symbolic 当前调制解调器
/dev/root root device symbolic 当前根文件系统所在设备
/dev/swap swap device symbolic 当前swap所在设备
/dev/modem 不应当用于能够同时支持呼入和呼出的modem,因为往往会导致锁文件问题。
如果存在 /dev/modem ,那么它应当指向一个恰当的主 TTY 设备。
对于SCSI设备,
/dev/tape 和 /dev/cdrom 应该分别指向"cooked"设备 /dev/st* 和 /dev/sr* ;
而 /dev/cdwriter 和 /dev/scanner 应当分别指向恰当的 /dev/sg* 。
/dev/mouse 可以指向一个主串行 TTY 设备、一个硬件鼠标、
或者一个对应鼠标驱动程序的套接字(例如 /dev/gpmdata)。
套接字和管道
持久套接字和命名管道可以存在于 /dev 中。常见的有:
/dev/printer socket lpd 本地套接字
/dev/log socket syslog 本地套接字
/dev/gpmdata socket gpm 鼠标多路复用器(multiplexer)
/dev/gpmctl socket (LFS-LiveCD中出现)
/dev/initctl fifo pipe init 监听它并从中获取信息(用户与 init 进程交互的通道)
挂载点
以下名称被保留用于挂载特殊的文件系统。
这些特殊的文件系统只提供内核界面而不提供标准的设备节点。
/dev/pts devpts PTY slave 文件系统
/dev/shm tmpfs 提供对 POSIX 共享内存的直接访问
===================================================================
终端(或TTY)设备是一种特殊的字符设备。终端设备是可以在会话中扮演控制终端角色的任何设备,
包括:虚拟控制台、串行接口(已废弃)、伪终端(PTY)。
所有的终端设备共享一个通用的功能集合:line discipline,
它既包含通用的终端 line discipline 也包含SLIP和PPP模式。
所有的终端设备的命名都很相似。这部分内容将解释命名规则和各种类型的TTY(终端)的使用。
需要注意的是这些命名习惯包含了几个历史遗留包袱。
其中的一些是Linux所特有的,另一些则是继承自其他系统,
还有一些反映了Linux在成长过程中抛弃了原来借用自其它系统的一些习惯。
井号(#)在设备名里表示一个无前导零的十进制数。
虚拟控制台(Virtual console)和控制台设备(console device)
虚拟控制台是在系统视频监视器上全屏显示的终端。
虚拟控制台被命名为编号从 /dev/tty1 开始的 /dev/tty# 。
/dev/tty0 是当前虚拟控制台。
/dev/tty0 用于在不能使用帧缓冲设备(/dev/fb*)的机器上存取系统视频卡,
注意,不要将 /dev/console 用于此目的。
/dev/console 由内核管理,系统消息将被发送到这里。
单用户模式下必须允许 login 使用 /dev/console 。
串行接口(已废弃)
这里所说的"串行接口"是指 RS-232 串行接口和任何模拟这种接口的设备,
不管是在硬件(例如调制解调器)还是在软件(例如ISDN驱动)中模拟。
在linux中的每一个串行接口都有两个设备名:
主设备或呼入(callin)设备、交替设备或呼出(callout)设备。
设备类型之间使用字母的大小写进行区分。
比如,对于任意字母X,"tty"设备名为 /dev/ttyX# ,而"cu"设备名则为 /dev/cux# 。
由于历史原因,/dev/ttyS# 和 /dev/ttyC# 分别等价于 /dev/cua# 和 /dev/cub# 。
名称 /dev/ttyQ# 和 /dev/cuq# 被保留为本地使用。
伪终端(PTY)
伪终端用于创建登陆会话或提供其它功能,
比如通过 TTY line discipline (包括SLIP或者PPP功能)来处理任意的数据生成。
每一个 PTY 都有一个master端和一个slave端。按照 System V/Unix98 的 PTY 命名方案,
所有master端共享同一个 /dev/ptmx 设备节点(打开它内核将自动给出一个未分配的PTY),
所有slave端都位于 /dev/pts 目录下,名为 /dev/pts/# (内核会根据需要自动生成和删除它们)。
一旦master端被打开,相应的slave设备就可以按照与 TTY 设备完全相同的方式使用。
master设备与slave设备之间通过内核进行连接,等价于拥有 TTY 功能的双向管道(pipe)。
===============================
你可能会很奇怪,为什么没有 /dev/hda 这样的设备,难道不常用么?
原因在于从 2.6.19 开始,内核引入了新的ATA驱动,将SATA/IDE硬盘同意使用 /dev/sd? 来表示了,所以 /dev/hd? 就没有存在的必要了
星期日, 六月 10, 2007
恢复ext3分区上被删除的数据
redhat给出的说法是,ext3分区上的数据一旦被删除,则无法恢复。在这里看到一篇文章,介绍的正是用手工的方法来恢复ext3上被删除的数据。
linux ext3文件被删除如何恢复
全都转贴过来,以备查找。
linux ext3文件被删除如何恢复
全都转贴过来,以备查找。
linux ext3文件被删除如何恢复
Ext3文件系统结构的简单介绍
在Linux 所用的Ext3文件系统中,文件是以块为单位存储的,默认情况下每个块的大小是1K,不同的块以块号区分。每个文件还有一个节点,节点中包含有文件所有 者,读写权限,文件类型等信息。对于一个小于12个块的文件,在节点中直接存储文件数据块的块号。如果文件大于12个块,那么节点在12个块号之后存储一 个间接块的块号,在这个间接块号所对应的块中,存储有256个文件数据块的块号(Ext2fs中每个块号占用4字节,这样一个块中所能存储的块号就是 1024/4=256)。如果有更大的文件,那么还会在节点中出现二级间接块和三级间接块。
2。恢复被误删文件的方法
大多数Linux发行版都提供一个debugfs工具,可以用来对Ext3文件系统进行编辑操作。不过在使用这个工具之前,还有一些工作要做。
首先以只读方式重新挂载被误删的文件所在分区。使用如下命令:(假设文件在/usr分区)
mount -r -n -o remount /usr
-r表示只读方式挂载;-n表示不写入/etc/mtab,如果是恢复/etc上的文件,就加上这个参数。如果系统说xxx partion busy,可以用fuser命令查看一下是哪些进程使用这个分区上的文件:
fuser -v -m /usr
如果没有什么重要的进程,用以下命令停掉它们:
fuser -k -v -m /usr
然后就可以重新挂载这些文件系统了。
如 果是把所有的文件统一安装在一个大的/分区当中,可以在boot提示符下用linux single进入单用户模式,尽量减少系统进程向硬盘写入数据的机会,要不干脆把硬盘挂在别的机器上。另外,恢复出来的数据不要写到/上面,避免破坏那些 有用的数据。如果机器上有dos/windows,可以写到这些分区上面:
mount -r -n /dev/hda1 /mnt/had
然后就可以执行debugfs:(假设Linux在 /dev/hda5)
#debugfs /dev/hda5
就会出现debugfs提示符debugfs:
使用lsdel命令可以列出很多被删除的文件的信息:
debugfs:lsdel
debugfs: 2692 deleted inodes found.
Inode Owner Mode Size Blocks Time deleted
164821 0 100600 8192 1/ 1 Sun May 13 19:22:46 2001
…………………………………………………………………………………
36137 0 100644 4 1/ 1 Tue Apr 24 10:11:15 2001
196829 0 100644 149500 38/ 38 Mon May 27 13:52:04 2001
debugfs:
列出的文件有很多(这里找到2692个),第一字段是文件节点号,第二字段是文件所有者,第三字段是读写权限,接下来是文件大小,占用块数,删除时间。然后就可以根据文件大小和删除日期判断那些是我们需要的。比如我们要恢复节点是196829的文件:
可以先看看文件数据状态:
debugfs:stat
Inode: 196829 Type: regular Mode: 0644 Flags: 0x0 Version: 1
User: 0 Group: 0 Size: 149500
File ACL: 0 Directory ACL: 0
Links: 0 Blockcount: 38
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x31a9a574 -- Mon May 27 13:52:04 2001
atime: 0x31a21dd1 -- Tue May 21 20:47:29 2001
mtime: 0x313bf4d7 -- Tue Mar 5 08:01:27 2001
dtime: 0x31a9a574 -- Mon May 27 13:52:04 2001
BLOCKS:
594810 594811 594814 594815 594816 594817 ………………………………….
TOTAL: 38
然后就可以用dump指令恢复文件:
debugfs:dump /mnt/hda/01.sav
这样就把文件恢复出来了。退出debugfs:
debugfs:quit
另一种方法是手工编辑inode:
debugfs:mi
Mode [0100644]
User ID [0]
Group ID [0]
Size [149500]
Creation time [0x31a9a574]
Modification time [0x31a9a574]
Access time [0x31a21dd1]
Deletion time [0x31a9a574] 0
Link count [0] 1
Block count [38]
File flags [0x0]
Reserved1 [0]
File acl [0]
Directory acl [0]
Fragment address [0]
Fragment number [0]
Fragment size [0]
Direct Block #0 [594810]
…………………………….
Triple Indirect Block [0]
使用mi指令后每次显示一行信息以供编辑,其它行可以直接按回车表示确认,把deletion time改成0(未删除),Link count改成1。改好后退出debugfs:
debugfs:quit
然后用fsck检查/dev/hda5
fsck /dev/hda5
程序会说找到丢失的数据块,放在lost+found里面。'
在Linux 所用的Ext3文件系统中,文件是以块为单位存储的,默认情况下每个块的大小是1K,不同的块以块号区分。每个文件还有一个节点,节点中包含有文件所有 者,读写权限,文件类型等信息。对于一个小于12个块的文件,在节点中直接存储文件数据块的块号。如果文件大于12个块,那么节点在12个块号之后存储一 个间接块的块号,在这个间接块号所对应的块中,存储有256个文件数据块的块号(Ext2fs中每个块号占用4字节,这样一个块中所能存储的块号就是 1024/4=256)。如果有更大的文件,那么还会在节点中出现二级间接块和三级间接块。
2。恢复被误删文件的方法
大多数Linux发行版都提供一个debugfs工具,可以用来对Ext3文件系统进行编辑操作。不过在使用这个工具之前,还有一些工作要做。
首先以只读方式重新挂载被误删的文件所在分区。使用如下命令:(假设文件在/usr分区)
mount -r -n -o remount /usr
-r表示只读方式挂载;-n表示不写入/etc/mtab,如果是恢复/etc上的文件,就加上这个参数。如果系统说xxx partion busy,可以用fuser命令查看一下是哪些进程使用这个分区上的文件:
fuser -v -m /usr
如果没有什么重要的进程,用以下命令停掉它们:
fuser -k -v -m /usr
然后就可以重新挂载这些文件系统了。
如 果是把所有的文件统一安装在一个大的/分区当中,可以在boot提示符下用linux single进入单用户模式,尽量减少系统进程向硬盘写入数据的机会,要不干脆把硬盘挂在别的机器上。另外,恢复出来的数据不要写到/上面,避免破坏那些 有用的数据。如果机器上有dos/windows,可以写到这些分区上面:
mount -r -n /dev/hda1 /mnt/had
然后就可以执行debugfs:(假设Linux在 /dev/hda5)
#debugfs /dev/hda5
就会出现debugfs提示符debugfs:
使用lsdel命令可以列出很多被删除的文件的信息:
debugfs:lsdel
debugfs: 2692 deleted inodes found.
Inode Owner Mode Size Blocks Time deleted
164821 0 100600 8192 1/ 1 Sun May 13 19:22:46 2001
…………………………………………………………………………………
36137 0 100644 4 1/ 1 Tue Apr 24 10:11:15 2001
196829 0 100644 149500 38/ 38 Mon May 27 13:52:04 2001
debugfs:
列出的文件有很多(这里找到2692个),第一字段是文件节点号,第二字段是文件所有者,第三字段是读写权限,接下来是文件大小,占用块数,删除时间。然后就可以根据文件大小和删除日期判断那些是我们需要的。比如我们要恢复节点是196829的文件:
可以先看看文件数据状态:
debugfs:stat
Inode: 196829 Type: regular Mode: 0644 Flags: 0x0 Version: 1
User: 0 Group: 0 Size: 149500
File ACL: 0 Directory ACL: 0
Links: 0 Blockcount: 38
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x31a9a574 -- Mon May 27 13:52:04 2001
atime: 0x31a21dd1 -- Tue May 21 20:47:29 2001
mtime: 0x313bf4d7 -- Tue Mar 5 08:01:27 2001
dtime: 0x31a9a574 -- Mon May 27 13:52:04 2001
BLOCKS:
594810 594811 594814 594815 594816 594817 ………………………………….
TOTAL: 38
然后就可以用dump指令恢复文件:
debugfs:dump /mnt/hda/01.sav
这样就把文件恢复出来了。退出debugfs:
debugfs:quit
另一种方法是手工编辑inode:
debugfs:mi
Mode [0100644]
User ID [0]
Group ID [0]
Size [149500]
Creation time [0x31a9a574]
Modification time [0x31a9a574]
Access time [0x31a21dd1]
Deletion time [0x31a9a574] 0
Link count [0] 1
Block count [38]
File flags [0x0]
Reserved1 [0]
File acl [0]
Directory acl [0]
Fragment address [0]
Fragment number [0]
Fragment size [0]
Direct Block #0 [594810]
…………………………….
Triple Indirect Block [0]
使用mi指令后每次显示一行信息以供编辑,其它行可以直接按回车表示确认,把deletion time改成0(未删除),Link count改成1。改好后退出debugfs:
debugfs:quit
然后用fsck检查/dev/hda5
fsck /dev/hda5
程序会说找到丢失的数据块,放在lost+found里面。'
看到一个好玩的东西,是关于c的数组的
http://bbs.chinaunix.net/viewthread.php?tid=946841
记住,下标只是个操作符。 x[n] 等价于 *(x + n)
所以以前有些人就玩 char c = 3["abcd"]; 这样的形式
int i;
int a[2];
for (i = 0; i <=2; i++) a[i] = 0; 一个无限循环就产生了.
星期二, 五月 15, 2007
在linux中将图像序列转换为视频文件
linux中的后期软件一般都不带视频文件输出,只支持序列方式。这是个老问题了,非常让人不爽的老问题。要把序列转换为视频,现在有一些软件可以完成这个工作。
avidemux2,把它放在第一位,不是说它有多好,而是第一个先想起了它。avidemux2支持的格式不多,但是一般常用的都支持。问题是不支持太长的序列,我用它导入一个1000多张的序列,结果就告诉我pipe操作错误。
ffmpeg,这个工具的文档不够详细,经常让你去看代码,然而代码里几乎没有多少有价值的注释。例子只有常用的一些,支持的格式也不少,还凑合吧。当然没有gui,传说中有个kde的gui,不过没有见过。写一个例子:
final.000.png
final.001.png
final.002.png
...
ffmpeg -i final.%03d.png -f avi -vcodec mpeg4 -r 25 -b 640k output.avi
最近的blender,最近的blender支持用ffmpeg输出,格式比ffmpeg本身要少一点,也是只有常见的格式,但是没有rm/rmvb和wmv的支持。blender的sequence的稳定性还不错,几千张的序列处理起来也没有问题。
avidemux2,把它放在第一位,不是说它有多好,而是第一个先想起了它。avidemux2支持的格式不多,但是一般常用的都支持。问题是不支持太长的序列,我用它导入一个1000多张的序列,结果就告诉我pipe操作错误。
ffmpeg,这个工具的文档不够详细,经常让你去看代码,然而代码里几乎没有多少有价值的注释。例子只有常用的一些,支持的格式也不少,还凑合吧。当然没有gui,传说中有个kde的gui,不过没有见过。写一个例子:
final.000.png
final.001.png
final.002.png
...
ffmpeg -i final.%03d.png -f avi -vcodec mpeg4 -r 25 -b 640k output.avi
最近的blender,最近的blender支持用ffmpeg输出,格式比ffmpeg本身要少一点,也是只有常见的格式,但是没有rm/rmvb和wmv的支持。blender的sequence的稳定性还不错,几千张的序列处理起来也没有问题。
星期四, 五月 03, 2007
在maya中使用wacom数位版
在windows和macosx上这不是什么稀奇事,不过在linux上,这得看运气。
在折腾了一阵子gimp之后,也不知道为什么突然想试试maya中wacom是否有压感了,结果,没有什么比现在这个结果更让我兴奋了。真是奇迹啊!
03年7月买的这个favo410,不久就在linux中驱动成功,可是唯独maya中没有压感。这年来,几乎尝试了所有的办法,都没有结果。在highend3d上很早就有人说的maya对wacom的支持已经没有问题了,不过他们用的都是intuos级别的。没想到我的favo,今天竟然莫名其妙的就有压感了。现在还不清楚是什么原因,最有可能的就是最近把内核升级为2.6.21,因为几乎所有其它的设置都还是2.6.20时候的。
还有一点,xorg.conf中,对wacom配置了两遍,只是用了不同的名字,当然这个配置在2.6.20的时候还没有作用呢。
Section "ServerLayout"
Identifier "Default Layout"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "wacom" "SendCoreEvents"
InputDevice "stylus" "SendCoreEvents"
Option "AIGLX" "false"
EndSection
Section "InputDevice"
Driver "wacom"
Identifier "wacom"
Option "Device" "/dev/input/wacom" # USB ONLY
Option "Type" "stylus"
Option "USB" "on" # USB ONLY
Option "Suppress" "0"
Option "Mode" "Absolute"
Option "PressCurve" "0,5,95,100"
Option "Threshold" "25"
EndSection
Section "InputDevice"
Driver "wacom"
Identifier "stylus"
Option "Device" "/dev/input/wacom" # USB ONLY
Option "Type" "stylus"
Option "USB" "on" # USB ONLY
Option "Suppress" "0"
Option "Mode" "Absolute"
Option "PressCurve" "0,5,95,100"
Option "Threshold" "25"
EndSection
在折腾了一阵子gimp之后,也不知道为什么突然想试试maya中wacom是否有压感了,结果,没有什么比现在这个结果更让我兴奋了。真是奇迹啊!
03年7月买的这个favo410,不久就在linux中驱动成功,可是唯独maya中没有压感。这年来,几乎尝试了所有的办法,都没有结果。在highend3d上很早就有人说的maya对wacom的支持已经没有问题了,不过他们用的都是intuos级别的。没想到我的favo,今天竟然莫名其妙的就有压感了。现在还不清楚是什么原因,最有可能的就是最近把内核升级为2.6.21,因为几乎所有其它的设置都还是2.6.20时候的。
还有一点,xorg.conf中,对wacom配置了两遍,只是用了不同的名字,当然这个配置在2.6.20的时候还没有作用呢。
Section "ServerLayout"
Identifier "Default Layout"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "wacom" "SendCoreEvents"
InputDevice "stylus" "SendCoreEvents"
Option "AIGLX" "false"
EndSection
Section "InputDevice"
Driver "wacom"
Identifier "wacom"
Option "Device" "/dev/input/wacom" # USB ONLY
Option "Type" "stylus"
Option "USB" "on" # USB ONLY
Option "Suppress" "0"
Option "Mode" "Absolute"
Option "PressCurve" "0,5,95,100"
Option "Threshold" "25"
EndSection
Section "InputDevice"
Driver "wacom"
Identifier "stylus"
Option "Device" "/dev/input/wacom" # USB ONLY
Option "Type" "stylus"
Option "USB" "on" # USB ONLY
Option "Suppress" "0"
Option "Mode" "Absolute"
Option "PressCurve" "0,5,95,100"
Option "Threshold" "25"
EndSection
星期三, 五月 02, 2007
糟糕的gimp
对于painting来说,gimp实在是很糟糕。有人说gimp是SB设计的给SB用的东西,这个形容很恰当。在2.3中增加了一个jitter选项,根据使用的感受,即使没有这个jitter,gimp画出来的东西也已经很jitter了。
说归说,不过我一直想办法解决gimp中抖动的问题,通过这个jitter,发现bursh位移的部分控制在gimpbrushcore.c定义的,使用 的是增量。对历史增量取平均后,出现了很大的惯性,而对历史坐标取平均后,发现gimp并不总是更新历史坐标,而且画笔经常被“挂住”,真是*& ^%$#!
然而,这些问题在mypaint中却一个也没有。
2001年有人在bugreport上提出了这个bug,但是6年过去了,这个bug仍然无人愿意解决它。gimp的开发者脑子确实有点问题。
说归说,不过我一直想办法解决gimp中抖动的问题,通过这个jitter,发现bursh位移的部分控制在gimpbrushcore.c定义的,使用 的是增量。对历史增量取平均后,出现了很大的惯性,而对历史坐标取平均后,发现gimp并不总是更新历史坐标,而且画笔经常被“挂住”,真是*& ^%$#!
然而,这些问题在mypaint中却一个也没有。
2001年有人在bugreport上提出了这个bug,但是6年过去了,这个bug仍然无人愿意解决它。gimp的开发者脑子确实有点问题。
星期一, 四月 30, 2007
星期二, 四月 24, 2007
fc6的不常用studio软件源
提供了一些不常用的专用软件,比如cinepaint,povray,synfig,muse等。
http://math.ifi.unizh.ch/fedora/
可能会依赖freshrpms/linva/dag里的某些包。
http://math.ifi.unizh.ch/fedora/
可能会依赖freshrpms/linva/dag里的某些包。
Linux中的绘画软件
除了著名的gimp之外,几乎听不到有其它的名字(inkscape可不是一类的),可是gimp在绘画方面也差的太远。
很偶然地,看到了下面这些东东,好用否先不说,先试试看。
mudbox类的,雕塑建模,肯定不如mudbox:
http://sharp3d.sourceforge.net/mediawiki/index.php/Main_Page
blender在linux里对wacom的支持不佳,这个也许还可以用用。
绘画类的,肯定比不上painter和ps cs:
http://people.ee.ethz.ch/~mrenold/mypaint/
http://www.goghproject.com/index.html
像素绘画软件:
http://mtpaint.sourceforge.net/
矢量动画类,moho那类的,可惜现在moho没有linux版了:
http://www.synfig.com/gallery.php
看起来很不错的软件。
很偶然地,看到了下面这些东东,好用否先不说,先试试看。
mudbox类的,雕塑建模,肯定不如mudbox:
http://sharp3d.sourceforge.net/mediawiki/index.php/Main_Page
blender在linux里对wacom的支持不佳,这个也许还可以用用。
绘画类的,肯定比不上painter和ps cs:
http://people.ee.ethz.ch/~mrenold/mypaint/
http://www.goghproject.com/index.html
像素绘画软件:
http://mtpaint.sourceforge.net/
矢量动画类,moho那类的,可惜现在moho没有linux版了:
http://www.synfig.com/gallery.php
看起来很不错的软件。
星期一, 四月 23, 2007
在vmware中使用wacom tablet
为什么要在wmware中配置wacom绘图板?
因为在linux系统中,至今仍然没有一个好用的绘画软件。尽管gimp在图像编辑方面已经比较成熟了,但是在绘画方面仍然太落后,比起photoshop来,至少有5年的差距,比起painter差距就更大了。更糟糕的是,这个差距在不断的扩大,在绘画方面,gimp近几年几乎没有任何进步,还停留在1.x时代。有人认为krita正在超越gimp,然而在绘画方面,krita还远未达到gimp的水平,tablet也还没有支持。尽管wine已经可以比较正常的运行photoshop cs,但是效率,稳定性和驱动方面的问题使这一方案几乎不可行。
另一个方面是X11和linuxwacom驱动。不知道高档wacom tablet在linux上表现如何,至少在4x5这一尺寸的级别上,在linux中的表现和在windows中就很大的差距。最明显的就是在gimp中画弧线的时候,会有大量的抖动,在画斜线的时候也是如此。我曾经试过在linuxwacom的内核模块那里加入一些过滤算法,但是效果仍然很不理想。在驱动方面比起官方驱动差距也是很大的。
现在,我们已经有足够充分的理由让wacom tablet在vmware中工作起来。client应该用xp或者2k,如果还用linux的话就没有意义了。os10理论上来说也可以。
通常创建的虚拟机是不包含usb支持的,我们需要在VM的属性里加入usb支持。需要注意的是,vmware server中在设置界面上添加的usb支持,只能使vm支持2个usb设备。启动虚拟机后,可以在vmware server console的查看vm能够连接到的usb devices。usb打印机,摄像头,还有手柄都可以看到,但是没有键盘,鼠标和wacom tablet等hid输入设备。现在需要手动添加一些设置。
关闭虚拟机,打开虚拟机的vmx文件,加上:
usb.generic.allowHID = "TRUE"
保存。再次运行虚拟机,现在就可以在usb devices里看到hid设备了。但是windows中却没有提示发现这些hid设备,这是因为在同一时刻,设备不能被主机和客户机同时使用。我们只需要wacom在客户机中工作。
最直接的办法就是将wacom的内核模块卸掉,只需rmmod wacom即可。
现在启动虚拟机,在windows启动完成后,到usb devices中选上wacom tablet。需要注意的是,根据VMTN的论坛上讨论,在windows启动过程中连接上wacom tablet可能会无法识别。这时,windows会提示发现usb设备,可能会提示是未知设备,暂且不要管它。下载最新的wacom驱动,装上。安装过程中,windows会提示要安装驱动,仍然不要管它,取消即可。在驱动装完之后,wacom仍然不能使用。这时,还需要将原有的vmware mouse驱动卸载,否则它会和wacom的驱动冲突。
至此,安装过程基本结束,重启windows。之后,可能需要调整一下鼠标的速度。
现在来关心一下photoshop。总的来说,速度肯定比在主机运行中慢,但是绘画的操作感并没有太大的差别,平面刷新的速度慢了,好在慢的不多,即使如此,在绘画方面的综合效能仍然领先gimp很多。
对于usb打印机来说,可能是主机和客户机同时支持的,我在客户机中打印了一页,没有发现什么问题。
相关链接:
http://www.vmware.com/community/thread.jspa?messageID=562879
http://www.vmware.com/community/thread.jspa?messageID=601149
http://www.vmware.com/community/message.jspa?messageID=403564
http://kb.vmware.com/selfservice/microsites/search.do?cmd=displayKC&externalId=1648
因为在linux系统中,至今仍然没有一个好用的绘画软件。尽管gimp在图像编辑方面已经比较成熟了,但是在绘画方面仍然太落后,比起photoshop来,至少有5年的差距,比起painter差距就更大了。更糟糕的是,这个差距在不断的扩大,在绘画方面,gimp近几年几乎没有任何进步,还停留在1.x时代。有人认为krita正在超越gimp,然而在绘画方面,krita还远未达到gimp的水平,tablet也还没有支持。尽管wine已经可以比较正常的运行photoshop cs,但是效率,稳定性和驱动方面的问题使这一方案几乎不可行。
另一个方面是X11和linuxwacom驱动。不知道高档wacom tablet在linux上表现如何,至少在4x5这一尺寸的级别上,在linux中的表现和在windows中就很大的差距。最明显的就是在gimp中画弧线的时候,会有大量的抖动,在画斜线的时候也是如此。我曾经试过在linuxwacom的内核模块那里加入一些过滤算法,但是效果仍然很不理想。在驱动方面比起官方驱动差距也是很大的。
现在,我们已经有足够充分的理由让wacom tablet在vmware中工作起来。client应该用xp或者2k,如果还用linux的话就没有意义了。os10理论上来说也可以。
通常创建的虚拟机是不包含usb支持的,我们需要在VM的属性里加入usb支持。需要注意的是,vmware server中在设置界面上添加的usb支持,只能使vm支持2个usb设备。启动虚拟机后,可以在vmware server console的查看vm能够连接到的usb devices。usb打印机,摄像头,还有手柄都可以看到,但是没有键盘,鼠标和wacom tablet等hid输入设备。现在需要手动添加一些设置。
关闭虚拟机,打开虚拟机的vmx文件,加上:
usb.generic.allowHID = "TRUE"
保存。再次运行虚拟机,现在就可以在usb devices里看到hid设备了。但是windows中却没有提示发现这些hid设备,这是因为在同一时刻,设备不能被主机和客户机同时使用。我们只需要wacom在客户机中工作。
最直接的办法就是将wacom的内核模块卸掉,只需rmmod wacom即可。
现在启动虚拟机,在windows启动完成后,到usb devices中选上wacom tablet。需要注意的是,根据VMTN的论坛上讨论,在windows启动过程中连接上wacom tablet可能会无法识别。这时,windows会提示发现usb设备,可能会提示是未知设备,暂且不要管它。下载最新的wacom驱动,装上。安装过程中,windows会提示要安装驱动,仍然不要管它,取消即可。在驱动装完之后,wacom仍然不能使用。这时,还需要将原有的vmware mouse驱动卸载,否则它会和wacom的驱动冲突。
至此,安装过程基本结束,重启windows。之后,可能需要调整一下鼠标的速度。
现在来关心一下photoshop。总的来说,速度肯定比在主机运行中慢,但是绘画的操作感并没有太大的差别,平面刷新的速度慢了,好在慢的不多,即使如此,在绘画方面的综合效能仍然领先gimp很多。
对于usb打印机来说,可能是主机和客户机同时支持的,我在客户机中打印了一页,没有发现什么问题。
相关链接:
http://www.vmware.com/community/thread.jspa?messageID=562879
http://www.vmware.com/community/thread.jspa?messageID=601149
http://www.vmware.com/community/message.jspa?messageID=403564
http://kb.vmware.com/selfservice/microsites/search.do?cmd=displayKC&externalId=1648
星期四, 四月 19, 2007
Vmware Server 1.0.2 - kernel 2.6.20
今年发布的vmware-server 1.0.2仍然要修改compat_kernel.h才能在kernel2.6.20上工作,唯一的进步就是不用修改vmnet.tar里的东西了。
将/usr/lib/vmware/modules/source/目录中的vmmon.tar展开,修改vmmon-only/include/compat_kernel.h,把第21行的
static inline _syscall1(int, compat_exit, int, exit_code);
改成:
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)
static inline _syscall1(int, compat_exit, int, exit_code);
#endif
之后,再打包回vmmon.tar。执行vmware-config.pl。
将/usr/lib/vmware/modules/source/目录中的vmmon.tar展开,修改vmmon-only/include/compat_kernel.h,把第21行的
static inline _syscall1(int, compat_exit, int, exit_code);
改成:
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)
static inline _syscall1(int, compat_exit, int, exit_code);
#endif
之后,再打包回vmmon.tar。执行vmware-config.pl。
星期五, 四月 13, 2007
星期六, 四月 07, 2007
星期五, 四月 06, 2007
星期二, 四月 03, 2007
星期三, 三月 21, 2007
星期二, 三月 20, 2007
FC6里的lm_sensor,风扇和温度监控
自从把内核升级到2.6.20之后,Gkrellm里的sensor就不工作了,换用fedora官方的内核也仍然如此。当然这个温度电压什么的看不看都无关紧要,最重要的是原来可以工作现在却不能工作让我很是恼火。对此,只有放狗了。
用vt8237 linux sensor gkrellm当关键字,一下子就找到了fedora的老家去了,
http://forums.fedoraforum.org/forum/showthread.php?t=48665&highlight=lm_sensors
看样子是运行了一下/usr/sbin/sensors-detect就好了。
今天好像废话多了点。
自从把内核升级到2.6.20之后,Gkrellm里的sensor就不工作了,换用fedora官方的内核也仍然如此。当然这个温度电压什么的看不看都无关紧要,最重要的是原来可以工作现在却不能工作让我很是恼火。对此,只有放狗了。
用vt8237 linux sensor gkrellm当关键字,一下子就找到了fedora的老家去了,
http://forums.fedoraforum.org/forum/showthread.php?t=48665&highlight=lm_sensors
看样子是运行了一下/usr/sbin/sensors-detect就好了。
今天好像废话多了点。
星期一, 三月 19, 2007
一个好玩的flash游戏 ---- winterbells
URL:
http://www.ferryhalim.com/orisinal/g3/bells.htm
solidot上介绍了10个最有创意的flash游戏:
http://games.solidot.org/games/07/03/18/0515242.shtml
URL:
http://www.ferryhalim.com/orisinal/g3/bells.htm
solidot上介绍了10个最有创意的flash游戏:
http://games.solidot.org/games/07/03/18/0515242.shtml
星期三, 三月 14, 2007
New BlueCurve And Redhat-Artwork without QT/KDE
redhat-artwork需要qt/kde才能编译,如果不用srpm,autoconf在检测qt的时候会出点小问题,感觉就想吃了苍蝇一样。我好像对qt/kde从来没有过好感,当然也没有很糟糕的感觉。
切入正题,ubuntu提供了一个单独的bluecurve(wonderland)源码包,但是我发现编译出来和srpm编译出来的有些差异,尚且不知道是哪里的问题。如果要用srpm的编译,就得除去对qt/kde的依赖,archlinux的论坛上有人提出了一种方法。
http://bbs.archlinux.org/viewtopic.php?pid=227281
redhat-artwork需要qt/kde才能编译,如果不用srpm,autoconf在检测qt的时候会出点小问题,感觉就想吃了苍蝇一样。我好像对qt/kde从来没有过好感,当然也没有很糟糕的感觉。
切入正题,ubuntu提供了一个单独的bluecurve(wonderland)源码包,但是我发现编译出来和srpm编译出来的有些差异,尚且不知道是哪里的问题。如果要用srpm的编译,就得除去对qt/kde的依赖,archlinux的论坛上有人提出了一种方法。
http://bbs.archlinux.org/viewtopic.php?pid=227281
这是他给出的patch,没有多少改动,看看改改即可。--- old/art/Makefile.am
+++ new/art/Makefile.am
@@ -1,5 +1,5 @@
## icon must be built before gtk, or the gtkrc won't get the stock icons
-SUBDIRS=tools cursor nautilus xmms gdm kdm icon gtk metacity kde qt
+SUBDIRS=tools cursor nautilus gdm icon gtk metacity
themedir = $(datadir)/themes/Bluecurve
theme_DATA = index.theme
--- old/configure.in
+++ new/configure.in
@@ -57,12 +57,6 @@
AC_SUBST(GDK_PIXBUF2_CFLAGS)
AC_SUBST(GDK_PIXBUF2_LIBS)
-KDE_SET_PREFIX
-KDE_CHECK_FINAL
-
-dnl KDE_USE_QT
-AC_PATH_KDE
-
AC_OUTPUT([
Makefile
po/Makefile.in
@@ -71,22 +65,13 @@
art/gdm/Bluecurve/Makefile
art/gdm/FedoraBubbles/Makefile
art/gdm/FedoraDNA/Makefile
-art/kdm/Makefile
-art/kdm/Bluecurve/Makefile
-art/kdm/FedoraDNA/Makefile
art/gtk/Makefile
art/gtk/Bluecurve/Makefile
art/gtk/Bluecurve/gtk-2.0/Makefile
-art/qt/Makefile
-art/qt/Bluecurve/Makefile
-art/kde/Makefile
-art/kde/kwin/Makefile
-art/kde/kwin/Bluecurve/Makefile
art/metacity/Makefile
art/icon/Makefile
art/icon/Bluecurve/Makefile
art/icon/Bluecurve/sheets/Makefile
-art/xmms/Makefile
art/nautilus/Makefile
art/nautilus/Bluecurve/Makefile
art/nautilus/Bluecurve/sidebar_tab_pieces/Makefile
星期日, 三月 11, 2007
创建简单的Samba网络
以往的时候,在vmware的windows client里我一直用ftp和host交换数据,速度上还可以接受,问题就是必须要给client创建一个比较大的虚拟盘。如果windows支持NFS的话,就不用这么辛苦了。Samba似乎就成了唯一的途径,但是看到Samba那华丽的配置文件我就头疼。
我的要求不高,只要可以在host上共享文件即可,安全暂且不考虑,毕竟只是vm client和host的内网。这次真走运,一下就找到我要的东西了。
samba官方文档
http://www.samba.org/samba/docs/man/Samba-Guide/simple.html
鸟哥的文档
http://linux.vbird.org/linux_server/0370samba.php
剩下的就好办了,照葫芦画瓢。
windows里还需要设置一下,要在网络邻居里创建一个“家庭或者小型办公网络”
传了个文件测试了一下速度,似乎比ftp快。
以往的时候,在vmware的windows client里我一直用ftp和host交换数据,速度上还可以接受,问题就是必须要给client创建一个比较大的虚拟盘。如果windows支持NFS的话,就不用这么辛苦了。Samba似乎就成了唯一的途径,但是看到Samba那华丽的配置文件我就头疼。
我的要求不高,只要可以在host上共享文件即可,安全暂且不考虑,毕竟只是vm client和host的内网。这次真走运,一下就找到我要的东西了。
samba官方文档
http://www.samba.org/samba/docs/man/Samba-Guide/simple.html
鸟哥的文档
http://linux.vbird.org/linux_server/0370samba.php
剩下的就好办了,照葫芦画瓢。
windows里还需要设置一下,要在网络邻居里创建一个“家庭或者小型办公网络”
,之后查看工作组的时候就可以看到host上的共享目录了。最后把它添加到网上邻居里,就可以当做本地硬盘用了。
传了个文件测试了一下速度,似乎比ftp快。
星期三, 三月 07, 2007
星期六, 三月 03, 2007
星期三, 一月 24, 2007
Python for Maya
不容易啊,maya终于加入了对python的支持。我最期待的就是可以在maya的python解释器里直接使用现有的那些python扩展,这对maya的扩展将是前所未有的。
先拿python imaging library试试看。
直接把PIL从/usr/lib/python/site-packages链接到maya的python的site-packages里,import的时候不认,复制过去却可以。不过遇到一点点问题,arrar.so有问题,备份一下,换上系统里的array.so。这次就可以正常import了。
下一步争取把pygtk也import进去。
maya的python是2.4.3,而且不能直接用来编译python的扩展,看来编译的工作少不了。
不容易啊,maya终于加入了对python的支持。我最期待的就是可以在maya的python解释器里直接使用现有的那些python扩展,这对maya的扩展将是前所未有的。
先拿python imaging library试试看。
直接把PIL从/usr/lib/python/site-packages链接到maya的python的site-packages里,import的时候不认,复制过去却可以。不过遇到一点点问题,arrar.so有问题,备份一下,换上系统里的array.so。这次就可以正常import了。
下一步争取把pygtk也import进去。
maya的python是2.4.3,而且不能直接用来编译python的扩展,看来编译的工作少不了。
订阅:
博文 (Atom)