Немного о приключениях :) Решил обновить видюху на домашнем десктопе на котором стоит Win 10 поиграться и Gentoo для остального

  • карта - nvidia

  • мать - ASUS TUF GAMING B550M-PLUS

  • m2 - Samsung 970 EVO MZ-V7E1T0BW 1ТБ

  • память - Сrucial Ballistix BL16G32C16U4B DDR4 - 16ГБ 3200

По такому случаю обновляю bios, втыкаю новую карту, лезу в настройки биоса и вижу там новое для себя - Resizable BAR. Надо сказать что при апгрейде на новое железо Win я переставлял с нуля, а Gentoo - тупо переносил копированием (кстати нашел /etc/wvdial.conf созданный 2005-03-06 там диалапные настройки еще живы) , ставил grub, пересобирал world с новыми флагами, ядро с новыми дровами и жил с этим дальше. В результате комп по дедовски бутявился через CSM и grub, а Gentoo накопило много всякого legacy в виде настроек, софта и 275 строчного package.use. А тут выясняется что Resizable BAR нужен UEFI. Поэтому решаю таки перейти на загрузку UEFI, поставить Win 11 и полностью поставить Gentoo с нуля. Ну и раз пошла такая пьянка решил переставить Samsung m2 во второй слот, а вместо неё воткнуть m2 на 2TB. Это позволит аккуратненько и не спеша перетащить только нужные файлы и конфиги со старого диска в новоустановленные системы, ну и по месту не надо будет жаться. Установленные Microsoft Flight Simulator 2020 с X-Plane 12 уже не позволяли запихать на старый 500GB виндовый раздел какой нить Cyberpunk 2077. А тут будет целый терабайт.

Так как опыта в dual boot в UEFI вообще никакого, нагугливаю https://wiki.gentoo.org/wiki/UEFI_Dual_boot_with_Windows_7/8, из которой уясняю, что надо начать с установки Win, потом позвозиться с rEFInd и потом ставить Gentoo.

Ставлю Win 11, ставлю все дрова, ставлю Steam, немного пробую Ведьмака, MSFS2020, Xplane-12 и Cyberpunk 2077. Вроде все норм, но MSFS2020 в какой то момент вылетает. С ним такое редко но бывает. Поэтому тестирование установки Win на этом прекращаю

Вожусь с установкой rEFInd, ничо не получается, внятной инфы не нахожу. Обычно когда по какой-то проблеме не находишь инфы, то тут два варианта. Или проблема настолько редкая что в неё никто не воткнулся (что явно не мой вариант) или что проблемы или нет или она описана подробно в документации. Лезу в Gentoo Handbook amd64 в раздел https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Bootloader и точно, там пишут что все фигня, ставишь grub как и при CSM legacy загрузке и будет счастие. Гружусь с USB, создаю раздел, разворачиваю stage, собираю ядро, ставлю загрузчик по документации выглядит обычно. Ну только grub-mkconfig не видит автоматом, как раньше, установленную Windows, приходится немного гуглить, чуть-чуть экспериментировать и в итоге файл /etc/grub.d/40_custom

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry "Windows 11" {
  insmod part_msdos
  insmod chain
  set root=(hd5,gpt1)
  chainloader /efi/Microsoft/Boot/bootmgfw.efi
}

и запуск `grub-mkconfig -o /boot/grub/grub.cfg` решает и эту проблему

При установке немного косячу, сначала беру маленький stage3 но он оказывается не multilib, приходится все удалять, качать и разворачивать нормальный stage3 (desktop profile | systemd) с multilib. Успешно гружусь в Gentoo в самособранное ядро.

Начинаю пересобирать world. Снова косячу и ставлю COMMON_FLAGS="-march=native -O3 -pipe". Начинаются рандомные падения на сборке. Обычно это означает что с железом (в 99% случаев это железо - память) что-то не не так, но два дня же назад все отлично работало. Понимаю что раньше я всегда использовал -O2 и никаких проблем не имел, меняю и пытаюсь пересобрать снова. Становится интересно. Ядро собирается без проблем, gcc то собирается, то не собирается, сборка llvm падает всегда, в основном с segmentation fault. Мой опыт говорит что если существует проблема с памятью, то все тяжелые сборки падают. В списке таких тяжелых сборок - ядро, gcc, llvm. Тут как-то не все падает и не всегда. Начинаю пробовать march=znver2 который был раньше, убирать -j до 1, убирать -O, собирать все нуля с `emerge -e llvm`, нефига не помогает, llvm падает стабильно. Вожусь так два дня, сдаюсь, запускаю memtest который был на флешке с gentoo. Тест работает до 20% норм, а потом начинает на всем объеме памяти сыпать ошибками. Расстраиваюсь, но не отчаиваюсь, ибо все как-то странно выглядит, 4 планки не самой плохой памяти редко отъезжают одновременно. Не то что бы прям редко, cкорее даже у меня такого никогда не случалось. Ну кроме одного случая когда десктоп который работал как сервер на чердаке перемкнуло и он тупо сгорел. Но тоже явно не тот вариант.

