[LINUX] Création de l'environnement le plus solide après l'introduction de Manjaro dans Dell XPS 15

introduction

Basé sur le fait que l'installation de Manjaro et les paramètres de base sont terminés, il s'agit d'un mémorandum des paramètres suivants. Veuillez vous référer à d'autres pour l'installation, etc. Il est basé sur le modèle Dell XPS15 7590. Veuillez me faire savoir s'il existe un meilleur réglage. Mettez également à jour en conséquence. <détails> <résumé> En arrière-plan, j'ai eu un MacBook Pro et un Dell XPS15 7590 sur ma machine de travail, mais j'avais un MacBook Pro comme machine de développement principale, mais la nuit dernière, j'ai eu un problème: le clavier ne fonctionnait pas et je l'ai obtenu avec un programme de réparation Comme je serai loin de là, je mets à la hâte la machine Dell dans l'environnement de développement. Cette fois, j'ai fait un mémorandum de réglages que j'ai tendance à oublier après avoir mis Manjaro dans XPS 15 7590. </ résumé> Au fait, l'histoire de Linux est d'environ 20 ans et plus, et l'itinéraire de distribution personnel est Redhat => Ubuntu => Mint => Manjaro => Archlinux => Manjaro (maintenant ici), mais je ne sais encore rien. .. Akan. .. Linux a un haut degré de liberté, vous pouvez donc le personnaliser de différentes manières, mais si vous vous en tenez à l'interface graphique, des dizaines d'heures de temps précieux vont fondre, donc si vous ne faites pas attention, vous serez abandonné comme moi à cause de votre activité principale. Absolument pas de Conky. </ détails>

Les spécifications du XPS15 7590 ont été améliorées avec le matériel suivant. C'est tout à fait le plus fort pour le moment. Je l'utilise en le connectant à l'écran LCD externe d'Eizo. 12 cœurs sont épuisés, mais il reste encore beaucoup de mémoire. Si je le porte sur Docker ou quelque chose à partir de maintenant, je pense qu'il sera épuisé. Le nombre de cœurs peut être le goulot d'étranglement. Soit dit en passant, les spécifications sont bonnes même si elles sont améliorées par une nouvelle, mais la consommation d'énergie est élevée, et si vous exécutez diverses applications que vous développez, la batterie s'épuisera dans environ 3 heures. ..

Autodiscipline

La machine cliente de travail, pour ne pas faire fondre le temps

bureau

Donc, pour l'instant, le bureau ressemble à ceci. Je veux rendre mon bureau magnifique avec Conky, mais je me retiens. Le Google Drive de la société est toujours connecté par Stream à l'aide de Fuse, la machine de développement est également montée à partir du raccourci de Thunar et facile à manipuler, et il n'y a aucune plainte avec le code de Visual Studio sur ssh! L'écran externe d'EIZO peut être utilisé sans aucun problème, ce qui est merveilleux! screenshot.png

Options de compilation

Avec makepkg, configurez pour compiler le meilleur package pour votre machine.

terminal


$ sudo vim /etc/makepkg.conf

Veuillez vous référer au Gentoo Wiki pour une explication détaillée des options. Reportez-vous à ici pour le nom de l'architecture. Pour faire simple, définir l'indicateur O sur 3 ou plus n'a aucun effet. 2 est recommandé.

-O flag: Ceci contrôle le niveau d'optimisation global, mais surtout en augmentant ce niveau d'optimisation, le code source prendra un certain temps à se compiler et utilisera plus de mémoire. ..

-pipe flag: Cet indicateur n'a aucun effet sur le binaire généré lui-même, mais il réduit le temps de compilation. Cela vous indique d'utiliser un tube au lieu d'un fichier temporaire entre chaque processus de compilation. Cela utilisera beaucoup de mémoire. Pour les systèmes avec une mémoire insuffisante, GCC peut être tué. N'utilisez pas cet indicateur dans de tels cas.

/etc/makepkg.conf


