public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* FW: UEFI Driver Libraries problem
       [not found] <f0aee0a639c4042c6e839720983126f0.squirrel@newmailer.itti.com.pl>
@ 2018-12-12 16:45 ` Jarlstrom, Laurie
  2018-12-12 17:09   ` Jarlstrom, Laurie
  0 siblings, 1 reply; 2+ messages in thread
From: Jarlstrom, Laurie @ 2018-12-12 16:45 UTC (permalink / raw)
  To: inovgorodtsev@itti.com.pl, edk2-devel@lists.01.org


Hi Ivan,

I am forwarding your question to the email list for EDK II, edk2-devel@lists.01.org and will answer there.

To join this email list see: https://github.com/tianocore/tianocore.github.io/wiki/edk2-devel and then join the https://lists.01.org/mailman/listinfo/edk2-devel email list for edk2-devel


Thanks,
Laurie

Laurie.jarlstrom@intel.com, 

-----Original Message-----
From: edk2-devel [mailto:mailman-bounces@lists.01.org] On Behalf Of inovgorodtsev@itti.com.pl
Sent: Wednesday, December 12, 2018 5:14 AM
To: edk2-devel-owner@lists.01.org
Subject: UEFI Driver Libraries problem

Hello,
at the beggining I wanted to say, that maybe here on this page it will be easier to understand my problem, there are some pictures explaining and nice code formatting:

https://stackoverflow.com/questions/53741304/compile-uefi-application-driver-using-edk2

I'm trying to build UEFI Application/Driver, but I get errors when I'm trying to include library:
#include "C:\MyWorkspace\ShellPkg\Include\Library\ShellLib.h"
Errors:
1>Building ...
c:\myworkspace\MdeModulePkg\Library\CustomizedDisplayLib\CustomizedDisplayLib.inf
[IA32]
1>C:\MyWorkspace\ShellPkg\Include\Library\ShellLib.h(22): fatal error
C1083: Cannot open include file: 'Protocol/EfiShellInterface.h': No such file or directory
1>NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual
Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\bin\Hostx86\x86\cl.exe"'
: return code '0x2'

If I try another method:

EFI_STATUS
EFIAPI
BootCheckDriverEntryPoint (
  IN EFI_HANDLE        ImageHandle,
  IN EFI_SYSTEM_TABLE  *SystemTable
  )
{
    EFI_SHELL_PROTOCOL    *EfiShellProtocol;
    EFI_STATUS            Status;

    Status = gBS->LocateProtocol(&gEfiShellProtocolGuid,NULL,(VOID
**)&EfiShellProtocol);

  //
  // Install UEFI Driver Model protocol(s).
  //

  Status = EfiLibInstallDriverBindingComponentName2 (
             ImageHandle,
             SystemTable,
             &gBootCheckDriverBinding,
             ImageHandle,
             &gBootCheckComponentName,
             &gBootCheckComponentName2
             );
  ASSERT_EFI_ERROR (Status);

  return Status;
}

I get.. linker errors I suppose. I also tried to include some libraries in property pages, but I'm not very familiar with Visual Makefile project, I could have done something wrong.

1>Building ...
c:\myworkspace\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib.inf
[IA32]
1>c:\myworkspace\source\BootCheck.c(111): error C2065:
'EFI_SHELL_PROTOCOL': undeclared identifier
1>c:\myworkspace\source\BootCheck.c(111): error C2065: 'EfiShellProtocol':
undeclared identifier
1>c:\myworkspace\source\BootCheck.c(111): warning C4552: '*': result of
expression not used
1>c:\myworkspace\source\BootCheck.c(114): error C2065: 'EfiShellProtocol':
undeclared identifier


I would appreciate any useful information, thank you.
Ivan Novgorodtsev




^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: UEFI Driver Libraries problem
  2018-12-12 16:45 ` FW: UEFI Driver Libraries problem Jarlstrom, Laurie
@ 2018-12-12 17:09   ` Jarlstrom, Laurie
  0 siblings, 0 replies; 2+ messages in thread
From: Jarlstrom, Laurie @ 2018-12-12 17:09 UTC (permalink / raw)
  To: Jarlstrom, Laurie, inovgorodtsev@itti.com.pl,
	edk2-devel@lists.01.org

Hi Ivan,

