Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
A1 Tips und Beginn der Installation
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Deutsche Dokumentation
View previous topic :: View next topic  
Author Message
pietinger
l33t
l33t


Joined: 17 Oct 2006
Posts: 843
Location: Bavaria

PostPosted: Sat May 09, 2020 4:59 pm    Post subject: A1 Tips und Beginn der Installation Reply with quote

(Dieser Post ist Teil einer Installation-Anleitung. Falls nicht schon geschehen lies bitte: Installation Guide for Paranoid Dummies)



A.1 Tips und Beginn der Installation

a.) Möglicherweise wirst Du jetzt gleich lachen, aber in 2 Jahren wirst Du diesen Tip lieben: Notiere jeden Schritt in einer (plain-text-)Datei. Ich habe das für jede Linux Installation getan und kann deshalb alles von dort hierher kopieren. Führe diese Datei weiter, wenn Du wichtige Änderungen vornimmst. Beispielsweise hatten wir vor kurzem einen Umstieg von consolekit auf elogind; ebenso von evdev auf libinput. Ist alles in dieser Datei !

b.) Arbeite mit Spickzettel ("cheat sheet") - als Datei natürlich :-) Kopiere alles rein, was Du nicht auswendig lernen willst. Hier mein erster Link dazu:
https://wiki.gentoo.org/wiki/Gentoo_Cheat_Sheet

c.) Wenn Du Dir unsicher bist, ob Du eine 0 (=Null) oder den (großen) Buchstaben "O" verwenden sollst, dann kopiere einfach von hier raus. So kann es Dir niemals passieren, dass Du versehentlich ein fehlerhaftes
Code:
COMMON_FLAGS="-march=native -O2 -pipe"
# type here a big "O" (like Optimize-Level) and not a "0 = zero"
abtippst und deswegen die Installation komplett abbricht (wie soeben wieder einmal geschehen ... und schon wieder: https://forums.gentoo.org/viewtopic-p-8638930.html#8638930 ).

d.) In den meisten Dokumentationen von Gentoo wird ein "emerge --ask" zur Installation eines Pakets benutzt. Ich verwende stattdessen "emerge -pvD" und sehe mir erstmal an was passieren würde. Manchmal lese ich dann zuerst mit "euse -i USEFLAG" die Bedeutung eines Use-Flags durch. Zuletzt hole ich den emerge-Befehl zurück und lösche das "p". Das gleiche mache ich auch für ein globales Update mit "emerge -pvuND @world".

e.) Lass Dir Zeit ! Versuche nicht so schnell wie möglich alles zu installieren. Plane ein paar Tage für die Installation ein. Gerade bei der Kernel Konfiguration ist die Lernkurve erheblich, wenn Du meinen Rat, die Hilfe zu lesen, befolgst. Ich habe die Abhängigkeiten der Kernel Module nicht explizit in A.2 beschrieben, da Du diese selbst erkennen wirst, wenn Du mindestens 20 bis 30 Hilfeseiten durchliest. Du wirst dann auch selbst erkennen was der Unterschied zwischen [*] und -*- ist ... ;-)


Wundere Dich nicht wenn ich den Grub2 installiere, obwohl dieser später nicht mehr benutzt wird. Er ist jedoch sehr nützlich, solange wir an der Kernel-Konfiguration basteln. Außerdem möchte ich möglichst konform zum AMD64 Handbuch bleiben, auch wenn wir das eine oder andere nicht wirklich benötigen.

Ich habe alle Schritte äquivalent zum AMD64 Handbuch aufgeteilt, so dass jede Seite des Handbuchs als Link hier aufgeführt ist. Wir beginnen ganz am Anfang:

1. https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/About

2. https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Media
Ich werde ab jetzt hauptsächlich aus meiner "install_hal.txt" zitieren :-)
Code:
GENTOO Installation for HAL
===========================

History:
--------
2020-03-07 Initial Installation
2020-03-[...]

Partitions:
-----------
-to fill -

