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 664umask 022
(default for root), 755 and 644umask 077
only RW for user, not other accessumask 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
- Edit /etc/default/ntp and add “-s” argument.
- Ordered List ItemInstall ntpdate and ntp
- 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