.. vim: set noexpandtab fileencoding=utf-8 nomodified wrap textwidth=200 foldmethod=marker foldcolumn=4 ruler showcmd lcs=tab\:|- list: :date: 2022.12.18 05:11:25 :tags: Cobra-Mk3,gentoo :authors: Gilhad :summary: Cobra-Mk3 - SkypeSR :title: 2022.12.18 - Cobra-Mk3 - SkypeSR %HEADER% Partitions + FS -------------------------------------------------------------------------------- * 15 - 107GB NVM-SkypeSR * 16 - 53.7GB NVM-SkypeSR-SWAP .. code:: fdisk /dev/nvme0n1 n (Enter=part.no 15) (Enter=first sec. 1396944896) +100M n (Enter=part.no 16) (Enter=first sec. 1606660096) +50M t (Enter=part.no 16) 19 ('Linux swap') w .. code:: parted /dev/nvme0n1 name 15 NVM-SkypeSR parted /dev/nvme0n1 name 16 NVM-SkypeSR-SWAP mkfs.ext4 -L NVM-SkypeSR /dev/nvme0n1p15 mkswap /dev/nvme0n1p16 swapon /dev/nvme0n1p16 Kontrola: .. code:: parted /dev/nvme0n1 print Model: Unknown (unknown) Disk /dev/nvme0n1: 1000GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 106MB 105MB fat32 EFIboot boot, esp 2 106MB 53.8GB 53.7GB linux-swap(v1) SWAP 3 53.8GB 107GB 53.7GB ext4 SYSTEM 4 107GB 161GB 53.7GB ext4 SYSTEM-BCK 5 161GB 215GB 53.7GB ntfs w10 msftdata 6 215GB 215GB 4096B MS-picovina 7 215GB 215GB 16.8MB Microsoft reserved partition msftres 8 215GB 223GB 8590MB ntfs MS-picovina msftdata 9 223GB 232GB 8590MB MS-picovina msftdata 10 232GB 286GB 53.7GB ext4 NVM-TeachMePCB 11 286GB 393GB 107GB ext4 NVM-SHARED 12 393GB 500GB 107GB ext4 NVM-devAVR 13 500GB 608GB 107GB ext4 NVM-devOolite 14 608GB 715GB 107GB ext4 NVM-devRHM 15 715GB 823GB 107GB NVM-SkypeSR 16 823GB 876GB 53.7GB NVM-SkypeSR-SWAP fdisk -l /dev/nvme0n1 Disk /dev/nvme0n1: 931.53 GiB, 1000204886016 bytes, 1953525168 sectors Disk model: Viper M.2 VP4100 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 37A33C18-76C9-8C46-9708-385EE791F953 Device Start End Sectors Size Type /dev/nvme0n1p1 2048 206847 204800 100M EFI System /dev/nvme0n1p2 206848 105064447 104857600 50G Linux swap /dev/nvme0n1p3 105064448 209922047 104857600 50G Linux filesystem /dev/nvme0n1p4 209922048 314779647 104857600 50G Linux filesystem /dev/nvme0n1p5 314779648 419637247 104857600 50G Microsoft basic data /dev/nvme0n1p6 419637248 419637255 8 4K Linux filesystem /dev/nvme0n1p7 419639296 419672063 32768 16M Microsoft reserved /dev/nvme0n1p8 419672064 436449279 16777216 8G Microsoft basic data /dev/nvme0n1p9 436449280 453226495 16777216 8G Microsoft basic data /dev/nvme0n1p10 453226496 558084095 104857600 50G Linux filesystem /dev/nvme0n1p11 558084096 767799295 209715200 100G Linux filesystem /dev/nvme0n1p12 767799296 977514495 209715200 100G Linux filesystem /dev/nvme0n1p13 977514496 1187229695 209715200 100G Linux filesystem /dev/nvme0n1p14 1187229696 1396944895 209715200 100G Linux filesystem /dev/nvme0n1p15 1396944896 1606660095 209715200 100G Linux filesystem /dev/nvme0n1p16 1606660096 1711517695 104857600 50G Linux swap Mounting the root partition -------------------------------------------------------------------------------- .. code:: mount /dev/nvme0n1p15 /mnt/gentoo/ cd /mnt/gentoo >~NVM-SkypeSR echo "NVM-SkypeSR - system pro Skype a Shadowrun a DuoLingo" >README Downloading the stage tarball -------------------------------------------------------------------------------- .. code:: cd /mnt/gentoo links https://www.gentoo.org/downloads/mirrors/ ### or wget https://mirror.bytemark.co.uk/gentoo/releases/amd64/autobuilds/current-stage3-amd64-openrc/stage3-amd64-openrc-20221211T170150Z.tar.xz{.DIGESTS,.CONTENTS.gz,.asc,.sha256,} ### anyway: sha512sum stage3-amd64-*.tar.xz 1b0d4d14ac76bfe17f8a99c4b4d05fa38a5ac4290a2914580ec162e65cb63746cad3d941c6c7f12f697fef9d183fed5af4e2c5e04fce08b50d6dc2f5019ebb8d stage3-amd64-openrc-20221211T170150Z.tar.xz grep 1b0d4d14ac76bfe17f8a99c4b4d05fa38a5ac4290a2914580ec162e65cb63746cad3d941c6c7f12f697fef9d183fed5af4e2c5e04fce08b50d6dc2f5019ebb8d stage3-amd64*.DIGESTS 1b0d4d14ac76bfe17f8a99c4b4d05fa38a5ac4290a2914580ec162e65cb63746cad3d941c6c7f12f697fef9d183fed5af4e2c5e04fce08b50d6dc2f5019ebb8d stage3-amd64-openrc-20221211T170150Z.tar.xz # or newer for ext in .tar.xz .tar.xz.DIGESTS .tar.xz.CONTENTS.gz .tar.xz.asc .tar.xz.sha256; do wget https://mirror.bytemark.co.uk/gentoo/releases/amd64/autobuilds/current-stage3-amd64-openrc/stage3-amd64-openrc-20230307T201702Z$ext; done ### or openssl dgst -r -whirlpool stage3-amd64-*.tar.xz ### dtto stage3-amd64-*.tar.xz.CONTENTS ### gpg --verify stage3-amd64-*.xz{.DIGESTS,.asc,} tar xpf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner Configuring compile options ------------------------------------------------------------------------------- Předně využiju možnosti podadresářů v ``/etcp/portage`` a to i pro ``make.conf``, následně budu dávat konfigurace jednotlivých "hlavních programů" do souborů s odpovídajícími jmény. Konfigurace si dám sem už předem, aby se různé ``USE`` a podobně neměnily průběžně a pak nebyly různé verze programů a knihoven a nemuselo se toho kompilovat pořád dokola - stejně to nakonec projedu s ``--empty-tree`` pro jistotu, ale i tak si nastavím spoustu věcí "do foroty" .. code:: mv etc/portage/make.conf etc/portage/00-make.conf mkdir etc/portage/make.conf mv etc/portage/00-make.conf etc/portage/make.conf cat >>etc/portage/make.conf/00-make.conf PORTDIR="/var/db/repos/gentoo" DISTDIR="/var/cache/distfiles" PKGDIR="/var/cache/binpkgs" L10N="en" #PYTHON_TARGETS="python2_7 python3_6 python3_7" #PYTHON_TARGETS="python2_7 python3_6 python3_7" #PYTHON_SINGLE_TARGET="python3_6" # 2023 - ??? python3_8 ??? #MAKEOPTS="-j26 " #MAKEOPTS="-j36 -l80" #FEATURES="${FEATURES} parallel-fetch" ##### Alt++ settings PORTAGE_RSYNC_EXTRA_OPTS="--info=stats0" MAKEOPTS="-j24 -l" EMERGE_DEFAULT_OPTS="--jobs --load-average " PORTAGE_NICENESS=19 #PORTAGE_IONICE_COMMAND="ionice -c 3 -p \${PID}" FEATURES="${FEATURES} -merge-sync parallel-fetch -parallel-install -ebuild-locks" ## FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs config-protect-if-modified distlocks fixlafiles ipc-sandbox multilib-strict network-sandbox news parallel-fetch parallel-install pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" Selecting mirrors ------------------------------------------------------------------------------ .. code:: mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf/01-mirrors ### or echo 'GENTOO_MIRRORS="http://ftp.fi.muni.cz/pub/linux/gentoo/ http://gentoo.ussg.indiana.edu/ http://gentoo.cs.utah.edu/"' >> /mnt/gentoo/etc/portage/make.conf/01-mirrors Oblibene USE ----------------------------------------------------------------------------- .. code:: cat >>/mnt/gentoo/etc/portage/make.conf/02-USE <>/mnt/gentoo/etc/portage/make.conf/debianutils <>/mnt/gentoo/etc/portage/repos.conf/GilToo-gilhad-repo <>/etc/portage/package.use/git emerge -avq --load-average=50 --jobs=30 dev-vcs/git cd /etc/ git config --global user.email "gilhad@seznam.cz" git config --global user.name "root" git config --global init.defaultBranch master git init git add -A git rm --cached portage/package.use/git portage/make.conf/01-mirrors.giltoo portage/repos.conf/GilToo-gilhad-repo portage/make.conf/02-USE portage/make.conf/debianutils git commit -am "uplny zacatek" git add portage/package.use/git git commit -am "+git" cd / Emerging gilhad-box/cobra-box-base ------------------------------------------------------------------------- .. code:: echo 'GENTOO_MIRRORS="http://gilhad-repo.giltoo.gilhad.cz $GENTOO_MIRRORS"' >> /etc/portage/make.conf/01-mirrors.giltoo echo "gilhad-box" >> /etc/portage/categories emerge --sync GilToo-gilhad-repo emerge -avq gilhad-box/cobra-box-base cd /etc git add portage/make.conf/01-mirrors.giltoo portage/repos.conf/GilToo-gilhad-repo git commit -am "+giltoo" cd / Aplikace cobra-box-base ------------------------------------------------------------------------ |bomb| POZOR - tohle provedeme ze STARÉHO systému, pod rootem, v MC * věci z /mnt/gentoo/usr/share/cobra-box-base/copy nakopírujeme do /mnt/gentoo/ (a prostě tím přepíšeme všechno) * věci z /mnt/gentoo/usr/share/cobra-box-base/ cpeme do /mnt/gentoo/ pomocí vimdiff-u a upravujeme podle potřeby (fstab a tak) * passwd a group nekopírujeme vůbec, jsou jen pro inspiraci * fstab - upravit root a swap (a pojmenování partitions) |bomb| POZOR - vrátíme se do chrootu .. code:: cd /etc git diff git add -A git commit -am "+ cobra-box-base/copy" cd / .. code:: emerge --config sys-libs/timezone-data locale-gen env-update && source /etc/profile && export PS1="(chroot) ${PS1}" stěžuje si to, že !!! Section 'crossdev' in repos.conf has location attribute set to nonexistent directory: '/var/db/repos/portage-crossdev' to budu řešit až s případným crossdev bash: warning: setlocale: LC_CTYPE: cannot change locale (cs_CZ.UTF8): No such file or directory to jsou imho nějaké knihovny (glibc-i18n glibc) a pomine za chvíli samo, až si je systém dotáhne Rebuild @world ================================================================================ @world je ``set`` obsahující ``world`` (/var/lib/portage/world), ``system`` a ``profile`` Teď by se měl updatnout základní systém, ale protože už jsem nastavil např. ``X``, tak se bude dotahovat těch věcí víc .. code:: cd /etc git add portage/make.conf/02-USE portage/make.conf/debianutils git commit -am "+world" cd git init echo .lesshst >>.gitignore echo .bash_history>>.gitignore git add -A git commit -am "+git" cd / emerge --sync --quiet emerge --ask --verbose --update --deep --newuse @world -q --load-average=50 --jobs=20 ### or without limits emerge --ask --verbose --update --deep --newuse @world -q --load-average --jobs Další detaily (timezone, locale, ...) ----------------------------------------------------------------------- většinou ošetřené přez cobra-box-base emerge --ask --verbose --update --deep --newuse -q --load-average --jobs -N sys-kernel/gentoo-sources sys-apps/pciutils sys-boot/efibootmgr emerge -avq sys-kernel/linux-firmware Kernel ================================================================================ GPU ---------------------------------------------------------------------- ``_ a v ``/etc/portage/savedconfig/sys-kernel/linux-firmware-20200421`` jde nastavit, co se má stahovat .. code:: mkdir /etc/portage/package.license # echo -e "sys-kernel/linux-firmware\tlinux-fw-redistributable no-source-code" >>/etc/portage/package.license/GPU emerge -avq sys-kernel/linux-firmware * Messages for package sys-kernel/linux-firmware-20200421: * Your configuration for sys-kernel/linux-firmware-20200421 has been saved in * "/etc/portage/savedconfig/sys-kernel/linux-firmware-20200421" for your editing pleasure. * You can edit these files by hand and remerge this package with * USE=savedconfig to customise the configuration. * You can rename this file/directory to one of the following for * its configuration to apply to multiple versions: * ${PORTAGE_CONFIGROOT}/etc/portage/savedconfig/ * [${CTARGET}|${CHOST}|""]/${CATEGORY}/[${PF}|${P}|${PN}] * If you are only interested in particular firmware files, edit the saved * configfile and remove those that you do not want. # echo "x11-drivers/xf86-video-amdgpu udev" >> /etc/portage/package.use/GPU # echo "x11-libs/libdrm video_cards_radeon" >> /etc/portage/package.use/GPU # echo 'VIDEO_CARDS="amdgpu radeonsi"' >>/etc/portage/make.conf/GPU UEFI --------------------------------------------------------------------- ``_ potřebuje ``NLS ISO 8859-1`` a **vypnutý** ``EFI mixed-mode support`` .. code:: emerge -avq sys-boot/efibootmgr mount | grep efivars # must be RW otherwise try somthing like # mount -o remount,rw -t efivarfs efivarfs /sys/firmware/efi/efivars efibootmgr -v # just list entries for fun :) kernel ---------------------------------------------------------------------- .. code:: emerge --ask --verbose --update --deep --newuse -q --load-average --jobs -N sys-kernel/gentoo-sources sys-apps/pciutils lspci ls -al /usr/src/ cd /usr/src/linux make menuconfig .. Nastavení kernelu Sensor driver: X570 boards (no WMI interface - use nct6775 driver instead) (``root=/dev/nvme0n1p15``) Built-in kernel command string - podle skutecne partisny root (``resume=/dev/nvme0n1p16``) Built-in kernel command string - podle skutecne partisny swap .. code:: Processor type and features ---> [*] Symmetric multi-processing support [ ] Support for extended (non-PC) x86 platforms [*] AMD ACPI2Platform devices support Processor family (Generic-x86-64) [*] Machine Check / overheating reporting [ ] Intel MCE Features [*] AMD MCE Features [*] CPU microcode loading support [ ] Intel microcode loading support [*] AMD microcode loading support Performance monitoring ---> < > Intel *** <*> AMD Processor Power Reporting Mechanism [*] Multi-core scheduler support [ ] Numa Memory Allocation and Scheduler Support -*- MTRR (Memory Type Range Register) support [*] EFI runtime service support [*] EFI stub support [ ] EFI mixed-mode support [*] Built-in kernel command line (root=/dev/nvme0n1p15 net.ifnames=0 vga=ask amdgpu.gpu_recovery=1 amdgpu.lockup_timeout=3000 resume=/dev/nvme0n1p16) Built-in kernel command string Power management and ACPI options ---> CPU Frequency scaling ---> Default CPUFreq governor (ondemand) ---> <*> ACPI Processor P-States driver <*> AMD frequency sensitivity feedback powersave bias Firmware Drivers ---> EFI (Extensible Firmware Interface) Support ---> <*> EFI Variable Support via sysfs Binary Emulations ---> [*] IA32 Emulation Device Drivers ---> NVME Support ---> <*> NVM Express block device I2C support ---> <*> I2C device interface I2C Hardware Bus support ---> AMD *** < > Intel *** Graphics support ---> <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) ---> [*] Enable legacy fbdev support for your modesetting driver < > ATI Radeon <*> AMD GPU [ ] Enable amdgpu support for SI parts [ ] Enable amdgpu support for CIK parts ACP (Audio CoProcessor) Configuration ---> [ ] Enable AMD Audio CoProcessor IP support Display Engine Configuration ---> [*] AMD DC - Enable new display engine [*] DCN 2.0 family < > Intel 8xx/9xx/G3x/G4x/HD Graphics Console display driver support ---> (160) Initial number of console screen columns (def 80) (64) Initial number of console screen rows (def 25) <*> Sound card support ---> <*> Advanced Linux Sound Architecture ---> HD-Audio ---> <*> Build Realtek HD-audio codec support (2048) Pre-allocated buffer size for HD-audio driver (def 64) [ ] USB sound devices ---- [ ] PCMCIA sound devices ---- < > ALSA for SoC audio support ---- [ ] X86 sound devices ---- Generic Driver Options ---> [*] Maintain a devtmpfs filesystem to mount at /dev [*] Automount devtmpfs at /dev, after the kernel mounted the rootfs Firmware loader ---> Build named firmware blobs into the kernel binary amdgpu/navi10_asd.bin amdgpu/navi10_ce.bin amdgpu/navi10_gpu_info.bin amdgpu/navi10_me.bin amdgpu/navi10_mec2.bin amdgpu/navi10_mec.bin amdgpu/navi10_pfp.bin amdgpu/navi10_rlc.bin amdgpu/navi10_sdma1.bin amdgpu/navi10_sdma.bin amdgpu/navi10_smc.bin amdgpu/navi10_sos.bin amdgpu/navi10_vcn.bin (/lib/firmware) Firmware blobs root directory Hardware Monitoring support ---> <*> AMD Family 10h+ temperature sensor <*> Nuvoton NCT6775F and compatibles Input device support ---> <*> Mouse interface <*> Joystick interface HID support ---> -*- HID bus support <*> Generic HID driver USB HID support ---> <*> USB HID transport layer [*] USB support ---> <*> xHCI HCD (USB 3.0) support <*> EHCI HCD (USB 2.0) support <*> OHCI HCD (USB 1.1) support [*] IOMMU Hardware Support ---> [*] AMD IOMMU support <*> AMD IOMMU Version 2 driver [ ] X86 Platform Specific Device Drivers ---- -*- Enable the block layer ---> Partition Types ---> [*] Advanced partition selection [*] EFI GUID Partition support File systems ---> Pseudo Filesystems ---> [*] /proc file system support [*] Tmpfs virtual memory file system support (former shm fs) Native Language support ---> [*] NLS ISO 8859-1 (Latin 1; Western European Languages) Otázka na tělo, které fs potřebujeme? (``ext3``/``ext4`` viz Formátování. ) Plus co navíc? ``VFAT`` pro USB (a jiné diskety), ``NTFS`` je potřeba dělat přez ``FUSE`` pomocí ``sys-fs/ntfs3g`` viz ``_ .. code:: File systems ---> < > Second extended fs support < > The Extended 3 (ext3) filesystem <*> The Extended 4 (ext4) filesystem [*] Use ext4 for ext2 file systems [*] Ext4 POSIX Access Control Lists [*] Ext4 Security Labels [ ] Ext4 debugging support < > Reiserfs support < > JFS filesystem support < > XFS filesystem support < > Btrfs filesystem support <*> FUSE (Filesystem in Userspace) support DOS/FAT/NT Filesystems ---> <*> MSDOS fs support <*> VFAT (Windows-95) fs support < > NTFS file system support CD-ROM/DVD Filesystems ---> <*> UDF file system support AMD microcode ------------------------------------------------------------------------- potřebuje ``sys-kernel/linux-firmware`` .. code:: emerge --ask sys-kernel/linux-firmware grep -F -m 1 "cpu family" /proc/cpuinfo|uniq ### cpu family : 23 == 0x17 == 17h Processor type and features ---> [*] CPU microcode loading support [ ] Intel microcode patch loading support [*] AMD microcode patch loading support Device Drivers ---> Generic Driver Options (amd-ucode/microcode_amd_fam17h.bin) External firmware blobs to build into the kernel binary (/lib/firmware) Firmware blobs root directory Mounting the boot partition (pro kernel) -------------------------------------------------------------------------- .. code:: (chroot) livecd / # mount /dev/nvme0n1p1 /boot/ (chroot) livecd / # df -h /boot Filesystem Size Used Avail Use% Mounted on /dev/nvme0n1p1 99M 512 99M 1% /boot Compiling kernel -------------------------------------------------------------------------- .. code:: make -j 26 make modules_install .. code:: efibootmgr # zjistit, zda tam je NVM-Gentoo-NVM-SkypeSR a zda je na pozici Boot0000B, pokud ano, tak ho smazat # efibootmgr -B -b 000B mkdir -p /boot/EFI/'Gentoo-NVM-SkypeSR' # or any other name under /boot/EFI cp /usr/src/linux/arch/x86/boot/bzImage /boot/EFI/'Gentoo-NVM-SkypeSR'/bzImage.efi efibootmgr -b 000B -c -L "NVM-Gentoo-NVM-SkypeSR" -l '\EFI\Gentoo-NVM-SkypeSR\bzImage.efi' -d /dev/nvme0n1p1 Nějak mě to už nebaví a potřebuju s tím pohnout .... ------------------------------------------------------------------------- .. code:: passwd exit mount|grep /mnt/gentoo|sed "s/^[^ ]* on \([^ ]*\) type .*/umount \1/" | sort -r efibootmgr -n 000B reboot reboot a uvidíme ..... useradd mkdir /SHARED xauth: file /home/gilhad/.Xauthority does not exist .. code:: gemerge -avqn media-fonts/font-misc-misc media-fonts/encodings media-fonts/font-util media-fonts/urw-fonts media-fonts/font-alias media-fonts/liberation-fonts # pro urxvt gemerge -avq \>/mnt/gentoo/etc/portage/make.conf/evdev <