Month: December 2021

How to update the systemd-boot loader in /boot

Update /boot

During the installation of Arch Linux on modern computers with UEFI (BIOS replacement), we create a small partition on the disk with a mount point in /boot into which we install the boot loader using bootctl. This bootloader is systemd-boot, which is part of systemd. Over time, systemd can be updated like any other Arch Linux package. This does not automatically update the loader in /boot. For this reason, if you have been using the same Arch Linux installation for a long time, then your boot loader in /boot may be out of date.

This article will show you how to view version and supported features, and how to update systemd-boot in /boot on Arch Linux (as well as BlackArch and Manjaro).

What is systemd-boot

systemd-boot (short for sd-boot) is a simple UEFI boot manager. It provides a graphical menu for selecting an entry to boot and a kernel command line editor. Systemd-boot only supports systems with UEFI firmware.

systemd-boot loads boot record information from the EFI system partition (ESP), usually mounted in /efi/, /boot/, or /boot/efi/ during OS startup, and from an extended bootloader partition if it exists (usually mounted in /boot/). Fragments of the configuration file, kernels, initrds, and other EFI images to boot should usually reside on an ESP or extended boot loader partition. Linux kernels must be built with CONFIG_EFI_STUB so that they can be directly run as an EFI image. At boot time, systemd-boot automatically collects a list of boot records from the following sources:

  • Boot entries defined using the loader specification descriptor files located in /loader/entries/ on ESP and in the advanced loader section. They usually describe Linux kernel images with associated initrd images, but can also describe arbitrary other EFI binaries.
  • Unified kernel images as per bootloader specification as EFI executable binaries in /EFI/Linux/ on ESP and in the extended bootloader section.
  • Microsoft Windows EFI Boot Manager, if installed.
  • Apple MacOS X Boot Manager, if installed.
  • EFI Shell binary, if installed
  • Reboot to the option UEFI Firmware Configuration, if supported.

systemd-boot supports the following features:

  • Major changes to the boot manager configuration (such as setting a timeout, choosing a default boot record, etc.) can be made directly from the boot loader UI at boot time as well as at run time with EFI variables.
  • The boot manager integrates with the systemctl command to implement features such as systemctl reboot --boot-loader-entry=… (to reboot to a specific boot menu item, eg “reboot to Windows”) and systemctl reboot --boot-loader-menu=… (to reboot in the bootloader menu) by implementing the bootloader interface.
  • The EFI variable, set by the bootloader, tells the OS about the ESP used at boot time. It is then used to automatically mount the correct ESP partition in /efi/ or /boot/ while the OS is running.
  • The Boot Manager provides information about the boot time taken by the UEFI firmware using the Boot Loader Interface. This information can be displayed using systemd-analyze
  • Boot Manager implements load counting and automatic rollback to older workload records in case of failure.
  • The boot manager additionally reads a random seed from the ESP, concatenates it with the “system token” stored in the constant EFI variable, and extracts a random seed for the OS to use as an initialization of the entropy pool, providing a full pool of entropy during early boot.

How to update the bootloader in /boot

The bootctl program can check EFI firmware and bootloader status, list and manage available bootloaders and bootloader entries, and install, update, or remove systemd-boot on the current system.

To check if your system uses systemd-boot, run the command:

bootctl is-installed

To check the current version of the bootloader and see other information about it, run the following command:

bootctl

You will see something like the following:

Pay attention to the Product line - it contains the version, in the screenshot it is 249.5-3.

Also look at the Features list - if you installed your system a long time ago, then some features may be disabled - an update will fix this.

For example, the Features list in the screenshot:

               ✓ Boot counting
               ✓ Menu timeout control
               ✓ One-shot menu timeout control
               ✓ Default entry control
               ✓ One-shot entry control
               ✓ Support for XBOOTLDR partition
               ✓ Support for passing random seed to OS
               ✗ Load drop-in drivers
               ✓ Boot loader sets ESP information

