crower: (Default)
На работе стоит комп с убунтой. Комп не молодой уже, но не задохлик какой-то и среди остального компьютерного парка чуть ли не самый шустрый. Долгое время ресурсов более чем хватало. И вот в прошлом году после очередного апдейта нвидишных дров счастивая жизнь закончилась. Начались глюки, попытки откатиться (но дров нужных уже не нашлось), и в стремлении добиться работоспособости — обновление до последней LTS и переползание на xfce.
Даже года полтора назад если бы мне кто сказал, что машинка моя потребует переползания на xfce, я бы не поверил.
Нафига, если на ней 2 гига памяти и никакого особо прожорливого софта нет? Оказывается, хрен там — хорошо уже было. Ну, про это я уже не раз писал, а сейчас хотел поделиться последним экспериментом.

Есть evolution, который один умеет ходить к ms outlookup server за почтой.
Но сейчас он отказывается подключаться к серверам (любым), потому что якобы у него нет сети.
Сеть есть. Настроена статически и не через рабочий стол. Но evolution её почему-то не признает.
Год назад комп работал немного в другой сетевой конфигурации — в другой сети, на другом интерфейсе. В новую сетевую конфигурацию включал через второй интерфейс, с намерением когда-нибудь подключить первый обратно, но в процессе боданий выяснилось, что много кому не понравилось, что есть eth1, но нет eth0. Пришлось их свопнуть и всё заработало без нареканий. Почти. Вот только evolution этой сети не видит. Как будто это какая-то винда, в которой клиент привязался к конкретной карте, в конкретной конфигурации, через длинный идентификатор. Но в винде-то можно поковырять реестр, а тут-то что?
Ковыряние в логах, пытание с strace показало, что evolution сильно хочет связаться с dbus, но что-то там у него не срастается. Появилась версия, что именно через него он мог бы получить информацию о сетевой конфигурации. А раз не может подключиться, и не может получить конфигурацию (ну, так сделано, блин), значит и сети у него как бы нет.
Может потому что xfce? Вот для проверки и этой версии, решил зайти через Unity и там evolution запустить. Надежды никакой, тем более, в памяти какие-то следы остались что уже пытался подобное провернуть, но почему бы и не попробовать "на свежую голову"? Может мысли какие новые появятся.

Логинюсь через профиль с Unity. Как и ожидалось, памяти уже пожрано compiz под 200 мег, xorg около 120. Кстати, под xfcee памяти xorg потребляет только 79, компиза нет совсем, а а xfdesktop только 46.
Ну, да не за этим мы сюда пришли.
Запускаю evolution — тоже не видит сети. Попытался поконфигурировать сеть - не помогает. Выглядит так, будто бы это всё хозяйство рассчитано на подключение сети с декстопа, а у меня-же статика и прописано по-старому. Пободался, в общем, контролируя по htop съедаемую память. Так как при выедании свободной всё (под юнити) начинает глючить, падать и т.п. Но память ещё есть и можно не беспокоиться. Но надо бы какую-нибудь инфу погуглить. Но FF тоже в последнее время погрузнел и памяти жрёт как та свинья помои. Ну, думаю, запущу вместо него dillo. Запускаю…
…и это было последнее, что смогла запустить убунта… К счастью, - только в этой сессии.
На экране все иконка сразу выпали черезстрочкой, посреди навернулся медный таз нарисовался чёрный треугольник и всё.
С стороны по ssh не пускает - рефузит.
Семь бед — один ресет.

Загрузился. Естественно, в xfce. Решил поделиться - пишу. Чтобы освежить память запустил evolution через терминал. Вижу опять ругается на dbus — сокет не нашёл, зарегистрировать клиент не смог, и ещё какая-то фигня.
Запустился, а тут — батюшки мои! — уже не ругается что сети у него нет!
Уже и за почтой сходил, сволочь, и забрал что надо (и не надо было).
Значить, что-то правильное, всё-таки сделал. :) Ну, во первых, переключал профиль доступа к сети, во вторых, в юнитишной конфигурялке неиспользуемый (старый, бывший основной рабочий) отключи.
Видать мозги вправил.

