from http://www.ltsp.org:

1.2.1. Boot ROM

Etherboot

Etherboot is a very popular open-source bootrom project. It contains drivers for many common network cards, and works very well with LTSP.

Linux kernels must be tagged with the mknbi-linux , which will prepare the kernel for network booting, by prefixing the kernel with some additional code, and appending the initrd to the end of the kernel.

The kernels that are supplied with LTSP are already tagged, and ready to boot with Etherboot. Etherboot can also be written to a floppy, which works great for testing.

PXE

Part of the 'Wired for Management' specification from the late 1990's included a specification for a bootrom technology known as the Pre-boot Execution Environment commonly abreviated as PXE.

A PXE bootrom can load at most a 32 kilo-byte file. A Linux kernel is quite a bit larger than that.

Therefore, we setup PXE to load a 2nd stage boot-loader called pxelinux. pxelinux is small enough to be loaded, and it knows how to load much larger files, such as a Linux kernel.

PXE: Booten über Netzwerk

(PXE ist eine DHCP-ERweiterung, um ber Ethernet zu booten)

http://www.kegel.com/linux/pxe.html

Ziel: Diskless Workstation im Kiosk-mode.

Know-how:

http://www.linux-mag.com/2002-10/netbooting_01.html

http://syslinux.zytor.com/pxe.php

funktionierende /etc/dhcp.conf :

# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
#
# option definitions common to all supported networks...
#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;
#default-lease-time 600;
#max-lease-time 7200;
# if you do not use dynamical DNS updates:
#
# this statement is needed by dhcpd-3 needs at least this statement.
# you have to delete it for dhcpd-2, because it does not know it.
#
# if you want to use dynamical DNS updates, you should first read
# read /usr/share/doc/packages/dhcp-server/DDNS-howto.txt
ddns-update-style none;
ddns-updates off;
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;
# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;
allow booting;
allow bootp;

# Standard configuration directives...
option domain-name "your.domain";
option domain-name-servers ns1.your.domain, ns2.your.domain;
option routers 10.0.0.1;
option resource-location-servers server.your.domain;
option font-servers server.your.domain;
option x-display-manager server.your.domain;
option tftp-server-name "tftp.your.domain";

max-lease-time 120;
default-lease-time 120;

subnet 192.168.124.0 netmask 255.255.255.0 {
}

# Group the PXE bootable hosts together
group {
        # PXE-specific configuration directives...
        next-server 192.168.124.95;
        server-name "dhcp.your.domain";
        filename "/pxes/pxelinux.0";
        get-lease-hostnames true;
        use-host-decl-names on;
        
        host pxes1 {
                hardware ethernet 0:40:63:d7:ac:32;
                fixed-address 192.168.124.100;
        }
        
        host pxes2 {
                hardware ethernet 0:01:02:d2:1c:e6;
                fixed-address 192.168.124.101;
        }
}
Installation von PXES:

Man braucht allerlei, um PXES zu installieren: dhcp server und tftp-server

(nicht das paket namens 'tftp' (wie bei suse dabei))

booten mit pxes:

zuerst dhcp,

After adding my 2nd network card, I noticed dhcpd wasn't working anymore.

If more than one network card resides in the DHCP server, it is recommended to specify which interface(s) the DHCP server will use.

Edit /etc/sysconfig/dhcpd by adding the appropriate interface to the DHCPDARGS= line.

The entry in /etc/sysconfig/dhcpd should appear as follows:

DHCPDARGS=eth0 (bei meinem Server: „“) The dhcpd server loads without problem after adding this entry.

Cool test

ping -c 2 -b 192.138.0.255 | sort
arp -a

If your dhcpd.leases file doesn't exist, then generate it with the touch command

touch /var/lib/dhcp/dhcpd.leases

Restart dhcpd

/etc/rc.d/init.d/dhcpd restart

Check that dhcpd is running

ps ax | grep dhcpd | grep -v grep

If dhcpd is not running, then run it directly to get more description on the error

/usr/sbin/dhcpd

Also check /var/log/messages for other error messages