Смотрю на спеки памяти вижу там частоту - 3200 и тут в голове выскакивает что по моему биос при загрузке пишет про память - 2333. Лезу в настройки и точно, в биосе в частоте памяти стоит - Auto и биос при этом определяет 2333. Ставлю ручками 3200, перегружаюсь в Gentoo, собираю llvm - нет проблем. Пересобираю все с нуля, собираю всякие firefox, telegram-desktop, samba - нет никаких проблем.

Никогда бы не подумал что понижение частоты так может повлиять. Пока обновлял открыл для себя в настройках power10k упоминание https://sw.kovidgoyal.net/kitty/, поставил его попробовать вместо Alacritty. Ну и https://wiki.archlinux.org/title/picom, добавить в https://awesomewm.org/ прозрачности.

Всем добра и автоматизации.

Комментарии (13)


  1. skymal4ik
    00.00.0000 00:00

    Статья больше похожа на поток мыслей без чёткой структуры, и больше подошла бы для личного блога, а не ресурс уровня Хабра.

    Если бы улучшили стиль, добавили структуры и выводы, то было бы лучше. Хотя посыл статьи всё равно непонятен.


    1. sergeygals Автор
      00.00.0000 00:00

      А статья как раз про это большей частью на самом деле. Не все инженерные решения и находки это формулы и четкая логика.


    1. sergeygals Автор
      00.00.0000 00:00

      Особенно вся это "поточность" и "не структурность" касается траблешутинга больших и сложных систем :) да, можно составить хорошую и подробную инструкцию как искать проблемы в некоторой системе. Но это значит что система не очень хороша, если инструкцию можно составить в виде пунктов то ее можно сделать в виде программы, то возникает вопрос почему это не сделано.


  1. petropavel
    00.00.0000 00:00
    +1

    С UEFI не нужен ни rEFInd ни grub, вообще ставить бут-менеджеры не обязательно, UEFI сам может линукс грузить и dual boot поддерживать.

    https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Bootloader#Alternative_2:_efibootmgr


    1. edo1h
      00.00.0000 00:00

      …, и потом вспоминать какою именно кнопку на этом компьютере нужно нажимать чтобы получить выбор вариантов загрузки.

      И ловить момент, в который принимается эта кнопка, особенно неприятно на серверах с их долгой инициализацией.


    1. sergeygals Автор
      00.00.0000 00:00
      +2

      У такого подхода много минусов мне видится, на вскидку - отсутвие минишела если ты ошибся в опциях командной строки при добавлении нового выбора, невозможнось такой простой вещи как добавить опцию ядра разово при загрузке


  1. edo1h
    00.00.0000 00:00

    Ещё одна история из разряда «как повсеместное использование ecc-памяти могло бы упростить жизнь»

    Смотрю на спеки памяти вижу там частоту - 3200 и тут в голове выскакивает что по моему биос при загрузке пишет про память - 2333. Лезу в настройки и точно, в биосе в частоте памяти стоит - Auto и биос при этом определяет 2333. Ставлю ручками 3200

    Не смотрел спецификации вашей памяти, но 99%, что 3200 там xmp профиль — то есть одобренный производителем разгон, требующий поднятия напряжения. А базовый профиль, скорее всего, 2666.


    1. sergeygals Автор
      00.00.0000 00:00
      +1

      С ecc конечно не поспоришь, ну кроме цены :) ну и я не уверен что тут ecc бы помогла, я не силен в деталях но мне кажется eec это про исправление спонтанных ошибок. Ну там слишком активное солнце выбило электрон не там. А тут из за разницы в частоте в 1/3 ошибки валили толпой.


      1. edo1h
        00.00.0000 00:00

        ecc — это в первую очередь не про исправление, а про обнаружение ошибок памяти


  1. Mirzaev
    00.00.0000 00:00
    -1

    Впервые вижу человека, который освоил gentoo и при этом не уничтожил винду


    1. sergeygals Автор
      00.00.0000 00:00
      +1

      чой то ее уничтожать, а играть в чем ? :) windows - играть, linux - работать и каждодневно пользовать, macos - работать на лаптопе.


      1. Mirzaev
        00.00.0000 00:00

        Если замудрился с дженту, то на ней можно без проблем запустить любую игру (по крайней мере на моём опыте). Не вижу смысла в виндовс когда уже есть настроенный под себя дистрибутив. К макос я имею негативное предвзятое мнение (потенциально хуже линукс во всём куда не ткни: unix-way opensource, тысячи проработанных годами спецификаций и т.д.), однако никогда макос не пробовал, поэтому не могу комментировать.


        1. sergeygals Автор
          00.00.0000 00:00
          +4

          на самом деле мак в консоли ничем не отличается от gentoo в ней же :) да и vscode там и там абсолютно одинаковый. кстати счас пертаскивал файлы на новый диск и нашел /etc/wvdial.conf c диалапными настройками, то есть именно это гента перезжала с железо на железо с 03.03.2005. но вот линуха на лаптопах я не люблю, там вечно проблемы, то хер пойми какие драйвера в ядре при сборке включать, то на что-то вообще дров нет (в последней ленове так было с отпечатком пальцев), то sleep режим через зад работает, открыл ноут через пару часов, а там от заряда батарейки ничего не осталось. Насчет игр, это отдых, хочется в них играть, а не плясать с бубном их запуская. Ну и винда все равно нужна, для всякого пропритарного софта типа Garmin для работы с их часами или для программирования раций. Мне на идеологию так-то срать, мне главное удобство :)