Архив метки: gentoo

Переехал на Nouveau и проблемы с Kmail

Наконец-то избавился от nvidia-drivers. Причин было несколько, например не работал  фреймбуфер при переключении в констоль по Ctrl+Alt+Fn и не работала гибернация, т.е. suspend2ram. С nouveau всё прекрасно работает, за исключением Kmail, он крашится через несколько секунд после запуска. Как пишут на bugs.gentoo.org, нужно задать $CFLAGS и $CXXFLAGS опцию"-fno-delete-null-pointer-checks" и пересобрать пакет QtWebEngine. В данный момент электронный болван гудит, аки пылесос, пересобирая его. Будем посмотреть, поможет или нет.

Запуск игры Beholder в Wine

На днях посмотрел ролик, в котором игру Beholder обсуждают Лаврентий Августович и его помощник Шурка:

Заинтересовался, полез посмотреть игру в Steam, оказалось, что это пока открытая бета, ключ можно получить через официальный сайт, сама игра выходит осенью. Вот её краткое описание:

"Вы – управляющий дома, который… ШПИОНИТ за жильцами! Вы ставите жучки, обыскиваете квартиры, прослушиваете телефоны. Вы собираете компромат и строчите доносы. Или… Возможно, у вас есть другой выбор?"

В общем роман "1984" Оруэлла во всей красе. Итак, что нужно сделать, чтобы запустить игру в Linux?

Для начала, обновить Wine. Я пробовал запускать со стабильной версии 1.8.4, но игра выдала такую ошибку:

fixme:d3d:wined3d_get_format Can't find format WINED3DFMT_R16_UNORM (0x55) in the format lookup table

Погуглил и выяснил, что поддержка формата WINED3DFMT_R16_UNORM появилась только в Wine 1.9.3. Но если и обновлятся, то до последней версии, в моём случае это Wine-1.9.19-r1.

После обновления вылезла другая ошибка:

fixme:d3d:wined3d_dxtn_init Wine cannot find the txc_dxtn library, DXTn software support unavailable.

Нужно установить media-libs/libtxc_dxtn, причем я поставил 32-х битную версию, т.к. на одном форуме видел чела с такой же проблемой, но у него была установлена 64-х битная версия. Ему посоветовали поставить 32-ую и проблема решилась.

Практически всё, осталось запустить winecfg, на вкладке Приложения добавить файл Beholder.exe - находится по адресу ~/.wine/drive_c/Program Files (x86)/Steam/steamapps/common/Beholder/ и ещё я выбрал Версию Windows 8, не знаю, может и с Windows XP так же будет работать.

Щелкаем на Beholder.exe в окне Настройка приложений и переходим на вкладку Библиотеки, выбираем из списка d3d11, жмём Добавить, она появляется в окне ниже, щёлкаем по ней, жмём Изменить и в окне выбираем Отключить.

Если не отключить эту библиотеку, то игра запустится, но как только пойдёт ролик в начале, игра закрашится, т.к. Wine пока ещё плохо работает с DirectX11. А так игрушка будет работать через DirectX9.

Приятной игры 🙂

P.S. Почитал обсуждение игры в Steam - разработчики обещают нативную версию под Linux, но чуть позже.

Сборка dev-qt/qtwebkit-5.6.0 и создание swap файла

Третьего дня зашел на сайт Calculate Linux и узнал, что месяц назад начался переезд на KDE/Plasma5. Судя по каментам, всё работает более-менее стабильно, поэтому нужно было переезжать, тем более переезд был принудительный, KDE 4 перестал поддерживаться сообществом и всё такое.

И вот, система обновляется, всё нормально, пока дело не доходит до сборки dev-qt/qtwebkit-5.6.0

Выдаёт такую ошибку:

make[2]: Entering directory '/var/calculate/tmp/portage/dev-qt/qtwebkit-5.6.0/work/qtwebkit-opensource-src-5.6.0/Source/JavaScriptCore'
ruby /var/calculate/tmp/portage/dev-qt/qtwebkit-5.6.0/work/qtwebkit-opensource-src-5.6.0/Source/JavaScriptCore/offlineasm/generate_offset_extractor.rb llint/LowLevelInterpreter.asm LLIntDesiredOffsets.h
/usr/lib64/ruby/2.0.0/rubygems.rb:15:in `require': cannot load such file -- rubygems/compatibility (LoadError)
from /usr/lib64/ruby/2.0.0/rubygems.rb:15:in `<top (required)>'
from <internal:gem_prelude>:1:in `require'
from <internal:gem_prelude>:1:in `<compiled>'
Makefile.LLIntOffsetsExtractor:426: recipe for target 'LLIntDesiredOffsets.h' failed
make[2]: *** [LLIntDesiredOffsets.h] Error 1

