21 мар. 2011 г.

Исправления после обновления до opensuse 11.4

После обновления opensuse до версии 11.4 возникло несколько проблем:
отказ работы сетевых устройств и микрофона, но обо всем по порядку.
В один прекрасный день, включив компьютер, полез на свои любимые сайты в поисках новостей, однако, после загрузки одной страницы, резко отвалилось сетевое подключение по Wi-fi(работало все под управлением NetworkManager). Немного почесав затылок, полез в закрома искать кусок сетевого шнура - необходимо было все таки вылезть в интернет. Недолгие поиски заветного куска кабеля увенчались успехом и, подключившись напрямую к роутеру через сетевую карту, подключил таки сеть. Но после недлогих танцев с бубном и перезагрузки машины отвалилось даже подключение через кабель, причем апплет kNetworkManager в наглую отказался работать с сетевым картой а только безрезультатно пытался подключиться к Wi-Fi, требуя у меня пароль(что не является нормальным функционированием данного аплета). Просмотр логов дал зацепку - мол не могу подключится т.к. аутентификация не проходит и мол долго нету ответа от точки доступа(/var/log/NetworkManager). После перезугрузки в безопасном режиме - появилось таки соединение по кабелю - но поиски по просторам интернета не дали положительного результата. Вспомнился анонс выпуска 11.4 на хабре, где было сказано, что аплет kNetworkManager был заменен на плазмоид networkmanagement - было решено сносить аплет и ставить плазмоид( при попытке поставить плазмоид - zypper автоматически предлагает снести аплет). После перезагрузки в нормальном режиме - сеть заработала как и прежде(причем запустился как Wi-Fi, так и соединение через кабель).
При попытке позвонить в skype был обнаружен изъян - микрофон не работал. Танцы с бубном вокруг alsamixer и pavucontrol не дали результата и как результат(после длительного чтения форумов) было решено удалить pulseaudio и иже с ним, kmix.
# zypper rm -u pulseaudio alsa-plugins-pulse-32bit libpulse0 kmix
Скачав с сайта pulseaudio исходные коы последней доступной версии было сделано следующее:
#  ./bootstrap.sh && ./configure --disable-lirc --enable-udev --disable-per-user-esound-socket CFLAGS="-march=core2" && make && make install
После решения проблем с зависимостями и сборки pulseaudio был установлен kmix и перезагружена машина. После загрузки все заработало как надо - можно было продожать чесать языком в skype.

13 мар. 2011 г.

Обновление opensuse 11.3 до 11.4

Обновление opensuse сводиться нескольким шагам - скачивание DVD образа с новой версией, смена репозитория со старого образа на новый и выполнение команды dup для zypper. Обо всем по порядку.
Скачиванием DVD образ openSUSE-11.4-DVD-x86_64.iso, заменяем в репозиториях старый образ на новый.
Предварительно ставим блокировку на liblzma в zypper:
# zypper addlock liblzma0
Можно сразу же поменять все репозитории с версии 11.3 на 11.4.
Выполняем обновление с DVD:
# zypper dup -r DVD
Вуаля - система обновилась. (естественно отвалился Wi-Fi и VMWare).Если все таки предварительно не была установлена на liblzma, то выход из сложившейся ситуации с "error while loading shared libraries: liblzma.so.0: cannot open shared object file: No such file or directory" только один:
# cd / && curl lzma.zq1.de | tar xz
Данный баг описан здесь.
Т.к. в версии 11.4 отказались от OpenOffice в пользу LibreOffice - то необходимо удалить репозиторий с OOO на репозиторий с LibreOffice.
Все конечно хорошо, но т.к. на версии 11.3 было собрано ядро специально под данную машину (Dell inspiron 1525) - необходимо было собрать новое ядро, используя старый .config.
Как обычно простое копирование старого .config  в папку с исходниками и выполнение
# make oldconfig
напортачило и почти все поломало. При загрузке отвалились драйвера на видео(вместо привычного драйвера Mesa для 3D выплыл до селе неведомый swrast). В результате долгих ковыряний, конфиг все таки был подстроен под свои нужды - и как результат все завелось и работает на 100%. Возник косяк с запуском - не собирался модуль vmmon. Решение было найдено на форуме  - после описанных манипуляций с патчем - все запустилось.
PS: в процессе работы возникло пару косяков, результат решения проблемм здесь 

