The Linux Page

undefined reference to `NvEGLImageFromFd(void*, int)' & `NvDestroyEGLImage(void*, void*)'

Including old code in modern programs

As I'm working on a project that runs on a Jetson Tegra, I ran in this issue:

CMakeFiles/panel_ve.dir/panel_ve.cpp.o: In function `panel_ve::run()':
/home/alexis/ve/virtual-entertainment/panel-ve/src/panel_ve.cpp:383: undefined reference to `NvEGLImageFromFd(void*, int)'
/home/alexis/ve/virtual-entertainment/panel-ve/src/panel_ve.cpp:414: undefined reference to `NvDestroyEGLImage(void*, void*)'

Yet, I linked against the nvbuf_utils library, but apparently it was not happening.

The fact is NVidia offers an nvbuf_utils.h file in their development environment and ...

Looking at how much swap memory each process uses?

RAM & Swap memory exchange, but who uses it?

Limited Information...

When a computer swap is getting used, by default you just see that swap is used, not so much about which process uses that swap space.

The function I used by default is free which outputs that info:

$ free
          total     used      free  shared buff/cache available
Mem:  528011648 75782220 200245172 1928996  251984256 449183156
Swap:  30769148        0  30769148

As we can see, this tool shows use how much RAM is used/available and how much swap is in use/available.

Only that doesn't tell you much. That is, my main question is genrally: which ...

Increasing the volume over 100% on Linux

Volume & Balance Potentiometer

Incerase Your Volume Beyond 100

I have been listening to many videos on YouTube, Facebook, etc. that have a really low volume. This is generally rather annoying since in the end I cannot hear a lot of the audio track.

There is actually a way to increase the volume over the normal 100% limit.

There are several features that offer such a feature, but the one that worked for me is a Volume Control application called pavucontrol.

sudo apt-get install pavucontrol
pavucontrol

It looks like various systems offer various ways to do that, but at least that one works for me under Linux in ...

Redis & the infamous "Waiting for the cluster to join....." message

Cluster Issues

Problem

For my work, I need to have a simple Redis cluster to test that everything works. Unfortunately, when trying to setup the cluster, I was getting this message:

Waiting for the cluster to join................

with the dots (.) going forever.

Creation of Cluster

To create the cluster I decided to create VPS computers with Ubuntu 18.04 since that's what we're still using. These have Redis version 4.0.3.

So... I created a clone from my clean Ubuntu 18.04.

I started that first system, changed the IP address to a group I could use on my system, and installed Redis.

...

Creating a new React web application

Illuminated optical fiber.

The simplest way to start is to create a simple one page app.

npx create-react-app my-app
cd my-app
npm start

A one page app. just means that all the code works in one place, not that you don't have the ability to use multiple paths and change the render of the page accordinly.

Handling multiple paths is called routing.

The npx command above downloads all the files necessary to run the react app.

The npm start command starts that app. That command requests your default browser to open a link to the service that it just started. The default port used for that feat is 3000.

You ...

Taking a Screenshot on Mac OS/X or Ubuntu

A beautiful screenshot

Ubuntu

On Ubuntu, the default is to simply hit the PtrScr key. The screenshot of the entire screen will be taken and saved in your Pictures folder.

However, in many cases you may need a special screenshot. Maybe just a small area or a window.

I do not know the defaults exactly, but I think that for a window you want to select the window and then hit Alt-PtrSrc.

On my end, I love to be able to select what I want to screenshot instead of a whole window or screen. I use Ctrl-Shift-PtrSrc which changes the cursor to a cross and then I can select an area on the screen which gets saved ...

I Received an Empty Invitation Email?!

A Blank Invite... Why is Thunderbird not seeing that content?

Microsoft has a special format that Outlook (at least) uses to generate an invitation that you can add to your calendar.

However, under Linux with default Thunderbird, that looks like an empty email (well... in general, just the signature of the person sending the invite).

Looking around for the issue, I actually found out that you could just install the Lightning AddOn to Thunderbird and voilà! You'll now see the invite as expected. Actually, the funny thing is that you won't see the signature anymore.

Warning: For the AddOn to work as expected you'll be required to ...

End a fail2ban regex with a space

Spaces require special handling in regular expressions

Many of the examples in fail2ban make use of ^ at the start and $ at the end. In other words, the entire line is expected to match.

In many cases, though, it's not really useful to match the entire line when only a few things can be matched. That means you can't use have " $" at the end of the regular expression. (or even " +$" if one or more spaces are expected).

Instead you have to resort to a different way to allow for a space.

Note that I wrote these two regex example in double quotes to make it clear that there is a space at the start, but you actually ...

Using nvidia-settings to update the settings from the command line

Settings for you NVidia video cards

NVidia provides a neat graphical interface that allows you to see and change various values that the GPU makes available.

This interface is opened when you start nvidia-settings.

The problem is that at times you probably would like to set a parameter to a value as defined in that interface. The cool thing is that the nvidia-settings tool actually lets you do that.

How that works exactly, you can use the --help command line option for details. The main two are -a to assign a new value and -q to list existing values. The values are defined per GPU, per screen, per display (monitor), and a ...

ntp[123]: Soliciting pool server 10.10.0.1 -- failing as main NTP server is not running

An empty hourglass or sandclock—just like a broken NTP, an empty hourglass is done showing you time.

Click to get your own sand clock.

Introduction

Today I noticed a problem with one of my computer which clock was behind.

My main server NTP server somehow closed down (or was never started?) and so the time was not available to that slave.

In my ntp.conf I change the default URLs to time servers and use my own like so:

pool 10.10.0.1 iburst

This means this computer will make use of the time on server 10.10.0.1 and not some random (public) time servers.

Why would you do that you ask?

This way the computers are in close sync. between each others, especially if you are on an ...