Засоветовали пересобрать dev-lang/ruby и dev-ruby/rubygems - не помогло. Далее я обратил внимание, что установлено 2 версии ruby - 2.0 и 2.1.7. Переключение профиля  ruby20 на ruby21 через eselect ruby set ruby21 помогло решить проблему.

Но на этом проблемы не закончились. Дальше при сборке выдаёт такое:

x86_64-pc-linux-gnu-g++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://bugs.gentoo.org/> for instructions.
Makefile.WebCore.Target:151688: recipe for target '.obj/inspector/InspectorAllInOne.o' failed
make[2]: *** [.obj/inspector/InspectorAllInOne.o] Error 4
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/var/calculate/tmp/portage/dev-qt/qtwebkit-5.6.0/work/qtwebkit-opensource-src-5.6.0/Source/WebCore'
Makefile.WebCore:68: recipe for target 'sub-Target-pri-make_first-ordered' failed
make[1]: *** [sub-Target-pri-make_first-ordered] Error 2
make[1]: Leaving directory '/var/calculate/tmp/portage/dev-qt/qtwebkit-5.6.0/work/qtwebkit-opensource-src-5.6.0/Source/WebCore'
Makefile:178: recipe for target 'sub-Source-WebCore-WebCore-pro-make_first-ordered' failed
make: *** [sub-Source-WebCore-WebCore-pro-make_first-ordered] Error 2

Полез на багтрекер Gentoo - пишут, что скорее всего просто закончилась память.

Действительно, dmesg подтверждает:

[27324.991323] Out of memory: Kill process 6800 (cc1plus) score 125 or sacrifice child
[27324.991337] Killed process 6800 (cc1plus) total-vm:1123472kB, anon-rss:1051444kB, file-rss:0kB

Пришлось подключать дополнительно swap-файл, т.к. раздел для него на жёстком диске я просто не создавал, оперативной памяти в 8Гб всегда хватало.

Создаём файл:

sudo dd if=/dev/zero of=/swapfile bs=1G count=6

Заместо G можно подставить M и K, соответственно мегабайт и килобайт.

Значение count умножаются на значение bs, я создал файл размером в 6 гигабайт.

Создаем swap в файле:

mkswap /swapfile

Включаем его:

swapon /swapfile

После подключения swap'a сборка завершилась успешно.

Более подробно про создание, подключение и настройки своппинга написано здесь.

Разбираемся с Gentoo и MAKEOPTS=”-j${core} +1″

Восстанавливаю похеренный пост. Значится так, задался я вопросом оптимизации. Начал читать всякое, что еще можно в Gentoo подкрутить, чтобы система работала быстрее. И нашел один пост, автор (участник Gentoo Linux ARM Development, наверное что-то да соображает) пишет, что сборка по формуле j={core} + 1 чуть медленнее, чем просто j={core}.

Посмотрев на его результаты, решил проверить все на своем калькуляторе с 6-ти ядерным AMD Phenom II X6 1055T. Я выделил только результаты со значением j от 5 до 7, ибо понятно, что при значениях меньше 5 и больше 7 будет сильная регрессия. И потом, просто для интереса, добавил опции --load-average=6 и --jobs=6, а также переключил процессор в режим perfomance командой "cpupower frequency-set -g performance".

Сборка происходит в оперативной памяти, emerge собирает с опциями "-q1OB".

Опция -q уменьшает объем сообщений emerge, опция -B создает бинарый пакет, но не устанавливает его, -O устанавливает пакет без его зависимостей, -1 не заносит пакет в world файл.

Итак, приступим. Первый кандидат на тест - Firefox 40.0.2

Стандартные значения, процессор переключен в режим ondemand

job 5 = 19m27.126s
job 6 = 17m0.438s
job 7 = 17m17.294s

Процессор переключен в режим perfomance

job 5 = 18m44.965s
job 6 = 16m25.896s
job 7 = 16m39.971s

Добавлена опция --jobs=6

job 5 = 18m46.808s
job 6 = 16m26.300s
job 7 = 16m42.490s

Добавлена опция --load-average=6

