FastNetMon

Thursday, 29 July 2021

createrepo on Ubuntu 20.04

Unfortunately, createrepo command which can create RPM repositories was removed in Ubuntu 20.04 LTS.

It's almost impossible to run package from Ubuntu 18.04 as plenty of dependencies were removed.

Let's try building C based version of createrepo from: https://github.com/rpm-software-management/createrepo_c 

First of all, install all dependencies:

sudo apt install -y libcurl4-openssl-dev libbz2-dev libxml2-dev libssl-dev zlib1g-dev pkg-config libglib2.0-dev liblzma-dev libsqlite0-dev libsqlite3-dev librpm-dev libzstd-dev python3.9-dev cmake

Then build it:

cd /tmp

git clone https://github.com/rpm-software-management/createrepo_c

mkdir build

cd build

cmake .. -DWITH_ZCHUNK=NO -DWITH_LIBMODULEMD=NO

make -j 

cp src/createrepo_c  /opt/createrepo

Do test run:
/opt/createrepo /var/public_repositories/
Directory walk started
Directory walk done - 18 packages
Temporary output repo path: /var/public_repositories/.repodata/
Preparing sqlite DBs
Pool started (with 5 workers)
Pool finished

Sunday, 21 February 2021

Firmware upgrade on Thinkpad X1 Extreme Gen 2 on Ubuntu 20.04

 It's actually pretty simple process, just run this in Terminal:

fwupdmgr update

Output may look the following way:

Upgrade available for Thunderbolt Controller from 42.00 to 59.00

Thunderbolt Controller and all connected devices may not be usable while updating. Continue with update? [Y|n]: Y

Downloading 59.00 for Thunderbolt Controller...

Fetching firmware https://fwupd.org/downloads/0ec44a6ae2c11843d80147271d99901d41a7489ff29444c820c918e46a8eac25-Lenovo-ThinkPad-X1E-Gen2-Thunderbolt-Firmware-N2OTG12W-Secured.cab

Downloading…             [***************************************] Less than one minute remaining…

Decompressing…           [***************************************]

Authenticating…          [***************************************]

Updating Thunderbolt Controller…                                 ]

Restarting device…       [***************************************]

Successfully installed firmware

Saturday, 20 February 2021

Ubuntu 14.04 LTS kernel with drop_monitor support

In this guide, I'll describe how you could build kernel for Ubuntu 14.04 with CONFIG_NET_DROP_MONITOR option. It's pretty standard reference copy-n-pasted from official manual of Ubuntu with very small changes.

If you got this error:

sudo ./dropwatch 
Unable to find NET_DM family, dropwatch can't work
Cleaning up on socket creation error

Then it means that your kernel does not have CONFIG_NET_DROP_MONITOR option compiled.

I use Ubuntu 14.04 and could provide guide how you could rebuild kernel with this option.

Rebuild kernel:

apt-get source linux-image-$(uname -r)

Install build deps:

sudo apt-get build-dep linux-image-$(uname -r) libncurses5-dev

Start process:

cd linux-lts-vivid-3.19.0 

Change options:

chmod a+x debian/rules
chmod a+x debian/scripts/*
chmod a+x debian/scripts/misc/*
fakeroot debian/rules clean 

fakeroot debian/rules editconfigs # you need to go through each (Y, Exit, Y, Exit..) or get a complaint about config later

Then specify it:

Do you want to edit config: amd64/config.flavour.generic? [Y/n] Y

Required option you could find here:

Networking support - Networking options - Network testing - Network packet drop alerting service - [M]

Build it:

fakeroot debian/rules binary-headers binary-generic binary-perarch 

Check it:

cat ./debian.vivid/config/amd64/config.flavour.generic
#
# Config options for config.flavour.generic automatically generated by splitconfig.pl
#
CONFIG_HZ=250
# CONFIG_HZ_1000 is not set
CONFIG_HZ_250=y
# CONFIG_IRQ_FORCED_THREADING_DEFAULT is not set
CONFIG_NET_DROP_MONITOR=m
# CONFIG_PREEMPT is not set 

CONFIG_PREEMPT_VOLUNTARY=y

And finally load it when you restart to new kernel:

modprobe drop_monitor 

 

 

 

 

 

Using Dropwatch to monitor UDP drops in Linux

What is Dropwatch?

This tool will show place where Linux kernel drops/discards UDP packets.

Example screen:

Install dependencies:

sudo apt-get install -y libnl-3-dev libnl-genl-3-dev binutils-dev libreadline6-dev

Then clone repo, cd to src folder and run make.

And finally run tool:

./dropwatch -l kas 

Friday, 22 January 2021

How to switch keyboard layout in Ubuntu 20.04 LTS via Caps Lock?

 It's pretty easy, you need to create this folder:

sudo mkdir /etc/X11/xorg.conf.d

And then you need to create following file /etc/X11/xorg.conf.d/00-keyboard.conf with this content:

Section "InputClass"

        Identifier "system-keyboard"

        MatchIsKeyboard "on"

        Option "XkbLayout" "us,ru"

        Option "XkbModel" "pc104"

        Option "XkbOptions" "grp:caps_toggle"

EndSection

To apply changes you need to reboot your PC or laptop.  Tools like Tweak Gnome will not help because for some reasons in 20.04 Gnome resets configuration of custom keyboard layout when it set to Caps Lock.