====== DNS entry problem ====== Unfortunately ''IPAPPEND'' only adds ''ip=:::'' and DNS entry is not there. http://syslinux.zytor.com/wiki/index.php/SYSLINUX#IPAPPEND_flag_val_.5BPXELINUX_only.5D ===== Solution - 1 : Using public DNS ===== Currently, I have embedded public DNS ip's into initramfs.\\ This solution is not versetile as not all places allow direct use of public DNS.\\ Following are the logs are the output of experiments warthog9 had requested in my lab where use of public DNS is not allowed.\\ Attempts to use external DNS server fails with following error [15:38:13][9][~]$ dig www.google.com @4.2.2.2 ; <<>> DiG 9.5.1-P2 <<>> www.google.com @4.2.2.2 ;; global options: printcmd ;; connection timed out; no servers could be reached [15:38:29][9][~]$ but Internal DNS server works fine as follows [15:44:57][0][~]$ dig www.google.com ; <<>> DiG 9.5.1-P2 <<>> www.google.com ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14787 ;; flags: qr rd ra; QUERY: 1, ANSWER: 7, AUTHORITY: 6, ADDITIONAL: 6 ;; QUESTION SECTION: ;www.google.com. IN A ;; ANSWER SECTION: www.google.com. 361471 IN CNAME www.l.google.com. www.l.google.com. 256 IN A 74.125.39.105 www.l.google.com. 256 IN A 74.125.39.106 www.l.google.com. 256 IN A 74.125.39.147 www.l.google.com. 256 IN A 74.125.39.99 www.l.google.com. 256 IN A 74.125.39.103 www.l.google.com. 256 IN A 74.125.39.104 ;; AUTHORITY SECTION: l.google.com. 1392 IN NS d.l.google.com. l.google.com. 1392 IN NS e.l.google.com. l.google.com. 1392 IN NS f.l.google.com. l.google.com. 1392 IN NS g.l.google.com. l.google.com. 1392 IN NS a.l.google.com. l.google.com. 1392 IN NS b.l.google.com. ;; ADDITIONAL SECTION: a.l.google.com. 16636 IN A 74.125.53.9 b.l.google.com. 1313 IN A 74.125.45.9 d.l.google.com. 16849 IN A 74.125.77.9 e.l.google.com. 16849 IN A 209.85.137.9 f.l.google.com. 16609 IN A 72.14.203.9 g.l.google.com. 16849 IN A 74.125.95.9 ;; Query time: 1 msec ;; SERVER: 132.227.64.13#53(132.227.64.13) ;; WHEN: Fri Aug 7 15:44:58 2009 ;; MSG SIZE rcvd: 340 [15:44:58][0][~]$ ===== Solution 2 : Modify pxelinux to support DNS ===== Modify the ''IPAPPEND'' option to add DNS entry\\ Also I plan to use ''IPAPPEND 1'' instead of ''IPAPPEND 3'' as we don't need it.\\ I used reference http://syslinux.zytor.com/wiki/index.php/SYSLINUX#IPAPPEND_flag_val_.5BPXELINUX_only.5D to decide this. ====== editing pxelinux ====== I have been warned that I will need assembly knowledge and I will need to modify C parser for this :-(\\ the pxeknife.asm contains 2700 lines of assembly code which does not look very promising for quick fix.\\ Here is the code of [[http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=blob;f=core/pxelinux.asm;h=190f4c66a39247a4079e5e7d5c32512c008b33c0;hb=8e01231be41fd889bcb71604dbda511688ed0f38|pxeknife.asm]] ===== Solution - 3 | dynamically generate config files with DNS entry ===== as andytim suggested #!gpxe set 210:string http://boot.kernel.org/bko/boot?dnsip=${dns}&fetch= echo would expand that, then option 210 would have the DNS in it. COM32 menu.c32 APPEND somemenu.ini echo Would fetch http://boot.kernel.org/bko/boot?dnsip=10.0.2.2&fetch= rwrc's patch has been applied and it is working fine :-) ===== Solution - 4 | Use syslinux with -dhcpinfo option ===== - Information about how to do this [[http://syslinux.zytor.com/wiki/index.php/Linux.c32]] - Failed attempt from warthog [[http://www.eaglescrag.net/stuff/bko_knoppix6_fail2.png]]