CFLAGS="-march=skylake -O2 -pipe"
CXXFLAGS=${CFLAGS}
MAKEFLAGS="-j$(($(nproc)+1))"
PACKAGER="<Name>"`

Ajout automatique de clé

config:~/.gnupg/gpg.conf


keyserver-options auto-key-retrieve
auto-key-locate hkp://pool.sks-keyservers.net

Paramètres pour PKG BUILDS

Configuré pour être invité à écraser PKG BUILDS lors de l'installation via yay

terminal


$ yay --editmenu --nodiffmenu --save

Installation du noyau personnalisée

Par exemple, si vous souhaitez installer un noyau personnalisé [^ 1], cela ressemble à ceci. Cette fois, installez xanmod. Cependant, il y a des cas où le Manjaro original est plus rapide, il n'est donc pas nécessaire d'installer un noyau personnalisé, mais si vous avez le temps de jouer, veuillez [^ 1]: Faites attention de ne pas rester coincé こんなロゴ

terminal


$ mkdir -p ~/opt/src #Créer un dossier pour la construction
$ cd ~/opt/src #Déplacer vers le dossier de construction
$ yay -G linux-xanmod #téléchargement du noyau xanmod
$ cd linux-xanmod #Déplacer vers un dossier

Et changez les paramètres en fonction de la microarchitecture

~/opt/src/linux-xanmod/PKGBUILDS


_microarchitecture=42

Puis compilez

terminal


$ makepkg -s

Installez le package fini

terminal


$ tree -sh
.
├── [3.7K]  0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-CLONE_NEWUSER.patch
├── [4.1K]  choose-gcc-optimization.sh
├── [ 983]  linux-5.5.tar.sign
├── [106M]  linux-5.5.tar.xz
├── [828K]  patch-5.5.13-xanmod1.xz
├── [557K]  patch-5.5.13.xz
├── [ 12K]  PKGBUILD
└── [4.0K]  src

$ sudo pacman -U ./*.tar.xz

Créer une bibliothèque

Créez un package adapté à votre architecture et essayez de l'optimiser.

terminal


$ cd ~/opt/src
$ yay -G glibc
$ cd glibc
$ makepkg -si 

Téléchargez la source avec le modèle ci-dessus (yay -G), créez et installez la bibliothèque / application suivante

atom dropbox glibc gtk2 gtkmm3 libglademm chromium glade gtk3 libglade libxml2

Installation du package requise

Un paquet à mettre avec pacman. Ici et là, vous pouvez utiliser tout ce dont vous avez besoin.

terminal


$ sudo pacman -Syu yay vim wget curl atom fcitx-im fcitx-mozc fcitx-configtool jq sysstat plank unrar p7zip unarchiver

Paquet à mettre dedans. Ici et là, vous pouvez utiliser tout ce dont vous avez besoin.

terminal


$ sudo yay dropbox libglademm slack-desktop visual-studio-code-bin

Paramètres d'environnement japonais

Pour utiliser Mozc

~/.xprofile


export XMODIFIERS="@im=fcitx"
export XMODIFIER="@im=fcitx"
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export DefaultIMModule=fcitx

~/.zshrc


export GTK_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export QT_IM_MODULE=fcitx

Obtenez le schéma de couleurs Gruvbox

Obtenez divers schémas d'application et appliquez-les à vos applications

terminal


$ git clone https://github.com/morhetz/gruvbox-contrib

Font J'aime ça aussi. Je mets Ricty pour le moment.

terminal


$ git clone https://github.com/edihbrandon/RictyDiminished.git
$ cp RictyDiminished/*.ttf ~/.local/share/fonts/
$ fc-cache -f -v

paramètres zsh

Dans le passé, je l'ai ajouté en me référant aux pages de différentes personnes intelligentes, mais comme il existe différentes machines et que je souhaite réduire au maximum la dépendance environnementale, je vais l'omettre autant que possible et rester simple. ..

~/.zshrc



#Locale
export LC=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

#Mozc
export GTK_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export QT_IM_MODULE=fcitx

##################
#  Global setting
##################
export EDITOR=vim #Définir l'éditeur sur vim

#Paramètres d'invite
#PROMPT='[%~:%n] %# '
PROMPT='[%n@%m] %# '
RPROMPT='[%d]'

# history
HISTFILE=~/.zsh_hist
#Nombre d'histoires stockées en mémoire
HISTSIZE=10000
#Nombre d'histoires enregistrées dans le fichier spécifié par HISTFILE
SAVEHIST=10000
setopt extended_history #Gagnez du temps d'exécution dans l'historique
setopt hist_ignore_dups #N'ajoutez pas la même commande qu'auparavant à l'historique

#un fonctionnement de type vi est possible
bindkey -v

#Complément
autoload -Uz compinit
compinit

#Ajouter le répertoire de destination du cd à la pile de répertoires
setopt auto_pushd

#Lors du pushedd, si le répertoire est déjà sur la pile, il ne sera pas ajouté à la pile
setopt pushd_ignore_dups

#Corriger l'orthographe de la commande
setopt correct

# <Tab>Après avoir affiché les candidats d'achèvement du nom de chemin avec
#continuer<Tab>Vous pourrez sélectionner un nom de chemin parmi les candidats en appuyant sur
zstyle ':completion:*:default' menu select=1

autoload colors
zstyle ':completion:*' list-lolors "${LS_COLORS}"

#Exécutez ls après cd

chpwd() { ls -ltrG  }

##################
##    Alias
##################
alias pac_list="pacman -Qqen"
alias yay_list="pacman -Qqem"
alias ug="sudo pacman -Syyu && yay"
alias ssdtrim="echo 'sudo fstrim -v /';sudo fstrim -v /"
alias io="iostat -x | awk '{if (NF>7){printf \"%-10s%10s%10s%10s%10s%10s%10s\n%-10s%10s%10s%10s%10s%10s%10s\n\",\$1,\$2,\$3,\$4,\$5,\$6,\$7,\"\",\$8,\$9,\$10,\$11,\$12,\$13,\$14}else print}'"

Ainsi, la partie Function devient longue, alors ici, coupez une fois et ce sera la partie Function de Zsh.

~/.zshrc


##################
##   Functions
##################
# ex - archive extractor
# usage: ex <file>
function ex() {
  if [ -f $1 ] ; then
    case $1 in
      *.tar.bz2)   tar xjf $1   ;;
      *.tar.gz)    tar xzf $1   ;;
      *.bz2)       bunzip2 $1   ;;
      *.rar)       unrar x $1     ;;
      *.gz)        gunzip $1    ;;
      *.tar)       tar xf $1    ;;
      *.tbz2)      tar xjf $1   ;;
      *.tgz)       tar xzf $1   ;;
      *.zip)       unzip $1     ;;
      *.Z)         uncompress $1;;
      *.7z)        7z x $1      ;;
      *)           echo "'$1' cannot be extracted via ex()" ;;
    esac
  else
    echo "'$1' is not a valid file"
  fi
}

# fx - foreign exchange
# usage: fx <FROM CURRENCY> <TO CURRENCY>
function fx() {
  rate=`wget https://rate-exchange-1.appspot.com/currency\?from=$1\&to=$2 -q -O - | jq -r ".from,.rate,.to" | tr '\n' ',' | awk -F, '{print "1 "$1"="$2" "$3}'`
  echo "$rate"
}

# mem - Calcurate memory
# usage: mem
function mem() {
  free | awk -v param="$1" '
  BEGIN{
    total=0;used=0;available=0;rate=0;
  }

  /^Mem:/{
    total=$2;
    available=$7;
  }

  END{
    used=total-available;
    rate=100*used/total;
    totalG= total/1024/1024;
    usedG=used/1024/1024;
    availableG=available/1024/1024;

    switch(param){
      case "rate" :
        printf("%02.1f % \n",rate);
        break
      case "free" :
        printf("%2.2f GB\n",availableG);
        break
      case "used" :
        printf("%2.2f GB\n",usedG);
        break
      case "total":
        printf("%.2f GB\n",totalG);
        break
      default:
        printf("Used Rate: %02.1f % \n",rate);
        printf("Available: %2.2f GB\n",availableG);
        printf("Used:\t   %2.2f GB\n",usedG);
        printf("Total:\t   %.2f GB\n",totalG);
        break
    }
  }';
}

paramètres vim

Paramètres simples tels que le schéma Gruvbox de vim. Il semble qu'il existe différents gestionnaires de paquets, mais pour le moment, au grand Vundle

terminal


$ mkdir -p .vim
$ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

Réglage

~/.vimrc


set nocompatible
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

Plugin 'VundleVim/Vundle.vim'

"Les plug-ins que vous souhaitez installer sont répertoriés ci-dessous
" Plugin '[Github Author]/[Github repo]'Remplissez le format de
Plugin 'airblade/vim-gitgutter'
Plugin 'morhetz/gruvbox'

call vundle#end()
filetype plugin indent on

"Écrivez d'autres paramètres personnalisés ci-dessous
syntax enable
set background=dark
colorscheme gruvbox

Courir

$ vim +PluginInstall +qall 

Alors ça ressemble à ça Screenshot_2020-04-05_15-27-06.png

paramètres de planche

Après tout, Dock est pratique. Alors je l'ai mis en place rapidement. Réglage de démarrage automatique

config:~/.config/autostart/Plank.desktop


[Desktop Entry]
Encoding=UTF-8
Version=0.9.4
Type=Application
Name=Plank
Comment=dock
Exec=plank
OnlyShowIn=XFCE;
RunHook=0
StartupNotify=false
Terminal=false
Hidden=false