tail -50 /var/log/messages

Make sure that you have dhcpd starting on bootup

chkconfig --list dhcpd

If it is not set for runlevels 2345, then set it

chkconfig --level 2345 dhcpd on

dann tftp (trivila file transfer protocol) pxes braucht tftp-server (use liefert quasi das gleiche paket unter 'tftp', damit lässt sich pxes aber nicht installieren, man muss tftp-server installieren) tftp-server ist paket von redhat, mandrake oder fedora (auf letzteres basiert pxes)

On the DHCP server, verify that the tftp-server package is installed with the command rpm -q tftp-server. If it is not installed, install it via Red Hat Network or the Red Hat Enterprise Linux CD-ROMs. For more information on installing RPM packages, refer to Part III Package Management.

tftp is an xinetd-based service; start it with the following commands:

/sbin/chkconfig --level 345 xinetd on
/sbin/chkconfig --level 345 tftp on

o Install the package using the following command:

[root@bigboy tmp]# rpm -Uvh tftp-server-0.32-4.i386.rpm

o Edit the file /etc/xinetd.d/tftp and set disable to „no“.

# default: off
 # description: The tftp server serves files using the trivial
# file transfer \
 # protocol. The tftp protocol is often used to boot diskless \
 # workstations, download configuration files to
# network-aware printers, \
 # and to start the installation process for some operating systems.
 service tftp
 {
socket_type = dgram
 protocol = udp
 wait = yes
 user = root
 only_from = 192.168.1.1
 server = /usr/sbin/in.tftpd
 server_args = -s /tftpboot
 disable = no 
 per_source = 11
 cps = 100 2
}
In this example, xinetd will only allow the TFTP server to accept connections from the router / switch / firewall 
with an address of 192.168.1.1. You can extend this list with commas in between or 
just comment it out al together for global access.
o        Create a /tftpboot directory with global read write privileges
[root@bigboy tmp]# chmod 777 /tftpboot
o        Restart xinetd
[root@bigboy tmp]# /etc/init.d/xinetd restart
 Stopping xinetd: [ OK ]
 Starting xinetd: [ OK ]
 [root@bigboy tmp]#

etc/xinetd.d/tftp: Setzte disable = yes auf disable = no !

(bei VIA-EPIA funktioniert der VESA-Treiber. Aber nicht in 24Bit, sondern nur mit 16 (bei 1024×768)1))

Jetzt bootet er x hoch, bei Einstellung XDMCP passiert aber nichts weiter, da er den XDM-Server noch nicht findet

Zum Einrichten von XDM siehe: http://www.tldp.org/HOWTO/XDMCP-HOWTO/procedure.html#STEPS

For gdm, edit /etc/X11/gdm/gdm.conf. This activates XDMCP, causing it to listen to the request.

For kdm (if you pick KDE as your DM in your installation), edit /usr/share/config/kdm/kdmrc for

Mandrake and /etc/kde/kdm/kdmrc for Red Hat or /opt/kde2/share/config/kdm/kdmrc → in SuSE 9.1, die Datei ist: /opt/kde3/share/config/kdm/kdmrc

Now edit /etc/inittab and change the following line:

id:3:initdefault:

to:

id:5:initdefault:

In Slackware, the X11 mode is number „4“, not „5“.

This is switching from Text Mode login to Graphical Mode using Display Manager. Before changing this line, you can use the telinit command to test prior to modifying the line. Use either telinit 3 to set to level 3, or telinit 5 to set to level 5, graphics mode (you can issue this command on the second machine that telnets into this server).

Fr das grafische config-tool pxesconfig braucht man:

Perl
Gade-Perl (pxes-site)
mknbi (pxes-site)
XDM (X Display Manager)

http://www.tldp.org/HOWTO/XDM-Xterm/config.html

Remote access von X

Wichtig fr XDMCP:

Interessant ist ansonsten noch, mit welchen Parametern der X-Server gestartet wird, von dem du per XDMCP den Loginmanager beziehen willst. Bei Debian ist z.B. normalerweise die Option „-nolisten tcp“ angegeben. So eine Option verhindert natrlich auch, da�XDMCP funktioniert.