Пока ещё не очень радуюсь, но заработал — это уже хорошо.
crower: (Default)
Ну и какая же из сволочей виновата?
Не исключено, что все три. Но всё началось с последней. Именно после апгрейда последней начались утечки памяти и прочая хрень, которая закончилась необходимостью глобального апгрейда и "всем тем катаклизмом, который я тут наблюдаю"©.
Удивительно, но не прав, похоже, второй. Вывод сделан на основании того, что после перевода обоих компов на xfce истерические падения (на втором) и катастрофическое утекание памяти (на первом) угомонилось.
И, естетсвенно, первый участник соцсоревнования (кто устроит ситуацию гаже) тоже к этому причастен и не смог справиться с наплывом проблем.
Разгребание проблем ещё далеко не закончилось, не смотря на то что уже и так дофига всего пришлось докрутить.
От xfce, кстати, есть один побочный положительный эффект: оказалось возможным переключалку раскладки сделать однокнопочной, как было раньше - л-меню первая, п-меню последняя.
Из печальных последствий - сломалась тулза станционной онлайн-документации. Не полностью - тулбар получить дефаултовую инфу от демона не может. А по оглавлению и ссылкам всё открывает и выдаёт. Тот же тулбар с фиктивно-заданным именем файла получить тоже возможно, и форма для поиска открыватся. Как так? Надо будет подумать как попатчить это дело.
Отвалился apparmor - пришлось шаманить. Кажется это как раз та история с fancontrol была, о которой уже рассказывал.
Не поднялся ht-кэшклинер. Поискал нужный модуль - прицепил. Решил заюзать для апача седьмой php, раз уж он в системе уже стоит.
На вики-сервере перестали обрабатываться мат-формулы. Долго колдовал с texvc - не помогло.
Ясное дело - там и апач, и php проапгрейдился и ещё куча всякой хрени. Год назад уже наступал на грабли: апргрейдил его-же, но новый код был заточен на более новую версию php. Прикрутил альтернативный репозитарий, подхватил оттуда требуемую версию php и вроде поехало. Ну, тут-то дело очевидное. Разбираться по мелочам? Нафиг нужно. Апгрейдим весь сервак, все расширения из фарма и все по-отдельности установленные, апдейтим базу. Сходу не пошло - ага! там же композер теперь давно. Композер тогда прикладывал без установки, "на коврике". А тут, похоже, штатный появился, а подхватывался тот что "на коврике". Поэтому и апдейт его проходил как-то криво. "Выстирал коврик". :) Поехало. Дальше понятно уже - апдейтим базу, ок. Вдруг ни с того, ни с сего ругается на права. Пошарился по логам, по дебаговому логу тоже. Е-моё! А чего это l10n_cache-en.cdb с правами от www-юзера, а l10n_cache-ru.cdb - от рута? Ясное дело - апгрейд-же от рута делался. А от кого-же ещё? От www-юзера нельзя, потому что у него хомяка нет. Ну и хрен с ними. Човним файло, а за компанию весь каталог по рекурсии с wiki-движком.
Бинго! Работает? А как-же!
Как бы не так. Потом обнаружил, что оформленная через него записнушка нифига не отображает. Опять кучу времени угрохал, пока разобрался. Оказывается DPL старого кода юзает переменные из Cite, а в последнем они с какого-то времени стали приватными. И что делать? Cite "свежее", но не намного. DPL вообще от "третьей стороны". Глянул гитом хронологию - и плюнул. Полез в код Cite и национализировал запубличил переменные. Заработало.