2020-03-07 Initial Installation:
--------------------------------
- start BIOS (with F2) and set date and time to UTC
- check if UEFI boot is enabled; CSM Mode must be disabled
- secure boot must be disabled
- insert amd64-minimal CD (burned with k3b before)
- save and quit
- be fast with input "12" for german keyboard or you do another reboot

Falls Du kein CD-Laufwerk haben solltest und von einem USB-Stick booten möchtest, kannst Du das iso-File ganz einfach auf einen leeren Stick kopieren:
Code:
# dd if=/pfad/zu/install-amd64-minimal-*.iso of=/dev/sdX; sync

3. https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Networking
Die Überprüfung ob es auch wirklich ein UEFI-boot war ist sehr wichtig, denn falls nicht wirst Du später einen Abbruch bei der Installation des GRUB2 haben. Voraussetzung für UEFI-boot sind zwei Dinge:
1. Die richtigen Einstellungen im BIOS (bei manchen Mainboards wird der "CSM Mode" auch als "Legacy" bezeichnet; dann musst Du diesen disablen) UND
2. die Boot-CD muss es auch unterstützen (was natürlich nicht nur unsere Minimal-CD macht, sondern auch z.B. die Rescue-CD).
siehe auch (in dem dt. WikiPedia-Eintrag für UEFI ist es nicht so exakt dargestellt; deswegen die englische):
https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#UEFI_booting
https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#CSM_booting
Code:
# clear
! check if /sys/firmware/efi exists -> yes -> ok, it was really an uefi boot
# ls /sys/firmware
# /etc/init.d/dhcpcd start
- wait 3 sec.
# ifconfig
-> ok -> 192.168.2.101 (ip adress from router)
# ping -c 3 www.gentoo.org
-> ok

4. https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Disks
Ich nutze den parted weil in der alten Version des AMD64-Handbuchs dieser auch benutzt wurde. Durch die Umstellung auf fdisk siehst/hast Du jetzt sogar zwei Möglichkeiten zu partitionieren; der parted ist aber sehr praktisch um gleich mal die Übersicht Deiner Partitionen auszugeben. Wenn Du fertig bist kannst Du einfach "parted /dev/sda p" eingeben und den Output in Deine "install-xxx.txt" kopieren ;-)

Ich habe 4 Partitionen angelegt. Die größte (4.te) wird später entweder eine eigene Partition für das /home-Verzeichnis, oder eine komplett verschlüsselte root-Partition. Vorerst wird sie aber nicht genutzt und wir installieren alles in die 3. Ich werde später nur noch "sdXY" verwenden, damit nicht versehentlich eine falsche Partition benutzt wird. Folgendes ist daher nur jetzt noch mit den tatsächlich durchgeführten Partitionen zu sehen (notiere Dir deshalb Deine Partitionen). Da wir UEFI nutzen, muss die ESP-/boot-Partition mit FAT32 formatiert werden ! Siehe auch https://wiki.gentoo.org/wiki/EFI_System_Partition

Falls Du eine Frage zur Größe der swap-Partition hast, lies bitte den nächsten Post in diesem Thread.

Falls Du von einer NVMe booten willst, lies das Kapitel: "Identifying the device" aus: https://wiki.gentoo.org/wiki/NVMe
Code:
# parted -a optimal /dev/sda
> p
! there should be no partition
! if any delete with "rm X"
> mklabel gpt
> unit mib
> mkpart primary 1 128
> name 1 boot
> set 1 boot on
> mkpart primary 128 4096
> name 2 swap
> mkpart primary 4096 36864
> name 3 root
> mkpart primary 36864 -1
> q
# mkfs.fat -F 32 /dev/sda1
# mkswap /dev/sda2
# swapon /dev/sda2
# mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 /dev/sda3
! wait until finished !!
# tune2fs -o user_xattr /dev/sda3
! I have a SSD, therefore -> (skip this with a hdd)
# tune2fs -o discard /dev/sda3
? Check with: tune2fs -l /dev/sda3
# mount /dev/sda3 /mnt/gentoo

