diff --git a/xCAT-server/lib/xcat/plugins/dhcp.pm b/xCAT-server/lib/xcat/plugins/dhcp.pm index ac21a9343..7385e72d5 100644 --- a/xCAT-server/lib/xcat/plugins/dhcp.pm +++ b/xCAT-server/lib/xcat/plugins/dhcp.pm @@ -1055,7 +1055,7 @@ sub addnet push @netent, " } else if option client-architecture = 00:00 { #x86\n"; push @netent, " filename \"xcat/xnba.kpxe\";\n"; push @netent, " } else if option vendor-class-identifier = \"Etherboot-5.4\" { #x86\n"; - push @netent, " filename \"pxelinux.0\";\n"; + push @netent, " filename \"xcat/xnba.kpxe\";\n"; push @netent, " } else if option client-architecture = 00:02 { #ia64\n "; push @netent, " filename \"elilo.efi\";\n"; diff --git a/xCAT-server/lib/xcat/plugins/pxe.pm b/xCAT-server/lib/xcat/plugins/pxe.pm index 55d9f048a..94cf07115 100644 --- a/xCAT-server/lib/xcat/plugins/pxe.pm +++ b/xCAT-server/lib/xcat/plugins/pxe.pm @@ -117,7 +117,7 @@ sub setstate { ($kernel,$hypervisor) = split /!/,$kern->{kernel}; print $pcfg " set 209:string xcat/xnba/nodes/$node.pxelinux\n"; print $pcfg " set 210:string http://".'${next-server}'."/tftpboot/\n"; - print $pcfg " imgfetch -n pxelinux.0 http://".'${next-server}'."/tftpboot/pxelinux.0\n"; + print $pcfg " imgfetch -n pxelinux.0 http://".'${next-server}'."/tftpboot/xcat/pxelinux.0\n"; print $pcfg " imgload pxelinux.0\n"; print $pcfg " imgexec pxelinux.0\n"; close($pcfg); @@ -128,7 +128,7 @@ sub setstate { if ($kern->{kernel} =~ /\.c32\z/ or $kern->{kernel} eq 'memdisk') { #gPXE comboot support seems insufficient, chain pxelinux instead print $pcfg " set 209:string xcat/xnba/nodes/$node.pxelinux\n"; print $pcfg " set 210:string http://".'${next-server}'."/tftpboot/\n"; - print $pcfg " imgfetch -n pxelinux.0 http://".'${next-server}'."/tftpboot/pxelinux.0\n"; + print $pcfg " imgfetch -n pxelinux.0 http://".'${next-server}'."/tftpboot/xcat/pxelinux.0\n"; print $pcfg " imgload pxelinux.0\n"; print $pcfg " imgexec pxelinux.0\n"; close($pcfg); @@ -403,19 +403,15 @@ sub process_request { } #back to normal business - if (! -r "$tftpdir/pxelinux.0") { - unless (-r "/usr/lib/syslinux/pxelinux.0" or -r "/usr/share/syslinux/pxelinux.0") { - $callback->({error=>["Unable to find pxelinux.0 "],errorcode=>[1]}); + if (! -r "$tftpdir/xcat/pxelinux.0") { + unless (-r $::XCATROOT."share/xcat/netboot/syslinux/pxelinux.0") { + $callback->({error=>["Unable to find pxelinux.0 at ".$::XCATROOT."share/xcat/netboot/syslinux/pxelinux.0"],errorcode=>[1]}); return; } - if (-r "/usr/lib/syslinux/pxelinux.0") { - copy("/usr/lib/syslinux/pxelinux.0","$tftpdir/pxelinux.0"); - } else { - copy("/usr/share/syslinux/pxelinux.0","$tftpdir/pxelinux.0"); - } + copy($::XCATROOT."share/xcat/netboot/syslinux/pxelinux.0","$tftpdir/xcat/pxelinux.0"); chmod(0644,"$tftpdir/pxelinux.0"); } - unless ( -r "$tftpdir/pxelinux.0" ) { + unless ( -r "$tftpdir/xcat/pxelinux.0" ) { $callback->({errror=>["Unable to find pxelinux.0 from syslinux"],errorcode=>[1]}); return; }