[LINUX] Aufbau der stärksten Umgebung nach Einführung von Manjaro in Dell XPS 15

Einführung

Aufgrund der Tatsache, dass die Installation von Manjaro und die Grundeinstellungen abgeschlossen wurden, handelt es sich um ein Memorandum nachfolgender Einstellungen. Bitte beziehen Sie sich für die Installation usw. auf andere. Es basiert auf dem Modell Dell XPS15 7590. Bitte lassen Sie mich wissen, ob es eine bessere Einstellung gibt. Aktualisieren Sie auch entsprechend.

Als Hintergrund habe ich ein MacBook Pro und Dell XPS15 7590 auf meinem Arbeitscomputer, aber ich habe MacBook Pro als Hauptentwicklungscomputer verwendet, aber letzte Nacht hatte ich ein Problem, dass die Tastatur nicht funktionierte, und ich habe es mit einem Reparaturprogramm erhalten. Da ich nicht da sein werde, habe ich den Dell-Computer schnell in die Entwicklungsumgebung gestellt. Dieses Mal habe ich ein Memorandum mit Einstellungen erstellt, die ich nach dem Einfügen von Manjaro in XPS 15 7590 häufig vergesse. Übrigens, die Linux-Geschichte ist ungefähr 20 Jahre alt und die persönliche Distribution ist Redhat => Ubuntu => Mint => Manjaro => Archlinux => Manjaro (jetzt hier), aber ich weiß noch nichts. .. Akan. .. Linux hat ein hohes Maß an Freiheit, so dass Sie es auf verschiedene Arten anpassen können. Wenn Sie sich jedoch an die GUI halten, werden Dutzende Stunden kostbarer Zeit schmelzen. Wenn Sie also nicht aufpassen, werden Sie wie ich aufgrund Ihres Hauptgeschäfts aufgegeben. Absolut kein Conky.

Die Spezifikationen des XPS15 7590 wurden mit der folgenden Hardware verbessert. Es ist im Moment ziemlich stark. Ich benutze es, indem ich es an das externe LCD von Eizo anschließe. 12 Kerne sind verbraucht, aber es ist noch viel Speicher vorhanden. Wenn ich es von nun an auf Docker oder etwas anderes portiere, wird es wahrscheinlich aufgebraucht sein. Die Anzahl der Kerne kann der Engpass sein. Übrigens sind die technischen Daten gut, auch wenn sie auf eine neue verbessert wurden, aber der Stromverbrauch hoch ist. Wenn Sie verschiedene Anwendungen ausführen, die Sie entwickeln, wird der Akku in etwa 3 Stunden leer sein. ..

  • Speicher: 1 TB (1 TB PCIe NVMe M.2)
  • Speicher: 64 GB (PC4-21300 DDR4-2666 32 GB x 2)

Selbstdisziplin

Die Arbeits-Client-Maschine, um die Zeit nicht zu schmelzen

  • Passen Sie die GUI nicht an. Besonders ** Conky ** ist gefährlich
  • Spielen Sie nicht mit dem Kernel herum. Besonders ** Vanille ** ist gefährlich --Verwenden Sie hauptsächlich die Standard-Apps --Distro Nicht verschieben. Besonders ** Archlinux ** ist gefährlich
  • Mit Timeshift-Launcher nach Bedarf sichern
  • Bereiten Sie Boot USB für alle Fälle vor. Besonders beim Herumspielen ** X **

Desktop

Im Moment sieht der Desktop also so aus. Ich möchte meinen Desktop mit Conky wunderschön machen, aber ich halte mich zurück. Das Google Drive des Unternehmens ist immer über Stream mit Fuse verbunden, die Entwicklungsmaschine ist ebenfalls über die Verknüpfung von Thunar bereitgestellt und einfach zu handhaben, und es gibt keine Beschwerden über Visual Studio-Code über ssh! Das externe Display von EIZO kann problemlos verwendet werden, was wunderbar ist! screenshot.png

Optionen kompilieren

Richten Sie mit makepkg das beste Paket für Ihren Computer ein.

terminal


$ sudo vim /etc/makepkg.conf

