Difference between revisions of "XDMCP & VNC"
(UaUlsxkdomgZGt) |
|||
| (5 intermediate revisions by 5 users not shown) | |||
| Line 1: | Line 1: | ||
| − | + | == Setup == | |
| + | === Common === | ||
| + | |||
| + | * Enable XDMCP: | ||
| + | ** For kdm, edit /etc/kde3/kdm/kdmrc and change Xdmcp section to: | ||
| + | <pre> | ||
| + | Enable=true | ||
| + | </pre> | ||
| + | ** For gdm, edit /etc/gdm/gdm.conf and change xdmcp section to: | ||
| + | <pre> | ||
| + | Enable=true | ||
| + | </pre> | ||
| + | |||
| + | * Add the following lines to /etc/services: | ||
| + | <pre> | ||
| + | vnc_1024x768 5901/tcp # VNC (1024x768) | ||
| + | vnc_1280x1024 5902/tcp # VNC (1280x1024) | ||
| + | vnc_1920x1200 5903/tcp # VNC (1920x1200) | ||
| + | </pre> | ||
| + | |||
| + | * You may wish to turn off the local X-server if you're not going to access the machine locally. To do this, comment out the line ''0=Standard device=/dev/console'' in /etc/gdm/gdm.conf | ||
| + | |||
| + | === Feisty === | ||
| + | |||
| + | * Install vnc4server | ||
| + | |||
| + | * Add the following to /etc/xinetd.d/vnc: | ||
| + | <pre> | ||
| + | service vnc_1024x768 | ||
| + | { | ||
| + | disable = no | ||
| + | socket_type = stream | ||
| + | protocol = tcp | ||
| + | wait = no | ||
| + | user = nobody | ||
| + | server = /usr/bin/Xvnc | ||
| + | server_args = -inetd -query localhost -geometry 950x700 -depth 24 -once securitytypes=none | ||
| + | } | ||
| + | |||
| + | service vnc_1280x1024 | ||
| + | { | ||
| + | disable = no | ||
| + | socket_type = stream | ||
| + | protocol = tcp | ||
| + | wait = no | ||
| + | user = nobody | ||
| + | server = /usr/bin/Xvnc | ||
| + | server_args = -inetd -query localhost -geometry 1260x960 -depth 24 -once securitytypes=none | ||
| + | } | ||
| + | |||
| + | service vnc_1920x1200 | ||
| + | { | ||
| + | disable = no | ||
| + | socket_type = stream | ||
| + | protocol = tcp | ||
| + | wait = no | ||
| + | user = nobody | ||
| + | server = /usr/bin/Xvnc | ||
| + | server_args = -inetd -query localhost -geometry 1860x1120 -depth 24 -once securitytypes=none | ||
| + | } | ||
| + | </pre> | ||
| + | Note: To enable persistent sessions (which has the downside of only enabling 1 login per service), prefix '''-inetd''' with ''':'''''n'' where ''n'' is a number beginning at 1 for the first service, and counting up. | ||
| + | |||
| + | * Restart xinetd | ||
| + | |||
| + | === Gutsy === | ||
| + | For some reason, vnc4server doesn't play nicely with gutsy and XDMCP, so instead you need to use vncserver. | ||
| + | |||
| + | * Install vncserver (and make sure vnc4server is not installed) | ||
| + | |||
| + | * Add the following to /etc/xinetd.d/vnc. Note that for some reason Xvnc doesn't work with depths above 16 | ||
| + | <pre> | ||
| + | service vnc_1024x768 | ||
| + | { | ||
| + | disable = no | ||
| + | socket_type = stream | ||
| + | protocol = tcp | ||
| + | wait = no | ||
| + | user = nobody | ||
| + | server = /usr/bin/Xvnc | ||
| + | server_args = -inetd -query localhost -geometry 950x700 -depth 16 -once | ||
| + | } | ||
| + | |||
| + | service vnc_1280x1024 | ||
| + | { | ||
| + | disable = no | ||
| + | socket_type = stream | ||
| + | protocol = tcp | ||
| + | wait = no | ||
| + | user = nobody | ||
| + | server = /usr/bin/Xvnc | ||
| + | server_args = -inetd -query localhost -geometry 1260x960 -depth 16 -once | ||
| + | } | ||
| + | |||
| + | service vnc_1920x1200 | ||
| + | { | ||
| + | disable = no | ||
| + | socket_type = stream | ||
| + | protocol = tcp | ||
| + | wait = no | ||
| + | user = nobody | ||
| + | server = /usr/bin/Xvnc | ||
| + | server_args = -inetd -query localhost -geometry 1860x1120 -depth 16 -once | ||
| + | } | ||
| + | </pre> | ||
| + | Note: To enable persistent sessions (which has the downside of only enabling 1 login per service), prefix '''-inetd''' with ''':'''''n'' where ''n'' is a number beginning at 1 for the first service, and counting up (and probably remove "-once" from args). | ||
| + | |||
| + | * Restart xinetd | ||
| + | |||
| + | === Gutsy amd64 === | ||
| + | Even more unfortunately, vncserver coredumps on amd64 architecture, so we need to install an old version of vnc4server. | ||
| + | |||
| + | * Ensure neither vncserver or vnc4server are installed | ||
| + | * Install ''http://gb.archive.ubuntu.com/ubuntu/pool/universe/v/vnc4/vnc4server_4.1.1+xorg1.0.2-0ubuntu1_amd64.deb'' | ||
| + | * Put vnc4server on hold to stop it being upgraded using: | ||
| + | <pre>sudo aptitude hold vnc4server</pre> | ||
| + | * * Add the following to /etc/xinetd.d/vnc: | ||
| + | <pre> | ||
| + | service vnc_1024x768 | ||
| + | { | ||
| + | disable = no | ||
| + | socket_type = stream | ||
| + | protocol = tcp | ||
| + | wait = no | ||
| + | user = nobody | ||
| + | server = /usr/bin/Xvnc | ||
| + | server_args = -inetd -query localhost -geometry 950x700 -depth 16 -once -fp /usr/share/fonts/X11/misc securitytypes=none | ||
| + | } | ||
| + | |||
| + | service vnc_1280x1024 | ||
| + | { | ||
| + | disable = no | ||
| + | socket_type = stream | ||
| + | protocol = tcp | ||
| + | wait = no | ||
| + | user = nobody | ||
| + | server = /usr/bin/Xvnc | ||
| + | server_args = -inetd -query localhost -geometry 1260x960 -depth 16 -once -fp /usr/share/fonts/X11/misc securitytypes=none | ||
| + | } | ||
| + | |||
| + | service vnc_1920x1200 | ||
| + | { | ||
| + | disable = no | ||
| + | socket_type = stream | ||
| + | protocol = tcp | ||
| + | wait = no | ||
| + | user = nobody | ||
| + | server = /usr/bin/Xvnc | ||
| + | server_args = -inetd -query localhost -geometry 1860x1120 -depth 16 -once -fp /usr/share/fonts/X11/misc securitytypes=none | ||
| + | } | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | === Hardy === | ||
| + | |||
| + | * Install vnc4server | ||
| + | |||
| + | * Add the following to /etc/xinetd.d/vnc: | ||
| + | <pre> | ||
| + | service vnc_1024x768 | ||
| + | { | ||
| + | disable = no | ||
| + | socket_type = stream | ||
| + | protocol = tcp | ||
| + | wait = no | ||
| + | user = nobody | ||
| + | server = /usr/bin/Xvnc | ||
| + | server_args = -inetd -query localhost -geometry 950x700 -depth 24 -once securitytypes=none -extension XFIXES | ||
| + | } | ||
| + | |||
| + | service vnc_1280x1024 | ||
| + | { | ||
| + | disable = no | ||
| + | socket_type = stream | ||
| + | protocol = tcp | ||
| + | wait = no | ||
| + | user = nobody | ||
| + | server = /usr/bin/Xvnc | ||
| + | server_args = -inetd -query localhost -geometry 1260x960 -depth 24 -once securitytypes=none -extension XFIXES | ||
| + | } | ||
| + | |||
| + | service vnc_1920x1200 | ||
| + | { | ||
| + | disable = no | ||
| + | socket_type = stream | ||
| + | protocol = tcp | ||
| + | wait = no | ||
| + | user = nobody | ||
| + | server = /usr/bin/Xvnc | ||
| + | server_args = -inetd -query localhost -geometry 1860x1120 -depth 24 -once securitytypes=none -extension XFIXES | ||
| + | } | ||
| + | </pre> | ||
| + | Note 1: This setup may also work for gutsy (ie. with the addition of "-extension XFIXES"), though I haven't tested it. | ||
| + | |||
| + | Note 2: To enable persistent sessions (which has the downside of only enabling 1 login per service), prefix '''-inetd''' with ''':'''''n'' where ''n'' is a number beginning at 1 for the first service, and counting up. | ||
| + | |||
| + | == Errors == | ||
| + | === Couldn't open RGB_DB '/usr/lib/X11/rgb' === | ||
| + | Add to server_args: '''-co /usr/share/X11/rgb''' | ||
Latest revision as of 19:39, 8 December 2009
Contents
Setup
Common
- Enable XDMCP:
- For kdm, edit /etc/kde3/kdm/kdmrc and change Xdmcp section to:
Enable=true
- For gdm, edit /etc/gdm/gdm.conf and change xdmcp section to:
Enable=true
- Add the following lines to /etc/services:
vnc_1024x768 5901/tcp # VNC (1024x768) vnc_1280x1024 5902/tcp # VNC (1280x1024) vnc_1920x1200 5903/tcp # VNC (1920x1200)
- You may wish to turn off the local X-server if you're not going to access the machine locally. To do this, comment out the line 0=Standard device=/dev/console in /etc/gdm/gdm.conf
Feisty
- Install vnc4server
- Add the following to /etc/xinetd.d/vnc:
service vnc_1024x768
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = nobody
server = /usr/bin/Xvnc
server_args = -inetd -query localhost -geometry 950x700 -depth 24 -once securitytypes=none
}
service vnc_1280x1024
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = nobody
server = /usr/bin/Xvnc
server_args = -inetd -query localhost -geometry 1260x960 -depth 24 -once securitytypes=none
}
service vnc_1920x1200
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = nobody
server = /usr/bin/Xvnc
server_args = -inetd -query localhost -geometry 1860x1120 -depth 24 -once securitytypes=none
}
Note: To enable persistent sessions (which has the downside of only enabling 1 login per service), prefix -inetd with :n where n is a number beginning at 1 for the first service, and counting up.
- Restart xinetd
Gutsy
For some reason, vnc4server doesn't play nicely with gutsy and XDMCP, so instead you need to use vncserver.
- Install vncserver (and make sure vnc4server is not installed)
- Add the following to /etc/xinetd.d/vnc. Note that for some reason Xvnc doesn't work with depths above 16
service vnc_1024x768
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = nobody
server = /usr/bin/Xvnc
server_args = -inetd -query localhost -geometry 950x700 -depth 16 -once
}
service vnc_1280x1024
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = nobody
server = /usr/bin/Xvnc
server_args = -inetd -query localhost -geometry 1260x960 -depth 16 -once
}
service vnc_1920x1200
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = nobody
server = /usr/bin/Xvnc
server_args = -inetd -query localhost -geometry 1860x1120 -depth 16 -once
}
Note: To enable persistent sessions (which has the downside of only enabling 1 login per service), prefix -inetd with :n where n is a number beginning at 1 for the first service, and counting up (and probably remove "-once" from args).
- Restart xinetd
Gutsy amd64
Even more unfortunately, vncserver coredumps on amd64 architecture, so we need to install an old version of vnc4server.
- Ensure neither vncserver or vnc4server are installed
- Install http://gb.archive.ubuntu.com/ubuntu/pool/universe/v/vnc4/vnc4server_4.1.1+xorg1.0.2-0ubuntu1_amd64.deb
- Put vnc4server on hold to stop it being upgraded using:
sudo aptitude hold vnc4server
- * Add the following to /etc/xinetd.d/vnc:
service vnc_1024x768
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = nobody
server = /usr/bin/Xvnc
server_args = -inetd -query localhost -geometry 950x700 -depth 16 -once -fp /usr/share/fonts/X11/misc securitytypes=none
}
service vnc_1280x1024
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = nobody
server = /usr/bin/Xvnc
server_args = -inetd -query localhost -geometry 1260x960 -depth 16 -once -fp /usr/share/fonts/X11/misc securitytypes=none
}
service vnc_1920x1200
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = nobody
server = /usr/bin/Xvnc
server_args = -inetd -query localhost -geometry 1860x1120 -depth 16 -once -fp /usr/share/fonts/X11/misc securitytypes=none
}
Hardy
- Install vnc4server
- Add the following to /etc/xinetd.d/vnc:
service vnc_1024x768
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = nobody
server = /usr/bin/Xvnc
server_args = -inetd -query localhost -geometry 950x700 -depth 24 -once securitytypes=none -extension XFIXES
}
service vnc_1280x1024
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = nobody
server = /usr/bin/Xvnc
server_args = -inetd -query localhost -geometry 1260x960 -depth 24 -once securitytypes=none -extension XFIXES
}
service vnc_1920x1200
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = nobody
server = /usr/bin/Xvnc
server_args = -inetd -query localhost -geometry 1860x1120 -depth 24 -once securitytypes=none -extension XFIXES
}
Note 1: This setup may also work for gutsy (ie. with the addition of "-extension XFIXES"), though I haven't tested it.
Note 2: To enable persistent sessions (which has the downside of only enabling 1 login per service), prefix -inetd with :n where n is a number beginning at 1 for the first service, and counting up.
Errors
Couldn't open RGB_DB '/usr/lib/X11/rgb'
Add to server_args: -co /usr/share/X11/rgb