De plus, Plank à votre goût

terminal


$ plank --preferences

Alors ça ressemble à ça Screenshot_2020-04-05_17-04-06.png

XPS15 7590 lié

Gestion de l'alimentation

optimisation des paramètres du noyau grub

/etc/default/grub


GRUB_CMDLINE_LINUX_DEFAULT="quiet  apparmor=1 mem_sleep_default=deep security=apparmor udev.log_priority=3 acpi_backlight=native"

Installation du code Intel

terminal


sudo pacman -S intel-ucode

mise à jour de grub

terminal


$ sudo update-grub

Optimisation de la gestion de l'alimentation

Optimisez l'utilisation de la batterie avec powertop

terminal


$ pacman -S powertop
$ powertop --calibrate
$ powertop --auto-tune

Et automatisé avec sysytemd

/etc/systemd/system/powertop.service


[Unit]
Description=Powertop tunings

[Service]
Type=oneshot
ExecStart=/usr/bin/powertop --auto-tune

[Install]
WantedBy=multi-user.target

Activer pour systemctl

terminal


$ systemctl enable powertop.service

Réglage du mode supplémentaire

config:/etc/sysctl.d/laptop.conf


vm.laptop_mode = 5

Nvidia Driver C'est la partie à laquelle j'étais le plus accro. Il existe de nombreuses façons de le faire sur le Web, et la seule que j'ai essayée pour faire fonctionner le pilote nvidia. J'ai passé des dizaines d'heures. ..

  1. Supprimez le pilote nvidia s'il est installé
  2. Installez le pilote nvidia
  3. installation principale
  4. Supprimez les fichiers de configuration X inutiles que vous avez falsifiés

terminal


$ sudo mhwd -li #Liste des pilotes installés
$ sudo mhwd -r xxx #Suppression du pilote
$ sudo mhwd -i pci video-nvidia-440xx #Installation du pilote
$ sudo pacman -S nvidia-prime
# /etc/X11/xorg.conf.d/Ou/etc/modprobe.d/Supprimer le fichier de configuration lié à X dans

Et après avoir entré les paramètres, redémarrez

config:/etc/X11/xorg.conf.d/90-nvidia-intel-custom.conf


Section "Module"
    Load "modesetting"
EndSection

Section "Device"
  Identifier "iGPU"
  Driver "modesetting"
EndSection

Section "Screen"
  Identifier "iGPU"
  Device "iGPU"
EndSection

Section "Device"
  Identifier "dGPU"
  Driver "nvidia"
EndSection

Changement de résolution LightDM

La résolution de l'écran de connexion est trop élevée et trop petite, alors agrandissez-la un peu.

/etc/lightdm/lightdm.conf


greeter-setup-script =/etc/lightdm/Xsetup

/etc/lightdm/Xsetup


xrandr --output eDP-1 --mode 1920x1080 --dpi 96

Paramètres du clavier / souris Bluetooth

Une connexion stable entre le clavier Bluetooh de Dell et la souris. S'il est instable, une fois que vous supprimez le profil blueman et que vous l'avez réenregistré, il sera stable.

terminal


$ sudo pacman -S bluez-utils pulseaudio-bluetooth
$ bluetoothctl
agent KeyboardOnly
default-agent
power on
scan on
pair 00:12:34:56:78:90
connect 00:12:34:56:78:90

Paramètres Bluetooth

/etc/bluetooth/main.conf


[General]
DiscoverableTimeout = 0
Discoverable=true

[Policy]
AutoEnable=true

Paramètres du module

/etc/pulse/system.pa


load-module module-bluetooth-policy
load-module module-bluetooth-discover

Concernant le pavé tactile

Rendez possible le balayage avec le pavé tactile ou comme un Mac. Il existe une description du développeur sur Github, donc si vous voulez en savoir plus, allez-y

terminal


$ sudo pacman -S xdotool wmctrl libinput-gestures libinput-gestures-setup
$ sudo gpasswd -a $USER input

$ sudo libinput list-devices
$ libinput-gestures-setup autostart
$ libinput-gestures-setup start

Ensuite, créez un fichier de mappage. Les éléments suivants sont modifiés en fonction de votre environnement WM.

config:~/.config/libinput-gestures.conf



gesture swipe up    3 xdotool key ctrl+alt+d
gesture swipe down  3 xdotool key alt+Shift+Tab
gesture swipe left  3 xdotool key ctrl+Tab
gesture swipe right 3 xdotool key ctrl+Shift+Tab