job 5 = 21m6.846s
job 6 = 18m24.210s
job 7 = 19m10.559s

Потом последовал пакет Kdelibs 4.14.8, опции те же самые.

Процессор переключен в режим ondemand

job 5 = 9m18.974s
job 6 = 8m8.003s
job 7 = 8m20.969s

Процессор переключен в режим perfomance

job 5 = 8m51.200s
job 6 = 7m50.196s
job 7 = 7m58.345s

Добавлена опция --jobs=6

job 5 = 8m53.102s
job 6 = 7m50.039s
job 7 = 7m58.541s

Добавлена опция --load-average=6

job 5 = 9m3.678s
job 6 = 8m37.215s
job 7 = 8m52.021s

И на последок - сборка @system.

Вот что собиралось

>>> Emerging (1 of 44) sys-apps/man-pages-4.00::gentoo
>>> Emerging (2 of 44) sys-apps/util-linux-2.25.2-r2::gentoo
>>> Emerging (3 of 44) sys-apps/grep-2.21-r1::gentoo
>>> Emerging (4 of 44) sys-apps/kbd-1.15.5-r1::gentoo
>>> Emerging (5 of 44) sys-apps/busybox-1.23.1-r1::gentoo
>>> Emerging (6 of 44) virtual/service-manager-0::gentoo
>>> Emerging (7 of 44) sys-devel/binutils-2.24-r3::gentoo
>>> Emerging (8 of 44) virtual/man-0-r1::gentoo
>>> Emerging (9 of 44) sys-apps/net-tools-1.60_p20130513023548::gentoo
>>> Emerging (10 of 44) virtual/shadow-0::gentoo
>>> Emerging (11 of 44) virtual/modutils-0-r1::calculate
>>> Emerging (12 of 44) sys-apps/gawk-4.0.2::gentoo
>>> Emerging (13 of 44) app-arch/xz-utils-5.0.8::gentoo
>>> Emerging (14 of 44) sys-apps/sed-4.2.1-r1::gentoo
>>> Emerging (15 of 44) sys-process/psmisc-22.21-r2::gentoo
>>> Emerging (16 of 44) sys-fs/e2fsprogs-1.42.13::gentoo
>>> Emerging (17 of 44) sys-apps/file-5.22::gentoo
>>> Emerging (18 of 44) app-arch/bzip2-1.0.6-r6::gentoo
>>> Emerging (19 of 44) app-arch/tar-1.27.1-r2::gentoo
>>> Emerging (20 of 44) virtual/package-manager-0::gentoo
>>> Emerging (21 of 44) net-misc/rsync-3.1.1::gentoo
>>> Emerging (22 of 44) sys-apps/openrc-0.17::gentoo
>>> Emerging (23 of 44) virtual/editor-0::gentoo
>>> Emerging (24 of 44) sys-apps/coreutils-8.23::gentoo
>>> Emerging (25 of 44) sys-devel/make-4.1-r1::gentoo
>>> Emerging (26 of 44) sys-process/procps-3.3.9-r2::gentoo
>>> Emerging (27 of 44) sys-apps/iproute2-3.19.0::gentoo
>>> Emerging (28 of 44) virtual/ssh-0::gentoo
>>> Emerging (29 of 44) virtual/dev-manager-0::gentoo
>>> Emerging (30 of 44) sys-apps/findutils-4.4.2-r1::gentoo
>>> Emerging (31 of 44) virtual/os-headers-0::gentoo
>>> Emerging (32 of 44) app-arch/gzip-1.6::gentoo
>>> Emerging (33 of 44) net-misc/wget-1.16::gentoo
>>> Emerging (34 of 44) sys-apps/which-2.20-r1::gentoo
>>> Emerging (35 of 44) net-misc/iputils-20121221-r1::gentoo
>>> Emerging (36 of 44) virtual/pager-0::gentoo
>>> Emerging (37 of 44) sys-apps/diffutils-3.3::gentoo
>>> Emerging (38 of 44) sys-apps/baselayout-2.2::gentoo
>>> Emerging (39 of 44) sys-apps/less-478::gentoo
>>> Emerging (40 of 44) app-shells/bash-4.3_p39::gentoo
>>> Emerging (41 of 44) sys-devel/patch-2.7.5::gentoo
>>> Emerging (42 of 44) virtual/libc-0::gentoo
>>> Emerging (43 of 44) sys-devel/gnuconfig-20150308::gentoo
>>> Emerging (44 of 44) sys-devel/gcc-4.8.4::gentoo