И тут бы расслабиться, но стали наблюдаться глюки. То конки себя почувствует ван Гогом, то у фокс упадёт, но компиз отметится. И загрузка что компиза, что иксов стала подрасать и памяти отъедать подозрительно больше чем надо.
А тут вызываю полуночного командира и через некоторое время он тоже падает. Ну ладно: упал - отжался. Хрен там. Теперь уже каждый раз при запуске сразу в корку падает. Охреневший чего только не делал. Отпустило только после того как в /tmp удалил mc-user. "Что это было, Пух?"©

Интересно, что на компе с меньшем количеством памяти (да и хрени всякой на нём меньше установлено) глюков наблюдалось заментно меньше. В борьбе за память пришлось уползти на xfce и глюки наблюдаться перестали. До этого ещё пытал metacity. Тоже без компиза, но тоже, скотина, прожорлив. Ну и с настройками не очень хорошо получалось. Поэтому в итоге xfce решил попробовать более основательно. Короче. На второй машине тоже перешёл на xfce. И что-то больше глюков не наблюдаю. Белочка - так же самая, nvidia та-же самая, иксы - тоже. Выходит самое слабое звено в этой цепочке был компиз? Ну, или юнити.
Вот, кстати, пока бодался с дровами на первой машине, пробовал nouveau. Тоже изрядно гадили в syslog. Я думал что проблема именно в них, но теперь подозреваю что в компизе.
Надо будет попробовать их ещё раз, но теперь уже с Mir и Unity8.
crower: (Default)
Эх, зря я так надеялся что наблюдаемые гадости — мелкие. :)

Из гадостей регулярно наблюдаемых — глюченье и падение conky. Самый наблюдаемый глюк: перестаёт очищать рабочее поле и новый текст ложится поверх старого. То ли второй буфер ему перестают выдавать, то ли вместо нового указателя выдают указатель на первый буфер - ХЗ. Может это глюки не его, а того кто выделяет ему память? Может. но падать приходится ему. Пришлось завернуть его цикл, снова запускающий его после падения. Из странного: "Invalid MIT-MAGIC-COOKIE-1 keyconky: can't open display: :0", над чем нужно будет подумать.
Интересно что за последнюю неделю к нему трижды приходил oom-killer. Раз в три дня. Регулярно. Точнее, один раз к нему, и два ­— к его дочернему процессу. С segfault, как самому активному процессу, ему пришлось падать больше сотни раз.

Падать приходится не только ему, но и firefox. Я его не закрываю и где-то этот мусор накапливается, приводя к падению: "Out of memory: Kill process 2250 (firefox) score 49 or sacrifice child". Но он падает гораздо реже, что огорчает не менее.

Вот, кстати, даже компиз с десяток раз падал. Что за хрень?

Тут ещё пытался разобраться что к чему и выяснял что за фрукт такой systemd. Оказывается Поттеринг придумал такой обобщённый статус, который выводится из статусов всех запущенных через него юнитов. На машинке с меньшим количеством памяти, но и с конфигурацией попроще эта беда не вылезала. А вот на второй обнаружилось что статус у неё — "деградированный". Причина: несколько модулей запущены с ошибками. Вот, например, fancontrol лежал и никому не мешал. Когда-то успешно работал, но потом кому-то умному пришло в голову всё сломать переделать, в результате чего старые дрова к фанам перестали пускать, а новые этот функционал поддерживать не умеют. Но ведь не мешал-же он никому? А systemd-у — мешает. Снёс. Долго не удалял, собираясь поковыряться и заставить работать. Впрочем, было это тогда ещё, когда кулер был шумным и тихая работа была осознанно нужна.
Но вот уже, кажется, два года как кулер заменён на тихоходный, но не менее эффективный, и добавлен в корпус второй такой-же тихоходный. Так что в принципе - не жалко.

