meta data for this page
  •  

This is an old revision of the document!


Linux/Prepare

Basic

set umask

In file: ~/.profile

  • umask 002 (default), RW for user, RW for group and R for others - create dirs as 775 and files as 664
  • umask 022 (default for root), 755 and 644
  • umask 077 only RW for user, not other access
  • umask 007 RW for user, RW for group

add i386 architecture

dpkg --add-architecture i386
apt-get update
apt-get install gpm tcpdump bmon tinc ppp pptpd mc links2 gparted hdparm smartmontools smart-notifier valgrind openssh-server
apt-get install wireshark mtr

NTP: allow time corrections bigger than 1h

  1. Edit /etc/default/ntp and add “-s” argument.
  2. Ordered List ItemInstall ntpdate and ntp
  3. Ordered List ItemSwitch RTC to UTC time:
timedatectl set-local-rtc 0
ntpd -qg
hwclock --systohc

Disable PC speaker

echo "blacklist pcspkr" > /etc/modprobe.d/nobeep.conf

resolv.conf

apt-get install resolvconf

Add own nameserver into /etc/resolvconf/resolv.conf.d/base

nameserver 8.8.8.8

and execute

sudo resolvconf -u

Polish & locales

dpkg-reconfigure keyboard-configuration
apt-get install console-data
dpkg-reconfigure console-data
dpkg-reconfigure locales

add

  • pl_PL
  • pl_PL.UTF-8

In Debian, locales are handled in /etc/default/locale. File /etc/environment is deprecated.

grep pam_env.so /etc/pam.d/*
...
/etc/pam.d/login:session       required   pam_env.so readenv=1
/etc/pam.d/login:session       required   pam_env.so readenv=1 envfile=/etc/default/locale
...

set cfq/deadline scheduler

/etc/udev/rules.d/60-schedulers.rules
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="cfq"
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline"  
cat /sys/block/sd*/queue/scheduler

single queue schedulers

There are 2 queues, one for read & one for write operations.

  • none is just a First In First Out standard queue of I/O operations.
  • cfq (Completely Fair Scheduling) is similar to the Round Robin algorithm and basically allots a fixed execution time for each I/O operation (they are implemented as a circular queue)
  • deadline is like a priority queue with an aging concept. Basically it adds a deadline for each I/O operation & implements a priority queue

block multi-queue schedulers

Supported in kernel >=4.12. It is disabled by default. To use multi-queue schedulers compile kernel with CONFIG_SCSI_MQ_DEFAULT=y or pass parameter scsi_mod.use_blk_mq=1 in boot loader.

Linux Multi-Queue Block IO Queueing Mechanism

/etc/udev/rules.d/60-schedulers.rules
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="bfq"
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="mq-deadline"
sudo udevadm control --reload
sudo udevadm trigger
cat /sys/block/sd*/queue/scheduler

Disable console beep

To disable console annoying beep: * System wide by removing PC Speaker module:

rmmod pcspkr
sudo echo "blacklist pcspkr" > /etc/modprobe.d/pcspkr-blacklist.conf

Usefull software

sudo apt-get install wireshark cups
sudo usermod -G lp,lpadmin,dialout,sudo,audio,video,netdev,vboxusers,wireshark,kismet,i2c user_login

parallel packers

sudo apt-get install pigz pbzip2 pxz lbzip2

To force using parallel packers system-wide:

ln -s /usr/bin/lbzip2 /usr/local/bin/bzip2
ln -s /usr/bin/lbzip2 /usr/local/bin/bunzip2
ln -s /usr/bin/lbzip2 /usr/local/bin/bzcat
ln -s /usr/bin/pigz /usr/local/bin/gzip
ln -s /usr/bin/pigz /usr/local/bin/gunzip
ln -s /usr/bin/pigz /usr/local/bin/zcat
ln -s /usr/bin/pixz /usr/local/bin/xz

or use bash aliases:

.bashrc
alias gzip='pigz'
alias gunziip='unpigz'
alias bzip2='pbzip2'
alias bunzip2='pbunzip2'
alias xz='pxz'

some benchmarks (i7-3770K), BTRFS FS +NoCOW attrib

command user time size comments
pbzip2 -1 4m12 694M
pbzip2 -5 4m59 683M
pbzip2 -9 6m25 679M default
pigz -0 0m32 3,5G no compression
pigz -1 0m52 727M
pigz -2 0m48 723M
pigz -6 1m18 698M default
pxz -0 3m30 660M
pxz -3 5m00 636M
pxz -6 11m19 571M default

etckeeper

apt-get install git 
git config --global user.name "my name"
git config --global user.email myemail@address.pl
apt-get install git-cola etckeeper kdiff3

Logitech wireless mouse/trackball

To handle old (not Unifying Receiver) Logitech product:

sudo apt-get install lomoco
sudo lomoco -i
003.005: 046d:c508 Receiver for Cordless Optical TrackMan (C-BA4-MSE) Caps: CSR SMS 
	Receiver type: C508
	Mouse type: Cordless Optical TrackMan
	Connect button on mouse pressed: no
	Active RF Channel: 1
	Battery status: 7 (full)
	Cordless security ID: 0x8e16
	Receiver talking: yes
	Lock Request (CONNECT button pressed): no
	Mouse Powerup (First time out of the box auto-locking): no
	Receiver Unlocked (Mouse disconnected): no
	Wait Lock (Searching for mouse): no
	Device physical shape type: 0
	SmartScroll (SMS): reporting not supported
	USB Mouse Polling Interval:  10ms
sudo lomoco --pid=C508 -i | grep -w "Battery status:"

For logitech devices there are additional packets: https://wiki.archlinux.org/index.php/Logitech_Marble_Mouse

Change trackball pointer speed

Using CTM:

xinput set-prop "Logitech USB Receiver" "libinput Accel Speed" 1
xinput set-prop "Logitech USB Receiver" "Coordinate Transformation Matrix" \
2.000000, 0.000000, 0.000000, \
0.000000, 2.000000, 0.000000, \
0.000000, 0.000000, 1.000000