Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
usermanual [2006/07/20 07:31]
stockholm
usermanual [2006/07/21 05:17] (current)
stockholm
Line 209: Line 209:
  
 ==== Other filesystem setups ==== ==== Other filesystem setups ====
-This tutorial does not cover all possible ways of setting up a diskless client'​s initial filesystem. You could even mount a conventional hard disk. Why would you want to boot "​diskless"​ if you have a hard disk? Reasons might be: you do not wish to administer the local disk; you want the assurance that a system is running a kernel from a central server; or you like the speed of network booting. Network booting is one technique in a toolbox. Techniques can be combined to do what you want. If you are interested in running the diskless client as an X-terminal, a very common use, you may wish to investigate the Linux Terminal Server Project. ​+This tutorial does not cover all possible ways of setting up a diskless client'​s initial filesystem. You could even mount a conventional hard disk. Why would you want to boot "​diskless"​ if you have a hard disk? Reasons might be: you do not wish to administer the local disk; you want the assurance that a system is running a kernel from a central server; or you like the speed of network booting. Network booting is one technique in a toolbox. Techniques can be combined to do what you want. If you are interested in running the diskless client as an X-terminal, a very common use, you may wish to investigate the [[http://​www.ltsp.org/​|Linux Terminal Server Project]] 
 ==== Swap over NFS ==== ==== Swap over NFS ====
-Swap over NFS can be arranged but you have to patch the kernel source. See here. +Swap over NFS can be arranged but you have to patch the kernel source. See [[http://​nfs-swap.dot-heine.de/​|here]].
  
 Be aware that opinions are divided on NFS swap. Some people think it's a bad thing because it just kills the network if you have lots of diskless computers and that you shouldn'​t be running into a swap regime on a diskless computer anyway. Some other people like having a bit of insurance. ​ Be aware that opinions are divided on NFS swap. Some people think it's a bad thing because it just kills the network if you have lots of diskless computers and that you shouldn'​t be running into a swap regime on a diskless computer anyway. Some other people like having a bit of insurance. ​
  
-Also have a look at the NBD Network Block Device for swapping over that. +Also have a look at the [[http://​atrey.karlin.mff.cuni.cz/​~pavel/​nbd/​nbd.html|NBD Network Block Device]] for swapping over that. 
  
-There is also the follow-on project ENBD, the Enhanced Network Block Driver. I have no experience with this for swapping. Comments welcome.+There is also the follow-on project ​[[http://​www.it.uc3m.es/​~ptb/​nbd/​|ENBD]], the Enhanced Network Block Driver. I have no experience with this for swapping. Comments welcome.
  
 ===== Booting DOS ===== ===== Booting DOS =====
-What about DOS? The deal with DOS is that one is loading a virtual floppy called A: into extended memory and then booting from this floppy. So you have to capture an image of a bootable DOS floppy first. Some more details can be found in the mknbi-dos utility. ​+What about DOS? The deal with DOS is that one is loading a virtual floppy called A: into extended memory and then booting from this floppy. So you have to capture an image of a bootable DOS floppy first. Some more details can be found in the [[mknbi|''​mknbi-dos''​]] ​utility. ​
  
-I have booted DOS (both M$ versions up to 5.0 and DR versions up to 7.03) diskless this way. A mknbi-fdos is available for building boot images for booting FreeDOS, the procedure differs slightly from booting M$ or DR DOS. +I have booted DOS (both M$ versions up to 5.0 and DR versions up to 7.03) diskless this way. A [[mknbi|''​mknbi-fdos''​]] ​is available for building boot images for booting FreeDOS, the procedure differs slightly from booting M$ or DR DOS. 
  
-If you were thinking of booting a Windows machine via the network, it seems (I'm not masochistic enough to do this) the problem is not the network booting but the mounting of a file system over NetBIOS (Windows does not do remote mounts of root filesystems over NetBIOS on TCP). So that rules out a Samba server. It appears to be possible over a Netware server, for which Linux or FreeBSD has workalikes. Also it is said that only certain versions of Windows will allow diskless booting. You will also have problems with pathnames and the usual Windows hassles. Do you really want to do this? You do know that you can run lots of desktop applications like Netscape, StarOffice, etc. on Linux, FreeBSD, etc. now? Why pay good money when you can use equally good free replacements?​ Anyway if you are still determined, in the Etherboot home page, there are links to external Web pages, one explaining how this was done with a commercial TCP/IP boot ROM, another explaining how to do it using Etherboot and Netbios over IPX. A recent user experience is here. Good luck and send us your experiences or better still a URL to a page explaining how you did it.+If you were thinking of booting a Windows machine via the network, it seems (I'm not masochistic enough to do this) the problem is not the network booting but the mounting of a file system over NetBIOS (Windows does not do remote mounts of root filesystems over NetBIOS on TCP). So that rules out a Samba server. It appears to be possible over a Netware server, for which Linux or FreeBSD has workalikes. Also it is said that only certain versions of Windows will allow diskless booting. You will also have problems with pathnames and the usual Windows hassles. Do you really want to do this? You do know that you can run lots of desktop applications like Netscape, StarOffice, etc. on Linux, FreeBSD, etc. now? Why pay good money when you can use equally good free replacements?​ Anyway if you are still determined, in the [[http://​www.etherboot.org/​|Etherboot home page]], there are links to external Web pages, one explaining how this was done with a commercial TCP/IP boot ROM, another explaining how to do it using Etherboot and Netbios over IPX. A recent user experience is (AMH2006: Dead link, sorry) ​here. Good luck and send us your experiences or better still a URL to a page explaining how you did it.
  
 ===== Making an Etherboot EPROM or EEPROM ===== ===== Making an Etherboot EPROM or EEPROM =====
-Assuming you have satisfactorily set up your server environment,​ you may now wish to put the Etherboot onto an EPROM or EEPROM. Naturally this assumes access to hardware to program (and possibly erase) EPROMs. Access to a friendly electronics engineer and/or lab is one way to program and erase EPROMs. Otherwise you can look at the commercial links page for places you can buy programmed EPROMs from. +Assuming you have satisfactorily set up your server environment,​ you may now wish to put the Etherboot onto an EPROM or EEPROM. Naturally this assumes access to hardware to program (and possibly erase) EPROMs. Access to a friendly electronics engineer and/or lab is one way to program and erase EPROMs. Otherwise you can look at the [[commerciallinks|commercial links page]] for places you can buy programmed EPROMs from. 
  
 Some high-end network cards, for example the 3Com 905B, have a socket for an EEPROM which can be programmed in situ with the right utilities. See any release notes accompanying Etherboot for more information. ​ Some high-end network cards, for example the 3Com 905B, have a socket for an EEPROM which can be programmed in situ with the right utilities. See any release notes accompanying Etherboot for more information. ​
Line 235: Line 236:
 ==== Enabling the EPROM ==== ==== Enabling the EPROM ====
 First you must discover how to enable the EPROM socket on your card. Typically the EPROM is not enabled from the factory and a jumper or a software configuration program is used to enable it.  First you must discover how to enable the EPROM socket on your card. Typically the EPROM is not enabled from the factory and a jumper or a software configuration program is used to enable it. 
 +
 ==== Size and speed of the EPROM ==== ==== Size and speed of the EPROM ====
 Secondly, you must discover what size and speed of EPROM is needed. This can be difficult as network card manufacturers often neglect to provide this information. ​ Secondly, you must discover what size and speed of EPROM is needed. This can be difficult as network card manufacturers often neglect to provide this information. ​
Line 250: Line 252:
 The speed of the EPROM needed depends on how it is connected to the computer bus. If the EPROM is directly connected to the computer bus, as in the case of many cheap NE2000 clones, then you will probably have to get an EPROM that is at least as fast as the ROMs used for the main BIOS. This is typically 120-150 ns. Some network cards mediate access to the EPROM via circuitry and this may insert wait states so that slower EPROMs can be used. Incidentally the slowness of the EPROM doesn'​t affect Etherboot execution speed much because Etherboot copies itself to RAM before executing. ​ The speed of the EPROM needed depends on how it is connected to the computer bus. If the EPROM is directly connected to the computer bus, as in the case of many cheap NE2000 clones, then you will probably have to get an EPROM that is at least as fast as the ROMs used for the main BIOS. This is typically 120-150 ns. Some network cards mediate access to the EPROM via circuitry and this may insert wait states so that slower EPROMs can be used. Incidentally the slowness of the EPROM doesn'​t affect Etherboot execution speed much because Etherboot copies itself to RAM before executing. ​
  
-If you have your own EPROM programming hardware, there is a nice collection of EPROM file format conversion utilities here. The files produced by the Etherboot build process are plain binary. A simple binary to Intel hex format converter can be found at the Etherboot web site here. +If you have your own EPROM programming hardware, there is a nice collection of EPROM file format conversion utilities ​[[http://​srecord.sourceforge.net/​index.html|here]]. The files produced by the Etherboot build process are plain binary. A simple binary to Intel hex format converter can be found [[dev:​bin2intelhexc|in this wiki here]]
  
 Etherboot is believed to make PnP compliant ROMs for PCI NICs. A long-standing bug in the headers has been tracked down. However some faulty old BIOSes are out there so I have written a Perl script swapdevids.pl to switch the header around if necessary. You'll have to experiment with it both ways to find out which works. Or you could dump a ROM image that works (e.g. RPL, PXE ROM) using the Perl script disrom.pl. The fields to look at are Device (base, sub, interface) Type. It should be 02 00 00, but some BIOSes want 00 00 02 due to ambiguity in the original specification. Etherboot is believed to make PnP compliant ROMs for PCI NICs. A long-standing bug in the headers has been tracked down. However some faulty old BIOSes are out there so I have written a Perl script swapdevids.pl to switch the header around if necessary. You'll have to experiment with it both ways to find out which works. Or you could dump a ROM image that works (e.g. RPL, PXE ROM) using the Perl script disrom.pl. The fields to look at are Device (base, sub, interface) Type. It should be 02 00 00, but some BIOSes want 00 00 02 due to ambiguity in the original specification.
- 
- 
  
 ===== Troubleshooting tips ===== ===== Troubleshooting tips =====
Line 268: Line 268:
   * Etherboot detects card but does nothing after saying Searching for server. Check your network hardware. Did you select the right hardware interface (AUI, BNC, RJ45)? Is the cabling ok? If you have a Unix computer on the network and have root privileges, you could run tcpdump or ethereal looking for broadcast packets on the bootps port. If the requests are getting sent out but no replies are getting back, check your DHCPD setup. Also check if the server has a route to the client. ​   * Etherboot detects card but does nothing after saying Searching for server. Check your network hardware. Did you select the right hardware interface (AUI, BNC, RJ45)? Is the cabling ok? If you have a Unix computer on the network and have root privileges, you could run tcpdump or ethereal looking for broadcast packets on the bootps port. If the requests are getting sent out but no replies are getting back, check your DHCPD setup. Also check if the server has a route to the client. ​
   * Etherboot obtains IP address but fails to load file. Check the tftp server. Is the boot image file installed? Is the file world readable? Is the path to the file allowed by the configuration of tftpd? Is the client denied by tcpwrapper rules? Did you put the right home directory and filename in /​etc/​dhcpd.conf?​ If you are booting lots of clients, is inetd shutting down tftpd for being spawned too often? If so, you need to get a better inetd or a a dedicated tftpd that runs as an independent daemon. ​   * Etherboot obtains IP address but fails to load file. Check the tftp server. Is the boot image file installed? Is the file world readable? Is the path to the file allowed by the configuration of tftpd? Is the client denied by tcpwrapper rules? Did you put the right home directory and filename in /​etc/​dhcpd.conf?​ If you are booting lots of clients, is inetd shutting down tftpd for being spawned too often? If so, you need to get a better inetd or a a dedicated tftpd that runs as an independent daemon. ​
-  * Etherboot loads file but hangs halfway through the transfer. We have one report that this happens if the Fast A20 Gate option is selected in the BIOS setup. The A20 issue is explained here. In effect this causes the loaded kernel to overwrite Etherboot and kill it. Try deselecting the option. You don't need it for Linux anyway. ​+  * Etherboot loads file but hangs halfway through the transfer. We have one report that this happens if the Fast A20 Gate option is selected in the BIOS setup. The A20 issue is explained ​[[http://​www.win.tue.nl/​~aeb/​linux/​kbd/​A20.html|here]]. In effect this causes the loaded kernel to overwrite Etherboot and kill it. Try deselecting the option. You don't need it for Linux anyway. ​
   * Etherboot loads file via tftp but Linux fails to mount the root filesystem, either on an initrd or on NFSroot. This is a large category. Here are some suggestions: ​   * Etherboot loads file via tftp but Linux fails to mount the root filesystem, either on an initrd or on NFSroot. This is a large category. Here are some suggestions: ​
     * You do not have a private copy of the /, /etc, /var, ... directories ​     * You do not have a private copy of the /, /etc, /var, ... directories ​
Line 311: Line 311:
   * Why don't you provide prebuilt ROM images? ​   * Why don't you provide prebuilt ROM images? ​
     * [[http://​www.rom-o-matic.net/​|rom-o-matic.net]] is the answer. This is a site that makes ROM images for you on demand from specifications given to a web form and returns the image as the result of the form.      * [[http://​www.rom-o-matic.net/​|rom-o-matic.net]] is the answer. This is a site that makes ROM images for you on demand from specifications given to a web form and returns the image as the result of the form. 
 +
 ==== Testing Etherboot ==== ==== Testing Etherboot ====
   * I put the ROM image on floppy like you wrote (''​cat bin/​boot1a.bin bin/foo.rom > /dev/fd0, or make bin/​foo.fd0''​) but the loader prints out an error. ​   * I put the ROM image on floppy like you wrote (''​cat bin/​boot1a.bin bin/foo.rom > /dev/fd0, or make bin/​foo.fd0''​) but the loader prints out an error. ​
Line 323: Line 324:
     * Access violation is a blanket reply for many different problems but essentially the TFTP server cannot give Etherboot the file requested. Did you put the file where TFTPD expects to find it, e.g. on a directory that is on its path? Did you make the file world readable? Case of the filename is important too. Check the log files on the TFTP server to see what the actual filename it tried to open was, sometimes directory prefixes are prepended to the name due to the program options specified. ​     * Access violation is a blanket reply for many different problems but essentially the TFTP server cannot give Etherboot the file requested. Did you put the file where TFTPD expects to find it, e.g. on a directory that is on its path? Did you make the file world readable? Case of the filename is important too. Check the log files on the TFTP server to see what the actual filename it tried to open was, sometimes directory prefixes are prepended to the name due to the program options specified. ​
   * I made this kernel and put it in /tftpdir like you wrote but Etherboot says Unable to load file.    * I made this kernel and put it in /tftpdir like you wrote but Etherboot says Unable to load file. 
-    * Is the file a boot image? You cannot use a ordinary kernel image, you must process it with mkelf-linux first. ​+    * Is the file a boot image? You cannot use a ordinary kernel image, you must process it with [[mknbi|mkelf-linux]] first. ​
   * I have this proprietary boot ROM (e.g. LanWorks, PXE, etc) and I used mkelf-linux or mknbi-linux to make a boot image, (or I got this boot image from the LTSP project), but the boot ROM doesn'​t load it, or it fails to run.    * I have this proprietary boot ROM (e.g. LanWorks, PXE, etc) and I used mkelf-linux or mknbi-linux to make a boot image, (or I got this boot image from the LTSP project), but the boot ROM doesn'​t load it, or it fails to run. 
-    * The boot image format is specific to Etherboot. It will not work with proprietary boot ROMs. You have to find out from the supplier what boot procedures you should use. For example, if you are using a LanWorks boot ROM, the information you need is here. For PXE the utility you need is PXELINUX. ​+    * The boot image format is specific to Etherboot. It will not work with proprietary boot ROMs. You have to find out from the supplier what boot procedures you should use. For example, if you are using a LanWorks boot ROM, the information you need is [[http://​www.3com.com/​managedpc|here]]. For PXE the utility you need is PXELINUX. ​ 
 ==== Hardware capabilities ==== ==== Hardware capabilities ====
   * What network cards are supported? ​   * What network cards are supported? ​
Line 331: Line 333:
   *  I have a machine with the X processor and Y megabytes of memory. What can I expect to run on it?    *  I have a machine with the X processor and Y megabytes of memory. What can I expect to run on it? 
     * Please note that these estimates are approximate: ​     * Please note that these estimates are approximate: ​
-    * On a 386 with at least 4MB of memory you can boot Linux. With 4MB perhaps only a few telnet sessions are possible. With 8MB you might be able to run a text based web browser like Lynx or W3M. You can also run firewalls such as floppyfw. ​+    * On a 386 with at least 4MB of memory you can boot Linux. With 4MB perhaps only a few telnet sessions are possible. With 8MB you might be able to run a text based web browser like Lynx or W3M. You can also run firewalls such as [[http://​www.zelow.no/​floppyfw/​|floppyfw]]
     * On a 486 with 16MB of memory you can run X to make an X-terminal. ​     * On a 486 with 16MB of memory you can run X to make an X-terminal. ​
     * On a Pentium with 32MB of memory you can run an X-terminal and some applications locally, say perhaps printing, daemons to control devices, etc.      * On a Pentium with 32MB of memory you can run an X-terminal and some applications locally, say perhaps printing, daemons to control devices, etc. 
     * On anything faster and with more memory you could perhaps do distributed computation,​ e.g. a cluster. ​     * On anything faster and with more memory you could perhaps do distributed computation,​ e.g. a cluster. ​
 +
 ==== Booting Linux ==== ==== Booting Linux ====
   * The kernel loads but it cannot find a NFS server for the filesystem. ​   * The kernel loads but it cannot find a NFS server for the filesystem. ​
     * Do you have a NFS server running and is it allowed to serve this client? NFS is actually several services. On Linux at least you need: nfsd (either kernel or userland version), rpc.mountd and portmapper. Check if the tcpwrappers config file is allowing portmapper to receive the request. Look at the log files for clues. Did we already mention that log files are your friends? ​     * Do you have a NFS server running and is it allowed to serve this client? NFS is actually several services. On Linux at least you need: nfsd (either kernel or userland version), rpc.mountd and portmapper. Check if the tcpwrappers config file is allowing portmapper to receive the request. Look at the log files for clues. Did we already mention that log files are your friends? ​
   * The filesystem mounts but it says something about not being able to open an initial console. Or alternatively,​ various services complain about not being able to write to the filesystem. ​   * The filesystem mounts but it says something about not being able to open an initial console. Or alternatively,​ various services complain about not being able to write to the filesystem. ​
-    * A common mistake in Linux NFS servers is to put extra spaces in /​etc/​exports. Please see the NFS FAQ for frequently answered questions about Linux NFS services.  +    * A common mistake in Linux NFS servers is to put extra spaces in /​etc/​exports. Please see the [[http://​nfs.sourceforge.net/​|NFS FAQ]] for frequently answered questions about Linux NFS services.  
-    * Please review the Troubleshooting section for what is required on this root filesystem. The situation is complicated by the fact that there are many possible ways of setting this up, including using a root filesystem that is on ramdisk. If you wish to avoid many of the troubles, try using a packaged solution such as LTSP. +    * Please review the Troubleshooting section for what is required on this root filesystem. The situation is complicated by the fact that there are many possible ways of setting this up, including using a root filesystem that is on ramdisk. If you wish to avoid many of the troubles, try using a packaged solution such as [[http://​www.ltsp.org/​|LTSP]] 
 ==== Running X ==== ==== Running X ====
   * I tried to run X on the client but it aborted. ​   * I tried to run X on the client but it aborted. ​
Line 358: Line 362:
     * If you want to run apps locally, well how long is a piece of string? Netscape will need say another 16MB. It all depends. Whatever you do, it's worth trimming down on the services you run on the client. Don't run more virtual consoles than you need and don't run unneeded daemons. ​     * If you want to run apps locally, well how long is a piece of string? Netscape will need say another 16MB. It all depends. Whatever you do, it's worth trimming down on the services you run on the client. Don't run more virtual consoles than you need and don't run unneeded daemons. ​
     * As for the server, in the X-terminal case this has all the applications running on it, so it should be adequate for the multiuser aspect. A high-end Pentium, with 64 MB of memory to start with, and between 8 and 16MB for each extra client is a good starting point. It will also depend on your mix of client access, statistically perhaps not everybody will be running at the same time. Remember that you don't have to have one big server for all your clients, you can and you should distribute the load across servers. ​     * As for the server, in the X-terminal case this has all the applications running on it, so it should be adequate for the multiuser aspect. A high-end Pentium, with 64 MB of memory to start with, and between 8 and 16MB for each extra client is a good starting point. It will also depend on your mix of client access, statistically perhaps not everybody will be running at the same time. Remember that you don't have to have one big server for all your clients, you can and you should distribute the load across servers. ​
 +
 ==== Other client applications ==== ==== Other client applications ====
   * How can I print to a printer attached to a diskless client? ​   * How can I print to a printer attached to a diskless client? ​
-    * There is a server program called p910nd at the Etherboot web site that funnels data from a TCP/IP connection to the printer port. You can instruct lpd or CUPS on the server to send jobs across the network to p910nd. ​+    * There is a server program called ​[[http://​www.etherboot.org/​p910nd/​|p910nd]] at the Etherboot web site that funnels data from a TCP/IP connection to the printer port. You can instruct lpd or [[http://​www.cups.org/​|CUPS]] on the server to send jobs across the network to p910nd. ​
   * How can I output sound on the client? ​   * How can I output sound on the client? ​
-    * There is a package called virtualfs that proxies the sound devices across the network. It can also proxy the floppy drive.  +    * There is a package called ​[[http://​www.solucorp.qc.ca/​|virtualfs]] that proxies the sound devices across the network. It can also proxy the floppy drive.  
-    * Another solution is EsounD  +    * Another solution is [[http://​www.tux.org/​~ricdude/​EsounD.html|EsounD]] 
-    * You may wish to check the LTSP site and mailing lists for other proposed solutions. ​+    * You may wish to check the [[http://​www.ltsp.org/​|LTSP site]] and mailing lists for other proposed solutions. ​
   * How can I access the floppy on the client? ​   * How can I access the floppy on the client? ​
-    * Besides virtualfs mentioned above, recent distributions of mtools have a floppyd. This only works with the mtools utilities though. ​+    * Besides virtualfs mentioned above, recent distributions of [[http://​wauug.erols.com/​pub/​knaff/​mtools/​|mtools]] have a floppyd. This only works with the mtools utilities though. ​ 
 ==== Booting FreeBSD ==== ==== Booting FreeBSD ====
   * Where are the instructions for booting FreeBSD? ​   * Where are the instructions for booting FreeBSD? ​
     * For now, there is just a short document in the doc directory. Better versions of this document depend on contributions from the FreeBSD community, I am unable to test FreeBSD because I don't run it.      * For now, there is just a short document in the doc directory. Better versions of this document depend on contributions from the FreeBSD community, I am unable to test FreeBSD because I don't run it. 
 +
 ==== Booting other operating systems (DOS, Windows) ==== ==== Booting other operating systems (DOS, Windows) ====
   * I want to boot FreeDOS. ​   * I want to boot FreeDOS. ​
-    * The new mknbi utility supports creating boot images from FreeDOS kernels now. See the man page for details. FreeDOS is under development and if the layout of the kernel image changes, please send any corrections to me. +    * The new ''​mknbi'' ​utility supports creating boot images from FreeDOS kernels now. See the [[mknbi|man page]] for details. FreeDOS is under development and if the layout of the kernel image changes, please send any corrections to me. 
   * I cannot boot DR-DOS 7.03.    * I cannot boot DR-DOS 7.03. 
     * There is some difference between the DR-DOS 7.03 and 7.02 bootblock that causes it not to boot. But a 7.02 bootblock works just as well with the DR-DOS 7.03 kernel, so you can substitute that.      * There is some difference between the DR-DOS 7.03 and 7.02 bootblock that causes it not to boot. But a 7.02 bootblock works just as well with the DR-DOS 7.03 kernel, so you can substitute that. 
Line 378: Line 385:
     * Use the /​testmem:​off option to prevent HIMEM from scribbling over the ramdisk which is the floppy A:.      * Use the /​testmem:​off option to prevent HIMEM from scribbling over the ramdisk which is the floppy A:. 
   * How do I make A: my real floppy again after booting is complete? ​   * How do I make A: my real floppy again after booting is complete? ​
-    * Use the rmrd.com program supplied with mknbi. ​+    * Use the ''​rmrd.com'' ​program supplied with [[mknbi|''​mknbi''​]]
   * I want to use the real floppy at the same time I am using the ramdisk image of the boot floppy. ​   * I want to use the real floppy at the same time I am using the ramdisk image of the boot floppy. ​
-    * The ''​--harddisk''​ option of ''​mknbi-dos''​ is intended for this. It causes your boot drive to be C:, so you can use A: for the real floppy. See the man page for more details ​+    * The ''​--harddisk''​ option of ''​mknbi-dos''​ is intended for this. It causes your boot drive to be C:, so you can use A: for the real floppy. See the [[mknbi|man page]] for more details ​
   * I want to boot Windows. ​   * I want to boot Windows. ​
     * I pass on this one, as I do not have (by choice) any Windows systems running on my computers. Perhaps others can contribute to this section. However I gather that it is only possible on Windows95A, as other versions don't have the necessary support for diskless booting. ​     * I pass on this one, as I do not have (by choice) any Windows systems running on my computers. Perhaps others can contribute to this section. However I gather that it is only possible on Windows95A, as other versions don't have the necessary support for diskless booting. ​
 +
 ==== Hardware issues ==== ==== Hardware issues ====
   * Where can I get an EPROM made?    * Where can I get an EPROM made? 
     * Depending on where you live, you might find a supplier listed on the Commercial Links page. Another possibility is to seek the help of someone working in a university or industrial lab who has an EPROM programmer. If you are handy with hardware, you could buy a kit or build your own. There are links to kit suppliers in the Commercial Links part of the home page.      * Depending on where you live, you might find a supplier listed on the Commercial Links page. Another possibility is to seek the help of someone working in a university or industrial lab who has an EPROM programmer. If you are handy with hardware, you could buy a kit or build your own. There are links to kit suppliers in the Commercial Links part of the home page. 
     * Some high end adapters, for example the 3Com and Intel ones, accept an EEPROM in the socket. This can be programmed in-situ using utility programs, some of which or information about are under the contrib directory in the Etherboot distribution. ​     * Some high end adapters, for example the 3Com and Intel ones, accept an EEPROM in the socket. This can be programmed in-situ using utility programs, some of which or information about are under the contrib directory in the Etherboot distribution. ​
-    * Finally some recent motherboard have flash BIOSes which contain space where an extension BIOS such as Etherboot can be inserted. The Phoenix Award BIOSes can be modified using a program called cbrom.exe possibly here. Or do a Web search for it. No success has been reported for AMI BIOSes. Dirk von Suchodoletz maintains a list of successes and failures here.+    * Finally some recent motherboard have flash BIOSes which contain space where an extension BIOS such as Etherboot can be inserted. The Phoenix Award BIOSes can be modified using a program called ​[[http://​www.ping.be/​bios|''​cbrom.exe''​]] ​possibly here. Or do a Web search for it. No success has been reported for AMI BIOSes. Dirk von Suchodoletz maintains a list of successes and failures ​[[http://​goe.net/​anleitungen/​award_board.html|here]]. 
 + 
 +(AMH2006:) Information about [[biosmodule|flashing EtherBoot into your BIOS]] is also available on a separate wiki page. 
 Here is some text contributed by Dirk von Suchodoletz. He hopes to put it on a web site someday: ​ Here is some text contributed by Dirk von Suchodoletz. He hopes to put it on a web site someday: ​
 <​file>​ <​file>​
Line 482: Line 493:
 </​file>​ </​file>​
   * How do I enable the ROM socket on my network adapter? There are no jumpers on the card.    * How do I enable the ROM socket on my network adapter? There are no jumpers on the card. 
-    * These jumperless cards need a card-specific utility program to enable the ROM. Normally the manufacturer supplies it on a diskette or CDROM. You lost the diskette? If you know the manufacturer,​ you might be able to get the program from their website. You have a mystery card? Well the first thing to do is to identify the card. If it is an ISA card and made in Taiwan or China it's almost certainly a NE2000 clone. For some information,​ try here. If it's a PCI card, then either the BIOS or the Linux PCI Utilities should be able to tell you the manufacturer and device IDs, which you can then look up to convert to names. ​+    * These jumperless cards need a card-specific utility program to enable the ROM. Normally the manufacturer supplies it on a diskette or CDROM. You lost the diskette? If you know the manufacturer,​ you might be able to get the program from their website. You have a mystery card? Well the first thing to do is to identify the card. If it is an ISA card and made in Taiwan or China it's almost certainly a NE2000 clone. For some information,​ try [[http://​www.geocities.com/​ken_yap_aus/​|here]]. If it's a PCI card, then either the BIOS or the [[http://​atrey.karlin.mff.cuni.cz/​~mj/​pciutils.shtml|Linux PCI Utilities]] should be able to tell you the manufacturer and device IDs, which you can then look up to convert to names. ​
   * I would like to boot my laptop diskless from a floppy containing Etherboot. ​   * I would like to boot my laptop diskless from a floppy containing Etherboot. ​
     * The problem is that laptops these days use PCMCIA network adapter cards. These in turn connect to the PCMCIA controller when docked. To be able to communicate with the PCMCIA card, Etherboot would first have to talk to the PCMCIA controller. Until somebody writes the code to do this... Booting from disk is different because the kernel will load the PCMCIA controller code from disk first. You could always put a Linux kernel on the boot floppy. ​     * The problem is that laptops these days use PCMCIA network adapter cards. These in turn connect to the PCMCIA controller when docked. To be able to communicate with the PCMCIA card, Etherboot would first have to talk to the PCMCIA controller. Until somebody writes the code to do this... Booting from disk is different because the kernel will load the PCMCIA controller code from disk first. You could always put a Linux kernel on the boot floppy. ​
 +
 ==== Drivers ==== ==== Drivers ====
   * There is no Etherboot driver for my network adapter. Can you write me one?    * There is no Etherboot driver for my network adapter. Can you write me one? 
-    * If I were independently wealthy and had nothing else to do in life, sure! But unfortunately I have a day job and Etherboot is a hobby. A couple of the drivers were written for pay and the others were written by volunteers. Perhaps you might like to volunteer? If you have a good grasp of C, and understand basic hardware concepts, it is quite doable, and not nearly as difficult as writing a Linux device driver. See the developer manual. You will have the reward of understanding hardware intimately and seeing your work benefit users worldwide.  +    * If I were independently wealthy and had nothing else to do in life, sure! But unfortunately I have a day job and Etherboot is a hobby. A couple of the drivers were written for pay and the others were written by volunteers. Perhaps you might like to volunteer? If you have a good grasp of C, and understand basic hardware concepts, it is quite doable, and not nearly as difficult as writing a Linux device driver. See the [[dev:​devmanual|developer manual]]. You will have the reward of understanding hardware intimately and seeing your work benefit users worldwide.  
-    * If you are a commercial entity, you might consider assigning staff or hiring a volunteer to write the driver. You get the benefit of the rest of the Etherboot code infrastructure and users worldwide get to appreciate your contribution. Bear in mind license conditions detailed in the Section called ​License, of course. NIC manufacturers note, this may be one way to attract users to your hardware products. NIC users note, petition your NIC manufacturer to support Etherboot. ​+    * If you are a commercial entity, you might consider assigning staff or hiring a volunteer to write the driver. You get the benefit of the rest of the Etherboot code infrastructure and users worldwide get to appreciate your contribution. Bear in mind license conditions detailed in the [[#license|License ​section]], of course. NIC manufacturers note, this may be one way to attract users to your hardware products. NIC users note, petition your NIC manufacturer to support Etherboot. ​
   * I see that my network adapter is supported in Linux but not in Etherboot. Can I use the Linux driver in Etherboot? Or maybe you can adapt the Linux source for me. I can send you the Linux driver source if you just say the word.    * I see that my network adapter is supported in Linux but not in Etherboot. Can I use the Linux driver in Etherboot? Or maybe you can adapt the Linux source for me. I can send you the Linux driver source if you just say the word. 
     * No, the structure of Linux and Etherboot drivers are rather different. There are several reasons: Linux drivers are more complicated and written to give good performance,​ whereas Etherboot drivers are written to be simple. Linux drivers are interrupt driven, whereas Etherboot drivers are polling. Linux drivers have an elaborate support structure, whereas Etherboot drivers are fairly self-standing. ​     * No, the structure of Linux and Etherboot drivers are rather different. There are several reasons: Linux drivers are more complicated and written to give good performance,​ whereas Etherboot drivers are written to be simple. Linux drivers are interrupt driven, whereas Etherboot drivers are polling. Linux drivers have an elaborate support structure, whereas Etherboot drivers are fairly self-standing. ​
     * But... you can use Linux drivers as a source of reverse-engineering information. Several of the drivers in Etherboot were adapted from Linux drivers. But don't send me the driver source; see previous FAQ about volunteering. And I have the latest Linux source anyway, doesn'​t everyone? ​     * But... you can use Linux drivers as a source of reverse-engineering information. Several of the drivers in Etherboot were adapted from Linux drivers. But don't send me the driver source; see previous FAQ about volunteering. And I have the latest Linux source anyway, doesn'​t everyone? ​
 +
 ==== Miscellaneous ==== ==== Miscellaneous ====
   * I don't understand something, or I have a question not covered by this list.    * I don't understand something, or I have a question not covered by this list. 
-    * Please see the Section called Getting help earlier in this document.+    * Please see the Section called ​[[#​getting_help|Getting help]] earlier in this document.
  
  

Navigation

* [[:start|Home]] * [[:about|About our Project]] * [[:download|Download]] * [[:screenshots|Screenshots]] * Documentation * [[:howtos|HowTo Guides]] * [[:appnotes|Application Notes]] * [[:faq:|FAQs]] * [[:doc|General Doc]] * [[:talks|Videos, Talks, and Papers]] * [[:hardwareissues|Hardware Issues]] * [[:mailinglists|Mailing lists]] * [[http://support.etherboot.org/|Bugtracker]] * [[:contributing|Contributing]] * [[:editing_permission|Wiki Edit Permission]] * [[:wiki:syntax|Wiki Syntax]] * [[:contact|Contact]] * [[:relatedlinks|Related Links]] * [[:commerciallinks|Commercial Links]] * [[:acknowledgements|Acknowledgements]] * [[:logos|Logo Art]]

QR Code
QR Code usermanual (generated for current page)