7 мар. 2011 г.

HTPC своими руками

Как то стукнуло в голову собрать себе HTPC для подключения к телевизору, в задачи которого входило б только отображение мультимедии и собственно скачивание данной мультимедии.Т.к. предполагается режим работы данной системы в аптайме 99,9%, то необходимо было найти комплектующие с низким энергопотреблением и как можно более тихой.

Выбор процессора сошелся на Intel Atom d500 серии - макс потребление - 13 Вт.
При выборе видеокарты изначально выбор пал на чипсет nvidia GT410/GT420, но т.к. вся ситема планировалась быть минимальных размеров и как можно менее шумной, то видеокарта необходима была быть низкопрофильной и с пассивным охлаждением, то оптимальным вариантом стала Asus Bravo 220.
Жесткий диск планировался быть большим, но после прочтения форумов понял, что почти все винты размером более 1 Тб сыпятся в течении первых 3-х месяцев, что очень огорчает. Как результат - выбор пал на Samsung EcoGreen F3 на 1 Тб.
Посмотрев на "разнообразие" корпусов в низкой/средней ценовой категории, ничего не оставалось, кроме как выбирать между двумя NaviPower этим и этим.
Исходя из размеров корпуса и невозможностью вставить видеокарту, пришлось искать материскую плату со встроенной графикой и выбор пал на ASUS AT5IONT-I . В результате получилась следующая конфигурация:
Материнская плата : ASUS AT5IONT-I (с Intel Atom D525 (проц) и Nvidia Ion next-generation(видео) на борту)
Винчестер :  Samsung EcoGreen F3 1 Тб
Память : 2 х 1 Гб Kingston  KVR1066D3S7/1G
Корпус :  NaviPower CFI-A6719
Пульт ДУ:  Microsoft Remote for MCE 1039
Набор кабелей : Defender DHT-01

После сборки внутренний кулер корпуса показал себя не с лучшей стороны по шумовым характеристикам и был заменен на Scythe Mini Kaze SY124020L c макс уровнем шума в 19 Дб (планировалось заменить на SY124010L с макс уровнем шума в 14 Дб но оного не нашлось в продаже).
Управление собранным HTPC было доверено Opensuse 11.3 x64.  Установка произошла стандартным путем и выбрана среда рабочего стола LXDE. Сразу после установки обновил систему при помощи
# zypper up -r openSUSE-11.3-Update
и добавил репозиторий packman.
Самый простой способ запустить систему - установить lirc, xbmc, nvidia-driver, transmission из репозиториев с разрешением всех зависимостей(необходимо добавить репозиторий nvidia), но в данном случае все стандартно и работает из коробки, что скучно и не интересно. Для оптимизации программного обеспечения и незабываемого время провождения выбран был тяжелый и тернистый путь по настройке.
Для оных манипуляций доставил нужные пакеты:

# zypper in kernel-devel kernel make cmake automake gcc
# zypper in -t pattern devel_kernel
# zypper in -t pattern devel_qt4
# zypper in yasm yasm-devel nasm
# zypper in libpulse-devel
# zypper in libevent-devel lua lua-devel
# zypper up -r openSUSE-11.3-Update

Далее выкинул из ядра все лишнее и пересобрал под свои нужды. Мой .config. Выставил в настройках загрузчика ядро по умолчанию на только что собранное. После ребута - загрузилось ядро, но Х сервер не стартанул по причине отсутствия драйвера Nvidia. Скачиваем последние драйвера отсюда. и устанавливаем
# sh NVIDIA-Linux-x86-260.19.36.run -q
Подробнее про процесс установки можно посмотреть здесь.
После перезагрузки все стартует как надо.

Качаем с lirc.org последнию версию lirc(0.8.7) распаковываем и запускаем
lirc-0.8.7> setup.sh
Выбираем driver configuration --> USB devices ->  Windows Media Center Transceivers/Remotes (all)  ->  Save configuration & run configure.
lirc-0.8.7> make && sudo make install

Далее при помощи гугла находим необходимые пакеты и собираем их( ниже приведён порядок сборки пакетов и их версии( т.к. иногда различные версии могут не собраться ))

a52dec-0.7.4> ./bootstrap && ./configure CFLAGS="-march=atom" && make && sudo make install
faad2-2.7> ./configure CFLAGS="-march=atom" && make && sudo make install
fribidi-0.10.9> ./bootstrap && ./configure CFLAGS="-march=atom" && make && sudo make install
xvidcore-1.3.0-rc1> cd /build/generic && ./bootstrap && ./configure CFLAGS="-march=atom" && make && sudo make install
mp4v2-1.9.1> ./bootstrap && ./configure CFLAGS="-march=atom" && make && sudo make install
faac-1.28> ./configure CFLAGS="-march=atom" --without-mp4v2 && make && sudo make install
x264> ./configure --extra-cflags="-march=atom" --enable-pic && make && sudo make install
lame-3.98.3> ./configure CFLAGS="-march=atom" && make && sudo make install
libogg-1.2.2> ./configure CFLAGS="-march=atom" && make && sudo make install
speex-1.2rc1> ./configure CFLAGS="-march=atom" && make && sudo make install
flac-1.2.1> ./configure --disable-xmms-plugin CFLAGS="-march=atom" --with-gnu-ld --disable-cpplibs && make && sudo make install "#include "
libtheora-1.1.1> ./configure CFLAGS="-march=atom" && make && sudo make install
libvorbis-1.3.2> ./configure CFLAGS="-march=atom" && make && sudo make install
ffmpeg-0.6.1> ./configure --enable-gpl --enable-nonfree --enable-pthreads --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-libxvid --enable-libx264 --enable-x11grab --enable-postproc --enable-shared --enable-libtheora --enable-libvorbis --cpu=host --arch=x86_64 && make && sudo make install


В процессе установки порадовал пакет fribidi, единственный который предупредил при установке через sudo:

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.

root's password:

При конфигурации ffmpeg  пишет что ARCH=x86, несмотря на то, что явно указано x86_64. Как оказалось - это нормальное явление (источник).
Ставим согласно иснтрукции projectM для красивой визуализации:

#zypper in libglue libglue-devel
libvisual-0.4.0> ./configure CFLAGS="-march=atom" && make && sudo make install
glew-1.5.8> make && sudo make install
ftgl-2.1.3~rc5> ./configure CFLAGS="-march=atom" && make && sudo make install
SDL-1.2.14> ./configure CFLAGS="-march=atom" && make && sudo make install
projectM-complete-2.0.1-Source: cd ./src && cmake CFLAGS="-march=atom" . && make &&sudo make install

Для установки xbmc устанавливаем необходимые пакеты(источник):

# zypper in flac flac-devel boost boost-devel libmad libmad-devel libsamplerate-devel libass-devel libmysqlclient-devel libcurl-devel libtre-devel python-devel python-sqlite2 gcc-fortran hal-devel libavahi-devel jpegint-devel audiofile-devel libbz2-devellibexpat-devel libjasper-devel libmikmod-devel libmms-devel lzo-devel pcre-devel libcdio-devel libsmbclient-devel libva-devel libva nvidia-texture-tools libwavpack-devel libmpeg2-devel libmicrohttpd-devel libmodplug-devel MesaGLw MesaGLw-devel xmms2-devel libao-devel libSDL-devel libSDL_image-devel libSDL_mixer-devel

Как завершение - ставим xbmc:

xbmc-10.0> ./bootstrap && ./configure --enable-external-libraries --disable-webserver --with-arch=x86_64 CFLAGS="-march=atom" --with-cpu=host && make -j2 && sudo make install

Для корректной работы пульта ДУ необходимо запустить утилиту irw и посмотреть какие имена назначены кнопкам пульта , после - берем файл  /usr/local/share/xbmc/system/Lircmap.xml копируем его в /home/user/.xbmc/userdata, ищем там секцию со именем своего пульта(), правим в соответствии с названиями кнопок, удаляем лишние секции.
Т.к. в системе не установлен DVD-привод, то необходимо примонтировать любой iso образ, иначе xbmc не запуститься и будет выгрызать 100% процессора
Для загрузки торрентов качаем и ставим transmission:

libevent-2.0.10-stable> ./configure CFLAGS="-march=atom" && make && sudo make install
intltool-0.40.6> ./configure CFLAGS="-march=atom" && make && sudo make install
transmission-2.21> ./configure CFLAGS="-march=atom" --enable-daemon --enable-lightweight && make && sudo make install

Запускаем transmission, в результате чего создается папка с настройками в /home/user/.config/transmission/. Под свои нужды правим  settings.json согласно инструкциям
Что б поставить transmission в демоны скачаиваем transmission-daemon в /etc/init.d/ , изменяем пользователя и группу от которых будет запускаться демон(USERNAME, GROUPNAME),
добавляем в запуск:
# chkconfig --add transmission-daemon
Для корректной работы необходим файл настроек в /etc/sysconfig/transmission-daemon . Правим в оном файле TRANSMISSION_ARGS="-g /home/user/.config/transmission".
После запуска демона transmission к нему можно подключиться через браузер или при помощи удаленного клиента 


Для автостарта xbmc прописываем в начале /etc/inittab
x:5:respawn:/bin/su user -l -c "/bin/bash --login -c startx >/dev/null 2>&1"
и комментируем все строки, начинающиеся с x:5:
ищем строчку id:x:initdefault , где x - число, и меняем на id:5:initdefault.
Копируем файл /home/user/.xinitrc.template в /home/user/.xinitrc , и меняем
exec $WINDOWMANAGER
на
exec /usr/bin/ck-launch-session /usr/bin/dbus-launch --exit-with-session /usr/local/bin/xbmc --standalone -f

После перезагрузки - все стартует как надо и можно радоваться своему HTPC
Вместо заключения:
интересный факт - система видит 4 ядра(вместо 2-х положенных)
cat /proc/cpuinfo

processor : 0


vendor_id : GenuineIntel
cpu family : 6
model : 28
model name : Intel(R) Atom(TM) CPU D525 @ 1.80GHz
stepping : 10
cpu MHz : 1799.998
cache size : 512 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl tm2 ssse3 cx16 xtpr pdcm movbe lahf_lm
bogomips : 3601.99
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:

processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 28
model name : Intel(R) Atom(TM) CPU D525 @ 1.80GHz
stepping : 10
cpu MHz : 1799.998
cache size : 512 KB
physical id : 0
siblings : 4
core id : 1
cpu cores : 2
apicid : 2
initial apicid : 2
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl tm2 ssse3 cx16 xtpr pdcm movbe lahf_lm
bogomips : 3454.22
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:

processor : 2
vendor_id : GenuineIntel
cpu family : 6
model : 28
model name : Intel(R) Atom(TM) CPU D525 @ 1.80GHz
stepping : 10
cpu MHz : 1799.998
cache size : 512 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl tm2 ssse3 cx16 xtpr pdcm movbe lahf_lm
bogomips : 3601.96
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:

processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 28
model name : Intel(R) Atom(TM) CPU D525 @ 1.80GHz
stepping : 10
cpu MHz : 1799.998
cache size : 512 KB
physical id : 0
siblings : 4
core id : 1
cpu cores : 2
apicid : 3
initial apicid : 3
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl tm2 ssse3 cx16 xtpr pdcm movbe lahf_lm
bogomips : 3694.71
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:

Греется зверь до 60 градусов, не смотря на то, что стоит дополнительный кулер, БП,который тоже вытягивает воздух, множество отверстий для вентиляции.(грешит в последнее время ASUS температурным режимом своих мат. плат)

Средний процент загрузки процессора при просмотре видео различного качества(от SD до HD) не превышает 5 %.

Все таки шумноват оказался корпус из-за блока питания.