It seems that probably you might be getting the error because of your .inf File. Do you want your UEFI module to be a UEFI_DRIVER or UEFI_APPLICATION? I am assuming UEFI_DRIVER.
Is there a reason why you need to access the UEFI Shell protocol from your driver?
Typically it is not best practices to have a dependency on the UEFI Shell within a driver since the UEFI Driver is called from the UEFI Dispatcher and not from the Shell.
Some good examples of a UEFI Driver are in https://github.com/tianocore/edk2/tree/master/MdeModulePkg of which the SCSI driver is a good single example: https://github.com/tianocore/edk2/tree/master/MdeModulePkg/Bus/Scsi/ScsiDiskDxe 

Here is an example of a UEFI Application:  
https://github.com/tianocore/edk2/tree/master/MdeModulePkg/Application/HelloWorld

Here is an example of a super simple UEFI Application: https://github.com/tianocore/tianocore.github.io/wiki/Getting-Started-Writing-Simple-Application 

Thanks,
Laurie

Laurie.jarlstrom@intel.com, 
Firmware Integration & Dev (FED-SSG)
(503) 712 9395


-----Original Message-----
From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Jarlstrom, Laurie
Sent: Wednesday, December 12, 2018 8:46 AM
To: inovgorodtsev@itti.com.pl; edk2-devel@lists.01.org
Subject: [edk2] FW: UEFI Driver Libraries problem


Hi Ivan,

I am forwarding your question to the email list for EDK II, edk2-devel@lists.01.org and will answer there.

To join this email list see: https://github.com/tianocore/tianocore.github.io/wiki/edk2-devel and then join the https://lists.01.org/mailman/listinfo/edk2-devel email list for edk2-devel


Thanks,
Laurie

Laurie.jarlstrom@intel.com, 

-----Original Message-----
From: edk2-devel [mailto:mailman-bounces@lists.01.org] On Behalf Of inovgorodtsev@itti.com.pl
Sent: Wednesday, December 12, 2018 5:14 AM
To: edk2-devel-owner@lists.01.org
Subject: UEFI Driver Libraries problem

Hello,
at the beggining I wanted to say, that maybe here on this page it will be easier to understand my problem, there are some pictures explaining and nice code formatting:

https://stackoverflow.com/questions/53741304/compile-uefi-application-driver-using-edk2 

I'm trying to build UEFI Application/Driver, but I get errors when I'm trying to include library:
#include "C:\MyWorkspace\ShellPkg\Include\Library\ShellLib.h"
Errors:
1>Building ...
c:\myworkspace\MdeModulePkg\Library\CustomizedDisplayLib\CustomizedDisplayLib.inf
[IA32]
1>C:\MyWorkspace\ShellPkg\Include\Library\ShellLib.h(22): fatal error
C1083: Cannot open include file: 'Protocol/EfiShellInterface.h': No such file or directory
1>NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual
Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\bin\Hostx86\x86\cl.exe"'
: return code '0x2'

If I try another method:

EFI_STATUS
EFIAPI
BootCheckDriverEntryPoint (
  IN EFI_HANDLE        ImageHandle,
  IN EFI_SYSTEM_TABLE  *SystemTable
  )
{
    EFI_SHELL_PROTOCOL    *EfiShellProtocol;
    EFI_STATUS            Status;

    Status = gBS->LocateProtocol(&gEfiShellProtocolGuid,NULL,(VOID
**)&EfiShellProtocol);

  //
  // Install UEFI Driver Model protocol(s).
  //

  Status = EfiLibInstallDriverBindingComponentName2 (
             ImageHandle,
             SystemTable,
             &gBootCheckDriverBinding,
             ImageHandle,
             &gBootCheckComponentName,
             &gBootCheckComponentName2
             );
  ASSERT_EFI_ERROR (Status);

  return Status;
}

I get.. linker errors I suppose. I also tried to include some libraries in property pages, but I'm not very familiar with Visual Makefile project, I could have done something wrong.

1>Building ...
c:\myworkspace\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib.inf
[IA32]
1>c:\myworkspace\source\BootCheck.c(111): error C2065:
'EFI_SHELL_PROTOCOL': undeclared identifier
1>c:\myworkspace\source\BootCheck.c(111): error C2065: 'EfiShellProtocol':
undeclared identifier
1>c:\myworkspace\source\BootCheck.c(111): warning C4552: '*': result of
expression not used
1>c:\myworkspace\source\BootCheck.c(114): error C2065: 'EfiShellProtocol':
undeclared identifier


I would appreciate any useful information, thank you.
Ivan Novgorodtsev


_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-12-12 17:09 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <f0aee0a639c4042c6e839720983126f0.squirrel@newmailer.itti.com.pl>
2018-12-12 16:45 ` FW: UEFI Driver Libraries problem Jarlstrom, Laurie
2018-12-12 17:09   ` Jarlstrom, Laurie

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox