воскресенье, 6 сентября 2015 г.

Замена стекла крышки Nexus4 на carbon

После того, как в моем Nexus4 треснуло стекло, мне показалось интересной идея сделать новую вставку из карбона. Вариант просто наклеить карбоновый ламинат я не рассматривал, так как это все-таки не то. Ламинает на дает глубины картинки, как настоящий толстый карбоновый лист. Я использовал этот толщиной примерно 0.8mm
Вдохновил меня на это замечательный пост на xda-developers

В отличие от автора на xda-developers, у меня не было станка под рукой. Поэтому процесс и инструменты выглядели примерно так:

  • Удалил сначала старую крышку, использую термо фен. Делал аккуратно, так как она плотно приклеена к модулю беспроводной зарядки
  • Сделал бумажный трафарет и наклел его на карбоновую пластину
  • Dremel для резки . Вот с такой насадкой . Отрезать получилось довольно точно. Далее работа напильниками
  • Мелкие напильники для доведения граней до более-менее ровного вида. 
  • Мелкое сверло для отверстий под камеру и вспышку. Далее опять же, доведение напильником
  • Чтобы довольно толстый карбон хорошо сел и не выступал, я сточил ему грани.
  • Ну и в самом конце посадил на вот такую двустороннюю пленку
Итог мне понравился. Намного прочнее чем хрупкое и стекло. Ну, и внутренее удовольствие от созерцания карбона :)





суббота, 25 апреля 2015 г.

Автоматический бекап конфигов и скриптов в облачный git

Линукс особенная операционная система. Имяя лишь одни конфиги, можно восстановить систему в точно такое же состояние с нуля, даже если стереть все остальные директории.
Поэтому иметь их бекап просто необходимо.
Для себя я решил хранить все текстовые конфигурационные файлы в облаке используя систему гит. Что позволяет обеспечить

  1. просто удобный бекап, без страха что-то потерять.
  2. доступность с любой машины
  3. версионность и удобный просмотр всех сделанных изменений
  4. ведение нескольких версий логов при неоходимости

Звучит, отлично! Осталось только все настроить и сделать так, чтобы бекап был полностью автоматический.
Для себя я выбрал вариант коммитить раз в день вечером сами конфиги /etc, содержимое хоума, и также мои скрипты.

1. Для создания репозиториев я выбрал bitbucket , главным образом за неограниченное количество прайват репозиториев. Не вижу смысла кому-то светить конфиги или скрипты, используемые для личных нужд. Итак, завел на нем три репозирия : под /etc, хоум директорию и /usr/local/bin скрипты

2. Далее настроил доступ по ssh. Для этого надо сгенерить private/public пару ключей. Процесс очень хорошо описан на самом bitbucket. На данном этапе требуется только наличие private ключа на машине. Подкладываться он будет автоматически скриптом при коммитах.

3. Далее создаем локальные git репозитории на каждую директорию:
Имя вашего репозитория можно посмотреть в веб интерфейсе bitbucket

  cd /etc   
  git init   
  git remote add origin git@bitbucket.org:vasya_pupkin/configs.git 

4. Для хоума я также написал .gitignore файл, чтобы комиттить только конфиги. И исключать все остальное что , как оказалось может там лежать. Пример моего .gitignore для домашней директории:
  # exclude everything   
  /*   
  # excepting directories and files beginning with .   
  !/.*   
  #specifically exclude these cache directories   
  /.local   
  /.dropbox-dist   
  /.config/google-chrome*   
  /.config/MIB*   
  **/RecentDocuments   
  /temp   
  #exclude specifically different log files and cache everywhere   
  **/*ache   
  **/*humbnails   
  **/*.log   
  **/*core   
  **/*.swp   
  **/*.swo   
  **/*.bak   
  .xsession*   
  #exclude some common binaries   
  **/*.zip   
  **/*.png   
  **/*.jpg   
  **/*.jpeg   
  **/*.svg   
  **/*.so   
  **/*.dll   
  #exclude secured files   
  **/*ssh   
  **/*.kdbx

Для /etc также небольшой .gitignore
  **/ssh 


5. Чтобы автоматически коммитить изменения я прописал вот такой конфиг в fcrontab
  %nightly * 20-23 /usr/local/bin/backup_configs /home/myuser | systemd-cat -t backup_configs  
  %nightly * 20-23 /usr/local/bin/backup_configs /usr/local/bin | systemd-cat -t backup_configs  
  %nightly * 20-23 /usr/local/bin/backup_configs /etc | systemd-cat -t backup_configs


Данный крон конфиг будет запускать скрипт для коммита изменений один раз в день между 20 и 24.00 , как только сможет.
Добавленная в конец команда "| systemd-cat -t backup_configs" требует наличия systemd и перенаправляет весь вывод скрипта в системный журнал.
Логи удобно можно посмотреть командой
journalctl -t backup_configs --since today

