当前位置--> 首 页 --> 文 章 -->C/C++

※阅读文章※

Unix编程/应用问答中文版 ---9.图形界面相关问题


作者:不祥 [文章出自: www.fanqiang.com]

9.    图形界面相关问题 
9.1   如何避免进入Solaris的图形界面 
9.2   Solaris 7的锁屏 
9.3   如何调整键盘重复率 
9.4   如何拔掉键盘继续运行Solaris 
9.5   Solaris下如何设置显卡分辨率 
9.6   Solaris下如何设置显示刷新率 
-------------------------------------------------------------------------- 

9. 图形界面相关问题 

9.1 如何避免进入Solaris的图形界面 

Q: 我想让console保持在字符模式下,该如何做 

A: Darren Dunham <ddunham@redwood.taos.com> 

这里有一份很好的FAQ,http://www.wins.uva.nl/pub/solaris/solaris2.html 

下文引自http://www.science.uva.nl/pub/solaris/solaris2.html#q3.54 

如何允许/禁止dtlogin? 

是否启动dtlogin可以用/usr/dt/bin/dtconfig命令进行设置,不带任何参数执行该 
命令,提示如下: 

/usr/dt/bin/dtconfig -d        (disable auto-start) 
/usr/dt/bin/dtconfig -e        (enable auto-start) 
/usr/dt/bin/dtconfig -kill     (kill dtlogin) 
/usr/dt/bin/dtconfig -reset    (reset dtlogin) 
/usr/dt/bin/dtconfig -p        (printer action update) 
/usr/dt/bin/dtconfig -inetd    (inetd.conf /usr/dt daemons) 
/usr/dt/bin/dtconfig -inetd.ow (inetd.conf /usr/openwin daemons) 

如果绝大多数时间你并不想关闭图形模式,可以在"session"菜单上选择 
"command line login"。 

A: <lucifer@nospam.org> 

更省事的办法是 
cd /etc/rc2.d 
mv S99dtlogin s99dtlogin 

Q: Solaris CDE窗口的启动与关闭 

A: tenia@一塌糊涂 1999-11-03 

用/usr/dt/bin/dtlogin 

dtlogin -daemon  从命令行启动注册窗口 
dtlogin -e       使系统自动启动注册窗口 
dtlogin -d       取消自动启动 
dtlogin -kill    杀掉注册窗口 

9.2 Solaris 7的锁屏 

Q: Solaris 7中哪个进程负责锁屏效应。7以前的版本,某些人在console登录后锁屏, 
   回家前忘记取消锁屏,我简单地杀掉xlock进程即可。但是我不知道Solaris 7中 
   该怎么做。看了看dtsession和dtscreen的一些东西,但是无论我杀掉二者中哪个 
   进程,console挂起在黑屏的无限循环中,只有鼠标光标可见 

A: <buck_naked@NOiname.SPAMcom> 

应该是dtscreen 

9.3 如何调整键盘重复率 

Q: Ultra 5 Solaris 8 如何设置键盘重复率?我想设置重复率到最大,延迟到最小。 

A: Alan Coopersmith <alanc@alum.calberkeley.org> 
   http://soar.Berkeley.EDU/~alanc/ 

如果是root想对系统中所有用户做此修改,编辑/etc/dt/config/Xservers,增加 
-ar1 和 -ar2选项。如果/etc/dt/config/Xservers不存在,从 
/usr/dt/config/Xservers复制一份过来。 

如果不是root,仅仅想修改自己的配置,用/usr/openwin/bin/accessx配置键盘和鼠 
标参数。 

man -M /usr/openwin/man Xsun 

    -ar1 milliseconds 

        这么多毫秒后按键开始自动重复。缺省500毫秒。参数对于x86或者PowerPC 
        无效。 

    -ar2 milliseconds 

        两次自动重复之间的时间间隔(毫秒单位)。缺省50毫秒。参数对于x86或者 
        PowerPC无效。 

man -M /usr/openwin/man accessx 

9.4 如何拔掉键盘继续运行Solaris 

Q: 我这里的E250/E3500装了Solaris后键盘都不能拔掉,一拔掉就进入OK状态。而老 
   式的SparcServer 1000E是可以不要键盘运行的,不知道要在哪里设置才能够不要 
   键盘运行? 

Q: 这里是一台Sun Ultra 5,拔掉键盘后,系统停止响应 

A: J.Keil 

