Showing posts with label linux. Show all posts
Showing posts with label linux. Show all posts

Tuesday, December 30, 2008

wl-500gp v2 boots kamikaze(kenel2.6) without wifi

发觉如果仅仅是用来做路由或者加上U盘做个FTP的话,WL-500gp v2刷openwrt的2.4内核+brcm wl的wifi驱动应该是完美了。

但对于wl-500gp+linux 2.6来说,能发挥想象的空间真的是太多了,虽然现在open source的b43驱动对于wl-500gp v2的那个妖腻的无线模块来说还不能用,不过还是有先放弃WIFI,刷2.6做自己想做的东西的冲动~~!

冲动之下,参照http://wiki.openwrt.org/OpenWrtDocs/Hardware/Asus/WL500GPV2先尝试了一下没有USB的配置,成功BOOT。一开始是SVN了最新的kamikaze代码(r13774),且没有修改prom.c和setup.c(CFE的问题导致无法BOOT),不修改是为了偷懒(哈哈),想看看是不是最新的代码里解决了这个CFE的问题,结果发觉不行,启动不了,倒~~!

期待B43快点搞定LP PHY~~~!

对于USB2.0,似乎存在问题,所以只启用了USB1。在make menuconfig里面没有选USB2,只是选了OHCI的USB1,然后也没有patch usb2.0,直接在make kernel_menuconfig的Device Drivers-->
USB support-->OHCI support for Broadcom SSB OHCI core。

Monday, December 22, 2008

OpenWRT kamikaze with linux2.4 on wl-500gp v2

京东上买了一个wl-500gp,看中的是有2个USB2.0口,用处多多啊~~!拿到手一看是v2版本的。昏倒了,V1的缩水版,不过没关系,跟自己比是缩水了,但和其他的比还是不错的。由于bcm5354芯片在LINUX2.6下WIFI部分暂时不能用,所以本来是想用kamikaze linux2.6内核的,只能暂时等等,希望OpenWRT的开发队伍努力把WIP这个状态快点改变成SUPPORT。

对于BCM5354,TOMATO支持的是不错的,DD-WRT也支持,貌似都是2.4内核。可惜DD不太稳定,慢;TOMATO是不支持USB,只能放弃这2个。对于ASUS的那个OLEG,准备在刷OpenWRT和DD以及TOMATO都不成功的情况下尝试。

在OpenWRT的主页上发现跟WL-500GP V2几乎一样硬件的WL-520GU,最后给出了一个WL-520GU上刷kamikaze with linux2.4内核的一个页面http://mightyohm.com/blog/2008/11/building-a-wifi-radio-part-4-installing-openwrt。这个完全兼容WL-500GP V2,那个页面也有作者自己编译好的TRX文件下载。我自己也编译了,但是因为没有CONSOLE,不高兴尝试。直接拿来主义。

刷的过程挺简单,比上次刷WHR-HP-G54要简单:
1.先是把电源拔掉,然后按住RESET不放,接上电源。
2.看到灯闪了之后过一秒,然后放掉RESET,此时应该进入了RESTORE模式。
3.应该这个时候能PING到路由器192.168.1.1。
4.然后TFTP把trx文件传上去(我是在XP的CMD里的):tftp -i 192.168.1.1 PUT openwrt-brcm-2.4-squashfs.trx
5.我发现4秒钟就搞定了。按照网上说的,因为ASUS的路由没有刷好之后自己重新启动的功能,所以要等个3到5分钟(主要是没有串口连接,否则人家都能从串口输出上看是不是完成)。
6.3分钟后我拔掉了电源,然后等了几秒再接上电源。
7.发现很快就能PING到路由,但是POWER的灯要过一段时间才亮,因为在创建JFFS文件系统(就是那个可写的文件系统)。
8.一切OK之后就可以TELNET进去了,如果进去之后改了密码,就开启了SSH同时关闭了TELNET。
9.一开始无线是关闭的,要进行配置,具体见http://mightyohm.com/blog/2008/11/building-a-wifi-radio-part-4-installing-openwrt

Monday, September 8, 2008

从dd-wrt v24-sp1刷到tomato v1.21

能刷dd-wrt不代表你能高效得运行。果然今天就遇到了路由CPU 100%的时候,网页都开不了。而且dd的控制页面虽然蛮漂亮,但内存少了之后就反应很慢了。看来16M内存还是相当不够的,况且我还有很多DD的服务都是没有开的。这么看升级到32M甚至64M的内存不是没道理。

