EFI Shell: How to beep? - uefi

in the EFi-Shell I want to make beep via the board speaker.
Can´t find any command or hint how to do so in the internet.
I´ve already tried as supposed in other discussions (not referring EFI-Shell):
echo '\a'
echo '\007'
I´m running the system on an Intel Atom Processor.

It depends on your hardware - whether there is a piezo speaker or not.
Look for the Beep utility in my UEFI-Utilities-2018 repository on Github for example C code and a compiled X64 binary (Beep.efi)

Related

How is an efi application being set as the bootloader through code?

By following this tutorial, I am able to create a simple efi application that prints hello world when executed from an uefi shell. However, I was wondering how does one creates bootable EFI image. I tried to use bcfg command in the shell and added my efi binary as one of the booting sequence. However, is there anyway to do it without the need of going into the shell?
However, if you are actually building your own firmware, you can also
look at creating a bootable EFI image and set your default boot option
to this binary. This is most useful if you are including the binary as
a part of your ROM, but it might be a little involved to set up the
filesystem so that it is seen as a normal boot option.
In this question, Nicholas Embry gave a good answer but I was unable to find any resource to explore further into the topic that he mentioned. Any help would be appreciated. Thanks!
bcfg, just like efibootmgr in Linux, ultimately use the GetVariable() and SetVariable() runtime services (also available during boottime) to modify the system boot configuration.
The UEFI Shell, implementing the bcfg command, is itself a UEFI application. Since its source is publicly available, you can have a look at the implementation of the bcfg command - particularly the BcfgAdd() function.
Adding on to unixsmurf's answer, I figured that it is in the specification that UEFI will automatically look for a file name/located at EFI/BOOT/bootx64.efi. When making a UEFI application that is intended to be automatically loaded by the machine when booting, simply place the application at the specified path. Combining with what unixsmurf mentioned, I can make the computer load any UEFI application automatically at boot time.

Persistent error coming from libusb0

I'm using a Python application that accesses a USB device (pipsta printer) and executes a routine. It's running fine outside the container, but when it comes to the container it returns a error like this:
(File "usr/local/lib/python2.7/dist-packages/usb/backend/libusb0.py", line 386, in _check:
raise USBError(errmsg, ret)
USB.core.USBError: [Errno None] couldn't opendir(): No such a file or directory)
In my dockerfile, I've included all the packages relevant to Python and USB, and I also moved the relevant files to /etc/udev/rules.d and restarted udev.
Make sure you:
followed every step from assembly instruction and https://bitbucket.org/ablesystems/pipsta/wiki/Pipsta%20First-Time%20Setup
printer is connected to the power
printer is connected via usb to raspberry
printer's led doesn't blink (should be green constantly)
proper usb library is installed (or try to install different version of the usb library). What version are you using? python: print(usb.__version__) , it works fine for me with version 1.0.0rc1
is printer visible to the os? command: ls /dev/ap1400
I know this is an old question (I've only just encountered it). The following is a paraphrasing of the FAQ. The following steps should help diagnose the problem.
Download the latest set of Pipsta examples..
Extract the contents of the zip file.
Change directory to where the files were extracted
Change directory to the Examples folder.
Using a terminal run the command python verify_pipsta_install.py. This will try and help diagnose problems.
The following will should fix the python usb library error.
If your Pipsta printer firmware is V9.2.03 please upgrade the firmware to V9.2.08 using the fpu (both can be found in the downloads section of bit bucket.
Install the latest version of the Pipsta examples (download from bitbucket).
Copy the new pipsta/Examples/system_scripts/ to /etc/udev/rules.d/60-ablesystems-pyusb.rules
Restart the Raspberry Pi
If the printer still fails to be discovered then -
The following workaround may work.
1. Unplug the printer from the USB port
1. Enter the command sudo lsusb
1. Reconnect the printer
1. Enter the command sudo lsusb
If the printer has been detected by the Linux environment then either /dev/ap1400 or /dev/pipsta should exist in the filesystem.
NOTE The Pipsta now has Debian packages to help with installation. I have a link limit on my account but search for pipsta-printer-utilities-1.1.1-Linux.deb and pipsta-cups-driver-0.3.0-armhf.deb for more information.

Is it possible to build a basic text based shell/command line ontop of freebsd kernel?

I am interested in operating system development and have a basic knowledge of c, c++, and java. I would like to program a custom text based shell/command line that runs on top of the FreeBSD kernel.
My question is how would I go about obtaining the kernel and writing my custom environment into it, and what tools and resources would I need.
Btw. I am also open to linux, I just prefer the BSD License.
Shell is just an ordinary program, like any other. It doesn't use any special APIs. So, you can just install FreeBSD, write the software you would like to become the shell, and just set it up as user's shell, by using chsh command.

QR Code generation in shell / mac terminal

I want to create QR codes for a project I'm working on in applescript the resulting qr will be placed in the indesign document. I have found that there is a plugin for indesign but I suspect that requires user interaction.
So I've been search for how to generate the qr using a shell command. I've found things related to php and rails and even coldfusion but none of those will fit the bill on this. I need to generate them using shell command so image events or perl basically anything I can run from the command line that comes with the mac os
thanks for your help.
antotheer
I wonder if I could call a url using curl or somthing to get one ?
For doing something similar, we use libqrencode.
It's a c library for generating QR codes, but it comes with a command line utility (called qrencode) which lets you generate QR codes from a string, e.g.:
./qrencode -o /tmp/foo.png "This is the input string"
It supports most options you'd probably want (e.g. error correction level, image size, etc.).
We've used it in production for a year or two, with no problems.
I've only run it on linux systems, but there's no reason you shouldn't be able to compile it on Mac OS, assuming you have a compiler and build tools installed (and any libraries it depends on of course).
As Riccardo Cossu mentioned please use homebrew:
brew install qrencode
qrencode -o so.png "http://stackoverflow.com"

How to test bootloader

I have a hello world bootloader code in assembly written (I'm sure I coded it right). I have the .bin file with me and .exe also.
I want to test it now with a USB, how do I do it? Everything I googled out and found on the topic pretty much didn't work out.
I have tried the way with "Disk Explorer NTFS 3.66". I have also tried the mkbt way. Both of them though mentioned highly in blogs/forums/etc don't seem to work for some reason.
Disk Explorer is not letting me paste from file onto the bootsector.
Any ideas/help is much appreciated.
I am 99.9% sure that you won't be able to use bootloader with USB. Because, bootloader is initialized first then it loads the Operating System, which loads USB drivers. It can work if you can trick your machine to look for USB as a primary booting device (I was using a P4 with XP and couldn't get my system to do it). The thing that worked for me was a Floopy Drive, it was back in 2006 !
You can use a Virtual Machine as suggested by Federico, and emulate the USB drive as a booting device, that's the best option.
Follow the link given below . I think it will help you to make bootloader as "Hello World" in your usb .
http://pcguide4you.blogspot.in/2011/09/designing-simple-hello-world-bootloader.html