The Linux Page

Help other users realize that everything is possible, especially avoiding Windows for their own personal use.

Welcome to The Linux Page


Fox Trot by Bill Amend. Click to enlarge.
Click to enlarge

This site is a collection of my own work with Linux. Certain things are easy, others take time to decipher and if I ever need to repeat the work (which usually happens!), then I need to remember everything by memory or... have a site with all the steps taken and to take again.

The following are my most recent posts:

A Telephone post with many lines to the surrounding homes.

I have noticed that quite a few people were trying to create UDP communication and I thought that proposing my class could help them. This is very basic as it does not define anything such as the size of a packet or any protocol to ensure arrival of the packets. However, it can be useful if you want to send a signal from one process to another, which is exactly how I use this implementation (i.e. I send a PING message to wake up a background process whenever the front end adds data to the database.)

This code is part of the Snap! C++ implementation. The latest version can be found in GitHub ...

Hard Drives for a RAID system

I got 4 x 10Tb HDD -- HGST Ultrastar He10 -- click the link to find them on Amazon

What Happened?

One of my RAID1 drives, the important ones, started sending me error email messages about 8 sectors being "unreadable".

So first I waited a bit to see whether it would resolve itself. It did go silent for a few months and came back...

At that point, I decided to purchase a replacement and retire the drive giving me errors. The new drive looks good so far!

Check Current SMART Status

To see what the SMART system discovered, you can use the smartctl command like so:

 ...

Transform a frame so the message fits.

If you are writing many scripts, once in a while, you may want to print out a message surrounded by a box. But how do you create a box of the right width?

Say for example, that you want to surround your message with + characters like so:

+++++++++++++++++++
+ My Message Here +
+++++++++++++++++++

The message itself would be coming from a variable. Maybe there is a filename into it so the width can vary widely.

Say the line in the middle is written like so:

echo "+ ${MESSAGE} +"

Then you can create the string of just + characters with the following command:

 ...

Repair your Windows Installation

My MS-Windows 10 instance would not run properly anymore. Once booted, the login prompt worked as expected (yeah!) but once logged in, the OS would crash after a minute or two and show me the blue screen of death (BSoD).

I wanted to try a repair, so I looked into various websites, here I write what I ran so I can remember for next time (assuming it worked this time, at least).

dism /image:C:\ /cleanup-image /restorehealth

Most often, somehow, you seen people tell you to use /online as the first parameter. The fact is that your drive is not likely going to be online if you can't run ...

How to connect to a server from your Termux terminal

I found that good documentation from Termux, about Remote Access. It mentions [S]FTP and SSH. The main problem to use SSH is that you need to have access to the public key and... how do you copy the public key from your Termux terminal to your server?

What I've found is that you can use ssh-copy-id with a local VPS on the same network. When I'm at home, I have my phone on a LAN IP address and I can access my VPS servers... at least those that allow for a password login.

So what I've done is something like this:

1. Make sure that your VPS SSH server is still allowing password ...

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 happen.

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

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 ...

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 ...

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.

...

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 ...

Thank you for visiting my website.