Блог заядлого линуксоида

Противостояние opensource

VirtualBox & usb support Март 14, 2010

Filed under: Configuration and optimisation,packages,Utilities — pomatu @ 15:43
Tags: ,

Наонец я разобрался почему в арче полный виртуалбокс тормозит и глючит. Дело в том, что если ставить версию из репозитария, то ставиться версия OSE (опенсорсная, но без поддержки usb). А  если ставить из аура (virtualbox_bin) то ставится полная версия, со скриптом vbox_build_module который видимо глючный, так как модули шары фс и host-network (не NAT) не грузятся. Наконец я нашел решение – скомпилить пакет из аура, но не собирать модули скриптом, а поставить модули из репозитария (virtualbox-modules). В результате все работает прекрасно!

Как это сделать:

ln -s /etc/rc.d /etc/init.d

сделайте это на будущее – жить легче будет (:

yaourt -S virtualbox_bin virtualbox-modules virtualbox-additions

компилим сам виртуалбокс, ставим модули из репозитария, и ставим образ аддишнов из репозитария

Далее засовываем в секцию модулей в rc.conf нудные модули: vboxdrv vboxnetflt

Подгружаем их руками, или перезагружеемся…

Все! Виртуалбокс полностью функционирует!

 

VirtualBoyAdvance [link support] Март 8, 2010

Filed under: wine — pomatu @ 01:16
Tags: ,

VirtualBoy – лучший эмулятор моей любимой консоли gba. Но вот проблемма, игры в нем идут как-то через задницу. Все исправляет добавления файла vba-over.ini в папку с программой.

vba-over.ini:

http://www.no-intro.org/gbadat/tools/vbaother_20051224.zip

vba-link:

http://www.vbalink.info/download/vbalink172l.zip

 

kres-migrator Март 7, 2010

Filed under: Configuration and optimisation — pomatu @ 16:02
Tags: , ,

Мне порядком надоело искать инфу про то, как убирать окно kres-migrator’а при запуске kde4, поэтому запостю комманду сюда:

kwriteconfig –file kres-migratorrc –group Migration –key Enabled –type bool false

 

Jabber Shell Bot – теперь поддерживает русский Январь 12, 2010

Filed under: Bash scripts,Utilities — pomatu @ 20:13
Tags: , , ,

Есть много видов удаленного администрирования. Многие предпочитают граффику (vnc, rdp), многие старую добрую тру-консоль (sshd, telnetd). Но а если все эти навороченные сервера удаленного управления упали? Ничего не работает, никак не поднять, а файлы получить срочно нужно. Тогда спасает jabber shell bot. Казалось бы что за ненужная вещь по сравнению с теме ssh? Да вот только именно через него бородатые сисадмины зачастую и перезапускают ssh.

Теперь к делу:

jabber shell bot требует устанновленного perl’а.

Устанавливаем perl:

pacman -Sy perl

Скрипт требует библиотеки  Net::XMPP, Net::Jabber, utf8 и Encode. Устанавливаем их через cpan:

cpan

install Net::XMPP

install Net::Jabber

install utf8

install Encode

Вот сам скрипт: http://dpaste.org/E9np/

#!/usr/bin/perl
use strict;
use warnings;
use diagnostics;
use Net::XMPP;
use Net::Jabber;
use utf8;
use Encode;
# Список файлов конфигурации для перебора
my @configs = (
$ENV{'HOME'}.'/.jabber-shell', # Пользовательский файл конфигурации
'/etc/jabber-shell.conf', # Системный конфиг
);
# Хэш для хранения настроек
my %settings;
# Перебираем все файлы конфигурации
foreach my $config (@configs) {
# Если файл существует и доступен для чтения
if ( ( -e $config ) && ( -r $config) ) {
# Читаем конфигурацию
open(CONFIG, '<'.$config);
local $/ = undef;
my $config_data = <CONFIG>;
close(CONFIG);
%settings = eval($config_data);
# Выходим из цикла
last;
}
}
# Если не удалось прочитать настройки - завершаем работу
if (!%settings) {
die("Can't read settings!");
}
# Массив, в котором будут JID админов
my @admins = split(' ', $settings{'admins'});
# Определяем основные перменные
my $client = new Net::Jabber::Client();
my $presense = Net::Jabber::Presence->new();
# Определяем обработчики событий
$client->SetCallBacks(
'message' => \&on_message,
);
# Подключаемся к сети
# TODO: Обрабатывать ошибки подключения
$client->Connect(
'hostname' => $settings{'server'},
'port' => $settings{'port'},
);
my @connect = $client->AuthSend(
'username' => $settings{'username'},
'password' => $settings{'password'},
'resource' => $settings{'resource'},
);
# Устанавливаем статус
$presense->SetType("available");
$presense->SetStatus("");
$client->Send($presense);
# Функция обработки команд
sub process_command {
my $command = shift;
my $message = '';
# Если команда cd - пытаемся сменить директорию
if ($command =~ s/^cd([ ]+)//) {
if (chdir($command)) {
$message = 'Directory changed';
}
else {
$message = 'Directory NOT changed';
}
}
# Если какая-то другая - выполняем её и возвращаем результат
else {
# open(COMMAND, $command." 2>&1 |");
# local $/ = undef;
# $message = <COMMAND>;
# close(COMMAND);
$message = `$command 2>&1`;
$message = decode('utf-8', $message);
}
return $message;
}
# Функция обработки сообщений
sub on_message {
my $mid = shift || return;
my $msg = shift || return;
# Команда, которую будем выполнять
my $command = $msg->GetBody;
# Получаем JID отправителя
my $jid = new Net::XMPP::JID($msg->GetFrom)->GetJID("base");
# Перебираем админов
foreach my $admin (@admins) {
# Если сообщение от одного из них
if ($jid eq $admin) {
# Обрабатываем сообщение и посылаем ответ
my $reply = Net::Jabber::Message->new();
$reply->SetMessage(
'to' => $msg->GetFrom,
'body' => process_command($command),
);
$client->Send($reply);
}
}
}
# Цикл обработки сообщений
while (defined($client->Process)) {
}
# На всякий случай закрываем соединение
$client->Disconnect();

Скрипт настроен на работу с русским языком. Единственная проблемма, что он валится при любых бинарных символах, например: fl.

Конфиг для него должен находиться в пути /etc/jabber-shell.conf и выглядеть так: http://dpaste.org/z1Fu/

(
‘server’   => ‘jabber.org’,       # Сервер для бота
‘port’     => ’5222′,            # Порт сервера для бота
‘username’ => ‘username’,    # Имя пользователя на сервере
‘password’ => ‘password’,          # Пароль аккаунта бота
‘resource’ => ‘jabber-shell’,    # Ресур бота
‘admins’   => ‘pomatu@jabber.org’, # JID админов
)

Бот заканчивает работу, при первом вылете или дисконнекте, поэтому лучше сделать скрипт такого вида:

#!/bin/bash

while true

do

perl /path/to/perl/file/that/is/written/upper.pl

done

Согласен – это извращенно. Зато практично :)

Оффициальный сайт бота (без поддержки русского): http://jabber-shell.ylsoftware.com/

Вот и все на сегодня. Спасибо за чтение. Если вам понравилась статья – прошу оставить коментарий :)

 

Aegisub пакет – или горе компиляции… Январь 9, 2010

Filed under: Fucking ubuntu,packages,Utilities — pomatu @ 11:02
Tags: , , ,

Изходя из того, что пакет aegisub не компилится, я решил поискать уже скомпилиный пакет. И я его нашел!

Для того чтобы поставить его надо:

Arch Linux:

Добавить эти строки в конец /etc/pacman.conf:

Для 32-bit:

[ophion]
Server = http://emess.developersatlarge.com/packages/i686/

Для 64-bit:

[ophion-stable]
Server = http://emess.developersatlarge.com/packages/x86_64/stable

Затем запустить:

pacman -Syf ophion-aegisub --noconfirm

При установке будет заменятся пакет ffmpeg на ophion-ffmpeg. Его НАДО! заменить. Если его не заменять, то воспроизводится видео нормально не будет (программа будет зависать после трех секунд.) Если вам беспокоит то что какой-нибудь сраный gstreamer не будет его переваривать – то поставьте наконец mplayer.

Затем следует запустить это

cd /usr/lib

ln -s libopenal.so libopenal.so.0
ln -s libruby.so.1.9 libruby.so.1.8
ln -s libfaad.so.2 libfaad.so.1
ln -s libx264.so.67 libx264.so.65

Потом в самой программе:  Вид->Options->Video. Там нужно изменить “subtitle provider” с “csri” на “libass”. Все! Теперь программа прекрасно работает!

Mandriva 2009

Enable the /backports repository and install the ‘aegisubpackage. For details on how to do that see http://wiki.mandriva.com/en/Docs/Basic_tasks/Installing_and_removing_software#Advanced_use:_Backports_and_candidate_updates

Ubuntu:

http://workshop.connor.hu/ubuntu/deb/aegisub/

 

Аудио конвертер под Linux Январь 4, 2010

Filed under: Utilities — pomatu @ 19:45
Tags: , , ,

Честно говоря, конвертирование чего-либо под линуксом большая проблема для многих людей. Нужно перекапывать кучу манов, а форумы зачастую дают не самое простое решение. Кто-то не хочет тратить свое драгоценное время, или просто нет желания читать очередной унылый мануал на неродном языке. Так или иначе – я нашел замечательный конвертер, который не будет еб*ть мозги, и конвертирует “все во все”. Кроме того он позволяет конвертировать рекурсивно.

Поддерживаемые форматы:

aac ac3 aif aiff ape asf au avi avr bonk caf cdr divx fap fla flac flv ircam la lpac m4a m4b m4v mat mat4 mat5 mkv mmf mov mp2 mp3 mp4 mpc mpeg mpg mpp nist nsv nuv ofr ofs ogg ogm pac paf psp pvf qt ra ram raw rm rv sd2 sf shn smk smp snd spx svcd tta vcd vob voc w64 wav wma wmv wv

Тут указаны и видео форматы. Это значит что он без проблем достает из видеофайла звуковую дорожку.

Программа называется pacpl (Perl audio converter):

http://pacpl.sourceforge.net/

Что касается арчеводов, то pacpl лежит в aur’е, и вполне работоспособен, только он какого-то черта тянет за собой kdebase (нужно поправить PKGBUILD).

 

Бубунта – придержи пакеты Январь 4, 2010

Filed under: Fucking ubuntu — pomatu @ 18:20
Tags: ,

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

Блокируем наш любимый пакет flashplayer от обновления – в репозитарии обновления какой-то глючный пакет.

sudo apt-get install wajig
sudo wajig hold adobe-flashplayer

Собственно наверное вы поняли что wajig можно использовать для блокировки любого пакета. Удачи.

 

Конвертирование lossless (flac,tta + cue) в mp3 Январь 4, 2010

Filed under: Bash scripts — pomatu @ 14:25
Tags: , , , , ,

Если у вас есть файл с lossless музыкой (один со всем диском) и cue файл к нему, то этот скрипт поможет его порезать на отдельные, правильно названные (не “track 01″, а к примеру “01.Aluminia”, короче то, что написано в cue файле) mp3 файлы.

Требуемые пакеты shntool, ttaenc.
Все это присутствует в aur’е.

usage: cue2mp3 MUSIC_FILE [CUE_FILE]

#!/bin/sh
 set -e

ENCODE="cust ext=mp3 lame -b 192 - %f"
FORMAT="%n.%t"

FLACFILE=$1
CUEFILE=$2
echo $FLACFILE - $CUEFILE
if [ -z "$FLACFILE" ]; then
    echo "usage: cue2mp3 MUSIC_FILE [CUE_FILE]"
    exit 1
elif [ -z "$CUEFILE" ]; then
    DIRECTORY=$(dirname "$FLACFILE")
    BASENAME=$(basename "$FLACFILE" ".flac")
    CUEFILE="$DIRECTORY/$BASENAME.cue"
fi

shnsplit -O always -o "$ENCODE" -f "$CUEFILE" -t "$FORMAT" "$FLACFILE"
 

 
Follow

Get every new post delivered to your Inbox.