Выпущен очередной кривой дистрибутив Linux - Chimbalix 23.1 Alphachi
Я уже достаточно долго использую MX Linux 23 в качестве основной операционной системы, попутно работаю над своим дистрибутивом Chimbalix (основан на MX Linux 23.1), и знаете, настало время переустанавливать Linux...
реклама
Есть несколько проблем, которые решены в моём дистрибутиве, например, меня очень напрягает отсутствие каталога "Program Files" (portsoft), и софт приходиться хранить абы как где попало... А меню пуск вообще похоже на свалку из всего и вся, в которой найти нужное приложение тот ещё геморрой на голову, ведь в линуксах система меню категоричная, неполноценная и неорганизованная:
Как следствие неполноценности и неорганизованности линуксоидных систем, панель управления тоже похожа на свалку, как и домашняя папка спустя некоторое время использования:
В таком хаосе продолжать работу весьма затруднительно, а значит пришло время перейти на дистрибутив Chimbalix, да, он всё еще очень "сырой", но им уже гораздо приятнее пользоваться, чем изначальным "линуксом":
реклама
Но не будем торопиться, сначала поработаем над мелочами, так как дистрибутив пойдёт в публичный доступ, важно направить пользователей на правильный способ установки драйвера видеокарт NVIDIA, чтобы один раз установили и забыли о проблемах вроде "OpenCL/CUDA недоступен":
Алгоритм действий элементарен, скачиваем полноценный CUDA ToolKit драйвер с сайта NVIDIA (весит около 4 ГиБ), располагаем в корневой домашней папке и переименовываем в более простое имя во избежание лишних сложностей, переходим в терминал Linux по сочетанию ctrl+alt+f1, авторизуемся, останавливаем lightdm сервис и наконец запускаем установочный файл драйвера.
реклама
По идее драйвер Nouveau заблокирован, потому здесь нет решения для конфликта между драйверами, имейте в виду если попытаетесь по этой инструкции устанавливать драйвер в других дистрибутивах Linux, тем более инструкция может быть изменена если что-то, как всегда, пойдёт не так в линуксе.
Далее нужно поработать над Wine, я всякого собрал воедино, даже символические ссылки в system32/syswow64 переделал правильно, чтобы они работали по относительным путям, и обновление того же dxvk было максимально элементарной задачей (просто заменить dll файлы в отдельной папке):
Наверное каждый слышал от линуксоидов про "великий и прекрасный" Proton, так вот, я решил внедрить Port Proton вместо обычного префикса Wine, как бы странно это не звучало, вообще эта гадость зависима от Steam в оригинальном виде, а порт сделан весьма криво, но у меня вроде получилось исправить и отвязать от лишних зависимостей, однако оно не протестировано должным образом...
Теперь надо поработать над удобством и практичностью, а именно сделать символические ссылки на базовые каталоги пользователя вроде ".local", однако есть проблема, если делать ссылку через контекстное меню проводника, оно указывает полный путь к каталогу, а надо относительный:
реклама
Как-то так, это будет работать даже если изменить путь к домашней папке:
Почему ссылки начинаются с "B_"? Можно найти множество смыслов, но истинный лишь один, это сделано чтобы элементы находились вместе и не размазывались по всему домашнему каталогу при стандартной сортировке по имени.
Отлично, теперь можно отключить показ скрытых файлов, и быстро получить доступ к таким основным каталогам как ".config", ".local", ".wine" и т.д.:
А если не по нраву "B_", можно переименовать в "C_", и вообще как угодно, только важно заметить, это не аналогия с диском "C" в Windows :)
Про контекстное меню не забываем, нужно добавить раздел архиватора:
Вот и готово, правда скриншот нужно переделывать, он испортился...
Что же пошло не так? Хм, просто в розетке пропал "свет", прямо в момент сохранения скриншота:
Ладно, вернёмся к делу, вот собственно и контекстное меню, я не выставлял ограничения на тип файла для команды "распаковать", не вижу смысла так поступать при текущей реализации:
Хм, я так подумал, и решил вернуть в систему архиватор file-roller, ведь с моим подходом архиваторы не будут конфликтовать между собой...
Отлично, всё же у разных архиваторов есть свои особенности, было бы неразумно полагаться лишь на один вариант находясь в Linux:
Вот и наглядный пример, архиватор Ark без проблем распаковывает архив с нестандартным расширением, а вот GNOME поделка File Roller не осилила такую ситуацию, однако с другой стороны Ark не может создавать ISO "архивы", так что в зависимости от потребностей под рукой есть разные инструменты:
Для сравнения вот так ведёт себя линуксоидный подход к архиваторам, мало того контекстное меню раздувается сразу тремя элементами, так ещё они конкурируют между собой, постоянно спрашивая "какой использовать", эти танцы с бубном столь характерные для линуксов очень напрягают:
Я уже не говорю про сложность добавления дополнительных архиваторов, с линуксоидной реализацией без бубна не обойтись...
Но с моим подходом всё работает чуть проще, не хватает только одного, пункта "открыть архив...", впрочем, проблема легко решилась парой строчек в скрипте и дополнительным пунктом меню, заодно выразил "грань" между разными архиваторами:
Не забываю наполнять дистрибутив софтом, которым сам же буду пользоваться, нужно будет поработать над инсталляционным пакетом как-нибудь, чтобы ярлыки не копировать руками в меню "Пуск" и на рабочий стол:
Кстати, надо привести в порядок кривые ярлыки архиваторов и перенести в положенное для них место:
Почистив root пользователя и домашний каталог от мусора я задумался, чего-то тут явно не хватает...
Правильно! Нужно положить пример в папку изображений!
Осталось собрать дистрибутив и посмотреть что из этого вышло:
Итого получился образ размером 3.9 ГиБ:
Проверяем сначала в виртуальной машине, само собой приветственное окно осталось от MX Linux, возьмусь ли я это переделывать прямо сейчас? Конечно нет, иначе выпуск затянется до следующего года:
И первый же серьёзный косяк состоит в неправильных часовых поясах доставшихся от оригинального MX Linux, выбирая ETC/GMT +4 на самом деле выбирается -4, а это создает разницу во времени неправильную, с чем я уже когда-то возился, но сами файлы не исправлял:
Похоже нужно исправлять проблему и заново собирать ISO образ дистрибутива... Дело пустяковое, нужно просто переименовать правильно файлы, чтобы соответствовали часовому поясу, вроде мелочь, а сколько проблем может доставить пользователю.
Готово, одной серьёзной проблемой меньше, теперь можно спокойно использовать числовой формат часового пояса, и он работает правильно:
Вторая серьёзная проблема это пропавший каталог "portsoft":
Причём в установочном образе эта папка точно есть, но после установки её нет, а это значит лишь одно... Установщик MX Linux неполноценно установил систему проигнорировав "неправильную" папку, не соответствующую линуксоидным "философиям"...
На всякий случай перепроверил наличие каталога в Live режиме, и он есть в образе, выходит дело действительно именно в установщике, ну что, нужно разбираться в очередных линуксоидных "граблях", почему оно не работает как надо, и думать над исправлением очередной проблемы, что так характерно для Linux в целом:
Что же делать... Всякие "preseed/late_command" слишком непонятно работают, хрен знает как даже подойти к этим линуксоидным штукам... Точно! Если инсталлятор пропускает копирование нужного каталога, значит разработаем временный костыль:
Я не хочу застревать надолго с этой проблемой, а потому временно размещу папку в "/opt", и сделаю символическую ссылку в корень файловой системы:
А поможет мне в этом деле небольшой скрипт, который автоматически запускается при входе в систему, проверяет наличие каталога "portsoft", создает ссылку если не находит и убирает себя из автозагрузки:
Собственно на этом пока хватит, пришло время собрать новый установочный образ с исправленными косяками:
А пока всё подготавливается, под предыдущей моей статьёй появился комментарий по существу, человек прямо в точку попал, ведь я по сути сейчас споткнулся о костыли, пришлось городить скрипт для прикручивания теряющейся папки portsoft...
И да, это моя вина, что не смог прямо сейчас без костылей прикрутить папку, чтобы она не терялась где-то в недрах "пингвина" после установки дистрибутива, но думаю с этой проблемой как-нибудь разберусь в будущем:
Меня лишь одно забавляет, не прошло и 10 минут с даты публикации комментария, как нашёлся какой-то "недовольный", скорее всего один из ботов накручивающих рейтинги, ибо накрутка рейтингов в минус для моих (и не только) статей обычное явление с того момента, как я начал наглядно демонстрировать что на самом деле представляют собой линуксы, без розовых соплей в стиле "10 причин почему Linux лучше Windows".
...
Так, образ приготовился, пора проверять:
И на этот раз будет создана учётная запись с паролем, чтобы была видна работа моего скрипта:
Да, работает как надо, правда окно MX Welcome немного мешалось, но пользователь точно не пропустит терминал с запросом пароля:
Что дальше? Выгрузить дистрибутив в общий доступ? Конечно нет! Настал этап установки на реальный ПК, правда перед этим следует скопировать все важные данные с системного диска, например игру Genshin Impact, не очень приятно будет ~96 ГиБ выкачивать из интернета заново:
Первый запуск довольно много времени занимает, не совсем понятно почему, но это мелочи, есть проблема поинтереснее, фон рабочего стола "потерялся"...
Устанавливаю свой дистрибутив вместо MX Linux 23, файл подкачки отключаю, с моим объёмом памяти от него больше вреда, чем пользы, да и если включить поддержку режима гибернации, то подкачка сожрёт "лишних" 72 ГБ места на системном диске, оно мне надо?
Часовой пояс выставляю GMT+4, и надеюсь что никаких типичных для Linux проблем больше не всплывёт в ходе тщательного тестирования...
Готово, система установлена, и я забыл достать флешку из ПК, но это поправимо:
Идём далее, и снова проблема с "потерянным" фоном рабочего стола, неприятно однако, но важнее другое, сейчас работает конфликтный Nouveau драйвер, файл в "modprobe.d" просто потерялся после установки, ох уж этот линукс, как дряхлый дед, вечно что-нибудь теряет...
Ну да ладно, запускаю свой скрипт для блокировки Nouveau и перезагружаю систему:
Сейчас важно установить адекватный драйвер на видеокарту (GTX 1070), так как у меня уже есть самый свежий адекватный установочный пакет от NVIDIA (cuda_12.3.1_545.23.08_linux.run), то мне не нужно выкачивать заново драйвер, достаточно просто скопировать в домашнюю папку, перейти в терминал Linux (ctrl+alt+f1), закрыть X server через остановку сервиса lightdm, и установить:
Драйвер установлен и работает нормально, осталось проверить, сохранится ли фон рабочего стола если нормально выйти из системы, и да, в таком случае всё сохранилось, похоже при создании образа дистрибутива что-то пошло не так, нужно будет снова переделывать...
Осталось проверить предустановленный мною софт и Wine, и вот тут снова проблемы... Я не могу нормально запустить Genshin Impact через префикс на основе Port Proton, и это очень неприятно, ведь игра раньше прекрасно работала с немного модифицированным оригинальным Wine префиксом.
Зато с другими играми особых проблем нет, даже Elemental Demo в DirectX 12 режиме нормально работает, по меркам Linux конечно, ибо линуксам до Windows очень далеко в плане игр, кто бы что не говорил:
Дальше немного пердолинга с линуксоидными DEB пакетами, нужно установить Яндекс Браузер, и в дистрибутиве не хватает зависимости "jq", значит нужно добавить вручную, ведь разработчики из "Яндекс" не позаботились о том, чтобы такую мелочь встроить в установочный пакет браузера... Не похоже, чтобы это было что-то очень базовое для всех дистрибутивов, чтобы хоть как-то оправдать отсутствие данной зависимости в установочном пакете программы:
Точно, нужно ведь Blender проверить, никаких проблем с CUDA и OptiX, ведь сразу был установлен адекватный драйвер NVIDIA вместо линуксоидного мусора из репозиториев:
Собственно на этом вроде всё, не обошлось конечно без лишнего пердолинга после установки, однако танцевал я с бубном всего один вечер, и часть работы была сделана моими же скриптами, это всяко лучше, чем неделю исправлять бесконечные косяки оригинального MX Linux (и многих других дистрибутивов).
Вернёмся к проблеме часовых поясов, ранее я переименовал файлы zoneinfo/Etc, чтобы выбирая "GMT+4" время соответствовало часовому поясу +4, а пользователь не был введён в заблуждение при выборе, однако некоторые веб сайты учитывают проблему противоположного знака, корректируют время с учётом изначально кривого имени, и приводят к бардаку... Я не могу с этим ничего сделать, ибо корень проблемы видимо очень древний, и много костылей для её обхода было сделано уже:
Не припомню, чтобы в "плохой и ужасной" Microsoft Windows был такой бардак с часовыми поясами, чтобы выбирая UTC +4 система указывала часовой пояс -4 вместо ожидаемого +4, это только в линуксах такое мракобесие может быть...
Если создам свою структуру понятную нормальному человеку, то некоторые веб-сайты не осиливают такого прикола и выбирают стандартное GMT0 время, так что просто верну файлам zoneinfo исходное состояние и пока что положу болт на это дерьмо, увы:
Эх, а я надеялся до нового года выпустить "Alpha" версию дистрибутива, но всплыли неожиданные косяки на ровном месте, как всегда, в линуксах... Пожалуй пришло время ещё раз установить в виртуальную машину дистрибутив Chimbalix, исправить некоторые мелочи и снова упаковать:
Установка завершена, на удивление в виртуальной машине нет косяка с "потерянным" фоном рабочего стола, как это происходит при установке на реальный ПК, похоже проблемы с конфигами, но папка "portsoft" всё равно теряется:
Так как пароль установлен, костыль прикручивающий папку ожидает ввода, но про это уже говорилось, так что просто начну исправлять косяки:
Возвращаю к изначальному виду файлы часовых поясов, всё равно и так и сяк работают криво, устанавливаю зависимость "jq", ибо установочный DEB пакет Яндекс Браузера оказался не очень полноценным:
Далее разберёмся с префиксом Wine, пожалуй обойдёмся без всяких Port Proton, ибо с "протонами" как-то всё хуже работает, чем если использовать просто немного модифицированный Wine префикс...
А вот и действие строки "env LC_ALL=ru_RU.UTF-8" перед запуском игры Genshin Impact, непонятно? А теперь представьте, вместо русских букв в чате будут сплошные символы вопроса ("?"), короче говоря благодаря явному указанию "локали" нет проблем с кодировками в игре:
Вот такой префикс Wine можно и внедрить в дистрибутив.
Про инструкцию установки драйвера NVIDIA не забываем, вносим правки исходя из выявленных нюансов в ходе проверок на реальном ПК, кто бы сомневался:
Так же были поправлены всякие мелочи, и пора снова создавать образ:
Записываем флешку:
Но внезапно, образ не проходит проверку целостности данных, судя по всему проблема случилась во время сборки дистрибутива, ведь ISO "диск" правильный исходя из контрольной суммы:
Вообще данную ошибку можно проигнорировать, система нормально устанавливается и работает, но это так оставлять нельзя, похоже я накосячил с чем-то, не знаю даже с чем, вечно в этих линуксах всё через одно место реализовано не по-человечески, эх опять переделывать...
Система пересобрана, проблем больше нет с целостностью:
Однако, я снова столкнулся с проблемой "Wine" пытаясь запустить Genshin Impact:
fixme:wgl:X11DRV_wglGetPixelFormatAttribivARB unsupported 2008 WGL Attribute
Всему виной оказались "зависимости", которыми так славен линукс в целом! Дело в REG файлах, которые генерирует Wine, они создаются под конкретного пользователя Linux и не обновляются при переносе, если пользователь пытается перенести префикс (папку с "Windows") на другой ПК, он получает проблемы решаемые повторной генерацией файлов реестра:
Итого было решено сделать ещё один костыль, раз нельзя по-человечески побороть Wine, чтобы нормально работал с другими пользователями без переустановки префикса и создания специального пользователя, значит буду применять костыли, лишь бы работало и не приходилось танцевать с бубном по таким "мелочам", заодно доработал первый костыль для Linux:
Кстати, здесь есть проблема, если вдруг установщик не потеряет из корня "portsoft", скрипт не сработает, и Wine префикс не будет подготовлен должным образом, но об этой проблеме я задумался слишком поздно, так что просто возьмём на карандаш, чтобы исправить в будущих выпусках.
Даже боюсь представить, сколько костылей в будущем ещё появится...
Раз уж взялся, сделаю скрипт для создания скриншотов, ибо постоянно ковыряться через кнопочки всплывающего окна, ну совсем не круто:
Теперь создание скриншотов стало гораздо более продуктивным занятием, чем было изначально в Xfce:
Ну всё, пора собирать...
С первого раза конечно не всё получилось правильно, но с третьего косячки подправил.
Время проверять на реальном ПК свой дистрибутив, как можно заметить, косяк с пропажей фона рабочего стола исправлен, это были кривые файлы конфигурации, как и положено очередному кривому дистрибутиву:
Установка завершена, запускаем систему, и сразу же появилось окно терминала с требованием ввести root пароль для завершения установки и настройки, я специально задал пароль учётной записи, чтобы это проверить, ведь если пароль не задан, оно автоматически всё сделает ничего не спрашивая...
Собственно пора проверить Wine, и он работает, правда DirectX 12 не поддерживает, ведь сейчас задействован неполноценный драйвер видеокарты Nouveau, с которым моя GeForce GTX 1070 вытягивает максимум на 10% от своих возможностей:
Копирую нормальный драйвер NVIDIA в домашний каталог для удобного и быстрого доступа, блокирую Nouveau, перезагружаю систему:
Перехожу в консоль (alt+ctrl+f1), не забываем остановить lightdm сервис, иначе драйвер выдаст ошибку, запускаю установщик от NVIDIA через sudo и жду пока установит, а после перезагружаю ПК:
Теперь проверяю Elemental Demo DX12, Genshin Impact, работу скрипта для создания скриншотов, каталог portsoft, всё работает:
Конечно не забываю про Blender, включаю OptiX и радуюсь беспроблемной полноценной работе:
Не знаю как будут владельцы AMD видеокарт пердолиться со встроенными в ядро Linux кривыми и неполноценными драйверами, ведь у меня нет "красных" видеокарт для тестирования и подпиливания косяков напильником, так что вы уж держитесь как-нибудь если вдруг у вас Radeon...
На этом пожалуй закончу, от меня просили "Альфа" версию дистрибутива, вот и он, Альфач:
Если вдруг не по нраву вышел дистрибутив - вперёд и с песней на другие дистрибутивы, я ничего не обещаю насчёт удобства/дружелюбности дистрибутива, тем более для "Альфа" версии, в отличие от других:
В первую очередь я делаю для себя, во вторую для всех остальных, стараясь по возможности решать действительно мешающие проблемы, и поддерживать буду в первую очередь свой дистрибутив в будущем, в том числе при создании софта и сборок приложений.
Дистрибутив Chimbalix 23.1 Alphachi на данный момент можно найти в Google диске.
Google Drive: ( https://drive.google.com/drive/folders/1vJwvMnvEqnk92MZ_dmQpAaB9BEUCt03L ).
Так же не забываем про репозиторий GitHub: ( https://github.com/Shedou/Chimbalix ).
Правда в GitHub дистрибутив не загружался, слишком уж большой получился файл для репозитория, хотя...
Есть у меня одна идея, запаковать образ дистрибутива в 7-Zip архив разбив на две части размером чуть меньше 2 ГБ, так можно будет загрузить в репозиторий не упёршись в ограничения:
Вообще следовало бы поднять отдельный сайт для дистрибутива, и располагать образ именно на сайте, однако на текущем этапе это не смеет особого смысла, так что обойдёмся более простыми вариантами:
К сожалению мне не удалось завершить статью до Нового Года, как и выпустить дистрибутив, ведь на момент загрузки в некоторых частях мира Новый Год уже наступил, впрочем, кому не всё равно на это?
Вот так была выпущена первая "Alpha" версия дистрибутива Chimbalix 23.1, сейчас могу лишь поздравить всех с наступившим Новым Годом, и пожелать всего хорошего!
Благодарю за внимание, больше интересных статей в блоге Hard-Workshop.
Лента материалов
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Комментарии Правила