5. https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Stage
ACHTUNG: Lade nicht die "normale" sondern die "stage3-amd64-nomultilib" herunter ! ... NOMULTILIB ! (außerdem habe ich die Datei von meiner anderen Kiste aus, heruntergeladen und kopiere sie jetzt von dort via "scp") Keine Sorge: Die make.conf editieren wir gleich in Schritt 6.
Code:
# ntpd -q -g
# date
-> ok -> 1h before Berlin (winter time; with next step in next chapter it will be correct)
# cd /mnt/gentoo
# scp peter@192.168.2.2:/home/peter/stage3* .
! I skipped verifying and validating - you shouldnt do this
# tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner

6. https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Base
Wir werden nicht alles aus diesem Kapitel durchführen, da eine Umstellung der Reihenfolge notwendig ist. Dafür machen wir zusätzliche Dinge. Die "make.conf" ist bezüglich der Use-Flags nicht endgültig. Nutze bitte erstmal diese. Sie wird später noch angepasst, wenn wir zwei Profile zusammen führen.

ACHTUNG: Diese make.conf muss ggf. von Dir angepasst werden, bezüglich der CPU_FLAGS, der Grafik-Karte, der Sound-Karte und der Use-Flags die ich entfernt habe (und der Sprache natürlich, falls nicht dt.) !

Falls dies Deine erste Gentoo Installation ist und Du noch gar nicht weisst welche Werte in die Variablen "VIDEO_CARDS" und "ALSA_CARDS" eingestellt werden sollen, dann übernimm erstmal diese. In A.2 gebe ich Dir alle Links, die Du benötigst. Die korrekten Werte müssen sowieso erst (spätestens) VOR der Installation von X11 drin sein (das ist erst in A.3.7).

Den richtigen Wert für MAKEOPTS= erläutere ich im übernächsten Post.

Damit wir gleich "euse" und "eix" nutzen können, installieren wir das "gentoolkit", welches (stand:heute) nicht in der stage3 ist. Den "emerge -uvND @world" machen wir ebenfalls erst später, wenn wir /var/tmp/portage in das RAM gemountet haben.

Folgende Links waren hilfreich:
https://wiki.gentoo.org/wiki/Localization/Guide
https://wiki.gentoo.org/wiki/UTF-8
https://wiki.gentoo.org/wiki/CPU_FLAGS_X86
https://wiki.gentoo.org/wiki//etc/portage/make.conf
Code:
# mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
# mkdir -p /mnt/gentoo/etc/portage/repos.conf
# cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
# cp -L /etc/resolv.conf /mnt/gentoo/etc/
# mount -t proc /proc /mnt/gentoo/proc
# mount --rbind /sys /mnt/gentoo/sys
# mount --rbind /dev /mnt/gentoo/dev
# chroot /mnt/gentoo /bin/bash
# . /etc/profile
# mount /dev/sdXZ /boot
# emerge-webrsync
# eselect news list
# eselect news read all
# eselect news purge all
# eselect profile list
-> correct setting to 17.1/no-multilib (stable) -> ok
# emerge -1 cpuid2cpuflags
# cpuid2cpuflags
! cp output into make.conf and set some important vars
# nano -w /etc/portage/make.conf
=>
COMMON_FLAGS="-march=native -O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"
ACCEPT_LICENSE="* -@EULA"
PORTDIR="/var/db/repos/gentoo"
DISTDIR="/var/cache/distfiles"
PKGDIR="/var/cache/binpkgs"
PORTAGE_TEMPDIR="/var/tmp/"
GRUB_PLATFORMS="efi-64"
MAKEOPTS="-j8"
LC_MESSAGES=C
LINGUAS="de"
L10N="de"
ALSA_CARDS="hda-intel"
INPUT_DEVICES="libinput"
VIDEO_CARDS="intel i965"
EMERGE_DEFAULT_OPTS="--with-bdeps=y"
CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3"
USE="-bluetooth -gnome -ipv6 -modemmanager -networkmanager -phonon -ppp -pulseaudio -semantic-desktop -thumbnail -wext -wifi -wireless -xcomposite"
USE="$USE acpi alsa branding dvd dvdr pci pie threads udev udisks usb"
<=
? emerge --info
# echo "Europe/Berlin" > /etc/timezone
# emerge --config sys-libs/timezone-data
# date
-> ok - now correct
# nano -w /etc/locale.gen
=> de_DE.UTF-8 UTF-8
# locale-gen
# echo 'GROFF_ENCODING="utf8"' > /etc/env.d/99groff
# eselect locale list
# eselect locale set X
# env-update
# . /etc/profile
# emerge --sync
# emerge -pv gentoolkit
# emerge -pv eix
# emerge -pv pciutils


