Intel® Business Client Software Development
Support for Intel® vPro™ software development and technologies associated with Intel vPro platforms.
Announcements
The Intel sign-in experience has changed to support enhanced security controls. If you sign in, click here for more information.
1370 Discussions

Not able to boot to redirected ISO file using the program developed using HLAPI 12.0.0.10

Sarfraz__Mohammed
465 Views

Hi,

I have written a C# program to redirect the bootable ISO file to the Intel AMT supported client and boot the client from the redirected bootable ISO file.It is not working as expected and I am seeing message "Can't find Boot Device by Boot Option!!" in the client after the system reset operation in the code. Below is the code I have used. Looking for help to resolve this issue.

 

using System;
using Intel.Manageability;
using Intel.Manageability.Exceptions;
using Intel.Manageability.BootControl;
using Intel.Manageability.Redirection;
using System.Threading;

namespace IntelAMTApp4
{
    class Program
    {
        static void Main(string[] args)
        {

            try
            {
                ConnectionInfoEX connection =
                                   new ConnectionInfoEX(args[0], args[1], args[2], false,
                                                            string.Empty, ConnectionInfoEX.AuthMethod.Digest,
                                                            null, null, null);

                IAMTInstance amt = AMTInstanceFactory.CreateEX(connection);
                amt.RedirectionIDER.SetInterfaceState(true);
                amt.RedirectionIDER.StartIDERCD("C:\\Temp\\boot.iso");
                IDERState w = amt.RedirectionIDER.CurrentSessionState;
                Console.WriteLine("Current Set IDER State is: " + w);
                IDERStatistics statistics = amt.RedirectionIDER.GetStatistics();
                Console.WriteLine("PacketsReceived: " + statistics.PacketsReceived);
                BootSource bootSource;
                FirmwareVerbosityEnum FWVerbosity;
                BootOptionsFlags bootOptionFlags;

                amt.BootControl.GetCurrentSettings(out bootSource, out bootOptionFlags, out FWVerbosity);

                Console.WriteLine("Current boot Options: " + bootOptionFlags.ToString());
                Console.Write("Current boot Source: " + bootSource.Source.ToString());
                Console.WriteLine(". index: " + bootSource.Index.ToString());
                Console.WriteLine("Current Firmware Verbosity: " + FWVerbosity.ToString());

                BootCapabilities bootCapabilities = amt.BootControl.BootCapabilities;

                if (bootCapabilities.IDER)
                {
                    Console.WriteLine("Boot capability is " + bootCapabilities.IDER);
                    bootSource = new BootSource(BootSourceEnum.IDERCD);

                }

                Thread.Sleep(5000);
                bootOptionFlags = BootOptionsFlags.NONE;
                if (bootCapabilities.IDER)
                    bootOptionFlags |= BootOptionsFlags.UseSOL;
                FirmwareVerbosityEnum FWverbosity = FirmwareVerbosityEnum.NONE;
                if (bootCapabilities.FirmwareVerbosityVerbose)
                    FWverbosity = FirmwareVerbosityEnum.Verbose;

                amt.BootControl.SetNextBoot(bootSource, bootOptionFlags, FWverbosity);
                amt.BootControl.GetCurrentSettings(out bootSource, out bootOptionFlags, out FWVerbosity);
                Console.WriteLine("Current Set boot Options: " + bootOptionFlags.ToString());
                Console.Write("Current Set boot Source: " + bootSource.Source.ToString());
                Console.WriteLine(". Set index: " + bootSource.Index.ToString());
                Console.WriteLine("Current Set Firmware Verbosity: " + FWVerbosity.ToString());
                Console.WriteLine("Current Set IDER State is: " + w);

                Thread.Sleep(5000);
                amt.Power.Reset();
            }

            catch (ManageabilityException ex)
            {
                Console.WriteLine("\n" + ex.Message);
                return;
            }

            finally
            {
                Console.WriteLine("This is final block");
                
            }
        }
    }
}

 

 

Regards,

Sarfraz

0 Kudos
2 Replies
Joseph_O_Intel1
Employee
465 Views

Hey Sarfraz

Can you provide a system discovery xml so I can review details of the system.

To do this you get ACUConfig from the SCS download, then from the commandline enter "acuconfig.exe systemdiscovery​", this will create a file, please send that file via PM to me.

Joe

 

Sarfraz__Mohammed
465 Views

Hi,

Thank you for your help. I am able to get it work after removing the following lines from the above mentioned code

 

if (bootCapabilities.IDER) 
       bootOptionFlags |= BootOptionsFlags.UseSOL; 

Regards,

Sarfraz

Reply