既然效率不高,就打算换tomato,从二进制的bin文件上看,tomato东西的确应该比dd要少,dd标准版2.4sp1是3.6M,而tomato v1.21是2.7M,小了差不多1M,跟dd的micro版本差不错。同时LINUX2.4内核,东西小,功能就少,希望效率也高,呵呵。

从原厂刷比从dd刷步骤繁琐(这个繁琐的步骤在刷DD的时候已经体验过了),幸好现在我是从dd刷起。网上说dd在nvram中的密码是加密的,而tomato是不加密的,所以要把dd的密码设置成密文大家都知道的admin(尤其是没有reset按键的路由,一开始没理解为什么),其密文是bJz7PcC1rCRJQ,也就是tomato的密码。否则不是admin作为密码的话你就要自己登录到路由的控制台去看nvram里的密文了,具体操作GOOGLE一下就知。

从DD的更新页面选tomato.trx,点UPDATE的时候说不是BIN文件,看来够笨的,只从后缀看,那就把后缀改成BIN,然后再选择,再点UPDATE。然后就是等待,发现等待的时候会出现秒数倒计时,不过明显不准的,呵呵。

好了之后路由自己就重新启动了,最紧张的时候到了,因为我在更新的时候选的是don't reset,不回复到默认设置,所以现在路由的地址还是原来的192.168.2.1。果然,打这个地址要求登录,不过怪了,死活登录不了,用了root+bJz7PcC1rCRJQ和admin+bJz7PcC1rCRJQ都不行,不知道哪里出问题了。这回才体会到reset按键的重要性,不管三七二十一,反正进不去了,直接按了RESET,重启之后用PSP连了一下,发觉路由地址变成192.168.1.1了,看来RESET起作用了,由192.168.1.1登录,然后用默认用户名和密码root+admin顺利进去了。

第一感觉,web的ui管理界面速度很快,比DD的快不少!看了下菜单,功能的确没有DD多。功能没有DD多不是说拥有的功能没有DD强!用了一下,看了下空闲内存,果然印证了网上流传的一句话,用来玩刷DD,用来当路由刷TOMATO。现在要把NVRAM清空一下,这样就可以去除之前遗留在NVRAM中但TOMATO用不到的数据。TOMATO的WEB管理UI中直接有清除NVRAM的功能,在administration->Configuration->Restore Default Configuration中,选择Erase all data in nvram memory(throrought),点OK之后所以的设置就像按了RESET一样(不知道我之前按的RESET是不是已经做了这步了?)。希望TOMATO能稳定快速的运行。

对于DD,其实我还是蛮喜欢的,但就是硬件机能不够,玩DD不爽。现在DD有支持X86的了,貌似可以考虑把家里的c400+i810+256M的老台机整成DD的路由玩。呵呵~~!

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上能跑你想要的程序哦。

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的运行时跟自制系统无任何关系哦。

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,那真的是大大部分都可以划出来了。

Sunday, April 13, 2008

linux不是一般的牛,显存用作swap

发觉linux能将显存用作swap,很牛,有空试一下。不知道能不能把显卡的芯片当作计算用的处理器哦。

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可以使得系统速度有很大的提升。

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

Tuesday, March 4, 2008

linux统计目录下文件个数的命令组合

使用ls -l列出文件和目录,如果还需要子目录中的话就ls -lR
然后用grep "^-"过滤以-开头的行(即普通文件)
最后用wc -l统计过滤出来的行数。

即$ls -l | grep "^-" | wc -l

Friday, February 1, 2008

在RHEL5.1上安装oracle 11g(linux x86_64)

以前在Debian上面成功安装过oracle 9i,那时费了好大的力才把需要的包一个一个apt-get过来。现在用Gentoo,但使用的是纯64位软件,所以估计没法装oracle 11g(x86_64版本貌似仍然需要一些32位的包)。都怪linux发行版五花八门,不象windows那么千篇一律。

这次在HP ProLiant G5上装了一个RHEL5.1,所以准备在这上面装一个oracle 11g x86_64的版本用作开发测试。值得庆幸的是RHEL是oracle认证的linux发行版,而且oracle自己的那个linux也是基于redhat的,所以应该问题不大。