Weiter geht es in A.2


Last edited by pietinger on Mon Jul 26, 2021 6:16 pm; edited 23 times in total
Back to top
View user's profile Send private message
pietinger
l33t
l33t


Joined: 17 Oct 2006
Posts: 843
Location: Bavaria

PostPosted: Tue Mar 16, 2021 7:14 pm    Post subject: Größe der Swap-Partition Reply with quote

Größe der Swap-Partition

Das AMD64-Handbuch empfiehlt die swap-Partition mit einer Größe von 2 x Hauptspeicher anzulegen. Das wären bei 32 GB RAM also 64 GB. Bei einer "kleinen" 512-GB-SSD wären also schon mal 12,5 % der gesamten Kapazität weg.

Frage: Warum haben wir die Swap mit nur knappen 4 GB angelegt ?

Antwort: Wenn Du Hibernation machen möchtest brauchst Du mindestens eine swap mit der Größe Deines Hauptspeichers damit dieser in die swap ausgelagert werden kann. Zusätzlich sollte noch eine Reserve von 1 bis 2 GB dazu genommen werden. NUR - wir erlauben aus Sicherheitsgründen kein Hibernation (siehe B.2) und DANN gilt folgendes:

Du willst nicht an einem System arbeiten welches swapt ! Glaub mir - das macht keinen Spaß.

Ich habe an einer Kiste sogar überhaupt keine swap-Partition (und dies natürlich auch in der Kernel-Config disabled) und an der anderen Kiste habe ich es nur deshalb, weil ich manchmal ein paar Tabs zuviel in meinem Browser öffne ... :-)

Die swap-Partition ist eigentlich nur als Reserve gedacht, wenn man es mal wieder irgendwo übertrieben hat - geht auch ganz leicht mit einem zu hohen MAKEOPTS="-j99" ... ;-)

Das heißt, sobald Du merkst dass Deine Kiste zu swappen beginnt, solltest Du ein paar Sachen schließen/beenden. Ich habe es deshalb noch nie geschafft über 1 GB benutzter swap zu kommen - 4 GB als Reserve sind MEHR als genug.
Back to top
View user's profile Send private message
pietinger
l33t
l33t


Joined: 17 Oct 2006
Posts: 843
Location: Bavaria

PostPosted: Mon Apr 05, 2021 6:23 pm    Post subject: Reply with quote

Wie hoch setze ich den Wert in: MAKEOPTS="-j " ?


1. Zuerst prüfst Du wieviele Kerne Deine CPU hat. Das ist schon mal das erste Maximum. Bei meinem Intel i7 sind das 8 Kerne, also: "-j8" (ja, SMT zählt dazu; also 8 logische Kerne; vergiß die (alte) Empfehlung: Kerne + 1 ... Messungen zeigten -j8 ist (minimal) schneller als -j9).

2. Dein Hauptspeicher ergibt das zweite Maximum: Bei 16 GB kannst Du ebenfalls "-j8" nehmen; bei 8 GB eben nur "-j4" (ja, einfach halbieren).