Wo kann ich die Startparameter von X finden wenn der kdm den X-Server startet?

Du bist Dir aber schon bewusst, da�Du bei XDMCP keine einzelnen Programme weiterleitest, sondern dir den Loginmanager auf Deinen Rechner holst und dann das komplette X auf dem entfernten Rechner arbeitet?

Und wie nennt man dann das weiterleiten von einzelnen Programmen? über welches Protokoll läuft das? Was ist da der Unterschied zwischen einer ganzen Session und einem einzelnem Programm?

Edit: Jetzt gehts, in der /usr/kde/3.2/share/config/kdm/Xservers stand das -nolisten tcp drin.

Warum zum Teufel kann diese verdammte Konfigurationsdatei nicht in /etc liegen :mad: Was hat die in /usr zu suchen? Sowas unaufgeräumtes und kompliziertes wie das X Window System gibts ja nich zweimal.

Ein Dankeschön an Detrius fr den Tipp

Bei mir (SuSe 9.1) liegt die Datei mit dem �nolisten tcp' in:

/opt/kde3/share/config/kdm/Xservers

Aus: http://www.lug-kr.de/cgi-bin/lugwiki.pl?XdmcpTerminalServer

Und wie geht's bei Suse 9.1

Im Prinzip genauso! Aber bei Suse ist ja immer irgendwas anders. /etc/kde3/kdm gibt es nicht. Hier wird mit xdm gearbeitet und es ist alles schon vorbereitet. XDMCP ist aktiviert - wo, dass weiss ich nicht. In der /etc/x11/xdm/Xaccess sind mit * schon aller Rechner erlaubt. Hier kann man ggf. Einschr�kungen machen. Suse hat aber den Port deaktiviert. Dieser muss in /etc/services aktiviert werden. Zeilen vom Port 177 :

 xdmcp          177/tcp
 xdmcp          177/udp

Bei Suse wird nun

 /etc/init.d/xdm restart

ausgefhrt. Weiter wie oben beschrieben. Bei Suse am besten mit ALT+STRG+F2 ein TTY-Konsole öffnen und

 X :1 -query terminalservername

aufrufen. So nun noch fr blinde Anf�ger wie mich: das X wird gro�geschrieben ! Der letzte Stolperstein liegt im Namen des Terminalservers. Wer hier Suse 9.1 Standard-Installation hat, bei dem hei�n alle Rechner „linux“. Der Rechnername bei der Samba-Installation hat hier keine Bedeutung! Also entweder die IP-Adresse angeben oder die Rechnernamen eindeutig machen. Siehe auch oben. Rolf Hagenguth

SuSE 9.3:

/opt/kde3/share/config/kdm/kdmrc
[Xdmcp]
Enable=true

2)

Kdm verwendet keine /kdm/Xservers mehr!

Auch hier muss man die /etc/sysconfig/displaymanager setzen:

DISPLAYMANAGER_REMOTE_ACCESS="yes"
DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN="yes"

3)

Ich habe hier die neue SuSE 9.3 auf einem Rechner installiert. Der erste Eindruck ist ganz gut, jedoch habe ich das Problem, daß ich mir grafische Programme per DISPLAY-Variable und xhost + nicht mehr auf den lokalen Bildschirm holen kann. er hat eine Idee? Änderungen dazu habe ich in folgendne Dateien vorgenommen:

/etc/X11/xdm/Xservers: 
         :0 local /usr/X11R6/bin/X -br vt 
/etc/X11/xdm/xdm-config: 
         DisplayManager._0.authorize:    false 
         DisplayManager.requestPort:    177

DIE LÖSUNG:

—–BEGIN PGP SIGNED MESSAGE—–

> Hash: SHA1 > > Hi, > > how do I get kdm to listen to xdmcp requests on Suse 8.1? > > I have already changed /opt/kde3/share/config/kdm/kdmrc section [xdmcp] to > Enable=true and Port=177 but noone is listening on UDP port 177 after > restarting kdm. > > I also tried xdm. It started to answer xdmcp requests after deleting > DisplayManager.requestPort: 0 > from /usr/lib/X11/xdm/xdm-config as expected but I want to use kdm.