最最值得庆幸的也是要感激的就是Jeff Hunter已经在CentOS5.1上成功安装了oracle 11g,英文原文Installing Oracle Database 11g Release 1 on Linux - (RHEL 5),因为CentOS是对RHEL的100%兼容版本,所以理论上RHEL上按照他给出的步骤可以100%成功安装。太easy了,傻瓜式的按部就班。在扮演傻瓜的同时也学到了不少redhat linux与Debian,Gentoo,FreeBSD所不同的地方。

1.安装RHEL5.1
这个没什么好说的,每个人有每个人的装法,就罗列一下安装的package groups。
*Desktop Environments

GNOME Desktop Environment

*Applications

Editors

Graphical Internet

Text-based Internet

*Development

Development Libraries

Development Tools

Legacy Software Development

*Servers

Server Configuration Tools

*Base System

Administration Tools

Base

Java

Legacy Software Support

System Tools

X Window System

2.装好之后把firewall和SELinux都暂时关掉。然后把oracle11g需要的包都检查一下是否全部都有,没有就从dvd装。
binutils-2.17.50.0.6

compat-libstdc++-33-3.2.3

compat-libstdc++-33-3.2.3 (32 bit)

elfutils-libelf-0.125

elfutils-libelf-devel-0.125

gcc-4.1.1

gcc-c++-4.1.1

glibc-2.5-12

glibc-2.5-12 (32 bit)

glibc-common-2.5

glibc-devel-2.5

glibc-devel-2.5-12 (32 bit)

libaio-0.3.106

libaio-0.3.106 (32 bit)

libaio-devel-0.3.106

libgcc-4.1.1

libgcc-4.1.1 (32 bit)

libstdc++-4.1.1

libstdc++-4.1.1 (32 bit)

libstdc++-devel 4.1.1

make-3.81

sysstat-7.0.0

3.确保/tmp有大于400M的空间并设置内核参数。
在/etc/sysctl.conf文件中有内核参数。
# +---------------------------------------------------------+

# | SHARED MEMORY |

# +---------------------------------------------------------+

kernel.shmmax = 536870912

kernel.shmmni = 4096

kernel.shmall = 2097152



# +---------------------------------------------------------+

# | SEMAPHORES |

# | ---------- |

# | |

# | SEMMSL_value SEMMNS_value SEMOPM_value SEMMNI_value |

# | |

# +---------------------------------------------------------+

kernel.sem = 250 32000 100 128



# +---------------------------------------------------------+

# | FILE HANDLES |

# ----------------------------------------------------------+

fs.file-max = 102696



# +---------------------------------------------------------+

# | LOCAL IP RANGE |

# ----------------------------------------------------------+

net.ipv4.ip_local_port_range = 1024 65000



# +---------------------------------------------------------+

# | NETWORKING |

# ----------------------------------------------------------+

net.core.rmem_default = 4194304

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 262144

使用#/sbin/sysctl -p命令让以上设置生效而不需reboot。

4.在/etc/hosts文件中把不要的hostname从回路地址中去掉,把ipv6也去掉。
127.0.0.1 test2 localhost.localdomain localhost
应该改为 127.0.0.1 localhost.localdomain localhost

5.创建oinstall,dba,oper,asm,asmdba这5个组,然后创建一个属于这5个组的oracle用户。在英文原文中对这5个组对应的数据库组有详细的说明。
可以使用命令行来创建:
# groupadd -g 501 oinstall

# groupadd -g 502 dba

# groupadd -g 503 oper

# groupadd -g 504 asm

# groupadd -g 506 asmdba

# useradd -m -u 501 -g oinstall -G dba,oper,asm -d /home/oracle -s /bin/bash -c "Oracle Software Owner" oracle

# id oracle

uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba),503(oper),504(asm)
之后设置密码给oracle用户。

6.查看nobody用户是否已经存在。
# id nobody

uid=99(nobody) gid=99(nobody) groups=99(nobody)
如果不存在就创建:
# /usr/sbin/useradd nobody

7.接下来就是创建oracle base directory了,对于非advanced安装,不需要指定数据文件的文件夹。
# mkdir -p /xxx/app/oracle

# chown -R oracle:oinstall /u01/app

# chmod -R 775 /u01/app
如果使用advanced安装,请看英文原文。

