http://www.linuxfoundation.org/news-med ... pen-source
but, concretely, how can be this applied to Puppy? E.g. if I want to boot my good old BELOVED

Code: Select all
# git clone git://git.kernel.org/pub/scm/linux/kernel/git/jejb/efitools.git
Cloning into efitools...
remote: Counting objects: 321, done.
remote: Compressing objects: 100% (320/320), done.
remote: Total 321 (delta 203), reused 0 (delta 0)
Receiving objects: 100% (321/321), 83.79 KiB | 7 KiB/s, done.
Resolving deltas: 100% (203/203), done.
# cd efitools/
# make
cc -I/initrd/mnt/dev_save/Documents/akash/software/boot/uefi_secure_boot_system/efitools/include/ -I/usr/include/efi -I/usr/include/efi/i686 -I/usr/include/efi/protocol -O2 -fpic -Wall -fshort-wchar -fno-strict-aliasing -fno-merge-constants -mno-red-zone -fno-stack-protector -DCONFIG_i686 -c HelloWorld.c -o HelloWorld.o
HelloWorld.c:5:17: fatal error: efi.h: No such file or directory
compilation terminated.
make: *** [HelloWorld.o] Error 1
#
maybe you need thisakash_rawal wrote:I don't know much about uefi, other than its evil 'restricted boot'which is so much talked about.
Cloned the repository and tried to build it anyways:but without success. Anyone knows what sort of development libs we need?Code: Select all
# git clone git://git.kernel.org/pub/scm/linux/kernel/git/jejb/efitools.git Cloning into efitools... remote: Counting objects: 321, done. remote: Compressing objects: 100% (320/320), done. remote: Total 321 (delta 203), reused 0 (delta 0) Receiving objects: 100% (321/321), 83.79 KiB | 7 KiB/s, done. Resolving deltas: 100% (203/203), done. # cd efitools/ # make cc -I/initrd/mnt/dev_save/Documents/akash/software/boot/uefi_secure_boot_system/efitools/include/ -I/usr/include/efi -I/usr/include/efi/i686 -I/usr/include/efi/protocol -O2 -fpic -Wall -fshort-wchar -fno-strict-aliasing -fno-merge-constants -mno-red-zone -fno-stack-protector -DCONFIG_i686 -c HelloWorld.c -o HelloWorld.o HelloWorld.c:5:17: fatal error: efi.h: No such file or directory compilation terminated. make: *** [HelloWorld.o] Error 1 #
Thanks and hopefully it does workrcrsn51 wrote:nooby wrote:Sad if one buy a new computer for say 500USD only to realise it is impossible to boot Puppy on it
One test you would want to run is here.
Code: Select all
# make
mkdir -p lib
make -C lib -f ./../lib/Makefile SRCDIR=./../lib ARCH=ia32
make[1]: Entering directory `/initrd/mnt/dev_save/Documents/akash/software/boot/gnu-efi/gnu-efi-3.0/lib'
for sdir in ia32 x86_64 ia64 runtime; do mkdir -p $sdir; done
make[1]: *** No rule to make target `boxdraw.o)', needed by `libefi.a'. Stop.
make[1]: Leaving directory `/initrd/mnt/dev_save/Documents/akash/software/boot/gnu-efi/gnu-efi-3.0/lib'
make: *** [lib] Error 2
#
README wrote: Loader.efi
==========
This EFI binary is created to boot an unsigned EFI file on the platform. Since
this explicitly breaks the security of the platform, it will first check to
see if the boot binary is naturally executable and execute it if it is (either
it's properly signed or the platform isn't in Secure Boot mode). If the
binary gives an EFI_ACCESS_DENIED error meaning it isn't properly signed,
Loader.efi will request present user authorisation before proceeding to boot.
The idea is that Loader.efi may serve as a chain for elilo.efi or another boot
loader on distributed linux live and install CDs and even as the boot loader
for the distribution on the hard disk assuming the user does not wish to take
control of the platform and replace the keys.
To build a secure bootable CD, simply use Loader.efi as the usual
/efi/boot/bootX64.efi and place the usual loader in the same directory as the
file boot.efi.
In order to add further convenience, if the user places the platform in setup
mode and re-runs the loader, it will ask permission to add the signature the
unsigned boot loader, boot.efi, to the authorised signatures database, meaning
Loader.efi will now no longer ask for present user authorisation every time
the system is started.
could this be used to make a bootable flash drive on EFI systems like a Macbook pro ? and if yes. how about a noob guideakash_rawal wrote:I switched to precise puppy 540 and now I am able to build gnu-efi. But efitools failed to link. I ended up using pemasu's binary and finally had success with it (thanks pemasu).
I modified the makefiles so that it would build in 32-bit systems. I am attaching the modified sources here as well as the final build. I haven't cleaned the sources as I felt some other files might be useful.
You need sbsigntools ([url]git://kernel.ubuntu.com/jk/sbsigntool[/url]) if you want to build it yourself. On precise puppy I also installed vim-common, help2man and liblocale-gettext-perl.
According to readme file Loader.efi is the bootloader. Quoting the relevant portion of readme file:README wrote: Loader.efi
==========
This EFI binary is created to boot an unsigned EFI file on the platform. Since
this explicitly breaks the security of the platform, it will first check to
see if the boot binary is naturally executable and execute it if it is (either
it's properly signed or the platform isn't in Secure Boot mode). If the
binary gives an EFI_ACCESS_DENIED error meaning it isn't properly signed,
Loader.efi will request present user authorisation before proceeding to boot.
The idea is that Loader.efi may serve as a chain for elilo.efi or another boot
loader on distributed linux live and install CDs and even as the boot loader
for the distribution on the hard disk assuming the user does not wish to take
control of the platform and replace the keys.
To build a secure bootable CD, simply use Loader.efi as the usual
/efi/boot/bootX64.efi and place the usual loader in the same directory as the
file boot.efi.
In order to add further convenience, if the user places the platform in setup
mode and re-runs the loader, it will ask permission to add the signature the
unsigned boot loader, boot.efi, to the authorised signatures database, meaning
Loader.efi will now no longer ask for present user authorisation every time
the system is started.
So I fired virtualbox, created a GPT partition table and in it a fat32 partition and copied Loader.efi to /efi/boot/bootx64.efi and then rebooted in efi mode. Virtualbox dropped me into efi shell.Wikipedia wrote: Booting
The UEFI specification defines a "boot manager", a firmware policy engine that is in charge of loading the OS loader and all necessary drivers. The boot configuration is controlled by a set of global NVRAM variables, including boot variables that indicate the paths to the loaders.
OS loaders are a class of UEFI applications. As such, they are stored as files on a file system that can be accessed by the firmware. Supported file systems include FAT32, FAT16 and FAT12. Supported partition table schemes include MBR and GPT. UEFI does not rely on a boot sector.
Boot loaders can also be auto-detected by firmware, to enable booting on removable devices. Auto-detection relies on a standardized file path to the OS loader, depending on the actual architecture to boot (\EFI\BOOT\BOOT[architecture name].EFI, e.g. \EFI\BOOT\BOOTx64.EFI).
It is common for UEFI firmware to include a user interface to the boot manager, to allow the user to select and load the operating system among the possible options.
It may be that the UEFI will be what causes the mass switch away from the "Personal Computer" model to the "Android personal device" model. A lot of people are using an Android or Ipad thing as the only computing platform they have. Crippling the PC, seems like a further push away from the PC model and away from using things like Windows. Microsoft is having the market taken away from them at the bottom by Android device like things.Dingo wrote:Today I read that Linux Foundation found the way to bypass the EVIL UEFI
http://www.linuxfoundation.org/news-med ... pen-source
but, concretely, how can be this applied to Puppy? E.g. if I want to boot my good old BELOVEDPuppy 3.01 from live cd on a pc with the EVIL UEFI, I'm constrained to looking for a way to disabling UEFI manually or I can use this workaround in some way?
On closer observation I see some message being flashed on the screen when I used /efi/boot/bootia32.efi. Something like Not a secure boot platform... and after that a couple of lines. The message is flashed only for a couple of milliseconds barely enough to read a few words. So I compiled grub2 for EFI and placed it as /efi/boot/boot.efi but it doesn't start.akash_rawal wrote: So I fired virtualbox, created a GPT partition table and in it a fat32 partition and copied Loader.efi to /efi/boot/bootx64.efi and then rebooted in efi mode. Virtualbox dropped me into efi shell.
I tried bootx86.efi and bootia32.efi too, but no luck.