Add IP to CirrOS manually if DHCP fails

If CirrOS is not getting IP address automatically from Neutron because of some issue or simply DHCP is disabled for subnet then you can use:

ip a add <address/mask> dev eth0

To add IP address and mask to eth0. You will also need default route:

ip r add 0.0.0.0/0 <default_gw> dev eth0

Make Yum use specific package version from CentOS vault

Sometimes for a specific reason you want to use certain CentOS version which is removed from the main tree. Trying to update packages will report that packages for your version do not exist, but there is a way to fix this.

If you tweak the Yum repository files and remove mirrorlist directives and enable baseurl directives instead you will be able to download packages just for that specific release.

For example replace:

#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/

With:

baseurl=http://vault.centos.org/7.3.1611/os/$basearch

Where 7.3.1611 is the specific version.

If you installed some older version of CentOS which is now moved from the main tree to the vault, you could use following script to automatically tweak all Yum repository files.

RELEASE='grep -oE '[0-9]+\.[0-9]+\.[0-9]+' /etc/centos-release'
mkdir -p /etc/yum.repos.original.d
cp -r /etc/yum.repos.d /etc/yum.repos.original.d
cd /etc/yum.repos.d
sed -i 's/^mirrorlist=/###mirrorlist=/' *
sed -i 's/^#baseurl=/baseurl=/' *
sed -i '/^baseurl/s%mirror.centos.org/centos/$releasever%vault.centos.org/$RELEASE%' *

Consistent network device naming with systemd

Traditionally network device names in linux started with eth0/wlan0 where number 0 was incremented for each additional device. Problem with this naming was that device numbers did not match actual locations in computer.

Starting with v197 systemd/udev assigns predictable, stable network interface names for all local Ethernet, WLAN and WWAN interfaces. Naming is based on firmware, topology and location information.

Advantage of this approach is that the names are fully automatic, predictable and they stay fixed even if the hardware is removed or added. This allows hardware to be replaced without network cards being renamed.

Device naming is following the schemes:

  • o = onboard device
  • s = PCI hotplug
  • x = MAC address
  • P = PCI domain
  • p = PCI bus number
  • s = slot number

For example device enp0s3 would be Ethernet device in PCI bus 0 slot 3.

Ethernet device named by MAC address would start with en followed by x and MAC address (f.e. enx00112233445566).

PCI hotplug Ethernet device would start with en followed by s and the slot number, followed by f and the function number for cards that have more than one function (f.e. ens1f4).

Create swap file on Raspberry Pi Zero W

First check if you have swap configured:

swapon --show

IF empty you can create for example 256MB swap file with following commands:

fallocate -l 256M /var/swap
chmod 600 /var/swap
mkswap /var/swap
swapon /var/swap

You can again check if swap is properly configured:

#swapon --show
NAME      TYPE SIZE USED PRIO
/var/swap file 256M   0B   -2

#free -m
              total        used        free      shared  buff/cache   available
Mem:            480         109         140           9         229         312
Swap:           255           0         255