Замотала какая-то хрень с miredo. При старте не поднимается, т.к. нужен ip-адрес шлюза, а его ещё нет. Пытался релятивировать его от запуска named-а, но не помогло. Нашёл где-то совет рестартануть его через rc.d, но мне как-то не очень это понравилось. Придумал другой хинт — прописал адрес шлюза прямо в hosts. В итоге miredo поднимается без дополнительных пинков, минус один failed юнит, но такое ощущение, что не всё там так гладко. Почему-то evolution считает что сети нет и соответственно почту с pop-сервера забрать не может. Хотя, вообще-то, к miredo он не привязан никак и до pop-сервера (и smtp тоже) ему надо ходить по обычному статику eth. Какого чёрта ему ещё надо - не пойму, но факт в том, что networking.service — failed, хотя сетевые дела работают без проблем.
От того-же мониторинга осталась запись в модулях на it87, но модуль - йок. Поэтому systemd-modules-load.service тоже долго болтался failed. Повозился с it87, поковырял fancontrol, посмотрел на sensors и решил, что обойдусь показаниями кулеров через atk0110. Отвинтил и - о чудо! - systemd-modules-load.service "узбагоилса". :)
С networking.service пока так и не разобрался.

При попытке разобраться откуда растут гадости зацепился за "nvidia: module verification failed: signature and/or required key missing - tainting kernel". Ну, думаю, перестарался. Наверно в альтернативной репе дрова не верифицированные. Увидел кроме установленного 134 доступный 131 - сдаунгрейдился. Увидел просьбу включить в биосе Cool'N'Quite - включил.
И тут началось нечто невообразимое — всё глючит, виснет, не реагирует ни на что.
Зашёл с планшета по ssh пытаюсь хоть так зашатдаунить - шатдаульная задача, которая теперь работает через systemd, отваливается по таймауту. Драсте.
Семь бед - один ресет.
В итоге отключит эту дрянь и вернул дрова, пока не начало глючить. Вроде глюки успокоились.
Разглядывая собранный nvidia-bug-report отчёт заинтересовался что за Mir такой и выяснил, что грядёт unity8. Народ говорит что у проприетарных дров от nvidia с ним могут быть поблемы, а вот nouveau в самый раз. Что-то не заладилось с нвидиа в последнее время. Читал где-то что выкатили нвидиа предложения затолкать в ядро их наработки, которые были бы типа очень классными для их карт, на что Линус их постал. Нехрен, мол, это ваше дерьмо в ядро совать. Так что вот. Такое ощущение, что нвидиа решила: "Ах, так?"… Собственно, вся эта хрень началась именно с очередного обновления дров от nvidia. Вот бы знать заранее. Не обязательно это осознанное вредительство. Скорее всего какие-то изменения вносили для дальнейшего развития с замахом на патчинг ядра, но не срослось. "Ну и вот".

Я бы уж и 12.04 вернул, вот только дрова бы найти "докризисные". :)
crower: (Default)
Решился и на втором компе произвести апгрейд. Долгое время не решался (да и не скоро решился бы), потому что на компе много всякой всячины установлено. В том числе и доп.пакетами, установленными не из репозитарок.
И тут случилось какое-то пофигистическое настроение "эх, была-не была"… Впрочем, прологом была попытка восстановить вайбер-декстоп. Установленная уже давно версия регулярно падала при попытке отобразить в чате то ли картинку, то ли видео. Обнаружил что есть свеженькие версии. Проапдейтил, увидел что есть неудовлетворённые зависимости и решился на большой апгрейд. В итоге, кстати, вайбер на проапгрейженой системе таки запустился и не падал даже при открытии чата, чего раньше не было, хотя восстанавливать историю не стал.

