Linux — Video streaming и iPad 2
Получив в своё распоряжение сей девайс и чуток поигравшись с ним захотелось чего-то бо́льшего нежели просто игры - например просмотр любого видео из домашней коллекции без необходимости синхронизироваться с iTunes. Программ такого рода оказалось довольно много - на любой вкус и цвет но, они все работают только под Windows или Mac OS X, печально - мне нужно чтобы работало в Ubuntu. Поискав ещё, удалось найти варианты с заявленной поддержкой Linux, «из коробки» они конечно же не запускаются.
В итоге получился интересный мануальчик (для (K)Ubuntu) по установке серверной части для программ Air Video и VLC Streamer.
Свой выбор я остановил на платной версии Air Video (есть и бесплатная но показывает в списке к просмотру не все файлы на компьютере) т.к. у неё более дружественный интерфейс и имеется одна немаловажная особенность - перемотка видео на любую точку (как ролики на YouTube), в VLC же видео можно смотреть и перематывать только в пределах обработанного участка. Собственно вот небольшая табличка сравнения:
| Air Video | VLC Streamer | |
|---|---|---|
| Цена | $2.99 | $1.99 |
| Ограничения бесплатной версии | Есть - отображает не все файлы на ПК | Нет, поддерживается за счёт рекламы iAd |
| Кодирование на лету | Есть, вывод сразу в поток | Есть, вывод в файл + передача в поток |
| Перемотка | Есть | Есть, только в пределах перекодированного фрагмента |
| Очередь перекодирования | Есть, вывод в отдельный файл m4v (можно скопировать или перенести в iTunes) | Есть, только подготовка для дальнейшего просмотра. |
| Предпросмотр кодируемого видео | Есть | Нет |
| Изменение масштаба, усиление звука | Есть | Нет |
| Управление субтитрами | Есть | Вкл/Выкл |
| Выбор звуковой дорожки | Есть | Нет |
| GUI | Нет | Есть |
Linux — Debmirror и несколько зеркал
Debmirror это perl скрипт который применяется для организации зекала репозитория Debian или Ubuntu.
Однако сам по себе он делает только то, для чего предназначен и не каплей больше (но настроек у него от этого не меньше и сделать зеркало он может по-различным протоколам и с различными условиями). Что же делать если нужно организовать несколько зеркал?
Cacti — XBT Tracker statistics
И снова cacti. На этот раз выкладываю свой вариант шаблона для мониторинга XBTT т.к. тот, что выложен на официальном сайте, уже устарел да и вообще, говорят что он не работает, а у меня как раз есть рабочий
Архив с шаблоном и скриптом.
MD5:
Версия 0.2 для обновлённого вывода статистики в XBTT (добавились проценты у seeders и т.п.)
MD5:
Для работы нужны следующие программы:
- bash
- lynx
- awk
Установка:
1) Распаковать
2) Скопировать xbtt_stat.sh в /scripts/ (проверьте чтобы lynx и awk лежали там же где и в скрипте)
3) Импортировать шаблон
Cacti — MegaFon balance

Т.к. в смотрю каждый день то решил что было бы неплохо выводить туда и остаток средств на счету в -е.
Скрипт адаптирован для Московского региона но при желании легко переделывается под другой регион и даже под другого оператора (если оператор предоставляет такие данные для автоматического сбора и не ставит на них капчу).
Не забудьте убедиться что в в разделе Настройка Сервис-Гид -> Автоматический доступ выбрано "Доступ в «Сервис-Гид» открыт пользователям и автоматизированным системам".
Архив с шаблоном и скриптом.
MD5:
Установка:
1) Распаковать
2) Скопировать megafon.pl в /scripts/
3) Импортировать шаблон
ATI — 10.9 FGLRX не собирается в DKMS

Очередное обновление, очередное «исправление», новые ошибки...одним словом - ATI.
Симптомы - fglrx не проходит фазу компиляции в DKMS, build log показывает что-то такое:
Сбт Сен 25 16:09:51 MSD 2010
AMD kernel module generator version 2.1
doing Makefile based build for kernel 2.6.x and higher
/var/lib/dkms/fglrx/8.771/build/2.6.x
rm -rf *.c *.h *.o *.ko *.GCC* .??* *.symvers
make -C /lib/modules/2.6.32-25-generic/build SUBDIRS=/var/lib/dkms/fglrx/8.771/build/2.6.x modules
make[1]: Вход в каталог `/usr/src/linux-headers-2.6.32-25-generic'
CC [M] /var/lib/dkms/fglrx/8.771/build/2.6.x/firegl_public.o
CC [M] /var/lib/dkms/fglrx/8.771/build/2.6.x/kcl_acpi.o
CC [M] /var/lib/dkms/fglrx/8.771/build/2.6.x/kcl_agp.o
CC [M] /var/lib/dkms/fglrx/8.771/build/2.6.x/kcl_debug.o
CC [M] /var/lib/dkms/fglrx/8.771/build/2.6.x/kcl_ioctl.o
/var/lib/dkms/fglrx/8.771/build/2.6.x/kcl_ioctl.c: In function ‘KCL_IOCTL_AllocUserSpace32’:
/var/lib/dkms/fglrx/8.771/build/2.6.x/kcl_ioctl.c:196: error: implicit declaration of function ‘compat_alloc_user_space’
/var/lib/dkms/fglrx/8.771/build/2.6.x/kcl_ioctl.c:196: warning: return makes pointer from integer without a cast
make[2]: *** [/var/lib/dkms/fglrx/8.771/build/2.6.x/kcl_ioctl.o] Ошибка 1
make[1]: *** [_module_/var/lib/dkms/fglrx/8.771/build/2.6.x] Ошибка 2
make[1]: Выход из каталога `/usr/src/linux-headers-2.6.32-25-generic'
make: *** [kmod_build] Ошибка 2
build failed with return value 2
Чтобы обойти ошибку можно подождать пару недель, вроде обещали исправить в октябре - но это же слишком долго.
Решение
Сделать нужно следующее - от root открыть файл /usr/src/linux-headers-2.6.32-25-generic/arch/x86/include/asm/compat.h (или что у Вас сейчас используется), действие действительно и для x86 и для x86_64 архитектур (у меня например x86_64):
Мотаем вниз файла и видим строчку:
Между этой строчкой и последней фигурной скобкой ( } ) копируем и вставляем код:
{
struct pt_regs *regs = task_pt_regs(current);
return (void __user *)regs->sp - len;
}
(на самом деле не обязательно вставлять код именно в это место - просто на всякий случай, чтобы не вставить его в какую-нибудь другую функцию)
Сохраняем файл и пробуем переустановить fglrx. Теперь всё должно получиться
Не думаю что этот код что-то может сломать но после установки его можно удалить, если есть желание.
Kubuntu 10.04 — Эффекты и проприетарные драйвера для ATI

После обновления (а точнее после чистой установки) Kubuntu 10.04 установил проприетарные драйвера для своей ATI Radeon HD 4800 Series и как обычно что-то сломалось...на этот раз сломались эффекты рабочего стола (Через XRender работали но уж очень медленно). Что впрочем не удивительно т.к. дрова свежие и ещё толком не обкатанные. К тому же это ведь ATI...
Для справки - драйвера можно установить через jockey-kde или же:
sudo apt-get install linux-headers-`uname -r` fglrx fglrx-amdcccle fglrx-dev fglrx-modaliases
sudo aticonfig --initial
sudo reboot
Покопавшись в настройках обнаружил что эффекты будут работать если выставить флаг «Отключить внутреннюю проверку» в разделе Параметры системы - Рабочий стол - Эффекты рабочего стола - Дополнительно
Но нужно же что бы они работали и в обычном режиме
Для этого нужно проверить чтобы в соответствующих разделах xorg.conf были эти значения:
Option "AllowGLXWithComposite" "true"
EndSection
Section "Extensions"
Option "Composite" "Enable"
Option "DAMAGE" "Enable"
Option "RENDER" "Enable"
EndSection
После применения настроек эффекты работают и при отключении «Отключить внутреннюю проверку».
KDE 4.4.0 — Поломался Skype — Kubuntu 9.10
С горем пополам обновился на KDE 4.4.0.
Всё красиво но сломался Smooth Tasks и Skype.
По Smooth Tasks отписал автору (не у меня одного такая проблема), а вот Skype пришлось реанимировать своими силами.
Запуск из консоли выдавал вот такой листинг и Skype намертво зависал
bt_audio_service_open: connect() failed: В соединении отказано (111)
bt_audio_service_open: connect() failed: В соединении отказано (111)
QInotifyFileSystemWatcherEngine::addPaths: inotify_add_watch failed: Нет такого файла или каталога
(process:7282): GLib-GObject-CRITICAL **: /build/buildd/glib2.0-2.22.3/gobject/gtype.c:2458: initialization assertion failed, use IA__g_type_init() prior to this function
(process:7282): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed
(process:7282): GLib-GObject-CRITICAL **: /build/buildd/glib2.0-2.22.3/gobject/gtype.c:2458: initialization assertion failed, use IA__g_type_init() prior to this function
(process:7282): GLib-GObject-CRITICAL **: /build/buildd/glib2.0-2.22.3/gobject/gtype.c:2458: initialization assertion failed, use IA__g_type_init() prior to this function
(process:7282): GLib-GObject-CRITICAL **: /build/buildd/glib2.0-2.22.3/gobject/gtype.c:2458: initialization assertion failed, use IA__g_type_init() prior to this function
(process:7282): GLib-GObject-CRITICAL **: g_type_add_interface_static: assertion `G_TYPE_IS_INSTANTIATABLE (instance_type)' failed
(process:7282): GLib-GObject-CRITICAL **: /build/buildd/glib2.0-2.22.3/gobject/gtype.c:2458: initialization assertion failed, use IA__g_type_init() prior to this function
(process:7282): GLib-GObject-CRITICAL **: g_type_add_interface_static: assertion `G_TYPE_IS_INSTANTIATABLE (instance_type)' failed
(process:7282): Gtk-CRITICAL **: gtk_widget_style_get: assertion `GTK_IS_WIDGET (widget)' failed
Ничего лучше в голову не пришло как переустановить GKT темы.
Как оказалось gtk2-engines у меня установлено не было (а может оно и не нужно).
После чего зашёл в настройки внешнего вида и заново выбрал тему для GTK+ - оказалось этого достаточно т.к. Skype заработал
Версия Skype 2.1.0.81 (ИМХО предыдущая была лучше, эта иногда виснет).
Nginx — Как убрать вопрос «?» в строке адреса
Бывает необходимо сделать из адреса /index.php? просто /index.php (без ненужного вопроса). Для чего? Ну например для т.к. в индекс попадает страничка без вопроса в конце.
Помню что где-то видел решение, но где забыл, а заодно и забыл как это было сделано ![]()
Пришлось сделать своё, метод далеко не нов, но лучше я его запишу:
...
set $rr 0;
if ($request_uri ~ ^/index.php\?$) {
set $rr 1;
}
if ($request_method = POST) {
set $rr 0;
}
if ($rr) {
rewrite .* /index.php permanent;
}
...
}
Очень просто.
Ubuntu — Шифруем home и swap в Ubuntu 9.10 Karmic
При установке (K)Ubuntu 9.10 Karmic (alternate) на очередную виртуальную машину обратил внимание на вопрос системы о том, желаю ли я зашифровать домашнюю директорию, я конечно же ответил "Да". Но при этом вспомнил что у самого домашняя машина была установлена без данной опции (давно устанавливалась, ещё 8.10 кажется была). Вобщем решил и себе сделать "апгрейд", а заодно зашифровать home и swap разделы...
Стоит заметить, что, проще наверное было бы переустановить систему с включенной опцией шифрования, но это же не "gentoo way" ![]()
К тому же стандартная поставка использует для шифрования eCryptfs и не шифрует swap. В чём разница? Это два разных подхода - eCryptfs шифрует на уровне файлов, а LUKS это блочное устройство (/dev/sdb5). Это как SSL и IPSec. У каждого есть свои плюсы и минусы.
Так что инструкция только для ознакомления. Внимание, при неосторожных действиях вы можете потерять весь домашний раздел...вобщем, вы предупреждены.
Используя Linux Unified Key Setup (LUKS) установка шифрованного раздела происходит очень быстро.
Подготовка
Установим необходимые пакеты:
device-mapper должен быть активирован (если нет - перезагрузитесь):
crw-rw---- 1 root root 10, 60 2009-11-16 21:12 control
...с поддержкой шифрования:
Отлично. Всё готово, приступим.
Полезные команды MySQL








