![]() |
![]() |
![]() |
![]() |
![]() |
RemiX (remote X) diskless is a complete and powerful graphical remote client system. |
---|
Here the true diskless version to be installed in a Linux server. |
Related article: RemiX diskless thin client ready |
Contenido
|
* based on Slackware 12.2 * glibc, core library, xorg (with latest openchrome driver) * kernel 2.6.29.4-huge with bootsplash patch * rdesktop 1.6 SVN revision r1600
* Xserver autoconfiguration and other auto-detection tools * possibility of customization of single thin client * local resources shared and accessible from desktop client * Linux desktop client and Windows desktop clients (multi boot) * remote audio (both systems) * button power off ACPI * user client messages localization (English, Italian at this time) * automatic install script inside * installable also to USB-stick * very speedy installation procedures (2 to 4 minutes per client) * power-on to login screen: 15 seconds (typical for 800MHz, 128MB RAM)
* Resources consumption o 8 MB RAMdisk (with local /usr or NFS /usr) o 18 MB RAMdisk (with via-openchrome-vesa driver inside) o 32 MB RAMdisk (all-in-RAM system) * 80 MB total in accelerated graphic mode runtime
* 2D/3D Xserver (available now also in remote desktop) * remote audio (stereo) via ESD client * local resouces shared via FTP
* compatible with XP,W2000,W2008 servers * local resources shared via tsclient * audio client available
RemiX diskless uses tftp service to get clients configuration from server and nfs service to share filesystem.
At boot time init script try to get from server some custom files as Config and custom.sh. This files are stored in /diskless/tftpboot/clients/ folder. "Config.common" file is used as common configuration file for all clients. Init try also to find a custom configuration file named "Config" per every client; search path is /diskless/tftpboot/clients/clientIP, for example /diskless/tftpboot/clients/192.168.0.11/.
In common configuration path (/diskless/tftpboot/clients/), so also in single client configuration path, we can put other useful files as a custom "xorg.conf" (common or single Xorg config) or "custom.sh" and "custom.sh.common" as script files to customize clients (single or entire groups).
Remix, for the remainder, is entirely self-configuring, particularly "autoX" script generates the Xorg configuration file and "remiX" start the entire system, processing Config and xorg.conf files, start graphical desktop or leave boot control at "custom.sh".
The configuration files (if found on-line or locally) are moved into the folder /custom of root filesystem in RAM. If these files are not found, RemiX uses default values already present in /custom at boot time.
Remix is also multi-boot, as it process several config files (Config, config2, Config3, etc..), but this operation is reserved to the thin client version, in which the different config files are stored on disk.
Installation consist in creation of a folder named "/diskless" and generation of working files
* download latest remix-diskless compressed archive, example: wget http://www.zoros.org/remix/4.0/remiX-diskless-#version.tar.gz * become root: su - * unpack the archive in /, example: tar -C / -xzplf remiX-diskless-#version.tar.gz * change directory to RemiX devel directory: cd /diskless/remiX-devel/ * build system work files: ./Make-all
1) download http://www.zoros.org/remix/4.x/remiX-diskless-version-date.tar.gz
2) become root
3) unpack remiX-diskless-version-date.tar.gz in filesystem root "/"
4) cd /diskless/remiX-devel/
5) build system files: ./Make-all
6) add to /etc/inetd.conf:
tftp dgram udp wait root /usr/sbin/tcpd in.tftpd -s /diskless/tftpboot -r blksize
7) add to /etc/exports this line:
/diskless/NFS_DISK 192.168.0.0/255.255.255.0 \ (ro,sync,wdelay,hide,nocrossmnt,secure,no_root_squash,no_all_squash,subtree_check,secure_locks,anonuid=-2,anongid=-2)
8) configure DHCP service; this is a minimal file /etc/dhcpd.conf:
#------ /etc/dhcpd.conf (Remix4 default) ------ ddns-update-style none; allow booting; allow bootp; default-lease-time -1; max-lease-time 7200; authoritative; # # default gateway option routers 192.168.0.200; # option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; option domain-name-servers 208.67.222.222; #option domain-name "RemiX-domain"; server-name "RemiX-server"; # subnet 192.168.0.0 netmask 255.255.255.0 { #If set "auto" in Config this is the remote desktop server next-server 192.168.0.1; # #Used in both PXEclient and gPXE as default filename "/gpxelinux.0"; # range dynamic-bootp 192.168.0.128 192.168.0.248; option host-name "RemiX"; # if exists user-class and option user-class = "gPXE" { filename "/gpxelinux.0"; } # group customIP { host pc-01 { hardware ethernet 00:11:22:33:44:55 ; fixed-address 192.168.0.11 ; } } }
9) restart NFS and DHCP services
to operate, the system needs services TFTP and DHCP, plus NFS service for clients that uses a "/usr" shared folder:
RemiX diskless uses TFTP service to get configuration of clients (common configuration file or single client custom configuration file).
Root of tftp service is /diskless/tftpboot.
In Slackware, that uses inetd, add this line to /etc/inetd.conf:
tftp dgram udp wait root /usr/sbin/tcpd in.tftpd -s /diskless/tftpboot -r blksize
to boot via PXE, system needs of pxelinux.0 file. In /etc/dhcpd.conf pxelinux.0 is declared as default:
#---------- /etc/dhcpd.conf ----------- ... #Used in both PXEclient and gPXE as default filename "/pxelinux.0";
RemiX diskless NFS version uses NFS service to share a common compressed "/usr" folder. The location of compressed file /usr (named usr.cramfs) is /diskless/NFS_DISK. There is also an addidional shared folder /diskless/SWAP used to store a swapfile for client (not implemented yet, becouse mismatch kernel implementation). Typical configuration in /etc/exports:
/diskless/NFS_DISK 192.168.0.0/255.255.255.0(ro,sync,wdelay,hide,nocrossmnt,secure,no_root_squash,no_all_squash,subtree_check,secure_locks,anonuid=-2,anongid=-2) /diskless/SWAP 192.168.0.0/255.255.255.0(rw,sync,no_root_squash,no_subtree_check)
RemiX can run in several ways:
* PXE * erherboot * local disks (HD,flash) * USB-stick * CD-ROM
* "all-in-RAM" (min. 128M RAM) * "NFS shared /usr" (min. 64MB)
PXE boot don't needs particular setup; PXE gets kernel image from /diskless/tftpboot/kernels/ and ramdisk images from /diskless/tftpboot/pxelinux.cfg/ initrd_nfs_text.img, initrd_ram_text.img, initrd_nfs.img, initrd_ram.img are standard compressed INITRAMs, while remixfs.igz is an experimental INITRAMFS Default PXE config file is /diskless/tftpboot/pxelinux.cfg/default:
#---------- PXE default ------------------------ # This is the custom client pxelinux config file. # prompt 1 default remix timeout 50 # label remix kernel kernels/bzImage append CUSTOM=diskless CONFIG= initrd=pxelinux.cfg/initrd_nfs.img vga=788 ramdisk_size=8192 rw root=/dev/ram apm=off splash=verbose # label remixram kernel kernels/bzImage append CUSTOM=diskless CONFIG= initrd=pxelinux.cfg/initrd_ram.img vga=788 ramdisk_size=34816 rw root=/dev/ram apm=off splash=verbose # label remixfs kernel kernels/bzImage append CUSTOM=diskless CONFIG= initrd=pxelinux.cfg/remixfs.igz vga=788 apm=off splash=verbose
Linux kernel version > 2.6.22 seems not work with images made with mknbi-linux, RemiX uses only gPXE now. If the DHCP request is sended by a gPXE boot routine, then gpxelinux.0 will be used insted pxelinux.0:
#------ /etc/dhcpd.conf (Remix4 default) ------ ... if exists user-class and option user-class = "gPXE" { filename "/gpxelinux.0"; }
append "CUSTOM=/dev/hdxx" to /etc/lilo.conf or to default PXE file (hdxx=your installation disk)
append "CUSTOM=usbdisk" to /etc/lilo.conf (or to default PXE file)
append "CUSTOM=cdrom" to isolinux.cfg (or to default PXE file)
RemiX is thinked as multiboot system, so it search and process multiple Config files. First config file is called "Config", second "Config2" third "Config3", and so away ...
to choose Config#number file at boot time:
append "CONFIG=#number" to /etc/lilo.conf (or to default PXE file)
example:
append "CONFIG=2"
RemiX can run in two modes:
to set full diskless system:
append "CUSTOM=diskless" to /etc/lilo.conf or default PXE file
other append as shown above are all "/usr-shared" systems
/diskless #Base of devel system, tftpboot and nfs shared folders /diskless/tftpboot #Base of tftpd service (to set in inetd.conf) /diskless/tftpboot/pxelinux.cfg #PXE-Linux config files /diskless/tftpboot/clients #Custom configuration files of clients /diskless/tftpboot/kernels #Contain precompiled huge kernel /diskless/NFS_DISK #Read-only condivision, contains usr.cramfs: a compressed /usr filesystem (for NFS version) /diskless/SWAP #Read-write network folder to contain swapfiles of clients (not well implemented yet) /diskless/remiX-devel #Devel tree. Note: in first installation exec ./Make-all to build all working files /diskless/remiX-devel/INITRD #Ramdisk filesystem and init scripts /diskless/remiX-devel/USRfilesystem #All files locates usually in /usr (to buid a compresse /usr file ad loo device) /diskless/remiX-devel/thinclient-hd #Filesystem tree of thin client version /diskless/remiX-devel/examples #FSeveral examples of client and desktop server configuration
RemiX is a system with full auto-configure but is also customizable. The configuration parameters and other custom files are stored in /custom folder. The system configuration file is "Config". Since the RemiX system is thinked as multi-boot, you can have more Config#N files: first configuration file is Config, second Config2, third Config3, etc. RemiX, by default, is installed with 2 boot entry, so there are 2 files (Config and Config2) in /custom.
Read more about Config file
RemiX diskless can boot fully over network using an append "CONFIG=diskless", but also it can boot from local devices (fixed or removable). In these cases this is a suitable lilo.conf:
# LILO configuration file # generated by remix # # Start LILO global section # boot = /dev/hda # map=/boot/map #message=/boot/message # #message = /boot/graphical # compact # faster, but won't work on all systems. prompt large-memory timeout = 50 vga = 788 # bitmap=/boot/lilo-remix.bmp bmp-colors= 15,0,0;0,15,15 bmp-table= 478p,219p,1,15 bmp-timer= 575p,445p,0,15,15 # # End LILO global section # # Linux bootable partition config begins # image = /boot/linux label = Desktop1 initrd=/boot/initrd_ram.img read-write # Non-UMSDOS filesystems should be mounted read-only for checking append = "CUSTOM=/dev/hda1 load_ramdisk=1 ramdisk_size=8192 prompt_ramdisk=0 root=/dev/ram rw apm=off splash=silent" # image = /boot/linux label = Desktop2 initrd=/boot/initrd_ram.img read-write # Non-UMSDOS filesystems should be mounted read-only for checking append = "CUSTOM=/dev/hda1 CONFIG=2 load_ramdisk=1 ramdisk_size=8192 prompt_ramdisk=0 root=/dev/ram rw apm=off splash=silent" # image = /boot/linux password=mypass label = SETUP initrd=/boot/initrd_ram.img read-write # Non-UMSDOS filesystems should be mounted read-only for checking append = "load_ramdisk=1 ramdisk_size=8192 prompt_ramdisk=0 root=/dev/ram rw apm=off splash=verbose"
Latest version 4.0beta-100930
RemiX(v4), diskless version, with all xorg drivers and soundcard drivers included. Drivers are default open source drivers, does not include the proprietary drivers provided by nVidia or ATI. This is also a devel version and contain sources and scripts to build system and bootable images, thin client versions included.
RemiX diskless is released under GPL
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. |
See GPL licenses GPL