HPUX的CDE问题

周兴华
投稿人

HPUX的CDE问题

案例一:

关于HP一些CDE操作

#/sbin/init.d/dtlogin.rc start
#vi /etc/rc.config.d/desktop
DESKTOP=CDE
/etc/hosts
/etc/rc.config.d/netconf
set_parms hostname命令可以修改HostName的
、如何启动CDE
a、在AIX启动时自动启动CDE。使用root用户登录,并在命令行中执行:
#/usr/dt/bin/dtconfig -e
b、在命令行中启动CDE:
#/etc/rc.dt;exit
c、确认CDE已经启动:
#ps -ef |grep dtlogin
如果您看到dtlogin进程在运行,则说明CDE已经启动。
不过有些用户为了平时管理的方便,还是配置了图形卡,还配置了KVM来在多个机器之间进行切换。然而,如果配置不正确的话,还是不能很好的进入图形界面,甚至连CDE的登陆界面都无法看到。
遇到这样的情况的时候,可以按照以下思路进行查看:
1. 检查图形卡的驱动是否已经安装好
#swlist -l bundle | grep -i Graphic
说明:查看图形卡的状态是否是CLAIMED,如果不是此状态,比如看到的是UNCLAIMED或这是NO_HW,则表明图形卡的驱动没有安装好。如果发现驱动没有安装好,则按照第五步的方法进行驱动更新。
2. 检查是否安装了CDE界面
#swlist -l fileset -a state CDE
或者是
#swlist -l bundle | grep -i CDE
说明:检查配置是否包含了CDE
#ps -ef | grep -i dtlogin
说明:检查是否后台进程是否正常运行
#/sbin/init.d/dtlogin.rc stop
说明:如果dtlogin的进程运行不正常,则先停掉所有相关的进程
#/etc/init 2
#/etc/init 3
#/usr/dt/bin/dtconfig -e
说明:让桌面在系统启动的时候自动运行
  
#/sbin/init.d/dtlogin.rc start
说明:重新启动后台进程。运行这个命令以后,CDE登陆界面并不会立刻出现,因为启动相关的一些进程需要一些时间。耐心等待一会儿,如果两分钟以后CDE登录界面还没有出现,则需要继续后面的检查步骤。
3. 检查配置文件/etc/X11/X0screen,检查该文件中是否包含以下语句:
  
Screen /dev/crt
  
说明:如果没有包括此行语句,这手工加上,然后按照第二步,重新启动以下dtlogin的进程。
  
4. 检查配置文件/etc/dt/config/Xservers:
  
将下面的内容
  
# * Local
[email=local@console]local@console[/email]
/usr/bin/X11/X :0
  
前面的注释号去掉,修改成
  
* Local
[email=local@console]local@console[/email]
/usr/bin/X11/X :0
  
然后重新运行一下以下命令:
  
#/sbin/init.d/dtlogin.rc stop
  
说明:停止相应的后台进程
  
#/sbin/init.d/dtlogin.rc reset
  
说明:使修改的配置文件生效
  
#/sbin/init.d/dtlogin.rc start
  
说明:重新启动后台进程
  
5. 将必要的驱动加入Kernel
  
如果发现显卡的驱动没有安装好,则检查以下驱动是否都已经加入到Kernel当中:
  
a. graph3
  
b. gvid
  
c. hcd
  
d. hid
  
e. hub
  
f. usbd
  
说明:当usbd加入内核后,在重启机器时,会让选择键盘的MAP,选择26: US-ENGLISH。(注:好像gvid可以不用加入,也可实现功能。)
  
6. 调整分辨率和刷新率
  
#setmon
  
说明:可以进入sam进行调整,当然也可以简单的时候这条命令进行调整。

  
按照以上几步,一般都会解决图形问题。当然,有的时候按照以上“一般”步骤还不能解决问题,那么要根据具体的情况来考虑了。以下是一些经验之谈:
  
1. RP34x0上用dmesg老是报gvid: ATI Radeon 7000 not supported on this hardware
  
说明:是因为RP34X0的显卡在11i上不支持,在11.23上可用.为了解决报错信息,打一个补丁就好:PHKL_31241
  
2. 如果显卡换了槽位执行以下命令
  
#rm /dev/crt
  
#insf -e(或者是#insf -e -d framebuf)
  
说明:重新生成一下相应的设备文件
  
3. 如果看到了CDE的登陆界面,但是在输入用户名和密码以后,看到了登陆欢迎词就再没有出现正常的CDE界面,而是一直等待在这里,此时应该检查一下/sbin/rc.2/S400nfs.core是否被去掉了,即查看nfs.core是否正常启动了。如果要禁止NFS,可以修改/etc/rc.config.d/nfsconf文件,根据以下修改:
  