Après cela, il sera activé en redémarrant le service ou en vous reconnectant.

terminal


libinput-gestures-setup restart

Lié à l'imprimante

J'utilise EPSON EP-882A. Réglez à l'aide de CUPS.

terminal


$ sudo yay epson-inkjet-printer-escpr2 
$ sudo gpasswd -a ${USER} sys
$ sudo systemctl enable --now org.cups.cupsd.service
$ lpinfo --include-schemes dnssd -v
$ network dnssd://EPSON%20EP-882A...
$ lpadmin -p home_epson -v "dnssd://EPSON%20EP-882A...

Lié au scanner

J'utilise EPSON EP-882A. La numérisation via le réseau est également OK ci-dessous

terminal


$ avahi-browse --all -t -r #Recherche IP avec scan du réseau
$ yay imagescan imagescan-plugin-networkscan 

Et si vous mettez l'adresse IP du scanner dans le fichier de configuration, vous pouvez également numériser via le réseau

/etc/utsushi/utsushi.conf


dev2.udi    = esci:networkscan://192.168.0.21:1865 #IP est au-dessus d'avahi-Parcourir par scanner
dev2.model  = EP-882A
dev2.vendor = EPSON

Maintenant, appuyez sur utsushi depuis le terminal pour lancer l'application de numérisation frontale. Puisqu'il n'est pas affiché dans le menu Xface, entrez les paramètres suivants

config:~/.local/share/applications/utsushi.desktop


[Desktop Entry]
Version=1.0
Type=Application
Name=Utsushi EPSON Scanner
Comment=EPSON EP-802A Scanner FrontEnd
Exec=/usr/bin/utsushi
Icon=
Categories=Graphics
Terminal=false

Il sera affiché après le rechargement.

terminal


$ xfdesktop --reload

WiFi Il existe un Mac avec le même environnement à environ 200 Mbps, mais cet enfant fait environ 40 Mbps. Il existe différents threads pour lesquels le module WiFi XPS et Linux ne sont pas compatibles, mais la communication est stable, donc cela suffit. Mais je me suis demandé s'il y en aurait un peu plus. Voici ce que j'ai essayé. Jusqu'à présent, il n'y a qu'un changement qui semble être un peu plus rapide. .. J'aimerais enquêter et essayer une méthode pour trouver la cause, mais je suis occupé avec le travail, donc pour le moment, c'est ça.

Une fois que j'ai pointé NVMe de Windows et mesuré la vitesse avec le dernier pilote de Windows, j'ai trouvé que c'était à peu près la même vitesse, donc j'ai trouvé que c'était probablement la limite de la puce, donc pour le moment WiFi Ceci est lié.

Paramètres ARP

/etc/dhcpcd.conf


# No ARP RFC2131
noarp

Paramètres DNS

Paramètres liés à l'utilisation du serveur DNS de Google

config:/etc/resolv.conf.opendns


#Google DNS
nameserver 8.8.8.8
nameserver 8.8.4.4

/etc/NetworkManager/dispatcher.d/dns-servers-opendns


#!/bin/bash
# Use OpenDNS servers over DHCP discovered servers

cp -f /etc/resolv.conf.opendns /etc/resolv.conf

terminal


$ sudo chmod +x /etc/NetworkManager/dispatcher.d/dns-servers-opendns

terminal


$ sudo pacman -S dnsmasq

/etc/NetworkManager/NetworkManager.conf


[main]
dns=dnsmasq

Je vais mesurer la vitesse. Avec speedtest-cli, vous pouvez le vérifier avec une seule commande depuis le terminal, ce qui est pratique. Le groupe est bondé au moment de la mesure, c'est un peu lent

terminal


$ sudo pacman -S speedtest-cli
$ speedtest 
Retrieving speedtest.net configuration...
Testing from NTT (153.214.xxx.xxx)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by IPA CyberLab (Bunkyo) [x.87 km]: 12.68 ms
Testing download speed...................
Download: 19.84 Mbit/s
Testing upload speed.....................
Upload: 66.28 Mbit/s

Recommended Posts

Création de l'environnement le plus solide après l'introduction de Manjaro dans Dell XPS 15
Présentation de la stratégie Min-Max à l'IA d'Othello
L'environnement de développement Python le plus puissant Recommandation de PyCharm
L'environnement de développement intégré Python le plus puissant PyCharm
Construire un environnement conforme à la norme de codage Python (PEP8) avec Eclipse + PyDev