Let SuSE change those files! ;P

1. Of course you made backups of the files you changed, so restore the files you've changed (all!).

2. Open /etc/sysconfig/displaymanager with a text-editor (e.g. mc, vi, etc.)

3. Locate the variable „DISPLAYMANAGER_REMOTE_ACCESS“. I suppose it's value is

set to "no". Change it to "yes".

Achtung: Seit neuesten steht am Schluss die Zeile:

 DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN="no"
Das muss man wohl auf "yes" setzen!

4. Save the file.

5. Run SuSEconfig. It will make the changes for you (except firewall, I think).

Done!

If you have a firewall running, shut it down first(!) before you try. If you can get a connection, you can restart the firewall again, and start to worry about what ports to open (I believe 177, and 6000-min(6063, num_of_x_displays-1), and perhaps FW_ALLOW_FW_BROADCAST=„yes“ in /etc/sysconfig/SuSEfirewall). I believe it's also possible to tunnel an X connection through ssh, but I don't know how to do it. Maybe someone else can fill that in.

Test:

 X :1 -query 192.168.123.168

Magic Cookies etc:

http://www.uni-kiel.de/rz/x11/kurzeinf/x11-einfuehrung.html Genauer:

http://www.rus.uni-stuttgart.de/bi/1997/7+8/file13.html

Auth ausschalten:

vi /etc/X11/xdm/xdm-config

DisplayManager._0.authorize: true
DisplayManager._1.authorize: true

(Jeweils auf false setzten.) Einfügen:

DisplayManager*authorize: false

xhost:

Auf xhost umschalten:

/etc/X11/xdm/xdm-config

DisplayManager.*.authName:      xhost
'xhost +' schaltet die Zugangskontrolle komlett ab!
/etc/opt/kde3/share/config/kdm/kdmrc
AutNames=xhost

Habs wieder mal zum Laufen begracht: Ich glaub, es lag an folgenden: in /etc/hosts alle IPs und (erfunden) Namen der Clients eingetragen z.B. 192.168.124.100 client00 etc. Dann statt der

/etc/opt/kde3/share/config/kdm/kdmrc

die von SuSEconfig generierte Date genommen:

/etc/opt/kde3/share/config/kdm/kdmrc.SuSEconfig

Das alte Problem von meinen Stationen: Geht nur, wenn Internetverbindung besteht:

Hallo!

Bei mir ruft oben genannter Befehl zur Zeit kein KDM Login auf dem Server auf, sondern wird mit folgender Meldung (auf dem Server 192.168.1.1) beendet:

Apr 22 09:24:59 localhost mdkkdm[2703]: Cannot convert Internet address   
 4.0.5.8 
 to host name 
 Apr 22 09:25:19 localhost last message repeated 2 times 
 Apr 22 09:26:44 localhost mdkkdm[4013]: Cannot connect to 192.168.1.10:1,   
 giving 
   up 
 Apr 22 09:26:44 localhost mdkkdm[2703]: Display 192.168.1.10:1 cannot be   
 opened

Der Client von dem aus der Xserver aufgerufen wird meldet Fehler mit dem MIT-MAGIC-COOKIE-1

(in welchem Logfile finde ich diese Fehlermeldungen? dann kann ich sie noch genauer angeben)

Sobald eine Verbindung ins Internet besteht, bekomme ich mit oben genannten Befehl ein KDM Login!

Die Konfiguration: Auf beiden Systemen läuft ein Mandrake 10, beide Systeme haben 2 Ethernet Interfaces, ich versuche das ganze mal in einer ASCII Grafik zu skizzieren …

 --------------|Crossover|--------------| 
 192.168.  eth0|---------|eth0 192.168. | 
    1.1         |         |       1.10   | 
                |         |              | 
 192.168.      |  DHCP   |     192.168. | 
   2.100    eth1|-router--|eth1  2.101   | 
 --------------|   |     |--------------| 
 XDM           |   |     |x :1 -query 
 [Xdmcp]       |   |     |     192.168.1.1 
 Enable=true   |   |WAN  | 
                |  DSL    | 
                | Interne | 

