Post Reply 
 
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Report a bug
2014-03-27, 09:36
Post: #1
Bug Report a bug
I am trying to boot from iPXE to WDS, but i got a bug:
when i use this command to get wdsnbp.com
[undefined=undefined]boot tftp://10.118.0.2/boot\x86\wdsnbp.com[/undefined]
they tell me "Error 0x3d126001."

i use this command at Windows cmd
[undefined=undefined]tftp -i 10.118.0.2 GET Boot\x86\wdsnbp.com[/undefined]
they tell me "Transport success"

why?

i did watch WDS log, found this:
when i use ipxe boot command, WDS log is:
[WDSServer/WDSTFTP] TFTPParse[Request]: OpCode=1, File=/boot\x86\wdsnbp.com, Mode=1, BlkSize=1432, WinSize=1, Timeout=2, TSize=0, MsftWindow=0
and report error:
[WDSServer/WDSTFTP] TFTPConstruct[ERROR]: Code=4(0x4), Desc=`Access violation.`

when i use cmd tftp command, WDS log is:
[WDSServer/WDSTFTP] TFTPParse[Request]: OpCode=1, File=boot\x86\wdsnbp.com, Mode=1, BlkSize=512, WinSize=1, Timeout=2, TSize=0, MsftWindow=0
and success, no error.

i'm so sorry, my english is rusty.
Find all posts by this user
Quote this message in a reply
2014-04-18, 13:21
Post: #2
RE: Report a bug
Looking at http://ipxe.org/err/3d1260 it seems like this issue is related to the TFTP server not accepting the command, which I'm asusming is because the URL is not proper. Try to replace \ with %5C and see how that works.
Visit this user's website Find all posts by this user
Quote this message in a reply
2014-04-19, 01:52
Post: #3
RE: Report a bug
(2014-04-18 13:21)robinsmidsrod Wrote:  Looking at http://ipxe.org/err/3d1260 it seems like this issue is related to the TFTP server not accepting the command, which I'm asusming is because the URL is not proper. Try to replace \ with %5C and see how that works.

thanks, but i think the probleam is WDS not accept "/" to be root, and OpenTFTPServer has no plobleam, so, i modify tftp.c

PHP Code:
static int tftp_send_rrq struct tftp_request *tftp ) {
const 
char *path tftp->uri->path

modify to:

PHP Code:
static int tftp_send_rrq struct tftp_request *tftp ) {
const 
char *path tftp->uri->path 1

it works!
Find all posts by this user
Quote this message in a reply
2014-06-06, 04:00
Post: #4
RE: Report a bug
(2014-04-19 01:52)BloodFox Wrote:  thanks, but i think the probleam is WDS not accept "/" to be root, and OpenTFTPServer has no plobleam, so, i modify tftp.c

I can confirm that this is indeed the case. The preceding forward slash causes this to stop working with WDS.

It seems this has been introduced in the past couple of years, as the commit from 2008 specifies otherwise (I can't find anything more recent and the code has drastically been re-factored since then):

https://git.ipxe.org/ipxe.git/commit/481...80fc60fd06
Find all posts by this user
Quote this message in a reply
2014-06-06, 06:23 (This post was last modified: 2014-06-06 06:23 by bleckers.)
Post: #5
RE: Report a bug
I had to modify the above to allow any other files to work (as the above will always remove the first character). This code will only remove a character if there is a preceding slash. This format still works with other tftp servers and allows WDS to work.

In tftp.c:
Code:
static int tftp_send_rrq ( struct tftp_request *tftp ) {
    const char *path;
    if ( strncmp (tftp->uri->path, "/", 1) == 0 ) {
        path = tftp->uri->path + 1;
    } else {
        path = tftp->uri->path;
    }

This is obviously a hacky fix, but it allows WDS to work with existing iPXE environments.
Find all posts by this user
Quote this message in a reply
2014-07-28, 06:34
Post: #6
RE: Report a bug
(2014-03-27 09:36)BloodFox Wrote:  I am trying to boot from iPXE to WDS, but i got a bug:
when i use this command to get wdsnbp.com
[undefined=undefined]boot tftp://10.118.0.2/boot\x86\wdsnbp.com[/undefined]
they tell me "Error 0x3d126001."

i use this command at Windows cmd
[undefined=undefined]tftp -i 10.118.0.2 GET Boot\x86\wdsnbp.com[/undefined]
they tell me "Transport success"

why?

i did watch WDS log, found this:
when i use ipxe boot command, WDS log is:
[WDSServer/WDSTFTP] TFTPParse[Request]: OpCode=1, File=/boot\x86\wdsnbp.com, Mode=1, BlkSize=1432, WinSize=1, Timeout=2, TSize=0, MsftWindow=0
and report error:
[WDSServer/WDSTFTP] TFTPConstruct[ERROR]: Code=4(0x4), Desc=`Access violation.`

when i use cmd tftp command, WDS log is:
[WDSServer/WDSTFTP] TFTPParse[Request]: OpCode=1, File=boot\x86\wdsnbp.com, Mode=1, BlkSize=512, WinSize=1, Timeout=2, TSize=0, MsftWindow=0
and success, no error.

i'm so sorry, my english is rusty.

Hello.

I was just suffering from this TFTP problem with my Windows Server 2012 Essentials. But I've found a solution that has solved it for me, perhaps you can solve yours too by visiting this post:
http://social.technet.microsoft.com/Foru...erversetup

It talks about modification in the registry to allow normal slashes to be used.

Thank you.
Find all posts by this user
Quote this message in a reply
2020-06-27, 22:15
Post: #7
Compile v1.20.1: error: array subscript i is outside array bounds
When compiling ipxe tag 1.20.1 I have the following error when running (only tested those):
make bin/undionly.kpxe
make bin-x86_64-efi/ipxe.efi


drivers/net/intelvf.c: In function ‘intelvf_mbox_poll’:
drivers/net/intelvf.c:80:13: error: array subscript i is outside array bounds of ‘uint32_t[0]’ {aka ‘unsigned int[]’} [-Werror=array-bounds]
80 | msg->dword[i] = readl ( intel->regs + intel->mbox.mem +
| ~~~~~~~~~~^~~
In file included from drivers/net/intelvf.c:32:
drivers/net/intelvf.h:135:11: note: while referencing ‘dword’
135 | uint32_t dword[0];
| ^~~~~
drivers/net/intelvf.c:98:20: note: defined here ‘msg’
98 | union intelvf_msg msg;
| ^~~
cc1: all warnings being treated as errors
make: *** [Makefile.housekeeping:946: bin/intelvf.o] Error 1
Find all posts by this user
Quote this message in a reply
Post Reply 




User(s) browsing this thread: 3 Guest(s)