NFS_SERVER=0
  
NFS_CLIENT=0
  
4. 对于安腾的机器,还应该考虑:如果是新安装,很有可能显示器上没有任何显示,那么就要用console cable连到Local console
EFI Boot Manager ver 1.10 [14.61] Firmware ver 2.31 [4411]
  
Please select a boot option

   HP-UX Primary Boot: 0/1/1/0.0.0
   EFI Shell [Built-in]
   Boot Option Maintenance Menu
   System Configuration Menu

   Use ^ and v to change option(s). Use Enter to select an option
   当出现EFI Boot Manager 界面时,选择
   EFI Boot Maintenance Manager ver 1.10 [14.61]
   Main Menu. Select an Operation

   Boot from a File
   Add a Boot Option
   Delete Boot Option(s)
   Change Boot Order

   Manage BootNext setting
   Set Auto Boot TimeOut

   Select Active Console Output Devices
   Select Active Console Input Devices
   Select Active Standard Error Devices
   选择

   EFI Boot Maintenance Manager ver 1.10 [14.61]
   Select the Console Output Device(s)

   Acpi(PNP0501,0)/Uart(9600 N81)/VenMsg(PcAnsi)
   Acpi(PNP0501,0)/Uart(9600 N81)/VenMsg(Vt100)
   Acpi(PNP0501,0)/Uart(9600 N81)/VenMsg(Vt100+)
   Acpi(PNP0501,0)/Uart(9600 N81)/VenMsg(VtUtf8)
   Acpi(HWP0002,700)/Pci(1|1)/Uart(9600 N81)/VenMsg(PcAnsi)
   Acpi(HWP0002,700)/Pci(1|1)/Uart(9600 N81)/VenMsg(Vt100)
   * Acpi(HWP0002,700)/Pci(1|1)/Uart(9600 N81)/VenMsg(Vt100+)
   Acpi(HWP0002,700)/Pci(1|1)/Uart(9600 N81)/VenMsg(VtUtf8)
   Acpi(HWP0002,700)/Pci(2|0)
   Save Settings to NVRAM
   Exit
   把最后一个输出设备(就是)显示器选中

   EFI Boot Maintenance Manager ver 1.10 [14.61]
   Select the Console Output Device(s)

   Acpi(PNP0501,0)/Uart(9600 N81)/VenMsg(PcAnsi)
   Acpi(PNP0501,0)/Uart(9600 N81)/VenMsg(Vt100)
   Acpi(PNP0501,0)/Uart(9600 N81)/VenMsg(Vt100+)
   Acpi(PNP0501,0)/Uart(9600 N81)/VenMsg(VtUtf8)
   Acpi(HWP0002,700)/Pci(1|1)/Uart(9600 N81)/VenMsg(PcAnsi)
   Acpi(HWP0002,700)/Pci(1|1)/Uart(9600 N81)/VenMsg(Vt100)
   * Acpi(HWP0002,700)/Pci(1|1)/Uart(9600 N81)/VenMsg(Vt100+)
   Acpi(HWP0002,700)/Pci(1|1)/Uart(9600 N81)/VenMsg(VtUtf8)
   * Acpi(HWP0002,700)/Pci(2|0)
   Save Settings to NVRAM
   Exit
  
说明:以上只是把console的内容显示到显示器上,要CDE能开机自动显示到本地显示器,需要查看/etc/dt/config/Xconfig的配置,看看文件中Dtlogin*authorize: False是不是被注释掉了。如果是就取消它的注释,如果这个文件不存在,可以把/usr/dt/config/Xconfig考到/etc/dt/config目录下。

  
按照以上所有的方面来进行仔细检查,应该能够解决基本上所有的CDE图形问题了。而还不能够解决,可以查看$HOME/.dt下的日志,看看日志中报了什么错误。或者一个简单的办法就是,新创建一个用户,这样这个新用户的$HOME/.profile文件和$HOME/.dtprofile或者$HOME/.login文件都是没有经过修改的,用这个新用户的账户进行登陆,检查相应的日志
但在不同主机上试过两次hostname超过8位的时候确实进不了CDE桌面

 

 

案例二:

Can not start CDE after install hp-ux 11iv32008-02-29 09:52Problem: Can not start CDE after install hp-ux 11iv3.

Reason: CDE can not be installed after the installation hp-ux 11iv3 OS. it should be intalled manually.

Resolve: 1. Insert Core OS Installation DVD 1 and mount it.

2. # swinstall -s /dvd_rom

3. Select: CDE -> B.11.31 HP-UX CDE User Interface

4. Set the following under the “Options”:

- Reinstall filesets even if same revision exists. (Select)
- Reinstall file even if same one already there. (Select)
- Autoselect dependencies when marking software. (Deselect)
- Enforce dependency analysis errors in agent. (Deselect)

5. Mark "HP-UX CDE User Interface" for installation and install.

6. Enable CDE

#/usr/dt/bin/dtconfig –e

7. Ensure the initdefault level in /etc/inittab is 3

If the system is not currently at runlevel 3, execute
init 3
start CDE
#/sbin/init.d/dtlogin.rc start

 


案例三:

急!个位大侠求助:HP-UX的CDE进不去了


求助:公司里的机器全部换了KVM,因为KVM是PS/2的接口,所以就买了usb to ps/2的转接线用,可是换了以后就login不进去CDE了 下面是出错信息:
****************************************************************

* The X-server cannot be started on display <hostname>:0...

* For details look into the file, Dtlogin.errorLogFile (default:

* /var/dt/Xerrors)

****************************************************************

****************************************************************

* Suspending Desktop Login...

* Press [Enter] for a login prompt.

* Log in. Desktop Login will resume shortly after you log out.

****************************************************************
下面是 /var/dt/Xerrors的内容:
Fatav serve error:
r:
Couldn't open X pointer device! Is one attached?

^[gXIO: fatal IO error 232 (Connection reset by peer) on X server "bylot:0.0"^M
after 0 requests (0 known processed) with 0 events remaining.^M

Fatal server error:
Couldn't open X pointer device! Is one attached?

^[gXIO: fatal IO error 232 (Connection reset by peer) on X server "bylot:0.0"^M
after 0 requests (0 known processed) with 0 events remaining.^M

Wed May 4 16:57:33 2005
error (pid 1325): Server for display bylot:0 can't be started.

Fatal server error:
Couldn't open X pointer device! Is one attached?

^[gXIO: fatal IO error 232 (Connection reset by peer) on X server "bylot:0.0"^M
after 0 requests (0 known processed) with 0 events remaining.^M

Fatal server error:
Couldn't open X pointer device! Is one attached?

^[gXIO: fatal IO error 232 (Connection reset by peer) on X server "bylot:0.0"^M
after 0 requests (0 known processed) with 0 events remaining.^M


1、我想可能是鼠标的在X里的驱动要改一下的原因吧,在/etc/X11/XF86Config里的section段里,可是我不知道正确的值是什么 :(

2、显示是好的 开机后都可以显示并且键盘也可以用
以前用USB的键盘和鼠标也是好的 就是在换了KVM后CDE才进不去了
就是那种1个USB口转2个PS/2口的连线,然后接KVM,KVM再接PS/2的键盘和鼠标。
机型是HP的B2600还有C3600,机器后都只有2个USB口的那种,系统是HPUX11

3、就是在开机后看到服务什么的都能起来 但是最后一个服务CDE起不来 然后就报那样的错误 郁闷 icon_sad.gif

4、done了,原来是KVM的问题,换了一个牌子就好了,faint:eek:

5、晕!为啥不用ReflectionX之类的远程控制软件?

 


案例四:

非常少有用户在小型机上安装图像卡,因为小型机一般作为服务器使用,所以HP 9000系列小型机上默认都没有设置图像卡的。不过有些软件或应用,是需要在图像界面上进行,比如Oracle的安装。解决这个问题的一个途径,最简单的就是使用远程图像登陆的方式安装,比如使用Xmanager来进行连接。

不过有些用户为了平时管理的方便,还是设置了图像卡,还设置了KVM来在多个机器之间进行转换。然而,如果设置不正确的话,还是不能非常好的进入图像界面,甚至连CDE的登陆界面都无法看到。

遇见这样的情况的时候,能按照以下思路进行查看:

1. 检查图像卡的驱动是否已安装好
#swlist -l bundle | grep -i Graphic
说明:查看图像卡的状态是否是CLAIMED,如果不是此状态,比如看到的是UNCLAIMED或这是NO_HW,则表明图像卡的驱动没有安装好。如果发现驱动没有安装好,则按照第五步的方法进行驱动更新。

2. 检查是否安装了CDE界面
#swlist -l fileset -a state CDE
或是
#swlist -l bundle | grep -i CDE
说明:检查设置是否包含了CDE
#ps -ef | grep -i dtlogin
说明:检查是否后台进程是否正常运行
#/sbin/init.d/dtlogin.rc stop
说明:如果dtlogin的进程运行不正常,则先停掉所有相关的进程
#/etc/init 2
#/etc/init 3
#/usr/dt/bin/dtconfig -e
说明:让桌面在系统启动的时候自动运行
#/sbin/init.d/dtlogin.rc start
说明:重新启动后台进程。运行这个命令以后,CDE登陆界面并不会即时出现,因为启动相关的一些进程需要一些时间。耐心等待一会儿,如果两分钟以后CDE登录界面还没有出现,则需要继续后面的检查步骤。

3. 检查设置文件/etc/X11/X0screen,检查该文件中是否包含以下语句:
Screen /dev/crt
说明:如果没有包括此行语句,这手工加上,然后按照第二步,重新启动以下dtlogin的进程。

4. 检查设置文件/etc/dt/config/Xservers:
将下面的内容
# * Local local@console /usr/bin/X11/X :0
前面的注释号去掉,修改成
* Local local@console /usr/bin/X11/X :0
然后重新运行一下以下命令:
#/sbin/init.d/dtlogin.rc stop
说明:停止相应的后台进程
#/sbin/init.d/dtlogin.rc reset
说明:使修改的设置文件生效
#/sbin/init.d/dtlogin.rc start
说明:重新启动后台进程

5. 将必要的驱动加入Kernel
如果发现显卡的驱动没有安装好,则检查以下驱动是否都已加入到Kernel当中:
a. graph3
b. gvid
c. hcd
d. hid
e. hub
f. usbd
说明:当usbd加入内核后,在重启机器时,会让选择键盘的MAP,选择26: US-ENGLISH。(注:似乎gvid能不用加入,也可实现功能。)

6. 调整分辨率和刷新率
#setmon
说明:能进入sam进行调整,当然也能简单的时候这条命令进行调整。

按照以上几步,一般都会解决图像问题。当然,有的时候按照以上“一般”步骤还不能解决问题,那么要根据具体的情况来考虑了。以下是一些经验之谈:

1. RP34x0上用dmesg老是报gvid: ATI Radeon 7000 not supported on this hardware
说明:是因为RP34X0的显卡在11i上不支持,在11.23上可用.为了解决报错信息,打一个补丁就好:PHKL_31241

2. 如果显卡换了槽位执行以下命令
#rm /dev/crt
#insf -e(或是#insf -e -d framebuf)
说明:重新生成一下相应的设备文件

3. 如果看到了CDE的登陆界面,不过在输入用户名和密码以后,看到了登陆欢迎词就再没有出现正常的CDE界面,而是一直等待在这里,此时应该检查一下/sbin/rc.2/S400nfs.core是否被去掉了,即查看nfs.core是否正常启动了。如果要禁止NFS,能修改/etc/rc.config.d/nfsconf文件,根据以下修改:
NFS_SERVER=0
NFS_CLIENT=0

4. 对于安腾的机器,还应该考虑:如果是新安装,非常有可能显示器上没有所有显示,那么就要用console cable连到Local console
EFI Boot Manager ver 1.10 [14.61] Firmware ver 2.31 [4411]
Please select a boot option

HP-UX Primary Boot: 0/1/1/0.0.0
EFI Shell [Built-in]
Boot Option Maintenance Menu
System Configuration Menu

Use ^ and v to change option(s). Use Enter to select an option
当出现EFI Boot Manager 界面时,选择 <Boot Option Maintenance Menu >
EFI Boot Maintenance Manager ver 1.10 [14.61]
Main Menu. Select an Operation

Boot from a File
Add a Boot Option
Delete Boot Option(s)
Change Boot Order

Manage BootNext setting
Set Auto Boot TimeOut

Select Active Console Output Devices
Select Active Console Input Devices
Select Active Standard Error Devices
选择 < Select Active Console Output Devices >

EFI Boot Maintenance Manager ver 1.10 [14.61]
Select the Console Output Device(s)

Acpi(PNP0501,0)/Uart(9600 N81)/VenMsg(PcAnsi)
Acpi(PNP0501,0)/Uart(9600 N81)/VenMsg(Vt100)
Acpi(PNP0501,0)/Uart(9600 N81)/VenMsg(Vt100+)
Acpi(PNP0501,0)/Uart(9600 N81)/VenMsg(VtUtf8)
Acpi(HWP0002,700)/Pci(1|1)/Uart(9600 N81)/VenMsg(PcAnsi)
Acpi(HWP0002,700)/Pci(1|1)/Uart(9600 N81)/VenMsg(Vt100)
* Acpi(HWP0002,700)/Pci(1|1)/Uart(9600 N81)/VenMsg(Vt100+)
Acpi(HWP0002,700)/Pci(1|1)/Uart(9600 N81)/VenMsg(VtUtf8)
Acpi(HWP0002,700)/Pci(2|0)
Save Settings to NVRAM
Exit
把最后一个输出设备(就是)显示器选中

EFI Boot Maintenance Manager ver 1.10 [14.61]
Select the Console Output Device(s)

Acpi(PNP0501,0)/Uart(9600 N81)/VenMsg(PcAnsi)
Acpi(PNP0501,0)/Uart(9600 N81)/VenMsg(Vt100)
Acpi(PNP0501,0)/Uart(9600 N81)/VenMsg(Vt100+)
Acpi(PNP0501,0)/Uart(9600 N81)/VenMsg(VtUtf8)
Acpi(HWP0002,700)/Pci(1|1)/Uart(9600 N81)/VenMsg(PcAnsi)
Acpi(HWP0002,700)/Pci(1|1)/Uart(9600 N81)/VenMsg(Vt100)
* Acpi(HWP0002,700)/Pci(1|1)/Uart(9600 N81)/VenMsg(Vt100+)
Acpi(HWP0002,700)/Pci(1|1)/Uart(9600 N81)/VenMsg(VtUtf8)
* Acpi(HWP0002,700)/Pci(2|0)
Save Settings to NVRAM
Exit

说明:以上只是把console的内容显示到显示器上,要CDE能开机自动显示到本地显示器,需要查看/etc/dt/config/Xconfig的设置,看看文件中Dtlogin*authorize: False是不是被注释掉了。如果是就取消他的注释,如果这个文件不存在,能把/usr/dt/config/Xconfig考到/etc/dt/config目录下。

按照以上所有的方面来进行仔细检查,应该能够解决基本上所有的CDE图像问题了。而还不能够解决,能查看$HOME/.dt下的日志,看看日志中报了什么错误。或一个简单的办法就是,新创建一个用户,这样这个新用户的$HOME/.profile文件和$HOME/.dtprofile或$HOME/.login文件都是没有经过修改的,用这个新用户的账户进行登陆,检查相应的日志。

 


案例五:

hp-ux运行一段时间后(OV nnm)
运行nnm的任何需要开新窗口的程序
dtterm都显示如下
Xlib: connection to "nnmgz:0.0" refused by server
Xlib: Client is not authorized to connect to Server
xnmappmon: cannot open display
重启就没有这个问题了
但是过一段时间 几个小时之后
就又这样了
运行sam也不能出现图形的了

 

 


案例六:

受影响系统:

HP HP-UX 11.23

HP HP-UX 11.22


HP HP-UX 11.11


HP HP-UX 11.0

描述:
--------------------------------------------------------------------------------
BUGTRAQ ID: 9062

 


HP-UX是惠普公司开发和维护的商业性质UNIX操作系统。

 

 

HP-UX包含的dtmailpr程序对环境变量缺少充分的缓冲区边界检查,本地攻击者可以利用这个漏洞以mail组权限在系统上执行任意指令。

 

 

dtmailpr程序可读取一文件,并发送包含邮件头字段简明消息(去除附件的)到标准输出,如果没有文件参数指定,dtmailpr会从标准输入中读取,dtmailpr没有对DISPLAY环境变量缺少充分边界检查,提交超长字符串给环境变量,执行dtmailpr时可触发缓冲区溢出,精心构建提交数据,可能以mail组权限在系统上执行任意指令。

 

 

<*来源:Davide Del Vecchio (dante@alighieri.org)

 


链接:http://marc.theaimsgroup.com/?l=bugtraq&m=106928008512333&w=2


*>

测试方法:


--------------------------------------------------------------------------------

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

Davide Del Vecchio (dante@alighieri.org)提供了如下测试方法:

 


dante@sofficino :/usr/dt/bin >export DISPLAY="`perl -e 'printf "A" x 9777'`"


dante@sofficino :/usr/dt/bin >/usr/dt/bin/dtmailpr

建议:


--------------------------------------------------------------------------------
厂商补丁:

 


HP


--


HP已经为此发布了一个安全公告(HPSBUX0311-300)以及相应补丁:


HPSBUX0311-300:SSRT3667 dtmailpr

 

 

补丁下载:

 

 

HP HP-UX 11.0:

 

 

HP Patch PHSS_29734


http://itrc.hp.com

 

 

HP HP-UX 11.11:

 

 

HP Patch PHSS_29735


http://itrc.hp.com

 

 

HP HP-UX 11.22:

 

 

HP Patch PHSS_29736


http://itrc.hp.com

 

 

HP HP-UX 11.23:

 

 

HP Patch PHSS_29737


http://itrc.hp.com