Here's one patch to pxe that was necessary to get at least as far as booting the bootloader:
--- ./options.cc.orig 2003-02-02 08:24:29.000000000 -0500 +++ ./options.cc 2004-07-12 09:04:38.000000000 -0400 @@ -170,6 +170,7 @@ delete prompt; prompt = new char[strlen(val)+1]; strcpy(prompt, val); + fprintf(stderr, "new prompt: %s\n", prompt); } else if(strcmp("listen_port", key) == 0) { @@ -206,6 +207,7 @@ delete tftpdbase; tftpdbase = new char[strlen(val)+1]; strcpy(tftpdbase, val); + fprintf(stderr, "new tftpdbase: %s\n", tftpdbase); } else if(strcmp("service", key) == 0) { @@ -643,7 +645,8 @@ for(i=0; i != CSA_types[i].arch_id; i++); tmpc = new char[strlen(CSA_types[i].arch_name) + (strlen(serv_ptr->filebase)*2) + 8]; - sprintf(tmpc, "%s/%s/%s.%d", CSA_types[i].arch_name, + sprintf(tmpc, "%s/%s/%s/%s.%d", tftpdbase, + CSA_types[i].arch_name, serv_ptr->filebase, serv_ptr->filebase, layer); return(tmpc);
And now here's a patch to tftpd I needed so it wouldn't croak... at the risk of making it less secure... prolly better use version 0.36, because 0.37 won't even configure on my system.
--- ./tftpd/tftpd.c.orig 2004-07-12 09:24:11.000000000 -0400 +++ ./tftpd/tftpd.c 2004-07-11 06:10:40.000000000 -0400 @@ -633,8 +633,8 @@ #ifdef HAVE_INITGROUPS setrv = initgroups(user, pw->pw_gid); if ( setrv ) { - syslog(LOG_ERR, "cannot set groups for user %s", user); - exit(EX_OSERR); + syslog(LOG_ERR, "cannot set groups for user %s: %s", user, strerror(errno)); + /* exit(EX_OSERR); */ } #else #ifdef HAVE_SETGROUPS
These changes may turn out to be unnecessary and/or counterproductive once
I solve other problems, but at least now they look like steps in the right
direction. (PS - gendiff
is your friend)
last updated 2013-01-10 20:24:32. served from tektonic.jcomeau.com