Апгрейд когда-то всё-равно должен был случиться, и, чем позже, тем, возможно, последствия были бы ощутимее. Хотя удивительно: самого гадкого что ожидал - большого падения - не случилось . Зато случилось много мелких пакостей, которые ещё продолжаю вылизывать.
Удивительное в том, что нвидишные проприетарные дрова не откатывал и видео не отвалилось. Когда раньше пытался апгрейдиться до 14.04, или даже HWE новое поднимать, проблемы имел однозначно. Иксы падали и в одном случае инсталил панголина с нуля, а во втором плюнул, оставил каким-то макаром проапгрейженое ядро и какое-то ещё окружение, но остальное, включая видео-дрова пришлось вернуть руками. Потом ещё были попытки частичного апгрейда через доп-репы. Где-то викидвижок захотел свеженького пхп, где-то ещё что-то. В результате система была несколько раскорячена.
Думаю, что проблемы с дровами в этот не возникли потому, что версия оказалась "зафиксирована". Когда-то ставил дрова из пакета, взятого с сайта nvidia. И при предыдущем апгрейде это-то и сказалось. Перед этим разом очередное обновление дров привело к каким-то гнилым эффектам, в попытке борьбы с которыми в итоге прикрутил альтернативный репозитарий, в котором версия на два номера опережает каноникал. Соответственно, когда случился апгрейд, апгрейдить дрова оказалось не нужно.
Неупавшие иксы - это здорово. К этому времени я, конечно, уже поднаторел в восстановлении системы и пакетов руками, разобрался какой именно из nvidia-N мне необходим, но маленький терминал 80*25 — это жутко неудобно. :)

Если не забуду, позже ещё опишу на какие грабли пришлось наступать и как их обходил.

16.04

Jan. 30th, 2017 08:46 am
crower: (Default)
Ну, что? Прошёл почти месяц обкатки этой дикой белки. Что у меня есть вам сказать? ;)
"Ну и дрянь эта ваша белка!" ©

Сначала, конечно, подгадила nvidia. Вот чего такого они там учудили, что система в отношении памяти стала раза в два прожорливее? Если бы не пришлось прикручивать нвидишный репозитарий в надежде что там-то дрова могут быть с починены, так бы и оставался на панголине. Теперь я к нему отношусь с особой нежностью. Хотя, и его немного подпортили юнитями. Ну да хрен бы с ним.

Далее.
Да, машинка не самая сильная — M2N-MX/AMD Athlon 64x2 2.2GHz/2Gb. Но этого всегда было более чем достаточно для всяких потребностей. Из игрушек если что и запускается, то только самое неприхотливое, типа warzone. В основном — терминалы и браузер.

Кто бы мог подумать что и для браузера станет не хватать памяти. Я уже даже встроенной видюхе аппетиты поубавил — не помогает. Пришлось, смешно сказать, переползти сначала на metacity, а потом и вовсе на xfce. Но — не панацея. Но зато как-то худо-бедно крутится. Даже если libreoffice запустить. Но не долго. Если много правок, то LO тоже память отъедает не по детски.

Хотя, пятый libreoffice работает гораздо шустрее чем третий. Впрочем, я его проапгрейдил ещё до перехода на белку. И то только потому, что как-то третий умудрился увидеть апдейты, а когда до загрузки дело дошло, они оказались уже не доступны. И эта зараза постоянно предлагала обновиться, хотя обновляться было нечем. :D

Ну и по поводу systemd хочется сказать. Рюшечки — это прикольно, конечно, но загружаться система стала в полтора раза медленнее.

Переключалка раскладок в unity — это вообще позор какой-то. Ну где это видано, чтобы переключиться на русский, вводить "ПОЗОР!!!", а получить "GJЗОР!!!" или даже "GJPJР!!!". Да-да — эдакий race condition! Такое ощущение, что переключение раскладки идёт не просто через другие программные блока, а как-будто для этого производится запуск тулзы, которая в кейбордовый драйвер загружает новую карту и поэтому так всё запаздывает.
Ну, к счастью, в metacity работает переключалка другая — но не умеет отображать это на индикаторе. Зато в xfce есть свой индикатор, который замечательно переключается. Отдельный бальзам, что можно сделать нормальное одноклавишное переключение. Какому идиоту пришло в голову, что переключать раскладки двух- и трёх-кнопочными комбинациями — это удобно? Когда некоторые из периодически используемых символов находятся в другой раскладке переключаться приходится довольно часто, и раскорячиваться на 2/3 клавиши не совсем не удобно. А уж если они расположены совсем не под руками (а что под руками, то всё поюзано), то приходится постоянно менять расположение рук. Какая уж тут эргономика? А про то что те-же клавиши нельзя будет использовать в сочетаниях - я вообще молчу. Но эта бадяга появилась ещё раньше - как раз в панголине я плевался на них.
crower: (Crower)
Среди прочих граблей столкнулся с тем, что при подключении с апгрейженой машины (до 16.04) по ssh к старому trustix (2.2) при запуске mc получаю:
mc
Screen size 0x0 is not supported.
Check the TERM environment variable.