6. Ну и собственно сам скрипт. Так как доступ настроeн по ssh, то скрипт каждый раз подымает ssh агента, и подсовывает ему private кей для логина. А потом этого агента киляет.
Скрипт также использует systemd-cat для записи в systemd журнал
#!/bin/bash
BACKUP_DIR=$1
RSA_KEY="/home/myuser/.ssh/git_key"

function cleanup {
    /bin/kill $SSH_AGENT_PID
}
trap cleanup EXIT

cd $BACKUP_DIR
echo "Backup $BACKUP_DIR" | systemd-cat -t backup_configs
if [ -z "$SSH_AUTH_SOCK" ] ; then
  eval `ssh-agent`
  ssh-add $RSA_KEY
fi

git add .
git commit -m 'automated backup' .
git push -u origin master


среда, 8 апреля 2015 г.

Конвертация 5.1 audio DVD (SACD и DVD-A) в линуксе

Фильмы с dolby звуком уже давно привычны , и все к ним привыкли.
Но вот audio dvd со звуком 5.1 довольно редки.
Мне совершенно случайно удалось послушать несколько 5.1 версий уже знакомых треков, и я просто влюбился в звук. Вроде мелодия знакомая, только впетатление как будто сменил колонки за 10 долларов на колонки за 1000 :)

Вобщем под впетатлением раздобыл несколько электронных рипов своих любимых артистов.
Все рипы были в  SACD либо DVD-A форматах. 
SACD представляет собой просто ISO и не открывается в линуксе вообще, 
DVD-A открывается, но слышится только шум, так как диск зашифрованный.

Вобщем после рытия , нашел три программы , которые ни в жизни бы не стал ставить просто так. Но альтернатив как говорится...

SACD:
Вот тут нашел iso2dsd и тут dsd2flac. Вот если что прямые линки:

Сначала запускал iso2dsd , потом dsd2flac. Обе программы отработали стабильно без ошибок примерно на 5 дисках. Что стало приятным сюрпризом, от бинарников, у которых даже сайта нет.
На выходе получается 24 битный 5.1 flac.

DVD-A:
Единственная программа , которую нашел под линукс это Dvd audio extractor. Под виндовс люди используют foobar, но заводить ради этого wine или виртуалку не хочется.
Я скачал 64 битные deb файлы Dvd audio extractor и просто распаковал. В моей gentoo все заработало.
Я сохранял в 24 битный 5.1 flac. Хотя программа позволяет сохранить и в другие форматы.

Dvd audio extractor  отлично поддерживает линукс и делает свою работу очень хорошо. Хотят за него ребята 38 долларов кстати. Я пока использовал 30 дневный триал. Как закончится буду думать , надо ли мне оно, или все таки foobar в wine :)

Да,  и моя конфигурация 64 Bit kernel 3.19.1, kde-4.14.6

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


воскресенье, 7 декабря 2014 г.

Настройка 5.1 audio в Gentoo

После покупки и установки по комнате 5.1 аудио системы+ресивера встало 2  вопроса
  1. как все это правильно подключить к ноутбуку и внешнему монитору который у меня имелись. Телевизора у меня нет, поэтому вариант с ним не расматривается.
  2. Как все правильно настроить в gentoo
Итак, по порядку:

Вывод цифрового сигнала с бука:


Мой ноутбук позволяет выводить цифровой звук через hdmi либо spdif. К порту hdmi уже подключен монитор. Ресивер поддерживает hdmi, spdif, аналоговые входы.
Сходу конечно показалось идеальной схема:
ноутбук -> hdmi кабель -> ресивер -> монитор.  Казалось бы , ничего лишнего , один кабель по которому ресивер забирает и звук и картинку.
И действительно , схема заработала, да только вот при одном условии, если я выбираю в настройках вывода на ноутбуке  FullHD 1920x1080 разрешение. С родным разрешением ноутбук. При родном разрешении монитора 2560x1080 ресивер просто выводит черную картинку. 
После недолгого гугления оказалось , что ресивер поддерживает только fullhd хотя технически его порты поддерживают hdmi 1.4a, и никаких кастомных разрешений. На форумах ссылались , что все ресиверы заточены под стандартные разрешения телевизоров FullHd или 4k, а вот кастомное 2560x1080 увы.
В итоге я просто купил spdif кабель , которым у подключить ноутбук напрямую к ресиверу.

Настройка gentoo

Скажу сразу, что звук стал играть сразу, оказывается все довольно тривиально.
Я пользуюсь pulseaudio , поэтому далее настройки через нее.
Для выбора основного устройства куда будет идти звук я использовал утилиту pavucontrol:



Собственно настройки в Advanced секции нужно чтобы сказать pulseaudio пробрасывать звук, закодированный в отличный от стерео формат напрямую на цифровой выход.

Далее понадобилось настроить еще видео плееры.

VLC - поддерживает вывод 5.1 звука через pulseaudio, поэтому настраивать ничего не надо. Просто поставил вывод звука через пульс:

  