Eine ausführliche Erläuterung der Optionen finden Sie in Gentoo Wiki. Den Namen der Architektur finden Sie unter hier. Einfach ausgedrückt hat das Setzen des O-Flags auf 3 oder mehr keine Auswirkung. 2 wird empfohlen.

-O-Flag: Hiermit wird die gesamte Optimierungsstufe gesteuert. Insbesondere durch Erhöhen dieser Optimierungsstufe benötigt der Quellcode jedoch einige Zeit zum Kompilieren und benötigt mehr Speicher. ..

-pipe-Flag: Dieses Flag hat keine Auswirkung auf die generierte Binärdatei selbst, reduziert jedoch die Kompilierungszeit. Dies weist Sie an, zwischen den einzelnen Kompilierungsprozessen eine Pipe anstelle einer temporären Datei zu verwenden. Dies wird viel Speicher verbrauchen. Bei Systemen mit unzureichendem Speicher kann GCC beendet werden. Verwenden Sie dieses Flag in solchen Fällen nicht.

/etc/makepkg.conf


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

Automatisches Hinzufügen von Schlüsseln

config:~/.gnupg/gpg.conf


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

Einstellungen für PKG BUILDS

Stellen Sie ein, dass Sie aufgefordert werden, PKG BUILDS bei der Installation über yay zu überschreiben

terminal


$ yay --editmenu --nodiffmenu --save

Benutzerdefinierte Kernelinstallation

Wenn Sie beispielsweise einen benutzerdefinierten Kernel [^ 1] installieren möchten, sieht dies folgendermaßen aus. Installieren Sie dieses Mal xanmod. Es gibt jedoch Fälle, in denen der ursprüngliche Manjaro schneller ist, so dass es nicht erforderlich ist, einen benutzerdefinierten Kernel so oft zu installieren. Wenn Sie jedoch Zeit zum Spielen haben, bitte [^ 1]: Pass auf, dass du nicht feststeckst こんなロゴ

terminal


$ mkdir -p ~/opt/src #Ordner zum Erstellen erstellen
$ cd ~/opt/src #Zum Ordner verschieben
$ yay -G linux-xanmod #xanmod kernel herunterladen
$ cd linux-xanmod #In den Ordner verschieben

Und ändern Sie die Parameter entsprechend der Mikroarchitektur

~/opt/src/linux-xanmod/PKGBUILDS


_microarchitecture=42

Dann kompilieren

terminal


$ makepkg -s

Installieren Sie das fertige Paket

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

Bibliothek erstellen

Erstellen Sie ein Paket, das zu Ihrer Architektur passt, und versuchen Sie, es zu optimieren.

terminal


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

Laden Sie die Quelle mit dem obigen Muster herunter (yay -G), erstellen und installieren Sie die folgende Bibliothek / App

atom dropbox glibc gtk2 gtkmm3 libglademm chromium glade gtk3 libglade libxml2

Erforderliche Paketinstallation

Ein Paket für Pacman. Hier und da können Sie alles verwenden, was Sie brauchen.

terminal


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

Paket in yay setzen. Hier und da können Sie alles verwenden, was Sie brauchen.

terminal


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

Japanische Umgebungseinstellungen

So verwenden Sie 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

Holen Sie sich das Gruvbox-Farbschema

Holen Sie sich verschiedene App-Schemas und wenden Sie sie auf Ihre Apps an

terminal


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

Font Ich mag das auch. Ich setze Ricty vorerst ein.

terminal


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

zsh Einstellungen

In der Vergangenheit habe ich es hinzugefügt, indem ich mich auf die Seiten verschiedener kluger Leute bezog. Da es jedoch verschiedene Maschinen gibt und ich die Abhängigkeit von der Umwelt so weit wie möglich reduzieren möchte, werde ich es so weit wie möglich weglassen und es einfach halten. ..

~/.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 #Setzen Sie den Editor auf vim

#Eingabeaufforderungseinstellungen
#PROMPT='[%~:%n] %# '
PROMPT='[%n@%m] %# '
RPROMPT='[%d]'