Es ist auch nur das eine Terminal angeschlossen, nichts weiter. Nun habe ich 2 oder eigentlich 3 Fragen:

1.) Was habe ich falsch gemacht, daß ich nur bei bestehender Internetverbindung ein Login bekomme?

2.) Wie mache ich das ganze Sicher? ich habe einfach den xdmcp enable=true gesetzt, das wars … Ist das Sicher? Oder muß ich den Zugriff irgendwie einschränken? Es würde ja reichen, wenn X auf eth0 lauscht und nurauf Anfragen von 192.168.1.1

3.) (vielleicht OT hier?) Wie kann ich das ganze automatisieren? Zum Hintergrund, das Terminal ist ein Notebook, das auch ohne den Server benutzt wird, dann soll natürlich lokal mit kdm ein grafisches Login gestartet werden –Display :0 (deshalb auch query :1). Am komfortabelsten wäre es, wenn ein Skript, das beim Start aufgerufen wird schaut, ob unter 192.168.1.1 ein X Server antwortet, dann X -query, sonst kdm local starten …

Danke und Gruß Florian

Florian Reichert

28 Apr. 2004 09:25     Optionen anzeigen

On Thu, 22 Apr 2004 10:43:18 +0200, Florian Reichert <flori…@gmx.de> wrote:

- Zitierten Text anzeigen -

   resolv.conf                resolv.conf 
 nameserver 192.168.2.1      nameserver 192.168.1.1 

Ich habe das Problem mitlerweile gelöst, allerdings ohne zu ergründen, woran es nun wirklich gelegen hat. Ich habe einfach den Eintrag in /etc/resolv.conf erweitert um einen der (externen) Nameserver meines Providers. Wobei mir weder klar ist, warum die Rechner keine domain Namen auflösen konnten,noch warum xdmcp nur läuft, wenn Domain Namen aufgelöst werden können. Wenn ich wüßte, wonach da gesucht wird, könnte ich ja einen Eintrag in hosts machen…

Gruß Florian

—-

PXES und Etherboot:

Obwohl PXES eigentlich nur mit PXE-fähigen Boards booten kann, scheint es doch zu funzen. Auch Etherboot ist 'seit der letzten Version' PXE-kompatibel. Aus dem PXES-Readme:

This thin client boots from the network with PXE ( Intel Pre-Execution Environment specifications)

so neither boot diskette nor boot eprom is needed. Although if your hardware doesn't support PXE there are alternatives configurations making a tagged kernel image, selecting Enable network bootable image while configuring your initial ram disk image and then use Etherboot to boot from diskette or EPROM, boot from an internal DiskOnChip or DiskOnModule, from a local cd-rom, or even a small hard disk using LILO or GRUB.

Das Laden der Datei über tftp geschieht ähnlich, nur z.B.: filename „/pxes/pxes-0.8.nbi“;

PS/2-Maus:

als Anschluss unbedingt /dev/ps2aux eingeben. Nur kann kann man die Wheel-Unterstützung aktivieren!

Special MediaGX:

sb makes Problems with MPU-Chip (mpu_io=0x330) Kernel hangs on: „UART jabbering“

Lösung:

Soundmodul: 'sb' und als Parameter eingeben: mpu_io=0 fertig

x-Windows-Server und Cyrix (Geode) Media GX: XFree86 4.3.0 funktioniert (nsc oder auch Autodetect) auf 1024×768 und 16 Bit (no acceleration, no zapp, diabled screensaver) Acceleration muss ausgeschaltet sein!!!! H-Frequent: 31.5-48.5 V:40-70

Tastatur muss auf de gestellt sein.

http://www.larwe.com/technical/geode_linux.html