Most of the list is marked with green checkmarks (), but one item (in your case, these may be other items) is marked with a red cross (). This means that systemd supports all of the listed functions, including those marked with a cross, but the currently installed bootloader does not support what is marked with a cross. In order for the bootloader to start supporting the entire list, it needs to be updated.

Using the command

pacman -Ss systemd

you can see the current version of the systemd package. In the screenshot, it is 250-1. That is, you can upgrade to a newer version.

To check the current version of systemd, you may prefer the following command:

pacman -Si systemd

Updating the systemd-boot loader in /boot is performed with the following command:

sudo bootctl update

You need to restart your computer for the changes to take effect.

How to view and send SMS from a computer

If you are a desktop or laptop user, then you probably have versions of WhatsApp, Viber, Telegram and other messengers for your computer. It is faster and more convenient to type messages and work with data on a computer.

What about SMS? Well, first of all, yes, does anyone else use SMS messages? Secondly, now there are SMS messages for computers.

The web version of Google Messages allows you to view and send SMS messages from your computer.

You can use your computer or Android tablet to chat with your friends through Messages for web, which shows what’s on your Messages mobile app. Messages for web sends SMS messages using a connection from your computer to your phone, so carrier fees will apply, just like on the mobile app.

In Google Fi, which is not available to everyone, except for text SMS messages, voice messages and calls are implemented, that is, it will soon be possible to also call from a computer using your phone number.

Make Messages your default messaging app

You can send and receive text messages, photos, voice messages, and video using Messages. If you don't have Messages, you can get it from Google Play.

Important: Some of these steps only work on Android 6.0 and up.

If your device has more than one messaging app, you can make Messages your default messaging app. When you make Messages your default messaging app, you can review your text message history in the Messages app, and you'll only be able to send and receive new text messages in the Messages app.

To set Messages as your default messaging app, select an option:

  1. Open the Messages app
  2. When prompted to change your default messaging app, follow the onscreen instructions.

Alternatively:

  1. Open Settings .
  2. Click Apps.
  3. In the list of apps, click Messages  And then SMS And then Messages .

If you no longer want Messages to be your default messaging app, you can uninstall the Messages app or change your default messaging app from your device's settings.

Set up Messages for web

1. On your phone, open Messages Android Messages.

2. Tap More More

3. Select Device pairing.

 