# history
HISTFILE=~/.zsh_hist
#Anzahl der im Speicher abgelegten Historien
HISTSIZE=10000
#Anzahl der in der von HISTFILE angegebenen Datei gespeicherten Historien
SAVEHIST=10000
setopt extended_history #Speichern Sie die Ausführungszeit im Verlauf
setopt hist_ignore_dups #Fügen Sie dem Verlauf nicht denselben Befehl wie zuvor hinzu

#vi-ähnlicher Betrieb ist möglich
bindkey -v

#Ergänzen
autoload -Uz compinit
compinit

#Fügen Sie das CD-Zielverzeichnis zum Verzeichnisstapel hinzu
setopt auto_pushd

#Wenn das Verzeichnis auf pushd bereits auf dem Stapel ist, wird es nicht zum Stapel hinzugefügt
setopt pushd_ignore_dups

#Korrigieren Sie die Schreibweise des Befehls
setopt correct

# <Tab>Nach dem Anzeigen des Pfadnamens vervollständigen Kandidaten mit
#fortsetzen<Tab>Sie können einen Pfadnamen aus den Kandidaten auswählen, indem Sie auf drücken
zstyle ':completion:*:default' menu select=1

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

#Führen Sie ls nach cd aus

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}'"

Der Funktionsteil wird also lang, also brechen Sie hier einmal und es wird der Funktionsteil von Zsh sein.

~/.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
    }
  }';
}

vim Einstellungen

Einfache Einstellungen wie das Gruvbox-Schema von vim. Es scheint, dass es verschiedene Paketmanager gibt, aber vorerst im großen Vundle

terminal


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

Aufbau

~/.vimrc


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

Plugin 'VundleVim/Vundle.vim'

"Die Plug-Ins, die Sie installieren möchten, sind unten aufgeführt
" Plugin '[Github Author]/[Github repo]'Füllen Sie das Format aus
Plugin 'airblade/vim-gitgutter'
Plugin 'morhetz/gruvbox'

call vundle#end()
filetype plugin indent on

"Schreiben Sie unten weitere benutzerdefinierte Einstellungen
syntax enable
set background=dark
colorscheme gruvbox

Lauf

$ vim +PluginInstall +qall 

Dann sieht es so aus Screenshot_2020-04-05_15-27-06.png

Plankeneinstellungen

Immerhin ist Dock bequem. Also habe ich es schnell eingerichtet. Automatische Starteinstellung

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

Darüber hinaus Plank nach Ihren Wünschen

terminal


$ plank --preferences

Dann sieht es so aus Screenshot_2020-04-05_17-04-06.png

XPS15 7590 verwandt

Energieverwaltung

Optimierung der Grub-Kernel-Parameter

/etc/default/grub


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

Intel Code Installation

terminal


sudo pacman -S intel-ucode

Grub Update

terminal


$ sudo update-grub

Energieverwaltungsoptimierung

Optimieren Sie den Batterieverbrauch mit dem Powertop

terminal


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

Und mit sysytemd automatisiert

/etc/systemd/system/powertop.service


[Unit]
Description=Powertop tunings

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

[Install]
WantedBy=multi-user.target

Für systemctl aktivieren

terminal


$ systemctl enable powertop.service

Weitere Moduseinstellung

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


vm.laptop_mode = 5

Nvidia Driver Dies ist der Teil, von dem ich am meisten abhängig war. Es gibt viele Möglichkeiten, dies im Web zu tun, und die einzige, die ich versucht habe, den NVIDIA-Treiber zum Laufen zu bringen. Ich habe Dutzende von Stunden verbracht. ..

  1. Entfernen Sie den NVIDIA-Treiber, falls dieser installiert ist
  2. Installieren Sie den NVIDIA-Treiber
  3. Erstinstallation
  4. Löschen Sie unnötige X-basierte Konfigurationsdateien, die Sie manipuliert haben

terminal


$ sudo mhwd -li #Liste der installierten Treiber
$ sudo mhwd -r xxx #Treiberentfernung
$ sudo mhwd -i pci video-nvidia-440xx #Treiberinstallation
$ sudo pacman -S nvidia-prime
# /etc/X11/xorg.conf.d/Oder/etc/modprobe.d/Löschen Sie die X-bezogene Konfigurationsdatei in