Соответственно:


user@host ~$ set | grep TERM
TERM=xterm-256color


Тривиальное "решение" очевидно: TERM=xterm.
Но оно оскорбляет эстетическое чувство ;)
Сначала попытался тупо скопировать в /etc/termcap секцию xterm в новую xterm-256, но что-то не прокатило. Может они оттуда компиляться должны, но вглубь копать было некогда.
Поэтому, пошарившись по проапгрейженому компу позаимствовал /lib/terminfo/x/xterm-256color и записал в /usr/share/x/xterm-256color.
Бинго!

Сначала, конечно, попытался из симметричного каталога (/usr/share/x) скопировать xterm+256color. Но почему там плюс? Задумался, переименовал, но результат не понравился. Поэтому и воспользовался файлом с правильным названием, хоть на целевом хосте такого каталога не было предусмотрено. Размер, кстати, плюсового 1053, тогда как дефисного — 3417. Плюсовой файл переименовал обратно и оставил — вдруг пригодится. Там через пайпу там написано xterm 256-color feature.
crower: (Crower)
Наконец-то добился от убунты загрузки без необходимости ручного вмешательства.
Соображения в каком направлении нужно копать возникли при просмотре Xorg.log (собранного nvidia-bug-report) на очередной итерации плясок с бубном. К том времени nvidia-304 уже был установлен, но в логе почему-то мелькал nouveau. Получало объяснение камлание с modprobe nvidia-304. Следующий шаг напрашивается — снести своенравный nouveau: sudo apt-get purge nouveau. Не уверен что действие возымело полный эффект, так как судя по lspci -d "10de:*" -v -xxx эта зараза до сих пор может оставаться в ядре.
Дальше — заставить грузиться nvidia-304 хотя бы как модуль. Увы — вписать его в /etc/modules оказалось недостаточно. Изучаем логи снова.
[    83.576] (EE) NVIDIA(0): Failed to initialize the NVIDIA kernel module. Please see the
[    83.576] (EE) NVIDIA(0):     system's kernel log for additional error messages and
[    83.576] (EE) NVIDIA(0):     consult the NVIDIA README for details.
[    83.576] (EE) NVIDIA(0):  *** Aborting ***
[    83.576] (EE) NVIDIA(0): Failing initialization of X screen 0

Дальше проще: находим "module verification failed: signature and/or required key missing - tainting kernel" и обиды ureadahead на отсутствие libnvidia-glcore и libnvdia-tls. Дальше упоминание кучи неиспользуемых параметров и, наконец, "Module 'nvidia_304' is blacklisted".
Ну это-же совсем другое дело!
Идём в /etc/modprobe.d/nvidia-graphics-drivers.conf и вопреки предупреждению "# Do not edit this file manually" комментируем строку "alias nvidia nvidia_304".
Перегружаемся и вуаля! Загрузка проходит до самых иксов и спокойно логинимся в юнити (или в компизового гнома).

PS. Версию 132 заставить работать так и не смог. Какая-то там засада с копмизом. А вот 131 работает. Кстати, opencl-icd поначалу даунгрейдил синхронно, но потом оказалось что этот пакет можно оставить и 132.

Profile

crower: (Default)
crower

July 2017

S M T W T F S
      1
23 45678
910111213 1415
161718 19202122
23242526272829
3031     

Syndicate

RSS Atom

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 22nd, 2017 12:47 pm
Powered by Dreamwidth Studios