PXE-M0F: Exiting Broadcom PXE ROM.



  • Built a FOG server at home, using dnsmasq, having the blues with it.

    I can’t get the target computer to network boot…

    Fedora 21 server - fully updated as of yesterday.
    FOG - r3224

    Target machine: Optiplex 745 This is listed in working hardware with undionly.kpxe

    [CODE][root@localhost trunk]# ps -Af | grep tftp
    root 13942 9516 0 20:45 pts/0 00:00:00 grep --color=auto tftp
    [root@localhost trunk]#
    [/CODE]
    [CODE][root@localhost ~]# service dnsmasq status -l
    Redirecting to /bin/systemctl status -l dnsmasq.service
    ● dnsmasq.service - DNS caching server.
    Loaded: loaded (/usr/lib/systemd/system/dnsmasq.service; enabled)
    Active: active (running) since Tue 2015-04-07 20:54:05 CDT; 52s ago
    Main PID: 15967 (dnsmasq)
    CGroup: /system.slice/dnsmasq.service
    └─15967 /usr/sbin/dnsmasq -k
    Apr 07 20:54:42 localhost.localdomain dnsmasq-dhcp[15967]: 2712157279 tags: enp2s0
    Apr 07 20:54:42 localhost.localdomain dnsmasq-dhcp[15967]: 2712157279 bootfile name: undionly.kpxe
    Apr 07 20:54:42 localhost.localdomain dnsmasq-dhcp[15967]: 2712157279 broadcast response
    Apr 07 20:54:42 localhost.localdomain dnsmasq-dhcp[15967]: 2712157279 sent size: 1 option: 53 message-type 2
    Apr 07 20:54:42 localhost.localdomain dnsmasq-dhcp[15967]: 2712157279 sent size: 4 option: 54 server-identifier 10.0.0.3
    Apr 07 20:54:42 localhost.localdomain dnsmasq-dhcp[15967]: 2712157279 sent size: 9 option: 60 vendor-class 50:58:45:43:6c:69:65:6e:74
    Apr 07 20:54:42 localhost.localdomain dnsmasq-dhcp[15967]: 2712157279 sent size: 17 option: 97 client-machine-id 00:44:45:4c:4c:46:00:10:4c:80:52:b2:c0:4f…
    Apr 07 20:54:42 localhost.localdomain dnsmasq-dhcp[15967]: 2712157279 sent size: 97 option: 43 vendor-encap 06:01:03:09:3f:00:00:20:e2:80:9c:42:6f:6f…
    Apr 07 20:54:47 localhost.localdomain dnsmasq-dhcp[15967]: 2712157279 available DHCP subnet: 10.0.0.3/255.255.255.0
    Apr 07 20:54:47 localhost.localdomain dnsmasq-dhcp[15967]: 2712157279 vendor class: PXEClient:Arch:00000:UNDI:002001[/CODE]
    Also, I can use tftp to get files from /tftpboot (some may find this example very funny)
    [CODE][root@localhost log]# cp /var/log/foginstall.log /tftpboot
    [root@localhost log]# exit
    logout
    Connection to 10.0.0.3 closed.
    [administrator@D620 ~]$ tftp
    (to) 10.0.0.3
    tftp> get foginstall.log
    tftp> quit
    [administrator@D620 ~]$ ls
    Desktop Downloads MEGAsync Pictures Templates xpshare
    Documents foginstall.log Music Public Videos
    [administrator@D620 ~]$ [/CODE]

    And, the foginstall.log that I grabbed is attached.
    Here is /etc/dnsmasq.d/ltsp.conf
    [CODE]port=0
    log-dhcp
    tftp-root=/tftpboot
    dhcp-boot=undionly.kpxe
    dhcp-option=17,/images
    dhcp-option=vendor:PXEClient,6,2b
    dhcp-no-override
    pxe-prompt=“Press F8 for boot menu”, 3
    pxe-service=X86PC, “Boot from network” undionly
    pxe-service=X86PC, “Boot from local hard disk”, 0
    dhcp-range=10.0.0.3,proxy
    dhcp-option=66,“10.0.0.3”[/CODE]
    Firewall and selinux:
    [CODE][root@localhost ~]# systemctl status firewalld.service
    ● firewalld.service - firewalld - dynamic firewall daemon
    Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled)
    Active: inactive (dead)
    [root@localhost ~]# sestatus
    SELinux status: disabled
    [root@localhost ~]# [/CODE]
    /tftpboot permissions
    [CODE][root@localhost ~]# ls -la /tftpboot
    total 3040
    drwxrwxrwx 3 fog root 4096 Apr 7 20:47 .
    dr-xr-xr-x. 21 root root 4096 Apr 7 19:59 …
    -rwxrwxrwx 1 fog root 840 Apr 7 19:59 boot.txt
    -rwxrwxrwx 1 root root 397 Apr 7 19:59 default.ipxe
    -rw-r–r-- 1 root root 7129 Apr 7 20:47 foginstall.log
    drwxrwxrwx 2 fog root 4096 Apr 7 19:59 i386-efi
    -rwxrwxrwx 1 fog root 906560 Apr 7 19:59 ipxe.efi
    -rwxrwxrwx 1 fog root 337051 Apr 7 19:59 ipxe.kkpxe
    -rwxrwxrwx 1 fog root 337099 Apr 7 19:59 ipxe.kpxe
    -rwxrwxrwx 1 fog root 336613 Apr 7 19:59 ipxe.krn
    -rwxrwxrwx 1 fog root 337291 Apr 7 19:59 ipxe.pxe
    -rwxrwxrwx 1 fog root 25340 Apr 7 19:59 memdisk
    -rwxrwxrwx 1 fog root 16794 Apr 7 19:59 pxelinux.0.old
    -rwxrwxrwx 1 fog root 169088 Apr 7 19:59 snp.efi
    -rwxrwxrwx 1 fog root 169280 Apr 7 19:59 snponly.efi
    -rwxrwxrwx 1 fog root 88724 Apr 7 19:59 undionly.kkpxe
    -rwxrwxrwx 1 fog root 88772 Apr 7 19:59 undionly.kpxe
    -rwxrwxrwx 1 fog root 88816 Apr 7 19:59 undionly.pxe
    -rwxrwxrwx 1 fog root 147728 Apr 7 19:59 vesamenu.c32[/CODE]
    Here’s a video of what it does: [media=youtube]9hwZpqPpYNQ[/media]

    Here’s a screenshot of the Web GUI’s TFTP settings:
    [IMG]http://s8.postimg.org/64q2abs5x/Screenshot_from_2015_04_07_21_13_53.png[/IMG]
    Not sure where I’m going wrong with this… help would be very appreciated.

    [url="/_imported_xf_attachments/1/1851_foginstall.log.zip?:"]foginstall.log.zip[/url]


  • Developer

    I doubt that OS update is changing file permissions in /tftpboot or /var/www but hey, you never know… :D



  • I worked on re-installing the OS and FOG last night. The permissions seem to be correct this time…

    If I had to guess, I’d say that Fedora OS updates are to blame… Because this time around, the OS updates were the first thing I did.


  • Developer

    Are you sure permissions were wrong after a clean install?? Can you reproduce this by re-installing it…



  • So why were the permissions on that directory wrong? (for RedHat installation)
    Can we get that fixed in the next revision?



  • Currently uploading an image. :)

    EDIT: Image uploaded fine.



  • [quote=“Tom Elliott, post: 45278, member: 7271”]What’s the output of the browser if you type in:

    [url]http://10.0.0.3/fog/service/ipxe/boot.php[/url][/quote]

    [CODE]
    Forbidden

    You don’t have permission to access /fog/service/ipxe/boot.php on this server.
    [/CODE]

    I did this:
    [CODE]chmod -R 755 /var/www/html/fog[/CODE]

    And now that link gives output.

    and I GET THE FOG MENU!!! WOOT WOOT!!


  • Senior Developer

    What’s the output of the browser if you type in:

    [url]http://10.0.0.3/fog/service/ipxe/boot.php[/url]



  • Going to try the other files in a bit…



  • Made the change to the file, wow!

    However, it still doesn’t boot… I’ve tried the Optiplex 745 and my laptop, which is a Dell D620.

    Here’s what it does: [media=youtube]g1mQa-18ISQ[/media]


  • Senior Developer

    Try changing this:
    [code]port=0
    log-dhcp
    tftp-root=/tftpboot
    dhcp-boot=undionly.kpxe
    dhcp-option=17,/images
    dhcp-option=vendor:PXEClient,6,2b
    dhcp-no-override
    pxe-prompt=“Press F8 for boot menu”, 3
    pxe-service=X86PC, “Boot from network” undionly
    pxe-service=X86PC, “Boot from local hard disk”, 0
    dhcp-range=10.0.0.3,proxy
    dhcp-option=66,“10.0.0.3”[/code]

    TO THIS:
    [code]port=0
    log-dhcp
    tftp-root=/tftpboot
    dhcp-boot=undionly.0,10.0.0.3,10.0.0.3
    dhcp-option=17,/images
    dhcp-option=vendor:PXEClient,6,2b
    dhcp-no-override
    pxe-prompt=“Press F8 for boot menu”, 3
    pxe-service=X86PC, “Boot from network”, undionly
    pxe-service=X86PC, “Boot from local hard disk”, 0
    dhcp-range=10.0.0.3,proxy[/code]


  • Developer

    [quote=“Wayne Workman, post: 45215, member: 28155”]undionly.kkpxe.0 ?? or cp undionly.kkpxe undionly.0 ?
    I thought I was using undionly.[B][U]kpxe[/U][/B] ?[/quote]

    Dnsmasq adds a .0 to the file name, I never really understood why, but adding a symlink for undionly.0 seems to resolve the issue for using DNSMASQ.

    This is explained in the documentation on the dnsmasq set up page.

    [quote]
    Make a symlink for the undionly.kpxe file so dnsmasq can find it.
    [code]cd /tftpboot
    sudo ln -s undionly.kpxe undionly.0[/code]
    source:[url]http://fogproject.org/wiki/index.php/Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server#DNSMASQ_settings_for_iPXE[/url]
    [/quote]

    of course you don’t have to use the Undionly.kpxe file, you can use Ipxe.kpxe or any of the variants, but you still need to include a symlink for the .0

    I noticed this when we moved from pxelinux.0 (look there’s that .0 again!!!) to the Undionly.kpxe platform for iPXE in 0.33b. I could not get my boot file on my machine during pxe boot, in doing some research (I believe I found the information in wireshark) I found that the machines were looking for Undionly.0 instead of Undionly.kpxe.

    I added a symlink for udionly.kpxe to undionly.0 and the problem resolved itself.

    I started by using the pxelinux.0 to chainload the undionly.kpxe file until I understood the .0 being appended to the file name.
    The Thread where I discuss this issue and my notes on resolution can be found here:[url]http://fogproject.org/forum/threads/dnsmasq-help-for-ipxe-stuff.10222/[/url]



  • [quote=“Tom Elliott, post: 45204, member: 7271”]Because the boot file is undionly.kkpxe I believe you need to also have undionly.kkpxe.0 in the tftpboot folder.[/quote]

    undionly.kkpxe.0 ?? or cp undionly.kkpxe undionly.0 ?
    I thought I was using undionly.[B][U]kpxe[/U][/B] ?


  • Senior Developer

    Because the boot file is undionly.kkpxe I believe you need to also have undionly.kkpxe.0 in the tftpboot folder.



  • Still no change, but there was a change in traffic. tcpdump said 13 or so packets were captured, but the filter only stored 5 of them. I’ve also reboot the FOG server too, and tried again.

    New ltsp.conf file:
    [CODE]port=0
    log-dhcp
    tftp-root=/tftpboot
    dhcp-boot=undionly.kpxe,10.0.0.3
    dhcp-option=17,/images
    dhcp-option=vendor:PXEClient,6,2b
    dhcp-no-override
    pxe-prompt=“Press F8 for boot menu”, 3
    pxe-service=X86PC, “Boot from network” undionly
    pxe-service=X86PC, “Boot from local hard disk”, 0
    dhcp-range=10.0.0.3,proxy[/CODE]

    [url="/_imported_xf_attachments/1/1854_issue.pcap.zip?:"]issue.pcap.zip[/url]


  • Developer

    DHCP offers are both missing ‘next-server’… but your FOG server 10.0.0.3 should provide this information! I think you kind of mis-configured dnsmasq a little.
    [CODE]dhcp-boot=undionly.kpxe,10.0.0.3[/CODE]
    and completely remove the dhcp-option 66 line…



  • In the ltsp.conf file,

    I am eyeballing this line:

    [CODE]dhcp-option=vendor:PXEClient,6,2b[/CODE]

    I don’t think it’s right… How can I bypass it so that it just gives undionly.kpxe to everything?



  • According to Wireshark, my FOG server’s dnsmasq service only sends out one packet…

    [IMG]http://s29.postimg.org/56b9s2qp3/Screenshot_from_2015_04_08_17_30_15.png[/IMG]



  • I started the below command, booted the target computer, waited till it failed and started booting windows, then killed the command. Says 5 packets were captured.

    I’ve got the feeling that 5 packets doesn’t cut it…

    [CODE][root@localhost ~]# sudo tcpdump -i enp2s0 -w issue.pcap udp
    tcpdump: listening on enp2s0, link-type EN10MB (Ethernet), capture size 262144 bytes
    stop
    ^C5 packets captured
    5 packets received by filter
    0 packets dropped by kernel
    [root@localhost ~]# [/CODE]

    Think it has anything to do with the adapter name? It’s very unusual… enp2s0

    Packet capture file is attached.

    EDIT: getting wireshark now…

    [url="/_imported_xf_attachments/1/1853_issue.pcap.zip?:"]issue.pcap.zip[/url]



  • Removed the dhcp option 66 and restarted dnsmasq… still no luck…


 

505
Online

41.8k
Users

12.3k
Topics

116.0k
Posts