拔掉键盘导致Ultra 5的console设备侦测到一次BREAK条件。BREAK条件将中断操作系 
统,使系统进入OBP(open boot prom)监视状态。如果启动内核时使用了kadb内核调 
试器,BREAK条件使系统进入kadb调试状态。 

参看kbd(1)手册页,有几种办法禁止这种行为: 

a. 永久办法 

vi /etc/default/kbd 

KEYBOARD_ABORT=disable 

/usr/bin/kbd -i (不用重新启动机器) 

b. 临时办法 

/usr/bin/kbd -a disable 
与之对应的就是 
/usr/bin/kbd -a enable 

c. 看BSM的时候找到的另外一种解决办法,在/etc/system文件中增加如下行 

set abort_enable = 0 

A: dkoleary@mediaone.net 2001-06-02 22:09 

用kbd(1)命令 

kbd [ enable | disable | alternate ] 

enable    : 允许 STOP-A 
disable   : 禁止 STOP-A 
alternate : 允许拔掉键盘,但不禁止 STOP-A 

为了使用 alternate 选项,需要安装下列补丁 

Solaris 2.6 105924-10 
Solaris 7   107589-03 

9.5 Solaris下如何设置显卡分辨率 

A: kougar@smth.org 

/etc/openwin/server/etc/OWconfig 
/usr/openwin/server/etc/OWconfig 

A: hycan@smth.org 

/usr/sbin/m64config -prconf -propt 
/usr/sbin/m64config -res '?' 

ls -l /dev/fb (一个符号链接) 

ls -l /dev/fbs/m640 (一个符号链接) 
prtconf -F (Return the device pathname of the console frame buffer) 
m64config -res 1152x900x76 -depth 8 

ls -l /dev/fbs/ffb0 (一个符号链接) 
/usr/sbin/ffbconfig -prconf -propt (当前设置1152x900x76x8) 

参看m64config(1M)、ffbconfig(1M)手册页 

9.6 Solaris下如何设置显示刷新率 

A: CERNET 华中地区网络中心 UNIX版 domyself 2001-08-16 

除了m64config(1M),还有一种办法,就是进入OBP状态设置分辨率、刷新率。进入 
OBP状态至少有两种方法 

# sync    <-- 同步文件系统,准备重启 
# init 0  <-- 关闭系统后将停留在OBP状态,也就是ok提示符下 

其实我们最常用的做法是Stop-A进入OBP状态 

ok> show-displays 

这里可以看到当前的显示设备,如果你只有一个显示设备,那么这里有两个提示,选 
择a就选择了当前显示设备,选择q表示退出,你只能选择a。选择之后可以Ctrl-Y输 
入那个很长的设备路径全名。 

ok> dev <设备路径全名> (用Ctrl-Y输入) 

选择并设置成当前结点,后面的words命令只处理当前结点,不接受指定 

ok> pwd  (验证当前路径是否正确) 
ok> words 

列出当前结点的方法名,分辨率和刷新率是作为方法提供的。比如你可能看到 

r1024x768x77x24 
r1152x900x76x8 

注意,数字前面有一个小写的'r',表示resolution。假设我们以前的设置是 
1152x900x76x8,现在想改成1024x768x77x24,用如下命令 

ok> setenv output-device screen:r1024x768x77x24 
ok> boot -r 

再次注意,"screen:"之后指定的是方法名,也就是说前面有那个小写的'r'。你用 
words看到什么就指定什么。自己估计显存大小,分辨率、刷新率、颜色深度是相互 
制约的。最好不要自己调节这些参数,很容易损坏显示设备。OBP状态下设置分辨率、 
刷新率的命令普遍描述如下 

ok> setenv output-device <device-path>:<resolution> 

上面screen是个别名,可以用devalias看到本来的设备路径全名,也就是 
show-displays看到的那个设备路径全名。指定设备路径全名也可以,如果你撑着了 
的话。 

ok> devalias  (检查设备别名) 

启动之后可以用如下命令检查当前设置 

# m64config -prconf | grep Current 
Current resolution setting: 1024x768x77 
Current depth: 24 


警告:和调节PC机所配显示设备一样,这种调节具有破坏性,务必小心。对于高版本 
      的Solaris,建议使用m64config等工具调节显示刷新率,低版本Solaris才考 
      虑进入OBP状态设置。 

A: 水木清华 humvee 

x86/Solaris下可用kdmconfig 

文章加入时间: 2004-11-17 14:53:11 责任编辑: w9   (3141 人次查阅)
 
Copyright © 1998-2004 中国PHP联盟 All rights reserved.