https://wiki.archlinux.org/api.php?action=feedcontributions&user=Master+ex&feedformat=atomArchWiki - User contributions [en]2024-03-28T12:39:05ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Huawei_E220&diff=294464Huawei E2202014-01-26T03:58:25Z<p>Master ex: Removed Scripting section as http://www.mediafire.com/?l5jtywnmycn file is removed.</p>
<hr />
<div>[[Category:Modems]]<br />
<br />
= Introduction =<br />
Marketed by various telecommunications companies in several countries, the [http://en.wikipedia.org/wiki/Huawei_E220 E220] is a 3.5G HSDPA USB modem used mainly for wireless Internet access via mobile telephony networks. Technically it is a modem, USB and (due to the CDFS format) CD-ROM device. With a kernel version older than 2.6.20, getting Linux to recognize the device as a modem and accessing its functions requires a workaround.<br />
<br />
''"Linux kernel versions prior to 2.6.20 have some problems with it, as the SCSI CDROM fakevolume with drivers for Microsoft systems gets automounted by usbstorage.ko module, preventing serial device /dev/ttyUSB0 from working properly."''<br />
<br />
However, as support for it was added in 2.6.20 via modules ''usb-storage'' and ''usbserial'', getting it to work is as simple as plugging it in and dialling up (the above statement is of no concern to us as we can load and unload modules at will, it was probably meant for pre-packaged GNU and Linux distributions). In fact, using the modem under Linux proves to be more reliable as there are no uncalled-for disconnections. This is probably due to the fact that we are communicating directly with the modem, whereas in Windows or Mac OS X drivers are installed on first run (that is what the storage portion is for) and connection is achieved through a thick software layer every time, leaving room for possible interferences and conflicts.<br />
<br />
= Plugging In =<br />
== Quick Start ==<br />
=== Easy Install using Network Manager ===<br />
If you are using network-manager then this modem should be plug 'n play. I tested using Huawei E270, but since lsusb said that my modem is E220/E270, I assume it is the same. (Note: You can follow these instructions too if lsusb detects your Huawei E180 as E220.)<br />
<br />
The required packages are modemmanager and network-manager-applet from extra. Install them if you haven't.<br />
<br />
Start the networkmanager daemon from rc.conf or manually using /etc/rc.d/networkmanager start. Start the nm-applet if it hasn't started yet. <br />
Make sure the modem is connected; I used a cable with two usb port like the one for an external harddrive. Then, from nm-applet add a Mobile Broadband config via 'Edit Connections...'. Set the config according your network; usually apn, username, and password.<br />
<br />
Activate the connection by choosing it on the Network Manager applet. If it is not showing up, unplug and plug in the modem again to refresh the connection. Now you should see it listed in the Network Manager applet. Click on it and it will try to connect. Once connected, the icon will change. You're good to go then.<br />
<br />
<br />
For ''Vodafone'' brands of this device, you can use [https://aur.archlinux.org/packages.php?ID=32986 vodafone-mccd] which is the [http://forge.vodafonebetavine.net/projects/vodafonemobilec/ Vodafone Mobile Connect Card Driver for Linux]. The official name is very long, yes.<br />
<br />
=== Bare Naked ===<br />
You can just try ''Plug 'n Dial'' first to see if it works (I will give you free beer if it does!). After hooking up to the USB port (some say an upright position is best; let it hang over the edge of the desk), check to make sure it is detected.<br />
$ cat /proc/bus/usb/devices<br />
You should see '''Huawei''' somewhere there. If not, you are on your own. The ''usb-storage'' and/or ''usbserial'' modules must be loaded, whether manually or by [[HAL]] is up to you and/or your system.<br />
# modprobe usb-storage<br />
# modprobe usbserial<br />
$ sleep 6 # the modem may take a while to initialize<br />
$ ls /dev/ttyUSB*<br />
You should see three renditions of '''ttyUSB'''. If not, we will get to that later. This ''is'' a "Quick Start" after all, no? The ports:<br />
* ttyUSB0 - Modem<br />
* ttyUSB1 - USB?<br />
* ttyUSB2 - Nothing<br />
Now you need a dialler. Most convenient of all would be [[wvdial]], so install it. You should have ''ppp'' already, if not just pull them both in.<br />
# pacman -S wvdial ppp<br />
<br />
=== Configure n' Dial ===<br />
Most SIM and data services provided together with the device do not require special settings and work with similar configuration to get connected. They are almost "Plug n' Play", a special trait of Linux. Edit ''/etc/wvdial.conf'' and use something like the following:<br />
[Dialer hsdpa]<br />
Phone = *99***16#<br />
Username = 65<br />
Password = user123<br />
Stupid Mode = 1<br />
Dial Command = ATDT<br />
Modem = /dev/ttyUSB0<br />
Baud = 460800<br />
Init2 = ATZ<br />
Init3 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0<br />
ISDN = 0<br />
Modem Type = Analog Modem<br />
<br />
For providers that do require a specific Init string and user/password combination, [https://aur.archlinux.org/packages.php?ID=29534 mkwvconf-git] in AUR can help generate a wvdial configuration (based on the [https://aur.archlinux.org/packages.php?ID=29530 mobile-broadband-provider-info-git] package).<br />
<br />
=== If using PIN code add this before Init2 ===<br />
Init1 = AT+CPIN=9999<br />
where 9999 is changed for your PIN-code<br />
<br />
There is an example [http://www.insync.za.net/3g_docs/wvdial.conf here] by a "Linux Guru". Then load the PPP module.<br />
# modprobe ppp-generic<br />
You can now connect immediately, but probably only as root, which is '''not''' a disadvantage.<br />
# wvdial hsdpa<br />
<br />
== Slow Start ==<br />
<br />
''Edit: This section is nullified if you have UDEV and HAL workarounds, or a script, or a package from AUR.''<br><br />
<br />
So why then? Well, for some reason those of us on newer kernels still have to ride the old ways. In some cases, all that is needed to be done is to remove the ''usb-storage'' module first, then load ''usbserial'' with the device IDs. The first ''cat'' command on this page will have that information, while ''lsusb'' is an alternative. Anyhow, the IDs are the same for almost all E220s, so you can copy wholesale.<br />
# modprobe -r usb-storage usbserial<br />
# modprobe usbserial vendor=0x12d1 product=0x1003<br />
In other cases, where the ''option'' module gets autoloaded for use by ''usbserial'', you just have to blacklist it in [[rc.conf]]:<br />
MOD_BLACKLIST=(option) <br />
When you cannot salvage anything from this either, you have to ''go Gentoo'' and compile something. Do not worry, it is only a script and we do things like this almost everyday, albeit in ''bash''.<br />
$ mkdir ~/huawei-e220 && cd ~/huawei-e220<br />
$ wget http://www.kanoistika.sk/bobovsky/archiv/umts/huaweiAktBbo.c<br />
$ gcc -lusb -o e220 *.c<br />
# ./e220<br />
This gets around the kernel to recognize the modem functionalities of the device. You can now carry on and connect using the above methods. If you had to follow this step, you will always need the script unless you set ''udev'' rules and such (package link below). So move it to a global ''PATH''.<br />
$ cd ~/huawei-e220<br />
# mv e220 /usr/bin/e220<br />
Now it is easier.<br />
<br />
= Extras =<br />
''Note: It seems some people get it to work using ttyUSB1, which should not be the case, but rest assured that at least on recent kernels and systems ttyUSB0 is the correct port to dial with.''<br />
<br />
== Port Testing ==<br />
To check if the device is functioning alright on a particular serial port, there is a program for probing serial devices.<br />
# pacman -S minicom<br />
Now run it.<br />
# minicom -s<br />
Change the serial port to ''/dev/ttyUSB1'' and exit from the page, this will open the main program. When it initializes the modem, issue the command ''AT''. The answer should be ''OK'', which means the modem is working well on that port.<br />
<br />
= Troubleshooting =<br />
<br />
== Hal ==<br />
<br />
The hald daemon detects the SCSI CD-ROM drive and because of that it will try to change the modem to storage mode. To prevent this you need to create a Hal policy so it ignores the device.<br />
<br />
Create a file the /usr/share/hal/fdi/preprobe/20thirdparty/10-huawei-e220.fdi and putt this in it<br />
<?xml version="1.0" encoding="UTF-8"?><br />
<deviceinfo version="0.2"><br />
<device><br />
<match key="usb.vendor_id" int="0x12d1"> <!-- Huawei --><br />
<match key="usb.product_id" int="0x1003"> <!-- E220 --><br />
<merge key="info.ignore" type="bool">true</merge><br />
</match><br />
</match><br />
</device><br />
</deviceinfo><br />
With this, for my experience, only two USB serial ports are created and them vodafone-mccd doesn't recognize correctly the modem but you can connect correctly with wvdial.<br />
<br />
== Route ==<br />
<br />
If problem with connection through ppp0 one might need to add the network manually:<br />
# ip route add ip route add 10.0.0.0/8 dev ppp0<br />
if the remote adress starts on 10.<br />
<br />
Then you add default route and dns as usually:<br />
# ip route add default via 10.x.x.x<br />
(change to remote adress recieved and viewed with command {{ic|ip a}})<br />
<br />
= Links =<br />
http://wwwu.uni-klu.ac.at/agebhard/HuaweiE220/<br><br />
http://oozie.fm.interia.pl/pro/huawei-e220/<br><br />
http://mybroadband.co.za/vb/showthread.php?t=21726<br><br />
[[USB 3G Modem]]</div>Master exhttps://wiki.archlinux.org/index.php?title=Xorg_multiseat&diff=170765Xorg multiseat2011-11-22T01:32:28Z<p>Master ex: Added XDM part</p>
<hr />
<div>[[Category:X Server (English)]]<br />
<br />
==Wanted!==<br />
<br />
This page shows an example for the KDE Desktop Manager. How to do this GDM (GNOME Display Manager) or XDM (X Display Manager) should be added.<br />
<br />
==What is multiseat?==<br />
<br />
Multiseat is a certain setup where multiple users work simultaneously on one computer. This is achieved by having two monitors, two keyboards and two mice. The advantages are quite obvious:<br />
* Less power consumption (only one computer)<br />
* Less hardware to purchase<br />
* All the cool kids do it<br />
<br />
==Requirements==<br />
<br />
===Keyboards and mice===<br />
<br />
Any standard PS/2 or USB keyboards will suffice. Same thing for mice.<br />
<br />
===Graphics hardware===<br />
<br />
For the best possible result you'll need two graphics cards. I used an nVidia FX5500 AGP and an nVidia 6200 PCI. If you look around a bit you can certainly find new and decent PCI graphics card for a soft price.<br />
<br />
It is possible to use only one videocard which has dual heads (like most nvidia cards will have), but this has some limitations: you have to use Xephyr on the second monitor which seems quite a messy solution from what I've read, and for optimal usage both screens need the same resolution.<br />
<br />
If you have two pci-express slots, take advantage of them! That way you'll even be able to play two games at the same time. (PCI is too slow to play comfortably)<br />
<br />
===Processors and memory===<br />
<br />
If you really are working with two users on the same computer, I'd at least recommend a dual-core processor and plenty of RAM. A fast hard drive (10.000 RPM or higher) is also recommended for comfortable use.<br />
<br />
===Software===<br />
<br />
You'll need Xorg with the drivers for your graphics card (according to some sources, the closed source nvidia driver works better than the open source nv driver for this, I have t tested this myself) and the evdev (xf86-input-evdev) driver. That's all. All this can be found in the Arch Linux core and extra repositories.<br />
<br />
===Some X knowledge===<br />
<br />
If you know how X works this will be a lot easier. Before you start, I recommend generating a clean configuration with xorgconfig that works with a single screen. Read through this xorg configuration and make yourself familiar. And as usual the manpages will provide you with most of the answers.<br />
<br />
==Definitions==<br />
<br />
For this article to be clear, I'll be using the following definitions:<br />
* screen: A screen is something Xorg can display its stuff on. A screen has a monitor and a graphics card assigned to it.<br />
* monitor: A physical monitor like the one you're now sitting in front of.<br />
* server layout: a definition of which screen, keyboard and mouse to use.<br />
* seat: A workplace with a physical monitor, physical keyboard and physical mouse.<br />
<br />
==Tips and tricks==<br />
<br />
* Set up ssh on your computer, so you can ssh to the machine from another computer (such as a laptop). This is very useful because you'll probably run into X not responding anymore or not giving you picture at all.<br />
* Finding out which keyboard and mouse is which: open a terminal and use cat to find out. For example, {{Codeline|cat /dev/input/mouse1}}. If you then move your mouse and you see all weird things happening than that is the mouse you're moving. Same goes for keyboards, which are called eventN.<br />
* Try a basic configuration first. Don't start with the fancy stuff yet, get a very basic Xorg working first.<br />
* Leave your {{Filename|xorg.conf}} alone and create a new file, called {{Filename|xorg.conf.multiseat}} in {{Filename|/etc/X11}} to store your new multiseat configuration. After this configuration is working you can overwrite the {{Filename|xorg.conf}} file with your new {{Filename|xorg.conf.multiseat}}.<br />
* Create a backup of all relevant configuration files. What do you mean you'll skip this one?<br />
* Take a look at the full configuration I used at the end of this article before you start.<br />
<br />
==About evdev==<br />
<br />
evdev is an Xorg driver which can make use of the kernel event devices, which you can find in {{Filename|/dev/input}}.<br />
<br />
==Setting up Xorg==<br />
<br />
The logic behind this is that you have two server layouts, each assigned with their own keyboard, mouse, video card and monitor. <br />
<br />
===The basics===<br />
<br />
First of all we'll set up the basics for xorg.<br />
<br />
<pre><br />
Section "Module"<br />
Load "dbe" # Double buffer extension<br />
<br />
SubSection "extmod"<br />
Option "omit xfree86-dga" # do not initialize the DGA extension<br />
EndSubSection<br />
<br />
Load "type1"<br />
Load "speedo"<br />
Load "freetype"<br />
Load "glx"<br />
EndSection<br />
<br />
<br />
Section "Files"<br />
RgbPath "/usr/share/X11/rgb"<br />
<br />
FontPath "/usr/share/fonts/misc"<br />
FontPath "/usr/share/fonts/75dpi"<br />
FontPath "/usr/share/fonts/100dpi"<br />
FontPath "/usr/share/fonts/TTF"<br />
FontPath "/usr/share/fonts/Type1"<br />
FontPath "/usr/share/fonts/msfonts"<br />
FontPath "/usr/share/fonts/misc2"<br />
FontPath "/usr/share/fonts/local"<br />
FontPath "/usr/local/share/fonts"<br />
EndSection<br />
<br />
Section "ServerFlags"<br />
# Disable ctrl alt backspace<br />
# Option "DontZap"<br />
<br />
# Xorg will otherwise not start if it can't find a mouse to use.<br />
Option "AllowMouseOpenFail" "true"<br />
<br />
# Disable xinerama<br />
Option "Xinerama" "0"<br />
EndSection<br />
</pre><br />
<br />
===Defining available input devices===<br />
<br />
This part of the configuration tells Xorg which input devices it has available. Input devices are keyboards and mice, but can also be, for example, touchscreens and pens.<br />
<br />
This section defines my first keyboard, called keyboard0. As you can seen it uses the evdev driver. {{Filename|/dev/input/event1}} corresponds with the keyboard connected to the PS/2 port of my computer. Create a section like this for each keyboard you have. Don't forget to modify the identifier of course. Keep the identifier simple and match it with the other names. This keyboard0 will be used for screen0 together with mouse0.<br />
<br />
<pre><br />
Section "InputDevice"<br />
Identifier "keyboard0"<br />
Driver "evdev"<br />
Option "Device" "/dev/input/event1"<br />
Option "XkbModel" "evdev"<br />
Option "XkbLayout" "be"<br />
EndSection<br />
</pre><br />
<br />
This section defines my first mouse, called mouse0. This uses the regular mouse driver. /dev/input/mouse2 corresponds with the mouse connected to the PS/2 port of my computer. Create a section like this for each mouse you have.<br />
<br />
<pre><br />
Section "InputDevice"<br />
Identifier "mouse0"<br />
Driver "mouse"<br />
Option "Protocol" "IMPS/2"<br />
Option "Device" "/dev/input/mouse2"<br />
EndSection<br />
</pre><br />
<br />
===Graphics card===<br />
<br />
Now we'll set up the graphics card for each screen.<br />
<br />
<pre><br />
Section "Device"<br />
Identifier "nvidia0"<br />
Driver "nvidia"<br />
Option "NoLogo" "1" # Remove nvidia branding at startup<br />
BusId "PCI:1:0:0"<br />
EndSection<br />
</pre><br />
<br />
This section defines my first graphics card, called nvidia0. This uses the closed source nvidia driver. Take a close look at the BusID. This option specifies which hardware card to use. You can find out the BusId's with lspci. However, you'll soon find out this doesn't always match. That's because lspci displays the device address in hexadecimal form. Xorg however uses decimal form. So you'll need to convert your address from hexadecimal form to decimal. Thus a device address of 0:0a:0 in lspci would become 0:10:0 in {{Filename|xorg.conf}}.<br />
<br />
Create a section like this for every graphics card you have.<br />
<br />
===Screens===<br />
<br />
This section defines my first screen, called screen0. Pay close attention to the "monitor" option. For easy recognition I called it the model of my monitor.<br />
<br />
<pre><br />
Section "Screen"<br />
Identifier "screen0"<br />
Device "nvidia0"<br />
Monitor "l1730s"<br />
DefaultDepth 24<br />
Option "DPI" "100x100"<br />
<br />
Subsection "Display"<br />
Depth 24<br />
Modes "1280x1024" "1024x768"<br />
EndSubsection<br />
<br />
EndSection<br />
</pre><br />
<br />
Create a section like this for every screen you have.<br />
<br />
===Monitors===<br />
<br />
This section defines my first monitor, l1730s. Pay close attention to the identifier.<br />
<br />
<pre><br />
Section "Monitor"<br />
Identifier "l1730s"<br />
HorizSync 30-93<br />
VertRefresh 60<br />
Option "dpms"<br />
EndSection<br />
</pre><br />
<br />
Create section like this for every monitor you have.<br />
<br />
===Serverlayout===<br />
<br />
Here's the fun stuff. This is how everything is added up. This is my first seat, called seat0. Here I tell Xorg for the server layout called "seat0" to use my screen0, which is attached to nvidia0, using keyboard0 and mouse0.<br />
<br />
The AutoAddDevices option is now needed to keep HAL from automatically adding all your input devices to all the X servers.<br />
<br />
<pre><br />
Section "ServerLayout"<br />
Identifier "seat0"<br />
Screen "screen0" 0 0<br />
InputDevice "mouse0" "CorePointer"<br />
InputDevice "keyboard0" "CoreKeyboard"<br />
Option "AutoAddDevices" "off"<br />
EndSection<br />
</pre><br />
<br />
Create a section like this for every seat you have with their respective keyboards, mice and screens.<br />
<br />
==Testing==<br />
Before we start modifying our login manager, we'll first start with testing out the individual seats. If these are working, then we're good to go.<br />
<br />
I've used twm (tiny window manager) to test out if my seats work, but there's no reason you can't use KDE, gnome, or any other desktop environment or window manager. I've used this in my {{Filename|~/.xinitrc}}:<br />
exec twm<br />
<br />
Use the following command to test out an individual seat:<br />
startx -- -layout seat0 -config xorg.conf.multiseat<br />
<br />
Do this for every seat you have. If they are all working correctly and the keyboard/mouse combination matches, then congratulations! You are almost finished! In case you are wondering why I didn't you use the full path to my new configuration file, that's because X doesn't allow that when running as non-root. It will search for xorg.conf.multiseat relative to {{Filename|/etc/X11}}.<br />
<br />
==Setting up the loginmanager==<br />
<br />
===For KDM (KDE's Desktop Manager)===<br />
<br />
Open {{Filename|/usr/share/config/kdm/kdmrc}} and set the following variables:<br />
<br />
<pre><br />
StaticServers=:0,:1 (in case of two seats, if you have three this would become :0,:1,:2. And so forth)<br />
ReserveServers=:2,:3 (you can define here as many as you want, but this should always be the highest seat + 1)<br />
</pre><br />
Next you'll need to add an [X-:n-Core] for each seat (where n = the screen)<br />
<pre><br />
[X-:0-Core]<br />
ServerArgsLocal=-nolisten tcp -layout seat0 -sharevts -novtswitch<br />
</pre><br />
<br />
Add section like this for every seat you have, and do not forget to change the :0 and the -layout seat0.<br />
<br />
===For GDM (Gnome's Desktop Manager)===<br />
{{note|The following will work with GDM 2.20 but not with newer versions of GDM. GDM 2.20 is in AUR.}}<br />
<br />
Open {{Filename|/etc/gdm/custom.conf}} and set the following variables (This sample demos two seats):<br />
<pre><br />
[servers]<br />
0=Standard0<br />
1=Standard1<br />
<br />
[server-Standard0]<br />
name=Standard server<br />
command=/usr/bin/X -nolisten tcp -novtswitch -sharevts -r -config xorg.conf.multiseat<br />
-layout seat0<br />
flexible=true<br />
<br />
[server-Standard1]<br />
name=Standard server<br />
command=/usr/bin/X -nolisten tcp -novtswitch -sharevts -r -config xorg.conf.multiseat<br />
-layout seat1<br />
flexible=true<br />
</pre><br />
<br />
===For XDM (X Display Manager)===<br />
<br />
Open {{Filename|/etc/X11/xdm/Xservers}} and set the following variables (This sample demos two seats):<br />
<br />
<pre><br />
:0 local /usr/bin/X :0 vt07 -nolisten tcp -sharevts -novtswitch -layout seat0 -config xorg.conf.multiseat<br />
:1 local /usr/bin/X :1 vt08 -nolisten tcp -sharevts -novtswitch -layout seat1 -config xorg.conf.multiseat<br />
</pre><br />
<br />
Also if you use the Archlinux theme edit {{Filename|/etc/X11/xdm/xdm-config}} for every screen:<br />
<br />
<pre><br />
DisplayManager._0.setup: /etc/X11/xdm/arch-xdm/Xsetup<br />
DisplayManager._0.startup: /etc/X11/xdm/arch-xdm/Xstartup<br />
DisplayManager._0.reset: /etc/X11/xdm/arch-xdm/Xreset<br />
DisplayManager._1.setup: /etc/X11/xdm/arch-xdm/Xsetup<br />
DisplayManager._1.startup: /etc/X11/xdm/arch-xdm/Xstartup<br />
DisplayManager._1.reset: /etc/X11/xdm/arch-xdm/Xreset<br />
</pre><br />
<br />
==Troubleshooting==<br />
<br />
===My windows key doesn't work anymore===<br />
<br />
Put this in [[Execute commands after X start|a startup file]]:<br />
xmodmap -e "add Mod4 = Super_L Super_R"<br />
<br />
===Unreliable behaviour (black picture without cursor)===<br />
<br />
If everything seems to be set up correctly, but for some reason you always get a black picture without a cursor, try setting the first initialized card in the BIOS to be the PCI card one.<br />
<br />
===Little black boxes/dots on the desktop===<br />
<br />
This seems to be caused by the linux kernel framebuffer. Disable the framebuffer and they should be gone.<br />
<br />
===The Ctrl-Alt-Fx, Alt-Fx keys mess up with virtual terminals===<br />
<br />
(Oct 2010) I follows this guide and everything works, except for Atl-F1, Atl-F2,... mess things up. Then I follow this guide https://help.ubuntu.com/community/MultiseatX (read the part for Ubuntu 10.04):<br />
<br />
<pre><br />
# cd /usr/bin<br />
# ln -s X X0<br />
# ln -s X X1<br />
</pre><br />
<br />
Then fix in the '''/usr/share/config/kdm/kdmrc''' as follow<br />
<br />
<pre><br />
[General]<br />
ConsoleTTYs=tty1,tty2,tty3,tty4,tty5,tty6<br />
ServerVTs=7,8<br />
StaticServers=:0,:1<br />
ReserveServers=:2,:3<br />
...<br />
<br />
[X-:0-Core]<br />
ServerVT=8<br />
ServerCmd=/usr/bin/X1<br />
ServerArgsLocal=-nolisten tcp -sharevts -novtswitch -keeptty -layout Seat1 -isolateDevice PCI:1:0:0<br />
<br />
[X-:1-Core]<br />
ServerVT=7<br />
ServerCmd=/usr/bin/X0<br />
ServerArgsLocal=-nolisten tcp -novtswitch -keeptty -layout Seat0 -isolateDevice PCI:0:2:0<br />
...<br />
</pre><br />
<br />
It works for my computer: one on-board Intel card (xf86-video-intel driver), and one Nvidia card (xf86-video-nouveau driver). You can check if the parameters are passed correctly by:<br />
<br />
<pre><br />
$ ps aux | grep 'PCI' | grep -Ev 'grep'<br />
root 16993 1.6 1.3 32900 26772 ? S 08:09 0:19 /usr/bin/X0 :1 vt7 -nolisten tcp -novtswitch -keeptty -layout Seat0 -isolateDevice PCI:0:2:0 -auth /var/run/xauth/A:1-ES6CCb<br />
root 17124 5.9 0.5 18996 11980 ? S 08:09 1:09 /usr/bin/X1 :0 vt8 -nolisten tcp -sharevts -novtswitch -keeptty -layout Seat1 -isolateDevice PCI:1:0:0 -auth /var/run/xauth/A:0-Wgiyza<br />
<br />
</pre><br />
<br />
The '''ServerVT=7''', '''ServerVT=8''' would be pass to as '''vt7''', '''vt8'''<br />
<br />
==Final configuration==<br />
<br />
===/etc/X11/xorg.conf===<br />
<br />
This is my full xorg.conf with multiseat that works:<br />
<pre><br />
Section "Module"<br />
Load "dbe"<br />
<br />
SubSection "extmod"<br />
Option "omit xfree86-dga"<br />
EndSubSection<br />
<br />
Load "type1"<br />
Load "speedo"<br />
Load "freetype"<br />
Load "glx"<br />
EndSection<br />
<br />
<br />
Section "Files"<br />
RgbPath "/usr/share/X11/rgb"<br />
<br />
FontPath "/usr/share/fonts/misc"<br />
FontPath "/usr/share/fonts/75dpi"<br />
FontPath "/usr/share/fonts/100dpi"<br />
FontPath "/usr/share/fonts/TTF"<br />
FontPath "/usr/share/fonts/Type1"<br />
FontPath "/usr/share/fonts/msfonts"<br />
FontPath "/usr/share/fonts/misc2"<br />
FontPath "/usr/share/fonts/local"<br />
FontPath "/usr/local/share/fonts"<br />
EndSection<br />
<br />
<br />
Section "ServerFlags"<br />
# Option "DontZap"<br />
Option "AllowMouseOpenFail" "true"<br />
# Option "DefaultServerLayout" "alltogether"<br />
Option "Xinerama" "0"<br />
EndSection<br />
<br />
Section "InputDevice"<br />
Identifier "keyboard0"<br />
Driver "evdev"<br />
Option "Device" "/dev/input/event1"<br />
Option "XkbModel" "evdev"<br />
Option "XkbLayout" "be"<br />
EndSection<br />
<br />
Section "InputDevice"<br />
Identifier "keyboard1"<br />
Driver "evdev"<br />
Option "Device" "/dev/input/event5"<br />
Option "XkbModel" "evdev"<br />
Option "XkbLayout" "be"<br />
EndSection<br />
<br />
<br />
Section "InputDevice"<br />
Identifier "mouse0"<br />
Driver "mouse"<br />
Option "Protocol" "IMPS/2" # Auto detect<br />
Option "Device" "/dev/input/mouse2"<br />
Option "ZAxisMapping" "4 5"<br />
EndSection<br />
<br />
Section "InputDevice"<br />
Identifier "mouse1"<br />
Driver "mouse"<br />
Option "Protocol" "IMPS/2"<br />
Option "Device" "/dev/input/mouse1"<br />
EndSection<br />
<br />
<br />
Section "Device"<br />
Identifier "nvidia0"<br />
Driver "nvidia"<br />
Option "RenderAccel" "true"<br />
Option "TripleBuffer" "True"<br />
Option "NoLogo" "1"<br />
BusId "PCI:1:0:0"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "nvidia1"<br />
Driver "nvidia"<br />
Option "RenderAccel" "true"<br />
Option "TripleBuffer" "True"<br />
Option "NoLogo" "1"<br />
BusId "PCI:0:10:0"<br />
EndSection<br />
<br />
<br />
Section "Screen"<br />
Identifier "screen0"<br />
Device "nvidia0"<br />
Monitor "l1730s"<br />
DefaultDepth 24<br />
Option "DPI" "100x100"<br />
<br />
Subsection "Display"<br />
Depth 24<br />
Modes "1280x1024" "1024x768"<br />
EndSubsection<br />
<br />
EndSection<br />
<br />
Section "Screen"<br />
Identifier "screen1"<br />
Device "nvidia1"<br />
Monitor "cpdm151"<br />
DefaultDepth 24<br />
Option "DPI" "100x100"<br />
<br />
Subsection "Display"<br />
Depth 24<br />
Modes "1024x768" "800x600"<br />
EndSubsection<br />
<br />
EndSection<br />
<br />
Section "ServerLayout"<br />
Identifier "seat0"<br />
Screen "screen0" 0 0<br />
InputDevice "mouse0" "CorePointer"<br />
InputDevice "keyboard0" "CoreKeyboard"<br />
Option "AutoAddDevices" "off"<br />
EndSection<br />
<br />
Section "ServerLayout"<br />
Identifier "seat1"<br />
Screen "screen1" 0 0<br />
InputDevice "mouse1" "CorePointer"<br />
InputDevice "keyboard1" "CoreKeyboard"<br />
Option "AutoAddDevices" "off"<br />
EndSection<br />
<br />
Section "Extensions"<br />
Option "Composite" "Disable"<br />
Option "RENDER" "Enable"<br />
EndSection<br />
<br />
Section "Monitor"<br />
Identifier "l1730s"<br />
HorizSync 30-93<br />
VertRefresh 60<br />
Option "dpms"<br />
EndSection<br />
<br />
Section "Monitor"<br />
Identifier "cpdm151"<br />
Option "dpms"<br />
HorizSync 30-61<br />
VertRefresh 60<br />
EndSection<br />
</pre><br />
<br />
===/opt/kde/share/config/kdm/kdmrc===<br />
<br />
This is my kdmrc:<br />
<br />
<pre><br />
[General]<br />
ConfigVersion=2.3<br />
ConsoleTTYs=vc/1,vc/2,vc/3,vc/4,vc/5,vc/6<br />
PidFile=/var/run/kdm.pid<br />
ReserveServers=:2,:3<br />
ServerVTs=-7<br />
StaticServers=:0,:1<br />
<br />
[Shutdown]<br />
BootManager=Grub<br />
HaltCmd=/sbin/halt<br />
RebootCmd=/sbin/reboot<br />
<br />
[X-*-Core]<br />
AllowNullPasswd=false<br />
AllowRootLogin=false<br />
AllowShutdown=Root<br />
Authorize=true<br />
AutoReLogin=false<br />
ClientLogFile=.xsession-errors-%s<br />
Reset=/opt/kde/share/config/kdm/Xreset<br />
Resources=/opt/kde/share/config/kdm/Xresources<br />
Session=/opt/kde/share/config/kdm/Xsession<br />
SessionsDirs=/etc/X11/sessions,/usr/share/xsessions,/opt/kde/share/apps/kdm/sessions<br />
Setup=/opt/kde/share/config/kdm/Xsetup<br />
Startup=/opt/kde/share/config/kdm/Xstartup<br />
<br />
[X-*-Greeter]<br />
AllowConsole=true<br />
AntiAliasing=true<br />
AuthComplain=true<br />
BackgroundCfg=/opt/kde/share/config/kdm/backgroundrc<br />
ColorScheme=<br />
DefaultUser=<br />
EchoMode=OneStar<br />
FaceSource=PreferUser<br />
FailFont=Tahoma,11,-1,5,75,0,0,0,0,0<br />
FocusPasswd=false<br />
ForgingSeed=1097313140<br />
GUIStyle=<br />
GreetFont=Tahoma,11,-1,5,75,0,0,0,0,0<br />
GreetString=Arch Linux %r (%h)<br />
GreeterPos=50,50<br />
HiddenUsers=root<br />
Language=en_US<br />
LogoArea=None<br />
LogoPixmap=<br />
MaxShowUID=65000<br />
MinShowUID=500<br />
PreselectUser=None<br />
SelectedUsers=<br />
ShowUsers=NotHidden<br />
SortUsers=true<br />
StdFont=Tahoma,11,-1,5,50,0,0,0,0,0<br />
UseBackground=false<br />
UserCompletion=false<br />
UserList=true<br />
<br />
[X-:*-Core]<br />
AllowNullPasswd=true<br />
AllowRootLogin=true<br />
AllowShutdown=All<br />
NoPassEnable=false<br />
NoPassUsers=<br />
<br />
[X-:*-Greeter]<br />
AllowClose=true<br />
DefaultUser=glenn<br />
FocusPasswd=true<br />
LoginMode=DefaultLocal<br />
PreselectUser=Previous<br />
<br />
[X-:0-Core]<br />
AutoLoginAgain=false<br />
AutoLoginDelay=0<br />
AutoLoginEnable=false<br />
AutoLoginLocked=false<br />
AutoLoginUser=glenn<br />
ClientLogFile=.xsession-errors<br />
ServerArgsLocal=-nolisten tcp -layout seat0 -sharevts -novtswitch <br />
<br />
[X-:1-Core]<br />
ServerArgsLocal=-nolisten tcp -layout seat1 -sharevts -novtswitch <br />
<br />
[Xdmcp]<br />
Enable=false<br />
Willing=/opt/kde/share/config/kdm/Xwilling<br />
Xaccess=/opt/kde/share/config/kdm/Xaccess<br />
</pre></div>Master exhttps://wiki.archlinux.org/index.php?title=Install_Arch_Linux_on_a_removable_medium&diff=140659Install Arch Linux on a removable medium2011-05-09T14:34:01Z<p>Master ex: Added "Putting installation media on USB key" to See Also Section</p>
<hr />
<div>[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
{{i18n|Installing Arch Linux on a USB key}}<br />
<br />
This page discusses how to perform a regular Arch installation onto a USB key (or "flash drive"). The result will be a system that will be updated through normal use. Consider whether you're instead interested in [[Putting installation media on a USB key]].<br />
<br />
== Grab a big enough USB key ==<br />
If installing KDE and a large amount of applications, 3 GiB is the recommended minimum. GNOME and Xfce4, along with a typical set of packages for a desktop (GIMP, Pidgin, OpenOffice, Firefox, flashplugin) can be installed on a 2 GiB stick, leaving a small amount of room for user data.<br />
<br />
== Grab CD ==<br />
An Arch Linux CD can be used to install Arch onto the USB key, via booting the CD and installing using the regular method. Or, if you have another linux computer available (it needs not be Arch), you can follow the instructions to [[Install_from_Existing_Linux|install from existing linux]], and then skip to the configuration section.<br />
<br />
== Boot == <br />
It may be necessary to boot with the arch-noscsi kernel, if the usb-storage module gives errors when loaded with the standard kernel. After the system has booted, modprobe sd_mod and usb_storage (There are reports that the 7.2 CD contains no sd_mod; simply omit loading this module, as you can safely proceed without it). The USB key will appear in a few moments, after the device has settled. dmesg will show a device scan once the device has settled:<br />
<br />
usbcore: registered new interface driver usb-storage<br />
usb-storage: device found at 4<br />
usb-storage: waiting for device to settle before scanning<br />
USB Mass Storage support registered.<br />
scsi 6:0:0:0: Direct-Access Generic STORAGE DEVICE 9407 PQ: 0 ANSI: 0<br />
sd 6:0:0:0: [sdc] 3994624 512-byte hardware sectors (2045 MB)<br />
sd 6:0:0:0: [sdc] Write Protect is off<br />
sd 6:0:0:0: [sdc] Mode Sense: 03 00 00 00<br />
sd 6:0:0:0: [sdc] Assuming drive cache: write through<br />
sd 6:0:0:0: [sdc] 3994624 512-byte hardware sectors (2045 MB)<br />
sd 6:0:0:0: [sdc] Write Protect is off<br />
sd 6:0:0:0: [sdc] Mode Sense: 03 00 00 00<br />
sd 6:0:0:0: [sdc] Assuming drive cache: write through<br />
sdc: sdc1<br />
sd 6:0:0:0: [sdc] Attached SCSI removable disk<br />
sd 6:0:0:0: Attached scsi generic sg3 type 0<br />
usb-storage: device scan complete<br />
<br />
It is the sdX: sdXY line that is important, as it shows the device name (in this case, sdc) and the partitions available on it (in this case, one, sdc1), if any.<br />
<br />
== Installation ==<br />
<br />
Launch the installer (/arch/setup). The setup process can be done normally, with only a few pointers:<br />
<br />
* It is best to manually partition the drive, as the auto partition may not work, and will create unnecessary partitions.<br />
* If cfdisk fails with "Partition ends in the final partial cylinder" fatal error, the only way to proceed is to kill all partitions on the drive. Open another terminal (Alt+F2), type fdisk /dev/sdX (where sdX is your usb drive), print partition table (p), check that it's ok, delete it (d) and write changes (w). Now return to cfdisk.<br />
* It is highly recommended to review the [http://wiki.archlinux.org/index.php/SSD#Tips_for_Minimizing_SSD_Read.2FWrites Tips for Minimizing SSD Read/Writes] on the [[SSD]] wiki article prior to selecting a filesystem. To sum up, ext4 with a journal should be fine. Recognize that flash has a limited number of writes, and a journaling file system will take some of these as the journal is updated. For this same reason, it is best to forgo a swap partition. Note that this does not affect installing onto a USB hard drive.<br />
* When it asks you whether you want USB boot support, choose ''yes''.<br />
<br />
== Configuration ==<br />
* Make sure that /etc/fstab includes the correct partition information for /, and for any other partitions on the USB key. Keep in mind the setup of the target machine when putting in the device names, as they may be different from the machine you are using for the installation. Example: if the installation machine has one hard drive, your USB key will likely be sdb. The target machine, however, may have no hard drives, in which case your USB key will likely be sda.<br />
<br />
* menu.lst, the Grub configuration file, should be edited to (loosely) match the following, replacing sda1 with the partition of the key on the target machine (note that, as grub is installed on the USB key, the key will always be hd0,0).<br />
<br />
root (hd0,0)<br />
kernel /boot/vmlinuz26 root=/dev/sda1 ro vga=773<br />
initrd /boot/kernel26.img<br />
<br />
* Regenerate the initrd image, kernel26.img. Edit /etc/mkinitcpio.conf, changing the hooks to include (at a minimum): "base udev usb ide filesystems" ('''''Note:''' if using the 7.2 CD, and installing from the CD, you will have mkinitrd instead of mkinitcpio. During the configuration, you will be asked to edit mkinitrd.conf; simply change REMOVE_USB=1 to REMOVE_USB=0 and ignore the following command''). 'usb' should go between 'udev' and 'autodetect'. Then rebuild the image by issuing:<br />
# mkinitcpio -k 2.6.25-ARCH -c /etc/mkinitcpio.conf -g /boot/kernel26.img.<br />
<br />
'''''Note:''' The kernel version (-k) must be the kernel version in the USB key, not the live cd's kernel version.''<br />
<br />
== Tips ==<br />
=== USB Support ===<br />
Should you see that the /arch/setup correctly installed a system on to your USB drive but it stills failed to boot from it by complaining that it could not find the root file system even though it had been specified with UUIDs, then you are most likely missing support for USB. In this case, boot back into your Arch Setup CD/USB media and do the following:<br />
<br />
* [[chroot]] into the arch installation contained on the usb drive (don't forget the boot partition, if any)<br />
* Edit /etc/mkinitcpio.conf, and add "usb" to the "HOOKS=" line after udev:<br />
HOOKS="base udev '''usb''' autodetect pata scsi sata filesystems"<br />
* Regenerate the initrd image by running: <br />
# mkinitcpio -p kernel26<br />
<br />
=== Using UUID ===<br />
Instead of using literal partition names, you can also use the [[UUID]] of your partition. This way is much better and more manageable in a setup where the USB drive is meant to boot at multiple PC's than using the partition literal names (/dev/sdb1). Run:<br />
# blkid<br />
to find out which one points to the regular device node (ie, /dev/sdb1) that is your key.<br />
<br />
Now you can place this device node (in the form <code>UUID=7bf1d942-7b8c-4fb7-b55a-d3c40895906d</code>) into /etc/fstab in place of the regular node (ie, /dev/sdb1). Edit also your <code>kernel</code> line in menu.lst, so it will contain something like:<br />
kernel /boot/vmlinuz26 '''root=/dev/disk/by-uuid/7bf1d942-7b8c-4fb7-b55a-d3c40895906d''' ro vga=733<br />
<br />
'''''Note:''' The files may contain UUIDs already. Also note that you specifying "root (hdX,X) is also not required when using UUIDs.''<br />
<br />
=== Painless boot on different machines without using UUID ===<br />
When using the USB key on various target machines, it is helpful to have multiple entries in GRUB, for machines with different setups. For example, the GRUB configuration could contain:<br />
<br />
# (0) Arch Linux<br />
title Arch Linux (first drive)<br />
root (hd0,0)<br />
kernel /boot/vmlinuz26 root=/dev/sda1 ro<br />
initrd /boot/kernel26.img<br />
<br />
As well as<br />
<br />
# (1) Arch Linux<br />
title Arch Linux (second drive)<br />
root (hd0,0)<br />
kernel /boot/vmlinuz26 root=/dev/sdb1 ro<br />
initrd /boot/kernel26.img<br />
<br />
And so forth, giving you the option to select a configuration for a wider variety of machines. However, changing the <code>root=</code> option in GRUB does not change /etc/fstab and you must do something (in our example using udev symlink), so the root partition will always be mounted correctly.<br />
<br />
* Run <code>udevinfo -p /sys/block/sdx/ -a</code> (where sdx is the device name of your usb key)<br />
* Find unique information pertaining to your usb key. I chose `<code>SYSFS{model}=="DataTraveler 2.0"</code>` <br />
* Make a new file: /etc/udev/udev.rules/10-my-usb-key.rules and insert: <code>KERNEL=="sd**", SYSFS{product}=="DataTraveler 2.0", SYMLINK+="WHATEVERYOUWANTOTCALLIT%n"</code> (<code>KERNEL=="sd**"</code> is because the kernel - 2.6.16 here - names all usb devices sd as it uses the scsi sub-system and you want to look at every sd device and apply the setting to every partition), with <code>SYSFS{model}==</code> being the unique identifier collected from udevinfo.<br />
* Run <code>/etc/start-udev uevents</code> and make sure the symlinks appears in /dev. <br />
* If so, edit /etc/fstab, replacing your old sdx with the new symlinks.<br />
<br />
=== Optimizing for the lifespan of flash memory ===<br />
* Again, it is highly recommended to review the [http://wiki.archlinux.org/index.php/SSD#Tips_for_Minimizing_SSD_Read.2FWrites Tips for Minimizing SSD Read/Writes] on the [[SSD]] wiki article.<br />
<br />
== See Also ==<br />
* [[Official Arch Linux Install Guide]]<br />
* [[Putting installation media on a USB key]]<br />
* [[Installing Arch Linux from VirtualBox]]<br />
* [[SSD]]</div>Master exhttps://wiki.archlinux.org/index.php?title=XDMCP&diff=132299XDMCP2011-02-27T21:40:51Z<p>Master ex: </p>
<hr />
<div>This page intends to allow remote sessions using "X Display Manager Control Protocol" (XDMCP).<br />
<br />
== Allow Incoming Connections ==<br />
Edit {{Filename|/etc/hosts.allow}} to add a line for your greeter application as follows:<br />
gdm: 192.168.0.<br />
<br />
Users of kdm or xdm should adjust the above line accordingly.<br />
<br />
== Setup Graphical Logins ==<br />
<br />
=== XDM ===<br />
<br />
Modify {{Filename|/etc/X11/xdm/xdm-config}} and comment out:<br />
<br />
DisplayManager.requestPort: 0<br />
<br />
So it will be:<br />
<br />
!DisplayManager.requestPort: 0<br />
<br />
Then modify {{Filename|/etc/X11/xdm/Xaccess}} to allow any host to get <br />
a login window. Look for a line that looks like this:<br />
<br />
* #any host can get a login window<br />
<br />
and remove the hash '#' sign at the beginning of the line.<br />
<br />
In case you have multiple network interfaces also add a line like this:<br />
<br />
LISTEN 192.168.0.10<br />
<br />
Where 192.168.0.10 should be you server IP address.<br />
<br />
Then reboot or restart your X server and xdm daemon. <br />
<br />
=== GDM ===<br />
<br />
Modify {{Filename|/etc/gdm/custom.conf}} to include:<br />
<br />
[xdmcp]<br />
Enable=true<br />
Port=177<br />
<br />
The restart the Gnome Display Manager:<br />
<br />
/etc/rc.d/gdm restart<br />
<br />
Or if using the inittab method, login as root on another tty and<br />
<br />
telinit 3<br />
telint 5 && exit <br />
<br />
=== KDM ===<br />
<br />
Edit kdmrc ( {{Filename|/opt/kde/share/config/kdm/kdmrc}} [KDE 3x] or {{Filename|/usr/share/config/kdm/kdmrc}} (KDE 4x] ) and at the end there should be something like this:<br />
<br />
[Xdmcp]<br />
Enable=true<br />
<br />
Then you need to restart your X server so the change you just made takes effect:<br />
<br />
/etc/rc.d/kdm restart<br />
<br />
=== SLiM ===<br />
<br />
SLiM doesn't support Xdmcp.<br />
<br />
== Accessing X from a remote Machine on your LAN ==<br />
You can access your login manager on the network computer 192.168.0.10 via the following command. TCP and UDP streams are opened. So it is not possible to access the login manager via an SSH connection.<br />
<br />
Xnest -query 192.168.0.10 -geometry 1280x1024 :1<br />
<br />
Or, if you are on runlevel 3<br />
<br />
X -query your_server_ip<br />
<br />
Xserver should recognize your monitor and set appropriate resolution.<br />
<br />
==Thin client setup==<br />
First of all one should setup dhcp and tftp server. [[Dnsmasq]] has both of them.<br />
For network boot image check [http://www.thinstation.org/ thinstation] project.<br />
If your network card don't support PXE, you can try [http://etherboot.org/wiki/ Etherboot]<br />
<br />
==Troubleshooting==<br />
<br />
=== XDMCP fatal error: Manager unwilling Host unwilling ===<br />
<br />
This is usually caused by an entry missing from the {{Filename|/etc/kde3/kdm/Xaccess}} file. This file controls which machines can connect to the server via KDM. The trick is to add a line that starts with an Aster-<br />
isk '*'. Look for a line that looks like:<br />
<br />
# * #any host can get a login window<br />
<br />
and remove the hash '#' sign at the beginning of the line. Then, you<br />
need to restart KDM.<br />
<br />
/etc/rc.d/kdm restart<br />
<br />
Test in Ubuntu Server 8.04.<br />
Source: http://www.bogor.net/idkf/idkf-wireless/aplikasi/linux/low-cost-thinclient/lts_tsguide_v2.2.txt<br />
<br />
=== Session declined: Maximum Number of Sessions Reached ===<br />
Edit /etc/gdm/custom.conf and add/increase the maximum sessions.<br />
[xdmcp]<br />
Enable=true<br />
'''MaxSessions=2'''<br />
<br />
<br />
[[Category: X Server (English)]]<br />
[[Category: HOWTOs (English)]]<br />
<br />
=== If you still can't login remotely ===<br />
..and see only black screen, try removing '''-nodaemon''' option in '''/etc/inittab''' to have only<br />
<br />
x:5:respawn:/usr/sbin/gdm</div>Master exhttps://wiki.archlinux.org/index.php?title=XDMCP&diff=132298XDMCP2011-02-27T21:38:59Z<p>Master ex: </p>
<hr />
<div>This page intends to allow remote sessions using "X Display Manager Control Protocol" (XDMCP).<br />
<br />
== Allow Incoming Connections ==<br />
Edit {{Filename|/etc/hosts.allow}} to add a line for your greeter application as follows:<br />
gdm: 192.168.0.<br />
<br />
Users of kdm or xdm should adjust the above line accordingly.<br />
<br />
== Setup Graphical Logins ==<br />
<br />
=== XDM ===<br />
<br />
Modify {{Filename|/etc/X11/xdm/xdm-config}} and comment out:<br />
<br />
DisplayManager.requestPort: 0<br />
<br />
So it will be:<br />
<br />
!DisplayManager.requestPort: 0<br />
<br />
Then modify {{Filename|/etc/X11/xdm/Xaccess}} to allow any host to get <br />
a login window. Look for a line that looks like:<br />
<br />
* #any host can get a login window<br />
<br />
and remove the hash '#' sign at the beginning of the line.<br />
<br />
In case you have multiple network interfaces also add a line like:<br />
<br />
LISTEN 192.168.0.10<br />
<br />
Where 192.168.0.10 should be you server IP address.<br />
<br />
Then reboot or restart your X server and xdm daemon. <br />
<br />
=== GDM ===<br />
<br />
Modify {{Filename|/etc/gdm/custom.conf}} to include:<br />
<br />
[xdmcp]<br />
Enable=true<br />
Port=177<br />
<br />
The restart the Gnome Display Manager:<br />
<br />
/etc/rc.d/gdm restart<br />
<br />
Or if using the inittab method, login as root on another tty and<br />
<br />
telinit 3<br />
telint 5 && exit <br />
<br />
=== KDM ===<br />
<br />
Edit kdmrc ( {{Filename|/opt/kde/share/config/kdm/kdmrc}} [KDE 3x] or {{Filename|/usr/share/config/kdm/kdmrc}} (KDE 4x] ) and at the end there should be something like this:<br />
<br />
[Xdmcp]<br />
Enable=true<br />
<br />
Then you need to restart your X server so the change you just made takes effect:<br />
<br />
/etc/rc.d/kdm restart<br />
<br />
=== SLiM ===<br />
<br />
SLiM doesn't support Xdmcp.<br />
<br />
== Accessing X from a remote Machine on your LAN ==<br />
You can access your login manager on the network computer 192.168.0.10 via the following command. TCP and UDP streams are opened. So it is not possible to access the login manager via an SSH connection.<br />
<br />
Xnest -query 192.168.0.10 -geometry 1280x1024 :1<br />
<br />
Or, if you are on runlevel 3<br />
<br />
X -query your_server_ip<br />
<br />
Xserver should recognize your monitor and set appropriate resolution.<br />
<br />
==Thin client setup==<br />
First of all one should setup dhcp and tftp server. [[Dnsmasq]] has both of them.<br />
For network boot image check [http://www.thinstation.org/ thinstation] project.<br />
If your network card don't support PXE, you can try [http://etherboot.org/wiki/ Etherboot]<br />
<br />
==Troubleshooting==<br />
<br />
=== XDMCP fatal error: Manager unwilling Host unwilling ===<br />
<br />
This is usually caused by an entry missing from the {{Filename|/etc/kde3/kdm/Xaccess}} file. This file controls which machines can connect to the server via KDM. The trick is to add a line that starts with an Aster-<br />
isk '*'. Look for a line that looks like:<br />
<br />
# * #any host can get a login window<br />
<br />
and remove the hash '#' sign at the beginning of the line. Then, you<br />
need to restart KDM.<br />
<br />
/etc/rc.d/kdm restart<br />
<br />
Test in Ubuntu Server 8.04.<br />
Source: http://www.bogor.net/idkf/idkf-wireless/aplikasi/linux/low-cost-thinclient/lts_tsguide_v2.2.txt<br />
<br />
=== Session declined: Maximum Number of Sessions Reached ===<br />
Edit /etc/gdm/custom.conf and add/increase the maximum sessions.<br />
[xdmcp]<br />
Enable=true<br />
'''MaxSessions=2'''<br />
<br />
<br />
[[Category: X Server (English)]]<br />
[[Category: HOWTOs (English)]]<br />
<br />
=== If you still can't login remotely ===<br />
..and see only black screen, try removing '''-nodaemon''' option in '''/etc/inittab''' to have only<br />
<br />
x:5:respawn:/usr/sbin/gdm</div>Master exhttps://wiki.archlinux.org/index.php?title=XDMCP&diff=132297XDMCP2011-02-27T21:36:56Z<p>Master ex: </p>
<hr />
<div>This page intends to allow remote sessions using "X Display Manager Control Protocol" (XDMCP).<br />
<br />
== Allow Incoming Connections ==<br />
Edit {{Filename|/etc/hosts.allow}} to add a line for your greeter application as follows:<br />
gdm: 192.168.0.<br />
<br />
Users of kdm or xdm should adjust the above line accordingly.<br />
<br />
== Setup Graphical Logins ==<br />
<br />
=== XDM ===<br />
<br />
Modify {{Filename|/etc/X11/xdm/xdm-config}} and comment out:<br />
<br />
DisplayManager.requestPort: 0<br />
<br />
So it will be:<br />
<br />
!DisplayManager.requestPort: 0<br />
<br />
Then modify {{Filename|/etc/X11/xdm/Xaccess}} to allow any host to get <br />
a login window. Look for a line that looks like:<br />
<br />
* #any host can get a login window<br />
<br />
and remove the hash '#' sign at the beginning of the line.<br />
<br />
In case you have multiple network interfaces also add a line like:<br />
<br />
LISTEN 192.168.0.10<br />
<br />
Where 192.168.0.10 should be you server IP address.<br />
<br />
Then reboot or restart your X server and xdm daemon. <br />
<br />
=== GDM ===<br />
<br />
Modify {{Filename|/etc/gdm/custom.conf}} to include:<br />
<br />
[xdmcp]<br />
Enable=true<br />
Port=177<br />
<br />
The restart the Gnome Display Manager:<br />
<br />
/etc/rc.d/gdm restart<br />
<br />
Or if using the inittab method, login as root on another tty and<br />
<br />
telinit 3<br />
telint 5 && exit <br />
<br />
=== KDM ===<br />
<br />
Edit kdmrc ( /opt/kde/share/config/kdm/kdmrc [KDE 3x] or /usr/share/config/kdm/kdmrc (KDE 4x] ) and at the end there should be something like this:<br />
<br />
[Xdmcp]<br />
Enable=true<br />
<br />
Then you need to restart your X server so the change you just made takes effect:<br />
<br />
/etc/rc.d/kdm restart<br />
<br />
=== SLiM ===<br />
<br />
SLiM doesn't support Xdmcp.<br />
<br />
== Accessing X from a remote Machine on your LAN ==<br />
You can access your login manager on the network computer 192.168.0.10 via the following command. TCP and UDP streams are opened. So it is not possible to access the login manager via an SSH connection.<br />
<br />
Xnest -query 192.168.0.10 -geometry 1280x1024 :1<br />
<br />
Or, if you are on runlevel 3<br />
<br />
X -query your_server_ip<br />
<br />
Xserver should recognize your monitor and set appropriate resolution.<br />
<br />
==Thin client setup==<br />
First of all one should setup dhcp and tftp server. [[Dnsmasq]] has both of them.<br />
For network boot image check [http://www.thinstation.org/ thinstation] project.<br />
If your network card don't support PXE, you can try [http://etherboot.org/wiki/ Etherboot]<br />
<br />
==Troubleshooting==<br />
<br />
=== XDMCP fatal error: Manager unwilling Host unwilling ===<br />
<br />
This is usually caused by an entry missing from the "/etc/kde3/kdm/Xaccess" file. This file controls which machines can connect to the server via KDM. The trick is to add a line that starts with an Aster-<br />
isk '*'. Look for a line that looks like:<br />
<br />
# * #any host can get a login window<br />
<br />
and remove the hash '#' sign at the beginning of the line. Then, you<br />
need to restart KDM.<br />
<br />
/etc/rc.d/kdm restart<br />
<br />
Test in Ubuntu Server 8.04.<br />
Source: http://www.bogor.net/idkf/idkf-wireless/aplikasi/linux/low-cost-thinclient/lts_tsguide_v2.2.txt<br />
<br />
=== Session declined: Maximum Number of Sessions Reached ===<br />
Edit /etc/gdm/custom.conf and add/increase the maximum sessions.<br />
[xdmcp]<br />
Enable=true<br />
'''MaxSessions=2'''<br />
<br />
<br />
[[Category: X Server (English)]]<br />
[[Category: HOWTOs (English)]]<br />
<br />
=== If you still can't login remotely ===<br />
..and see only black screen, try removing '''-nodaemon''' option in '''/etc/inittab''' to have only<br />
<br />
x:5:respawn:/usr/sbin/gdm</div>Master ex