Avr 072014
 

Latest changelog

fixed : should detect if a socket is already in use
fixed : messages sent from threads would not always reach the memo box
added : will execute an executable/batch if cmd parameter is present in config.ini
fixed : httpd will handle both non keep-alive (default) and keep-alive http requests
fixed : would create crashes (under certain conditions) if the root path was incorrect
fixed : would not start tftpd if not set in config.ini
added : support for dhcp-relay (Thanks to Stefan Smet)

Discuss it here.
Download here.

tps17

 Posted by at 9 h 57 min

  13 Responses to “Tiny PXE Server 1.0.0.17 is out”

  1. Nice work, really…

    I have a question… Would be possible to make TinyPXE support Nics.txt for BINL driver request again? While your parser is really good, and can handle almost all the INF files, there are some « malformed » INFs like the ones that come with some Broadcom Nics, that your parser can’t handle correctly, because them use non-standard INF features, or use variables to refer paths, etc… Also, is nice to have a way to fine-tune which driver will be loaded by just specifing the pci id and the driver name in the old good NICs.txt.

    • Hi,

      Would you be able to supply an example of a malformed inf file? Then I can work on this.

      About the nics.txt, I guess I could generate it at each startup (if it does not exist already).
      How does it sound?

      Regards,
      Erwan

      • Here: http://www.mediafire.com/view/3j8jscjjjq9i578/b44win.inf

        I confirm also that built in Win2k3 RIS/BINL server doesn’t have problems parsing this specific file.

        I’ve seen that TinyPXE parser isn’t capable of distinguish between different sections in INFs that contain information for multiple operating system versions, like this one. Would be nice to be able to specify for which NT version TinyPXE will supply BINL information bits, so TinyPXE can parse only the required information from those multi nt version INF files. this also allows to support Win2k without the need to edit those multi nt version INFs.

        About the nics.txt, i was thinking on something in the line of « TinyPXE will parse the INF files automatically, but optionally you also can specify an optional NICs.txt file » option, that you could enable via config.ini or via commandline, like with the old binlsrv.py program. Would be also nice to disable the built-in INF parser when using NICs.txt to avoid conflict between options. Also this would be like tweak option for advanced users only, as the TinyPXE INF parser works in almost all situations.

        • Hi,

          I will have a look at this inf file this week end.
          And will see how I can implement a switch in the config.ini to switch between a nics.txt or between the automatic parser.

          Thanks for this detailed feedback.

          Regards,
          Erwan

  2. Hi! I’ve been testing your awesome tinyPXE server (great job btw). Could it be possible to implement in the config.INI file the extra parameters « Boot File Name » and « Option 252″ for BINL/WDS ? In that way we could autostart it without human interaction as a WDS alternative …

    Keep up the good work!!

    Best regards,

    Paolo

    • Hi Paolo,

      Nice catch.
      You can now use opt252=my.bootfile.
      You can also use binl=1.

      Let me know if it works out ok.

      Download here.

      Regards,
      Erwan

      • Hello Erwan,

        Sorry for the late reply – i just tested it and Opt252 works like a charm, but if i understand correctly i’m still missing the option « Boot File Name » in the BINL\WDS section. Did i miss something or it stil needs to be implemented?

        Best regards,

        Paolo

        • Correct !

          I fixed that (redownload the zip file).

          So to sum up, as one example, you would type in config.ini :
          filename=wdsnbp.com
          opt252=boot\bcd.x86
          proxybootfilename=pxeboot.com

          Let me know if it works out for you and dont hesitate to share a practical example for the community !

          • Just tested it, and worked flawlessly!
            For the records, here’s our setup:

            – Copied « wdsnbp.com », « pxeboot.com » and « bootmgr.exe » (taken from a Windows DVD) in « files » folder.

            – Copied bcd and boot.sdi inside files/BOOT

            – Copied boot.wim inside files/SOURCES
            (the boot.wim is the WIM prepared for MS OSD SCCM deployments, which is created via the SCCM OSD console – but any WinPE will suffice for a test).

            I’m pasting here our config.ini:

            [dhcp]
            ;needed to tell TFTPd where is the root folder
            root=files
            ;boot file – can be empty if you boot directly with ipxe/gpxe rather than intel pxe agent
            filename=wdsnbp.com
            ;alternative boot file is request comes from ipxe or gpxe
            ;altfilename=menu.ipxe
            ;my gpxe / ipxe dhcp options
            ;optextra=175.6.1.1.1.8.1.1
            ;start HTTPd
            httpd=0
            binl=1
            start=1
            ;default=1
            tftpd=1
            proxydhcp=1
            ;default=1
            bind=0
            smb=0
            ;will log to log.txt
            log=1
            ;opt1=
            ;opt3=
            ;opt6=
            ;opt28=
            ;opt15=
            ;opt17=
            ;opt54=
            ;opt67=
            ;opt66=
            ;opt43=
            opt252=boot\bcd
            proxybootfilename=pxeboot.com
            ;poolstart=
            ;poolsize=
            ;cmd=_test.bat
            ;if log=1, will log to log.txt
            [frmDHCPServer]
            top=20
            left=58

            With this setup we’re able to totally dismiss the WDS role server and use any Windows client with tinypxe running on it, which is a very nice thing. An additional consideration: while WDS lets you load and manage N boot images, apparently TinyPXE only supports 1 (boot.wim), but that is not always a necessity. What about considering adding an option in the ini file for that too, and perhaps a combobox in ther GUI which shows which wim are present inside the SOURCES folder? Just an idea …

            All in all, great work! It’s a damn useful tool!

            Best regards,

            Paolo

  3. for the record, all possible options in config.ini

    ;needed to tell TFTPd where is the root folder
    ;relative or absolute path
    root=_pxe
    ;boot file – can be empty if you boot directly with ipxe/gpxe rather than intel pxe agent
    filename=ipxe-undionly.kpxe
    ;alternative boot file is request comes from ipxe or gpxe
    altfilename=menu.ipxe
    ;my gpxe / ipxe dhcp options
    optextra=175.6.1.1.1.8.1.1
    ;start HTTPd
    httpd=1
    proxydhcp=1
    ;dnsd=
    binl=0
    start=0
    ;will launch the below executable when going online
    ;cmd=_test.bat
    ;if log=1, will log to log.txt
    log=0
    ;will share the root folder as PXE
    smb=1
    ;bind=1 by default
    ;bind=0
    ;opt1=
    ;opt3=
    ;opt6=
    ;opt28=
    ;opt15=
    ;opt17=
    ;opt43=
    ;opt51=
    ;opt54=
    ;opt66=
    ;opt67=
    ;opt252=
    ;proxybootfilename=
    ;poolstart=
    ;poolsize=
    ;tftpd=1 by default

  4. Any news about the TinyPXE INF parsing problem?

    • Hi,
      a nics.txt looks like this :

      1022 2000 pcntpci5.sys PCnet
      10b7 6055 EL556ND5.sys EL556ND5
      10b7 6056 EL556ND5.sys EL556ND5

      So in short I could do the following :
      -when the ncq request comes in (containing vid and pid)
      -check the nics.txt file exists
      -if yes, look for the driver in that file rather than parsingt the inf folder

      • latest version now supports the following behavior for BINL :

        -when the ncq request comes in (containing vid and pid)
        -check if the nics.txt file exists
        -if yes, look for the driver in that file rather than parsing the inf folder

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)