Smplayer  - не поддерижвает вывод 5.1 звука через pulse audio, поэтому я переключил его выводить звук напрямую через alsa и spdif. Такой вариант менее предподчительный, так как мне не очень нравится идея настраивать вывод для каждой программы отдельно.


Собственно - alsa (0.1) мой spdif вывод, а галочка ac3/dts pass through.

После этого звук правильным образом выводится через цифровой выход:

  • При выводе обычных приложение как chrome или deadbeef звук выводится в формате стерео и ресивер сам раскдадывает его на дорожки
  • При выводе с vlc или smplayer звук выводится в 5.1 при наличии соответствующей дорожки

суббота, 9 августа 2014 г.

После рестарта PulseAudio устанавливает звук в ноль, решение

После перехода на pulseaudio (которое в gentoo стал требовать skype) появилась такая проблема. Всегда после ребута звук в колонках стоит на нуле.

Решение нашел на этом форуме

Соотвественно , в /usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf
поменял одну строчку:

 [Element Speaker]
 switch = mute
 volume = off
на
 [Element Speaker]
 switch = mute
 volume = merge

И все заработало. Оставалась только проблема , что этот файл будет перезатираться после каждой переустановки pulseaudio.
Только для Gentoo : чтобы сохранять изменение после переустановки, я создал патч unmute-on-reboot-patch и положил его в /etc/portage/patches/media-sound/pulseaudio/
Gentoo сам проверяет директорию /etc/portage/patches при установке пакетов и накатывает юзерские патчи если какие-то есть.Больше информации есть в gentoo handbook
Вот собственно и тривиальный патч:
--- pulseaudio-5.0/src/modules/alsa/mixer/paths/analog-output.conf      2014-01-21 05:39:57.000000000 -0800
+++ pulseaudio-5.0-patched/src/modules/alsa/mixer/paths/analog-output.conf      2014-08-09 17:08:02.993210383 -0700
@@ -62,7 +62,7 @@

 [Element Speaker]
 switch = mute
-volume = off
+volume = merge

 [Element Desktop Speaker]

 switch = mute

суббота, 28 июня 2014 г.

Решение проблемы с прыгающим курсором на Lenovo Y500

Всем хорош Lenovo Y500 для линукса, кроме своего кликпада
Кликпад - вот такой большой тачпад без хархварных кнопок.
Проблема заключалась в том , что кликать и скролить по такому тачпаду можно в любом месте. И эти два евента постоянно путаются.
Соответсвенно при каждом клике линуксовый драйвер пытался еще и скролить, отчего курсор дрожал и нажать хоть на что-то адски нервировало.
Для себя я проблему решил использованием мышки :(
С появлением 1.8 версии synaptics клики починили, но тачпад стал отваливаться после каждого multi finger scroll

Сейчас наконец-то сделали фикс, и отлично работает абсолютно все !
Надо поставить:
Минимум 1.8 версии synaptics драйвера:
  x11-drivers/xf86-input-synaptics-1.8.0
А также библиотеке libevdev минимум 1.2.2 версии
  dev-libs/libevdev-1.2.2

Спасибо разработчикам, что наконец починили эту крайне неприятную штуку :)

суббота, 22 марта 2014 г.

Стриминг звука или(и) видео с Gentoo по сети через VLC

Люблю сутра посмотреть футбол . Жена еще спит и будет не хочется. Соответственно наушники. втыкаю в комп и смотрю на мониторе.

Но провод у них короткий, достает только метр от монитора. А так как монитор большой, хочется смотреть с удобного диванчика на другом краю комнаты :) причем слушая звук из наушников.
Знаю, что самое классное решение - bluetooth гарнитура. но у меня ее под рукой не оказалось.

Поэтому решение чуть сложнее, используя стриминг:
1. На компе запускаю vlc, который стримает звук по сети. 
    Сделать это можно вот такими командами:
cvlc http://192.168.1.3:5678 --sout='#transcode{vcodec=none,acodec=mp3,ab=1,channels=2,samplerate=44100} :http{mux=ffmpeg{mux=MP3},ttl=0,dst=:8080/'
где http://192.168.1.3:5678 - это адрес sopcast трансляции, запущейнной через sopcast-bin.               Впринципе можно запускать любой источник.
dst=:8080 - говорит, что стриминг будет идти с порта 8080
            
Вот на всякий случай команда, чтобы стримать тоже самое, но вместе с видео:
сvlc http://192.168.1.3:5678 --sout='#transcode{vcodec=none,acodec=mp3,ab=128,channels=2,samplerate=44100} :http{mux=ffmpeg{mux=MP3},dst=:8080/'

2. Далее на своем андроиде запускаю Ultimate Media Player. Опытным путем было подобрано, что в этом плеере практически нулевая задержка

3. Все, можно втыкать наушники в телефон у слушать звук с него, при этом имея видео на большом экране

Да, ну и bluetooth наушники для этого дела, конечно лучше, так как задержки не будет вообще.