4. On your computer, open Messages for web (https://messages.google.com/web/) in a browser, like Chrome or Safari.

5. Using your phone, tap Scan QR code and hold your phone up to the QR code on the web page. When it’s ready, your phone will vibrate.

6. Optional: To pair with Messages for web automatically next time, check the box "Remember this computer." If you don’t check the box, you can tap More Moreand then Settings and toggle on Remember this device after you log in.

Important:

  • Your latest conversation threads, contacts, and other settings will be encrypted and cached on your browser.
  • If you don’t use your Messages account for a few weeks, you’ll be unpaired automatically for security reasons.

See your messages on the web

When you have unread messages, the Messages icon in your browser tab will show a red notification and the number of unread messages.

Tip: You can make Messages for web look darker or use high contrast:

  1. On your computer, click More Moreand then Enable Dark theme.

Keyboard shortcuts

Keyboard shortcuts for working with SMS on a computer:

  • Ctrl+k: Start new conversation
  • Ctrl+j: Focus on messages in conversation
  • Ctrl+Shift+k: Focus on conversation list
  • r: Focus on message box
  • Ctrl+.: Next conversation
  • Ctrl+Shift+a: Attach files
  • Ctrl+,: Previous conversation
  • Ctrl+Shift+e: Show/hide emoji picker
  • Ctrl+d: Delete conversation
  • Ctrl+Shift+s: Show/hide sticker picker
  • Ctrl+Alt+h: Archive conversation
  • Ctrl+Shift+g: Show/hide GIF picker
  • Ctrl+s: Open Settings
  • Ctrl+Shift+o: Show Details
  • Ctrl+?: Open keyboard shortcut help

Unpair Messages for web

Unpairing helps keep other people from seeing your messages and sensitive info, like two factor verification codes or personal details.

On a computer

If you're using Messages for web on a shared or public computer, unpair when you're done.

  1. On your computer, open Messages for web.
  2. At the top left, click More Moreand then Unpair.

On your Android phone

  1. On your phone, open Messages Android Messages.

  2. At the top left, tap More Moreand then Device Pairing.
  3. Choose where to unpair:
  • Unpair one computer: Next to the computer you want to disconnect, tap Delete Delete and then Unpair.
  • Unpair all computers: Tap Unpair all computers.

Check your messages on your Android tablet

You can check your messages from your Android tablet with Messages by Google. If you don't have Messages on your tablet, you can get it from Google Play.

Important: When you use Messages on your tablet, carrier fees apply.

Tips:

  • The unique QR code for Messages pairs the mobile app to your tablet.
  • Some tablets with cellular connectivity and a SIM card can send messages without a connection to your phone. This lets your tablet work like a mobile phone.

phpMyAdmin error “Deprecation Notice in .\vendor\twig\twig\src\Loader\FilesystemLoader.php#40 realpath(): Passing null to parameter #1 ($path) of type string is deprecated” (SOLVED)

At the time of this writing, the latest release of phpMyAdmin (5.1) is not fully compatible with the latest PHP versions (8.1.1), so the program displays the following deprecated syntax notices:

Deprecation Notice in .\vendor\twig\twig\src\Loader\FilesystemLoader.php#40
 realpath(): Passing null to parameter #1 ($path) of type string is deprecated

Backtrace

.\vendor\twig\twig\src\Loader\FilesystemLoader.php#40: realpath(NULL)
.\libraries\classes\Template.php#57: Twig\Loader\FilesystemLoader->__construct(string 'C:\\Server\\data\\htdocs\\-phpmyadmin\\\\templates\\')
.\libraries\classes\Theme.php#101: PhpMyAdmin\Template->__construct()
.\libraries\classes\Theme.php#174: PhpMyAdmin\Theme->__construct()
.\libraries\classes\ThemeManager.php#307: PhpMyAdmin\Theme::load(
string './themes/metro',
string 'C:\\Server\\data\\htdocs\\-phpmyadmin\\./themes/metro/',
)
.\libraries\classes\ThemeManager.php#79: PhpMyAdmin\ThemeManager->loadThemes()
.\libraries\classes\ThemeManager.php#121: PhpMyAdmin\ThemeManager->__construct()
.\libraries\classes\ThemeManager.php#385: PhpMyAdmin\ThemeManager::getInstance()
.\libraries\common.inc.php#240: PhpMyAdmin\ThemeManager::initializeTheme()
.\index.php#15: require_once(.\libraries\common.inc.php)
Deprecation Notice in .\vendor\twig\twig\src\Markup.php#35
 Return type of Twig\Markup::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

Backtrace