Starten Sie nach Eingabe der Einstellungen neu

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

Änderung der LightDM-Auflösung

Die Auflösung des Anmeldebildschirms ist zu hoch und zu klein. Machen Sie ihn daher etwas größer.

/etc/lightdm/lightdm.conf


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

/etc/lightdm/Xsetup


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

Bluetooth-Tastatur- / Mauseinstellungen

Eine stabile Verbindung zwischen der Bluetooh-Tastatur von Dell und der Maus. Wenn es instabil ist, ist es stabil, sobald Sie das Blueman-Profil löschen und erneut registrieren.

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

Bluetooth-Einstellungen

/etc/bluetooth/main.conf


[General]
DiscoverableTimeout = 0
Discoverable=true

[Policy]
AutoEnable=true

Moduleinstellungen

/etc/pulse/system.pa


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

Touchpad bezogen

Ermöglichen Sie das Wischen mit dem Touchpad oder einem Mac. Es gibt eine Entwicklerbeschreibung zu Github. Wenn Sie also mehr wissen möchten, gehen Sie dorthin

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

Erstellen Sie dann eine Zuordnungsdatei. Folgendes wird entsprechend Ihrer WM-Umgebung geändert.

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

Danach wird es durch Neustart des Dienstes oder erneutes Anmelden aktiviert.

terminal


libinput-gestures-setup restart

Druckerbezogen

Ich benutze EPSON EP-882A. Mit CUPS einstellen.

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...

Scanner bezogen

Ich benutze EPSON EP-882A. Das Scannen über das Netzwerk ist unten ebenfalls in Ordnung

terminal


$ avahi-browse --all -t -r #IP-Suche mit Netzwerkscan
$ yay imagescan imagescan-plugin-networkscan 

Wenn Sie die IP-Adresse des Scanners in die Einstellungsdatei einfügen, können Sie auch über das Netzwerk scannen

/etc/utsushi/utsushi.conf


dev2.udi    = esci:networkscan://192.168.0.21:1865 #IP ist über Avahi-Mit dem Scanner durchsuchen
dev2.model  = EP-882A
dev2.vendor = EPSON

Drücken Sie jetzt vom Terminal aus auf utsushi, um die Front-End-Scanner-App zu starten. Da es nicht im Xface-Menü angezeigt wird, geben Sie die folgenden Einstellungen ein

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

Es wird nach dem Nachladen angezeigt.

terminal


$ xfdesktop --reload

WiFi Es gibt einen Mac mit derselben Umgebung und ungefähr 200 Mbit / s, aber dieses Kind hat ungefähr 40 Mbit / s. Es gibt verschiedene Threads, bei denen das XPS WiFi-Modul und Linux nicht kompatibel sind, die Kommunikation jedoch stabil ist. Das reicht also aus. Aber ich fragte mich, ob es noch ein bisschen mehr geben würde. Folgendes habe ich versucht. Bisher gibt es nur eine Änderung, die etwas schneller zu sein scheint. .. Ich würde gerne eine Methode untersuchen und ausprobieren, um die Ursache zu finden, aber ich bin mit der Arbeit beschäftigt, also ist dies vorerst das Richtige.

Als ich auf NVMe von Windows zeigte und die Geschwindigkeit mit dem neuesten Windows-Treiber maß, stellte ich fest, dass es sich nur um ungefähr die gleiche Geschwindigkeit handelte. Daher stellte ich fest, dass dies wahrscheinlich die Grenze des Chips war, also vorerst WiFi Dies ist verwandt.

ARP-Einstellungen

/etc/dhcpcd.conf


# No ARP RFC2131
noarp

DNS-Einstellungen

Einstellungen im Zusammenhang mit der DNS-Servernutzung von 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

Ich werde die Geschwindigkeit messen. Mit speedtest-cli können Sie dies mit einem Befehl vom Terminal aus überprüfen, was praktisch ist. Das Band ist zum Zeitpunkt der Messung überfüllt, es ist etwas langsam

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