Процессор переключен в режим ondemand

-j5 = 48m32.519s
-j6 = 46m2.547s
-j7 = 46m39.452s

Процессор переключен в режим perfomance

-j5 = 28m55.455s
-j6 = 28m27.521s
-j7 = 29m15.811s

Добавлена опция --jobs=6

-j5 = 29m13.803s
-j6 = 27m6.803s
-j7 = 27m18.675s

Добавлена опция --load-average=6

-j5 = 37m52.365s
-j6 = 35m25.080s
-j7 = 35m47.117s

Как видно, при значении опции j={core} компиляция проходит чуть быстрее. И еще в скрипте сборки в оперативной памяти (которым всегда пользуюсь, ссылка в начале поста) я добавил переключение процессора в режим perfomance в начале сборки и возврат в режим ondemand после её окончания ибо это дает дополнительный прирост скорости.

 

Калька навернулась

После большого обновления (~ 350 пакетов) перестали работать мышь и клавиатура в Xorg. У других еще и сеть отвалилась, проблемы с ldap.

По поводу мыши и клавиатуры. Переборка xf86-input-* ни к чёму не привела. Упорная пересборка @system, @x11-modules-rebuild, колдовство с xorg-drivers, nvidia-drivers и т.д. тоже. Затем в логах Xorg обнаружил такую строчку:

"The server relies on udev to provide the list of input devices. If no devices become available, reconfigure udev or disable AutoAddDevices."

Оказывается, каким-то образом udev удалился из runlevels. Запихнул его обратно (rc-update add udev sysinit), клавиатура с мышью заработали.

Новый зомбоящик K47DS712

Приобрел себе телевизер марки DNS - K47DS712. Хотел изначально взять телек фирмы Гнусмас UE40F6400, но пока я чесался, его раскупили. В комплекте - 3Дэ очки, очки SyncView - для вывода сигнала с 2-х разных источников, через эти очки кажет каждому свое, чтобы не было битв за телевизор. Звук идет пока по старинке - с одного источника через колонки телевизора, а с другого через наушники.

Что имею сказать по поводу покупки. Кабельное я не подключал (хотя кабель от него проложен в комнате) и подключать не буду, так что сказать о качесте показа цифровых и аналоговых каналов ничего не могу. Агрегат брался для играния в PS4 и просмотра фильмы в офигитительном качестве. Поэтому требования были такие - наличие Wi-Fi, SmartTV (установлен Android 4.2.1).

Прежде чем купить телевизор, почитал отзывы - там рекомендуют сразу обновить прошивку, подрихтованную народными умельцами. Лично у меня без данного обновления телек не хотел подцепляться через Wi-Fi к роутеру. Дальше на сервер был поставлен Plex, в gentoo он обзывается plex-media-server, доступен через Layman в нескольких оверлеях, рекомендую ставить с "megacoffee", там свежая версия. Изначально поставил из "stuff", который создал Megabaks (я уже писал о его статьях про оптимизацию Gentoo), но там не совсем новая версия и с сайта нужный .deb пакет уже удален.

Главная пляска началась при попытке воспроизведения видеофайлов с сервера через Plex. Сначала не мог найти нормальную программу для работу с Plex, сам клиент для Android платный. Стал заходить через браузер на IP Plex'a и смотреть через браузер. Фильмы в 720р казало нормально, а вот в 1080р уже начинались подзаикивания и притормаживания, плюс не работала кнопочка для включения 3Дэ, было написано, что данная программа не поддерживает эту функцию. Сначала грешил на Plex, что это он плохо транскодирует, не хватает мощности процессора, запустил top на сервере -  процессор практически не загружен. Решил попробовать через Samb'y - поставил, скачал клиент на телевизор - требует пароль и логин, хотя в настройках стоял доступ для всех. Вычитал в интернете, что в качестве DLNA клиента рекомендуют BubbleUPnP, а в качестве плеера MxPlayer.  Поставил, включил Аватара в 3Дэ - заработали кнопки 3Дэ и DTS на пульте, все кажет без запинок. Пробовал скормить другого Аватара  у которого 120 кадр/сек, вот тут уже пошли запинки, из-за большого колличества кадров в секунду, как я понял. Комп тоже нормально не воспроизводит - звуковая дорожка "убегает" вперед (или видео отстает). Возможно, если покопаться с настройками Mplayer'a, то все будет воспроизводиться нормально, но нет желания.