8.为oracle用户创建登陆脚本,在/home/oracle/.bash_profile文件中加入:
# User specific environment and startup programs

export ORACLE_BASE=/xxx/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.1.0/db_1

export ORACLE_PATH=$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin

export ORACLE_SID=MYDBSID



export PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin

export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin

export ORACLE_TERM=xterm

export TNS_ADMIN=$ORACLE_HOME/network/admin

export ORA_NLS10=$ORACLE_HOME/nls/data

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

export CLASSPATH=$ORACLE_HOME/JRE

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

export THREADS_FLAG=native

export TEMP=/tmp

export TMPDIR=/tmp

9.用oracle用户进入X根据提示进行安装。我选的是基本安装,并且创建初始化数据库应该是没什么问题的,只是等待而已,呵呵~~!好了之后应该可以用https://localhost:1158/em登录了。

10.装好之后我发现重新启动后oracle没自动起来,看来自动启动/关闭脚本还没加,编辑/etc/oratab文件:
MYDBSID:/u01/app/oracle/product/11.1.0/db_1:Y

然后创建/etc/init.d/oracle文件,使得oracle作为系统的service。
文件内容:
#!/bin/sh

# chkconfig: 345 99 10

# description: Oracle auto start-stop script.

#

# Set ORA_HOME to be equivalent to the $ORACLE_HOME

# from which you wish to execute dbstart and dbshut;

#

# Set ORA_OWNER to the user id of the owner of the

# Oracle database in ORA_HOME.



ORA_HOME=/xxx/app/oracle/product/11.1.0/db_1

ORA_OWNER=oracle



if [ ! -f $ORA_HOME/bin/dbstart ]

then

echo "Oracle startup: cannot start"

exit

fi



case "$1" in

'start')

# Start the Oracle databases:

# The following command assumes that the oracle login

# will not prompt the user for any values

su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart $ORA_HOME"

;;

'stop')

# Stop the Oracle databases:

# The following command assumes that the oracle login

# will not prompt the user for any values

su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut $ORA_HOME"

;;

esac

之后# chmod 750 /etc/init.d/oracle
最后就是把这个启动脚本放到服务里面去。
英文原文中使用的是# chkconfig --level 345 oracle on这个命令把这个启动脚本防到3、4、5这3个run level中,但我用这个命令说command not found,只能从图形界面进去手动把这个服务加到服务列表里。效果一样。哈哈。

11.最后的最后就是这个,为了要使用web页面的em,所以必须要把emctl start dbconsole和emctl stop dbconsole放如/etc/init.d/oracle文件的适当位子。否则每次都要手动启动多麻烦啊~~!

英文原文写得很好很详细,我只是把我使用到的步骤从中抽取出来中文化了一下,而且很简略,有能力的朋友强烈建议看英文原文。

RHEL5.1 vnc的使用

RHEL5.1 自带了Xvnc,省得象gentoo里面自己装x11vnc了。先查看一下是否有vncservers的包:
[root@test2 jojo]# rpm -q vnc-server
vnc-server-4.1.2-9.el5

然后编辑配置文件:
[root@test2 jojo]# nano /etc/sysconfig/vncservers
把VNCSERVERS="1:ccair"这行的注释去掉。就是使用ccair登录到display:1,这里display和用户看你的系统了。

现在要设置一个vnc的密码,否则vnc不能被连接使用:
[ccair@test2 jojo]$ vncpasswd
Password:

Verify:
设置好之后在ccair用户的~/.vnc目录下会有相应的passwd文件。

一切设置ok之后就是启动vncserver服务:
[root@test2 jojo]# /sbin/service vncserver start

接下来在ccair用户的~/.vnc目录下会生成一个xstartup文件,打开之后把如下两行注释去掉:
unset SESSION_MANAGER

exec /etc/X11/xinit/xinitrc

最后restart vncserver即可:
[root@test2 jojo]# /sbin/service vncserver restart

现在用vnc客户端可以顺利连接到display1上去了,相应的端口是5901,所以防火墙的5901要打开。

Monday, March 19, 2007

sound on gentoo

it seems i installed a generic kernel. at default, no device configed for the sound.
when i wanna use ALSA, but can't emerge alsa-driver cause couldn't download a patch for my kernel.
so i use "emerge alsa-utils", after that, run "alsaconf", after a reboot manually, everything with the sound are work well.
:)