The audio feature built into the CS5530 is supported using the SoundBlaster 16 driver with the „mpu_io=0“ parameter. Note that you must disable ISA Plug'n'Play in the kernel. Recent(ish - i.e. contemporaneous Red Hat 7.x and later) versions of sndconfig will detect the 5530 as „CS5530 [Kahlua]“, but they will inform you that the chip is disabled. On some boards (perhaps those using National's XPressROM) it may be possible for you to fix this error with CMOS settings and get the native driver loaded, but this doesn't seem to be possible on the PCM-5820. Just use the part in SB16 emulation mode.

/etc/dhcpd.conf: (stand 27.7.05)

# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
#
# option definitions common to all supported networks...
#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;
#default-lease-time 600;
#max-lease-time 7200;
# if you do not use dynamical DNS updates:
#
# this statement is needed by dhcpd-3 needs at least this statement.
# you have to delete it for dhcpd-2, because it does not know it.
#
# if you want to use dynamical DNS updates, you should first read
# read /usr/share/doc/packages/dhcp-server/DDNS-howto.txt
ddns-update-style none;
ddns-updates off;
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;
# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;
allow booting;
allow bootp;

# Standard configuration directives...
option domain-name "your.domain";
option domain-name-servers 192.168.123.195, localhost;
option routers 10.0.0.1;
option resource-location-servers server.your.domain;
option font-servers server.your.domain;
option x-display-manager server.your.domain;
option tftp-server-name "tftp.your.domain";

max-lease-time 120;
default-lease-time 120;

subnet 192.168.124.0 netmask 255.255.255.0 {
 range 192.168.124.150 192.168.124.250;
}

# Group the PXE bootable hosts together
group {
        # PXE-specific configuration directives...
        next-server 192.168.124.95;
        server-name "dhcp.your.domain";
        filename "/pxes/pxelinux.0";
        get-lease-hostnames true;
        use-host-decl-names on;

        host pxes1 {
                hardware ethernet 0:40:63:d7:ac:32;
                fixed-address 192.168.124.100;
        }
        host pxes2 {
                hardware ethernet 0:40:63:d7:ac:08;
                fixed-address 192.168.124.101;
        }
        host pxes3 {
                hardware ethernet 0:40:63:d8:3c:1e;
                fixed-address 192.168.124.102;
        }
        host pxes4 {
                hardware ethernet 0:40:63:d9:b1:e5;
                fixed-address 192.168.124.103;
        }
        host pxes5 {
                hardware ethernet 0:40:63:da:51:11;
                fixed-address 192.168.124.104;
        }
        host pxes6 {
                hardware ethernet 0:40:63:da:50:47;
                fixed-address 192.168.124.105;
        }
}
# Group for PXES tagged image: Boot with Etherboot, not PXE
group {
        # PXE-specific configuration directives...
        next-server 192.168.124.95;
        server-name "dhcp.your.domain";
        filename "/pxes-gx/pxes-0.8.nbi";
        get-lease-hostnames true;
        use-host-decl-names on;

        host pxesgx1 {
                hardware ethernet 0:0:99:01:de:d4;
                fixed-address 192.168.124.110;
        }
        host pxesgx2 {
                hardware ethernet 0:0:99:01:de:ab;
                fixed-address 192.168.124.111;
        }
        host pxesgx3 {
                hardware ethernet 0:0:99:01:df:b1;
                fixed-address 192.168.124.112;
        }
        host pxesgx4 {
                hardware ethernet 0:0:99:01:e0:26;
                fixed-address 192.168.124.113;
        }
        host pxesgx5 {
                hardware ethernet 0:0:99:01:de:d8;
                fixed-address 192.168.124.114;
        }
}

IGEL-Terminal

Igel-J

Einstellungen: Layout und XDMCP:

local server: none

XDMCP: indirect, Host: 192.168.124.95 (bzw: 192.168.123.164)

1)
(JETZT geht auch 24 Bit!!!!
2)
nicht nötig: [X-:*-Core] comment out: ServerArgsLocal=-nolisten tcp
3)
falsch: Der Ort von Xservers scheint sich geändert zu haben: /etc/X11/xdm/Xservers Dort das -nmolisten tcp raushauen