from http://www.ltsp.org:
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.
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 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;
}
}
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)
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
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"
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
—-
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)