Das kleinere Maximum ist ausschlaggebend !

Falls Du einen 4-Kerner mit 16 GB haben solltest, kannst Du nur "-j4" verwenden (höhere Werte würden den emerge wieder verlangsamen).
Falls Du einen 8-Kerner mit nur 8 GB haben solltest (eher unwahrscheinlich), kannst Du auch nur "-j4" verwenden (naja, für alle "kleinen" Pakete geht vielleicht auch -j5 oder -j6).

War das schon alles ?

Nein, leider nicht. Obige Rechnungen gelten leider nicht für einige "Monster-Packages". Es gibt leider ein Package welches bis zu 4 GB Hauptspeicher pro Thread verbrät: RUST. Wenn Du das mit -j8 und nur 16 GB RAM versuchst, wirst Du sicher einen OOM (out of memory) Abbruch bekommen.

Was kann man da machen ?

Es gibt zwei Möglichkeiten:

1. Wenn Du "nur" in der Nacht die Compiles laufen läßt und deswegen NICHT darauf wartest, kannst Du Deine MAKEOPTS auf den sichersten niedrigen Wert einstellen - also: obiger RAM-Wert nochmal geteilt durch 2. Dann läuft halt Dein ganzer "emerge -uvND @world" entsprechend langsamer ... ist in der Nacht aber eh egal.

2. Wenn Du aber darauf wartest und deswegen mit maximaler Geschwindigkeit fahren willst, gibt es eine andere Methode: Du lässt die "harmlosen" kleinen Packages mit Maximum-Wert laufen und definierst für die "Monster" einen anderen Wert. Wie immer zuerst ein Link:
https://wiki.gentoo.org/wiki//etc/portage/package.env
(Nochmals Danke an @asturm der mich daran erinnert hat)

Und das wäre meine Empfehlung für alles was ich hier in A.3 installieren werde:
Code:
# mkdir /etc/portage/env
# nano -w /etc/portage/env/monster.conf
=>
MAKEOPTS="-j3"
<=
# nano -w /etc/portage/package.env
=>
app-office/libreoffice monster.conf
dev-lang/rust monster.conf
dev-qt/qtwebengine monster.conf
sys-devel/gcc monster.conf
<=

(Dies gilt für meine 16 GB RAM; wenn Du nur 8 GB haben solltest, empfehle ich "-j2" oder sogar nur "-j1" weil "rust" von Version zu Version immer schlimmer wird)

Jetzt kannst Du in Deiner make.conf den maximalen Wert setzen und trotzdem beruhigt Deinen "emerge -uvND @world" laufen lassen ...

... wenn Du nicht nebenbei noch "irre" Sachen machst. Ja, ein Webbrowser schluckt einiges an Hauptspeicher ... 20 offene Tabs und Du hast nicht mehr viel für Deine compiles übrig ... ;-)

(So wurde auch schon mal ein OOM produziert)


Last edited by pietinger on Thu May 13, 2021 9:47 am; edited 1 time in total
Back to top
View user's profile Send private message
pietinger
l33t
l33t


Joined: 17 Oct 2006
Posts: 843
Location: Bavaria

PostPosted: Wed May 05, 2021 11:15 am    Post subject: Reply with quote

Da "rust" nun endgültig austickt, muss obiges erweitert werden, WENN Du /var/tmp/portage in das RAM gemountet hast (siehe A.3.1) um keinen Abbruch zu bekommen:
Code:
# mkdir -p /var/tmp/notmpfs
# chown portage:portage /var/tmp/notmpfs
# nano -w /etc/portage/env/notmpfs.conf
=>
PORTAGE_TMPDIR="/var/tmp/notmpfs"
<=
# nano -w /etc/portage/package.env
=>
app-office/libreoffice monster.conf
dev-lang/rust monster.conf notmpfs.conf
dev-qt/qtwebengine monster.conf
sys-devel/gcc monster.conf
<=
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Deutsche Dokumentation All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum