VirtualBox虚拟FreeBSD15,准备把X桌面装上,但是常规一顿操作后pkg install xorg xfce4 ,一开始startx直接黑屏,后来执行startx就卡在登录界面,而且只能ssh登录上去kill不能切换出来。
执行xrandr报错没有显示器:
xrandr
Can't open display
看显卡驱动:
pciconf -lv|grep -B4 VGA
class = mass storage
subclass = ATA
vgapci0@pci0:0:2:0: class=0x030000 rev=0x00 hdr=0x00 vendor=0x15ad device=0x0405 subvendor=0x15ad subdevice=0x0405
vendor = 'VMware'
device = 'SVGA II Adapter'
class = display
subclass = VGA
root@fr15:~ # sysctl machdep.bootmethod
总感觉有点怪。
中间尝试了很多操作,最后解决方法见后面。
尝试:
安装virtualbox驱动:
pkg install emulators/virtualbox-ose-additions
安装好之后按照提示:
启动服务:
# sysrc vboxguest_enable="YES"
# sysrc vboxservice_enable="YES"
将用户放入wheel组:
pw groupmod wheel -m jerry
最后的操作是:
pkg安装了xorg 和xfce4
按照文档一步步做:Chapter 5. The X Window System | FreeBSD Documentation Portal
VirtualBox上尽量用默认配置,有怀疑的地方实验确认。
总结下:
本来FreeBSD下安装Xwindows桌面是很简单方便的事情,这回在VirtualBox虚拟机里颇费了一些周折,主要原因就是:
1 一开始么有专心安装xorg的包
2 设定了VirtualBox里面的桌面共享,估计它影响到了xorg的调试
3 发现虚拟机没法自动关机,shutdown -p now 之后还需手工强制关闭,估计这里有硬盘安全隐患。
另外发现虚拟机的桌面影响速度、操作体验等都劣于实体机。
调试
一次重启后,竟然进入了db调试模式:
KDB:enter:panic
[thread pid 145 tid 100397 ]
stopped at kdb_enter+0x33:movq $0,0x1053392(%rip)
db>
经查,是把启用EFI选项去掉了,再勾回。不管用。
把显卡从VBox SVGA改成Vbox VGA,重启后直接卡在SMBUS这里了。
把显卡改回VMSVGA ,还是进入db模式。
进入单用户模式,先执行fdisk -p 然后执行mount -rw / 使硬盘可以写
实验下来,是mount -uw / 使硬盘可写
然后进入/etc/rc.conf,修改最后加入的两项
# vboxguest_enable="YES"
# vboxservice_enable="YES"
将它们注释掉。重启,ok拉!
总结:进入db的原因可能有2,1是硬盘损坏所以执行fdisk -p修复了。2是/etc/rc.conf最后两句vbox语句导致的。
启动startx报错找不到xinit
pkg install xorg 解决
启动startx报错没有screens显示
(EE)
Fatal server error:
(EE) no screens found(EE)
(EE)
Please consult the The X.Org Foundation support
at http://wiki.x.org
for help.
(EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
看/var/log/Xorg.0.log,显示报错:
[ 452.134] (EE) Screen(s) found, but none have a usable configuration.
[ 452.134] (EE)
Fatal server error:
[ 452.134] (EE) no screens found(EE)
[ 452.134] (EE)
Please consult the The X.Org Foundation support
at http://wiki.x.org
加入服务:
- sysrc hald_enable="YES"
- sysrc dbus_enable="YES"
- service hald start
- service dbus start
奇了怪了,执行service hald start竟然报错:
service hald start
hald does not exist in /etc/rc.d or the local startup
directories (/usr/local/etc/rc.d), or is not executable
那就先不执行这句,也许是版本更新,不需要手工执行了。
Xorg -configure报错Cannot establish any listening sockets
root@fr15:~ # Xorg -configure
_XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed
_XSERVTransMakeAllCOTSServerListeners: server already running
(EE)
Fatal server error:
(EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE)
(EE)
Please consult the The X.Org Foundation support
at http://wiki.x.org
for help.
(EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
(EE)
(EE) Server terminated with error (1). Closing log file.
一直百思不得其解,后来到Virtual Box下关闭掉远程桌面,就OK了!
启动后自动进入xwindows登录界面,但是登录进去之后就退出,又重复出现登录界面
情况是:默认出来的登录界面是无法登录的,但是可以切换到tty,然后使用startx是可以进入xfce4桌面的。
安装这个试试:
pkg install xfce4-screensaver
没起作用。
安装xfce4-wm xfce4-systemload-plugin试试,也么有改进。
看看这两个有没有影响它的?
# lightdm_enable="YES"
# seatd_enable="YES"
lightdm Light Display Manager,是一个全新的、轻量的Linux桌面的桌面显示管理器
seatd也是一个桌面管理器
将它们两个全部注释掉,再重启机器,终于不自动进入窗口登录模式了。就先这样办吧。