В общем вывод такой - своих денег телевизор стоит.

Wi-Fi, установка Gentoo и прочее

Давненько не писал сюда, хотя поводов хватало - всякое было с моей любимой генточкой. сейчас, пока сижу на больничном, можно и написать всякое, ибо делать совсем нечего.
Итак, 1-ое - на ноуте переехал с freeBSD на Gentoo. вроде все нормально, кроме одного - при входе в админку сайта, после ввода логина\пароля, апач просто напросто сегфолтится и залогинится не получается. На ноуте я был авторизован, поэтому в админку мог попасть спокойно, все работало, за исключения логина.
Потом удачно навернулся блок питания на ноуте, поэтому пришлось забрать блок питания со старого бука, пока пользуюсь им, соответственно поэтому сайт в ауте.
при переезде была одна особенность -  ядро на установочном диске Gentoo было старое, 2.6.18 или 19, и вот, после chroot'a и обновления coreutils до 8.8, перестали собираться программы, ругался touch, что не может создать файл. Сначала нашел на форуме такое решение - вытягивание и пересборка из исходников около 30 системных утилит. Поискал дальше - оказалось, что можно всего-то откатить coreutils на предыдущую версию - 8.5. После этого обновил ядро и coreutils - все нормально работает.
Теперь решил заняться Wi-Fi'ем на ноуте. Теперь его стали часто дергать в другую комнату, а у него появилась еще одна болячка - при выдергивании шнура он отключается. Причем, когда втыкаешь шнур обратно - загорается индикатор зарядки батареи. Ну а при каждом отключении, нужно заного настраивать подключение к Wi-Fi-сети. Скрипт /etc/init.d/net.wlan0 требует wpa_supplicant. Ставим его (причем сеть без шифрования). В /etc/wpa_supplicant/wpa_supplicant.conf достаточно добавить

network={
ssid="essid_name"
key_mgmt=NONE
}

а остальные параметры должны быть прописаны в /etc/conf.d/net.
И еще, чтобы не перезаписывался /etc/resolv.conf (без клиента dhcp) нужно в /etc/conf.d/net добавить такое
dns_servers_wlan0=("ip адрес DNS")
Вот как-то так.

С выходом из анабиоза

Пролетело незаметно пол года. Итак, касательно веб-камеры – таки получилось ее завести (напоминаю, что это Creative Labs VF0470 live cam notebook, (id 041e:4068), звук и изображение нормальные.
Для этого нужно включить поддержку в ядре модуля ov519 и V4L, а также поддержку USB звуковых карт, чтобы заработал микрофон.
Сначала идем в Device Drivers –> Multimedia Support. Здесь нужно сделать модулем или вкомпилить в ядро Video For Linux и Enable Video For Linux API 1. Ниже есть пункт Video capture adapters, его тоже нужно отметить и в нем в самом низу есть пункт USB V4L devices, отмечаем его и в нем также отмечаем GSPCA based webcams и наконец-то в этом пункте выбираем OV519 USB Camera Driver. Возвращаемся в пункт Device Drivers и выбираем Sound card support, в этом пункте выбираем Advanced Linux Sound Architecture (ALSA), и практически в самом низу – USB sound devices и там отмечаем USB audio/MIDI driver. Все, сохраняем конфиг, собираем ядро.
Далее – нужно поставить пакет из портажей libv4l. Когда перезагрузитесь с новым ядром, скайп нужно запускать так:
export LD_PRELOAD=/usr/lib/libv4lconvert.so:/usr/lib/libv4l/v4l2convert.so skype. Дальше, по желанию, можно написать скрипт и сделать его исполняемым, чтобы каждый раз не выполнять лишнюю работу.
Ну а пока я возился с камерой, мой комп после перезагрузки отказался загружать xfce4 – просто наглухо вис и черный экран при startx, сейчас сижу, разбираюсь, в чем дело.

Сборка mplayer

Решил обновить систему на ноуте. И все валилось на сборке mplayer’a. Полазив по багзиле, обрадовался, что это не карма, а какая-то непонятная для меня фигня с компилятором. Нужно было обновить дерево портежей, пересобрать gcc и заново собрать mplayer. Гента все больше и больше радует, хоть какие-то телодвижения надо делать, не то что в Debian’e – aptitude update && aptitude safe-upgrade – и все, на этом все заканчивается.