Line 1: |
Line 1: |
| + | {{Languages|Tftp server}} |
| + | |
| == smeserver-tftp-server == | | == smeserver-tftp-server == |
− | | + | Maintainer: [mailto:smeserver@batley.id.au Trevor Batley]<br> |
− | === Maintainer ===
| + | {{#smeversion: smeserver-tftp-server }} |
− | [mailto:trevorbatley@users.sourceforge.net Trevor Batley] | |
| | | |
| === Description === | | === Description === |
− | This contribution adds a tftp server to your smeserver (primarily used by workstations that are using the pxeboot protocol to retrieve boot images and parameters from the server). | + | This contribution adds a tftp server (tftp-server) to your smeserver (primarily used by workstations that are using the pxeboot protocol to retrieve boot images and parameters from the server). |
| | | |
| It was produced to support my [[Thinclient|smeserver-thinclient]] contrib, but can be used independently. | | It was produced to support my [[Thinclient|smeserver-thinclient]] contrib, but can be used independently. |
| | | |
| === Requires === | | === Requires === |
− | smeserver 7.x | + | *smeserver >= 10.0 |
| + | *tftp-server >= 0.49 |
| + | |
| + | For a lot of linux distros you will need nfs support |
| + | |
| + | https://wiki.koozali.org/NFS |
| + | |
| + | You will a /etc/exports line similar to this: |
| + | |
| + | /tftpboot/ *(ro,sync,no_wdelay,insecure_locks,no_root_squash,insecure) |
| + | <syntaxhighlight lang="bash"> |
| + | mkdir -p /etc/e-smith/templates-custom/etc/exports/ |
| + | echo "/tftpboot/ *(ro,sync,no_wdelay,insecure_locks,no_root_squash,insecure)" > /etc/e-smith/templates-custom/etc/exports/30tftp |
| + | expand-template /etc/exports |
| + | </syntaxhighlight> |
| + | /tftpboot/images/ubunturescue_1104/ *(ro,sync,no_wdelay,insecure_locks,no_root_squash,insecure) |
| + | if you have installed smeserver-nfs |
| | | |
| === Installation === | | === Installation === |
− | This contrib is currently held in the smedev repository, so the following commands will install on your smeserver. | + | This contrib is held in the smecontribs repository, so the following commands will install on your smeserver. |
| | | |
− | yum --enablerepo=smedev install smeserver-tftp-server | + | yum --enablerepo=smecontribs install smeserver-tftp-server |
| | | |
− | You will then need to activate the database changes etc.
| + | '''Note:''' this will download and install the latest tftp-server from the Centos base repository, so if you don't have that repository ebnabled, please use the following command |
− | The 'official' way is to perform
| |
| | | |
− | signal-event post-upgrade | + | yum --enablerepo=smecontribs --enablerepo=base install smeserver-tftp-server |
− | signal-event reboot
| |
| | | |
− | The tftpd status is controlled via the Thin Clients server-manager panel if you have installed my [[Thinclient|smeserver-thinclient]] contrib.<br> | + | The tftp status can be controlled via the Thin Clients server-manager panel if you have installed my [[Thinclient|smeserver-thinclient]] contrib. |
| | | |
− | If you haven't, you'll need to enable the tftp server and expand all the templates etc. | + | If you haven't, you'll need to enable the tftp server manually from the shell (logged in as root) |
− | config setprop tftpd status enabled | + | config setprop tftp status enabled |
− | signal-event tftpd-conf | + | signal-event smeserver-tftp-server-update |
| | | |
| If for any reason the tftp server isn't running, try: | | If for any reason the tftp server isn't running, try: |
− | /etc/init.d/tftpd restart | + | systemctl restart tftp |
| | | |
| === Defaults === | | === Defaults === |
| You shouldn't need to play with any parameters (except status). The defaults and allowed values are listed below. | | You shouldn't need to play with any parameters (except status). The defaults and allowed values are listed below. |
| | | |
− | {| border="1" cellpadding="5" cellspacing="0" | + | {| border="1" cellpadding="5" |
| ! <prop> | | ! <prop> |
| ! default <value> | | ! default <value> |
| ! allowed Values | | ! allowed Values |
| + | ! description |
| |- | | |- |
| | status | | | status |
| | disabled | | | disabled |
| | enabled/disabled | | | enabled/disabled |
| + | | |
| |- | | |- |
| | access | | | access |
| | private | | | private |
| | private/public/localhost | | | private/public/localhost |
| + | | |
| |- | | |- |
| | log | | | log |
| | normal | | | normal |
| | normal/verbose/disabled | | | normal/verbose/disabled |
| + | | equivalent to -v or -vv or none |
| |- | | |- |
| | user | | | user |
− | | root | + | | nobody |
− | | root/nobody | + | | nobody/<user> |
| + | | default to nobody, any valid user id |
| |- | | |- |
− | | privelege | + | | privilege |
| | ro | | | ro |
| | ro/rw | | | ro/rw |
| + | | read-only or read-write (rw equivalent to -c) |
| |- | | |- |
| | timeout | | | timeout |
| | default | | | default |
− | | default/300 | + | | default/nnn |
− | |- | + | | timeout value in seconds (default is 900) |
− | | UDPPort
| |
− | | 69
| |
− | | any port
| |
| |- | | |- |
| | directory | | | directory |
| | /tftpboot | | | /tftpboot |
| | any directory | | | any directory |
| + | | |
| + | |- |
| + | | blksize <sup>1</sup> |
| + | | |
| + | | Value between 512-65464 |
| + | | e.g. equivalent to -B [512-65464] |
| + | |- |
| + | | refuse <sup>2</sup> |
| + | | |
| + | | any tftp parameter |
| + | | e.g. blksize equivalent to -r blksize |
| |- | | |- |
| |} | | |} |
| | | |
| These settings can be set/changed via | | These settings can be set/changed via |
− | config setprop tftpd <prop> <value> | + | config setprop tftp <prop> <value> |
| + | signal-event smeserver-tftp-server-update |
| + | |
| + | <nowiki>*1</nowiki> blksize does not have a default entry in the configuration database. It can be added as above or removed via |
| + | |
| + | see Bug 10646 for updated tftp contrib with addition of default setting |
| + | config delprop tftp blksize |
| + | signal-event smeserver-tftp-server-update |
| + | |
| + | <nowiki>*2</nowiki> refuse does not have a default entry in the configuration database. It can be added as above or removed via |
| + | config delprop tftp refuse |
| + | signal-event smeserver-tftp-server-update |
| + | |
| + | ===Setup PXE Booting=== |
| + | |
| + | Some rough notes on setting up PXE booting for linux using syslinux |
| + | |
| + | https://wiki.syslinux.org/wiki/index.php?title=PXELINUX |
| + | |
| + | To use a menu we need a copy of pxelinux.0 |
| + | |
| + | From the syslinux wiki link above: |
| + | |
| + | On the TFTP server, create the directory "/tftpboot", and copy "pxelinux.0" (from the Syslinux distribution) and any kernel or initrd images that you want to boot. |
| + | [5.00+] Also copy "ldlinux.c32" from the Syslinux distribution to the "/tftpboot" directory on the TFTP server. |
| + | Finally, create the directory "/tftpboot/pxelinux.cfg". The configuration file (equivalent of syslinux.cfg -- see the SYSLINUX FAQ for the options here) will live in this directory. |
| + | |
| + | The actual linux image and any associated files need to be extracted from a source distribution ISO here: |
| + | |
| + | /tftpboot/images/{name_of_distro} |
| + | |
| + | |
| + | ====Menus==== |
| + | |
| + | We can create a menu system with sub menus as well. |
| + | |
| + | Yu will need this from the syslinux ISO: |
| + | |
| + | /tftpboot/com32/vesamenu.c32 |
| + | |
| + | You can add a background image like this: |
| + | |
| + | /tftpboot/images/graphics/background.png |
| + | |
| + | |
| + | Example /tftpboot/pxelinux.cfg/default: |
| + | |
| + | <pre> |
| + | menu title --== SME Linux, PXE Main Menu ==-- |
| + | menu background graphics/background.png |
| + | menu tabmsgrow 22 |
| + | menu cmdlinerow 22 |
| + | menu endrow 24 |
| + | |
| + | menu color title 1;34;49 #eea0a0ff #cc333355 std |
| + | menu color sel 7;37;40 #ff000000 #bb9999aa all |
| + | menu color border 30;44 #ffffffff #00000000 std |
| + | menu color pwdheader 31;47 #eeff1010 #20ffffff std |
| + | menu color hotkey 35;40 #90ffff00 #00000000 std |
| + | menu color hotsel 35;40 #90000000 #bb9999aa all |
| + | menu color timeout_msg 35;40 #90ffffff #00000000 none |
| + | menu color timeout 31;47 #eeff1010 #00000000 none |
| + | |
| + | prompt 0 |
| + | noescape 1 |
| + | allowoptions 0 |
| + | timeout 0 |
| + | |
| + | default com32/vesamenu.c32 |
| + | |
| + | label linuxmenu |
| + | menu label ^Linux Boot Disks Menu |
| + | kernel com32/vesamenu.c32 |
| + | append pxelinux.cfg/linux_boot_disks |
| + | |
| + | label Arch |
| + | menu label ^Arch Boot Disks Menu |
| + | kernel com32/vesamenu.c32 |
| + | append pxelinux.cfg/arch |
| + | |
| + | label bootimg |
| + | menu label ^Other Boot Images |
| + | kernel com32/vesamenu.c32 |
| + | append pxelinux.cfg/bootimg |
| + | </pre> |
| + | |
| + | We then need to create separate sub menu configuration files in the same directory. Note the use of NFS is required for some of the setups here. |
| + | |
| + | {{Note box|These are old configs that have not been tested recently but should give an idea. Please update with any recent information}} |
| + | |
| + | Sample for /tftpboot/pxelinux.cfg/linux_boot_disks |
| + | |
| + | The symbol ^ as per eg "Back to ^Main" is used to create an underlined shortcut key M in this instance. |
| + | |
| + | <pre> |
| + | menu title --== Linux Boot Images ==-- |
| + | menu background graphics/background.png |
| + | menu tabmsgrow 22 |
| + | menu cmdlinerow 22 |
| + | menu endrow 24 |
| + | |
| + | menu color title 1;34;49 #eea0a0ff #cc333355 std |
| + | menu color sel 7;37;40 #ff000000 #bb9999aa all |
| + | menu color border 30;44 #ffffffff #00000000 std |
| + | menu color pwdheader 31;47 #eeff1010 #20ffffff std |
| + | menu color hotkey 35;40 #90ffff00 #00000000 std |
| + | menu color hotsel 35;40 #90000000 #bb9999aa all |
| + | menu color timeout_msg 35;40 #90ffffff #00000000 none |
| + | menu color timeout 31;47 #eeff1010 #00000000 none |
| + | |
| + | prompt 0 |
| + | noescape 1 |
| + | allowoptions 0 |
| + | timeout 0 |
| + | |
| + | default com32/vesamenu.c32 |
| + | |
| + | label main |
| + | menu label Back to ^Main Menu |
| + | kernel com32/vesamenu.c32 |
| + | append pxelinux.cfg/default |
| + | |
| + | |
| + | label Mint 12 |
| + | menu label ^Mint 12 |
| + | kernel images/mint_12/vmlinuz |
| + | append boot=casper initrd=images/mint_12/initrd.lz |
| + | |
| + | label Debian Mint |
| + | menu label ^Debian Mint |
| + | kernel images/debian_mint/vmlinuz |
| + | append boot=casper netboot=nfs nfsroot=192.168.10.1:/home/e-smith/files/ibays/computer/files/debian_mint initrd=images/debian_mint/initrd.lz |
| + | |
| + | label Xubuntu |
| + | menu label ^Xubuntu |
| + | kernel images/xubuntu_1110/vmlinuz |
| + | append boot=casper netboot=nfs nfsroot=192.168.10.1:/home/e-smith/files/ibays/computer/files/xubuntu_1110 initrd=images/xubuntu_1110/initrd.lz |
| + | |
| + | label Clonezilla-live |
| + | MENU LABEL Clonezilla Live (Ramdisk) |
| + | KERNEL images/clonezilla/vmlinuz |
| + | APPEND initrd=images/clonezilla/initrd.img boot=live username=user union=overlay config components quiet noswap edd=on nomodeset nodmraid locales=en_GB.UTF-8 keyboard-layouts=uk keyboard-layouts= ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_batch=no net.ifnames=0 nosplash noprompt fetch=tftp://192.168.10.1//images/clonezilla/filesystem.squashfs |
| + | |
| + | label systemrescue |
| + | menu label ^System Rescue |
| + | kernel images/recovery/systemrescue/rescuecd |
| + | initrd images/recovery/systemrescue/initram.igz |
| + | append setkmap=us netboot=http://192.168.0.10/iso/sysrescue/sysrcd.dat |
| + | |
| + | label riplinux32 |
| + | menu label ^Rescue Is Possible Linux (32-bit kernel) |
| + | kernel images/recovery/riplinux/kernel32 |
| + | append vga=normal video=640x400 nokeymap initrd=images/recovery/riplinux/rootfs.cgz root=/dev/ram0 rw |
| + | |
| + | label riplinux64 |
| + | menu label Rescue ^Is Possible Linux (64-bit kernel) |
| + | kernel images/recovery/riplinux/kernel64 |
| + | append vga=normal video=640x400 nokeymap initrd=images/recovery/riplinux/rootfs.cgz root=/dev/ram0 rw |
| + | |
| + | LABEL - |
| + | MENU LABEL SeaTools for DOS V2.23 (Seagate/Maxtor) |
| + | TEXT HELP |
| + | GUI version. Test PATA/IDE/SATA drives by instructing the drive to run its |
| + | built-in Drive Self Test (DST) and give either a pass or fail status. |
| + | ENDTEXT |
| + | #COM32 linux.c32 memdisk |
| + | kernel images/memdisk |
| + | INITRD images/UBCD/ubcd/images/seatool2.img.gz |
| + | |
| + | label GParted Live |
| + | MENU LABEL ^GParted Live |
| + | kernel /images/gparted/vmlinuz |
| + | append initrd=initrd.img boot=live config components union=overlay username=user noswap noeject ip= vga=788 fetch=http://192.168.10.1/computer/filesystem.squashfs |
| + | </pre> |
| + | |
| + | ===Voip Phones=== |
| + | |
| + | You can use tftpd with your Voip phones. |
| + | |
| + | More advanced phones will allow you to choose a directory for your firmware where. More basic phones may not be able to you anything other than the default root directory. |
| + | |
| + | e.g |
| + | I have some old Mitel phones use /tftpboot only |
| + | I have a number of new Grandstream phones that can load from /tftpboot/some_directory |
| + | |
| + | Most Voip phone scan read a config file based on their MAC address to configure themselves during boot. |
| + | This can take a while to set up but is a massive time saver. |
| + | |
| + | ===Related Contribs=== |
| + | |
| + | [[Thinclient|smeserver-thinclient]] |
| + | |
| + | This can aid with basic tftp setup. |
| | | |
| === Uninstall === | | === Uninstall === |
− | yum remove smeserver-tftp-server | + | yum remove smeserver-tftp-server tftp-server |
| + | signal-event post-upgrade ; signal-event reboot |
| + | |
| + | If you want to fully clean up, by removing the entries from the configuration database |
| + | config delete tftp |
| | | |
− | Everything should be turned off, but if not, or you just want to make sure
| + | === Source === |
− | /etc/init.d/tftpd stop
| + | The source for this contrib can be found in the smecontribs [http://smecontribs.cvs.sourceforge.net/smeserver/smeserver-tftp-server/ CVS] on sourceforge. |
− | An error saying that /etc/init.d/tftpd does not exist should be returned
| |
| | | |
| === Bugs === | | === Bugs === |
− | Please raise bugs under the SME-Contribs section in [http://bugs.contribs.org/enter_bug.cgi bugzilla] | + | Please raise bugs under the SME-Contribs section in {{BugzillaFileBug|product=|component=|title=bugzilla}}and select the smeserver-tftp-server component or use {{BugzillaFileBug|product=SME%20Contribs|component=smeserver-tftp-server|title=this link}}. |
− | and select the smeserver-thinclient component. | |
| | | |
− | [[Category: Contrib]] | + | {{#bugzilla:columns=id,product,version,status,summary |sort=id|order=desc |component=smeserver-tftp-server|noresultsmessage="No open bugs found."}} |
| + | ---- |
| + | [[Category:Contrib]] |
| + | [[Category:Asterisk]] |
| + | [[Category:Administration]] |