.\vendor\composer\ClassLoader.php#444: include(.\vendor\twig\twig\src\Markup.php)
.\vendor\composer\ClassLoader.php#322: Composer\Autoload\includeFile(string 'C:\\Server\\data\\htdocs\\-phpmyadmin\\vendor\\composer/../twig/twig/src/Markup.php')
.\tmp\twig\46\46f1bfbf4328d3d22fddffb9178fdeb9868d0740e4cc8b5bbd6f2fcfb8e4523e.php#59: Composer\Autoload\ClassLoader->loadClass(string 'Twig\\Markup')
.\vendor\twig\twig\src\Template.php#405: __TwigTemplate_034511bee5325c368ee003e3d97d6cb47c3e1c94ebb527bcf0b76ba7818d1ac6->doDisplay(
array,
array,
)
.\vendor\twig\twig\src\Template.php#378: Twig\Template->displayWithErrorHandling(
array,
array,
)
.\vendor\twig\twig\src\Template.php#390: Twig\Template->display(array)
.\vendor\twig\twig\src\TemplateWrapper.php#45: Twig\Template->render(
array,
array,
)
.\libraries\classes\Template.php#132: Twig\TemplateWrapper->render(array)
.\libraries\classes\Header.php#714: PhpMyAdmin\Template->render(
string 'javascript/variables',
array,
)
.\libraries\classes\Header.php#193: PhpMyAdmin\Header->getVariablesForJavaScript()
.\libraries\classes\Header.php#142: PhpMyAdmin\Header->addDefaultScripts()
.\libraries\classes\Response.php#184: PhpMyAdmin\Header->__construct()
.\libraries\classes\Response.php#215: PhpMyAdmin\Response->__construct()
.\libraries\classes\Plugins\Auth\AuthenticationCookie.php#102: PhpMyAdmin\Response::getInstance()
.\libraries\classes\Plugins\AuthenticationPlugin.php#275: PhpMyAdmin\Plugins\Auth\AuthenticationCookie->showLoginForm()
.\libraries\common.inc.php#263: PhpMyAdmin\Plugins\AuthenticationPlugin->authenticate()
.\index.php#15: require_once(.\libraries\common.inc.php)
Deprecation Notice in .\vendor\twig\twig\src\Markup.php#40
 Return type of Twig\Markup::jsonSerialize() should either be compatible with JsonSerializable::jsonSerialize(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

Backtrace

.\vendor\composer\ClassLoader.php#444: include(.\vendor\twig\twig\src\Markup.php)
.\vendor\composer\ClassLoader.php#322: Composer\Autoload\includeFile(string 'C:\\Server\\data\\htdocs\\-phpmyadmin\\vendor\\composer/../twig/twig/src/Markup.php')
.\tmp\twig\46\46f1bfbf4328d3d22fddffb9178fdeb9868d0740e4cc8b5bbd6f2fcfb8e4523e.php#59: Composer\Autoload\ClassLoader->loadClass(string 'Twig\\Markup')
.\vendor\twig\twig\src\Template.php#405: __TwigTemplate_034511bee5325c368ee003e3d97d6cb47c3e1c94ebb527bcf0b76ba7818d1ac6->doDisplay(
array,
array,
)
.\vendor\twig\twig\src\Template.php#378: Twig\Template->displayWithErrorHandling(
array,
array,
)
.\vendor\twig\twig\src\Template.php#390: Twig\Template->display(array)
.\vendor\twig\twig\src\TemplateWrapper.php#45: Twig\Template->render(
array,
array,
)
.\libraries\classes\Template.php#132: Twig\TemplateWrapper->render(array)
.\libraries\classes\Header.php#714: PhpMyAdmin\Template->render(
string 'javascript/variables',
array,
)
.\libraries\classes\Header.php#193: PhpMyAdmin\Header->getVariablesForJavaScript()
.\libraries\classes\Header.php#142: PhpMyAdmin\Header->addDefaultScripts()
.\libraries\classes\Response.php#184: PhpMyAdmin\Header->__construct()
.\libraries\classes\Response.php#215: PhpMyAdmin\Response->__construct()
.\libraries\classes\Plugins\Auth\AuthenticationCookie.php#102: PhpMyAdmin\Response::getInstance()
.\libraries\classes\Plugins\AuthenticationPlugin.php#275: PhpMyAdmin\Plugins\Auth\AuthenticationCookie->showLoginForm()
.\libraries\common.inc.php#263: PhpMyAdmin\Plugins\AuthenticationPlugin->authenticate()
.\index.php#15: require_once(.\libraries\common.inc.php)

To stop these notifications, you just need to use phpMyAdmin version 5.2 or later. At the moment, this version can be downloaded from the link https://files.phpmyadmin.net/snapshots/phpMyAdmin-5.2+snapshot-all-languages.zip

Loading...
X