пятница, 14 декабря 2012 г.

Debian и firefox по умолчанию.


После установки Хрома он прописывается в запуск по умолчанию. Что бы вернуть firefox в "default" необходимо выполнить:

update-alternatives --install /usr/bin/x-www-browser x-www-browser /usr/lib/firefox/firefox 100
update-alternatives --set x-www-browser /usr/lib/firefox/firefox

вторник, 27 ноября 2012 г.

Как научить NetBeans работать с интерфейсом только на английском языке


NetBeans определяет язык по настройкам локали. Если локаль русская, он и подсунет русский язык в интерфейс. Как его от этого отучить.

в каталоге с установленным NetBeans находит etc/netbeans.conf

Добавляем в конец строки netbeans_default_options="....." параметра  --locale en:US
Т.е. получим что-то вроде

netbeans_default_options="......... --locale en:US"

четверг, 15 ноября 2012 г.

Convert EPS to JPG


Имеем исходный файл myfile.eps, получаем myfile.jpg

gs -sDEVICE=jpeg -dJPEGQ=100 -dNOPAUSE -dBATCH -dSAFER -r300 -sOutputFile=myfile.jpg myfile.eps

При этом создается файл с лишними полями и т.п. Подрезать его можно с помощью

mogrify -trim -resize 800x600 myfile.jpg

среда, 14 ноября 2012 г.

udev и права на устройство


Если потребовалось задать права при создании (подключении) устройства usb, можно добавить правило. Создаем в /etc/udev/rules.d файл с именем 55-usbhid.rules

и содержанием:

SUBSYSTEM=="usb", ATTR{bInterfaceClass}=="03", MODE:="0666"

либо 


SUBSYSTEM=="usb", ATTR{idVendor}=="16c0", ATTR{idProduct}=="05d0", MODE:="0666"

первый вариант всем новым hid присвоит 666
второй вариант - только заданному в vendor/product

И перезапускаем udev
/etc/init.d/udev restart

пятница, 9 ноября 2012 г.

Glassfish 3.1.2 и проблема mysql авторизации

Тема уже не новая, но нашелся досадный баг. Все настроено по многочисленным мануалам и не раз, но логин и пароль пользователя не проходит.

В расширенных логах glassfish отыскалась такая строка:

Caused by: java.sql.SQLException: No database selected

Скорее всего при установке соединения (JDBC Connection Pool) не подхватывает имя базы, хотя ping честно работает. В качестве обхода этого явления можно отредактировать параметр URL в виде:

jdbc:mysql://127.0.0.1:3306/yourbase?user=user&password=password

обратите внимание, URL все большие буквы, потому как есть там и Url - он не влияет на результат.

NetBeans и ошибка "Not a valid GlassFish Server installation"

Проблема получена с NetBeans 7.1.1 и Glassfish 3.1.2.2

Если Вы попытались настроить в NetBeans новый сервер Tools->Servers->Add server->Glassfish Server 3+ и заполучили ошибку "Not a valid GlassFish Server installation" то решить можно довольно не тривиальным способом - переименовать файл 

...glassfish3/glassfish/lib/install/applications/__admingui/WEB-INF/lib/console-core-3.1.2.1-SNAPSHOT.jar

в 

console-core-3.1.2.jar

Собственно на этом все, ошибка устранена. Весьма досадное упущение со стороны NetBeans

Glassfish и non-root


Создаем пользователя glassfish (или как вам больше нравится):

groupadd glassfish
useradd -s /bin/bash -d /home/glassfish -m -g glassfish glassfish

необходимо изменить собственника на каталог с установкой glassfish - к примеру /opt/glassfish3


chown glassfish.glassfish /opt/glassfish3/ -R

Теперь запустим и остановим вручную из-под нашего юзера:

 su -l glassfish -c "/opt/glassfish3/glassfish/bin/asadmin start-domain"

получим запрос на ввод пароля для admin
Enter an admin password for user "admin"> 
вводим пароль дважды и проверим на порту 8080 ответ от сервера и на 4848 войти как "admin" 
(в дальнейшем сменить пароль можно "asadmin> change-admin-password" )
Если на 4848 логинится с внешнего ip - получим ошибку "Configuration Error
Secure Admin must be enabled to access the DAS remotely. " - решается с помощью
asadmin> enable-secure-admin
вводим логин admin и пароль и перезапускаем (stop-domain, start-domain)
и если все нормально - останавливаем:

su -l glassfish -c "/opt/glassfish3/glassfish/bin/asadmin stop-domain"


Изменим пароль "master":

/opt/glassfish3/glassfish/bin/asadmin change-master-password --savemasterpassword=true
вводим старый пароль "changeit", затем вводим новый два раза.


Теперь можно добавить скрипт автоматического запуска в /etc/init.d - соотвественно отредактировав его.
#!/bin/sh
GF_USER=glassfish
GF_HOME=/opt/glassfish3/glassfish
ASADMIN=$GF_HOME/bin/asadmin
DOMAIN=domain1
case $1 in
start)
start-stop-daemon -c $GF_USER --start --exec $ASADMIN start-domain $DOMAIN
;;
stop)
start-stop-daemon -c $GF_USER --start --exec $ASADMIN stop-domain $DOMAIN
;;
restart)
start-stop-daemon -c $GF_USER --start --exec $ASADMIN stop-domain $DOMAIN
start-stop-daemon -c $GF_USER --start --exec $ASADMIN start-domain $DOMAIN
;;
*)
  echo "Usage: /etc/init.d/glassfish3 {start|stop|restart}"
  exit 1
;;
esac
exit 0

Меняем права для запуска:

sudo chmod a+x /etc/init.d/glassfish3
И добавляем, если нужно, в автозагрузку:

sudo update-rc.d glassfish3 defaults




суббота, 27 октября 2012 г.

Debian + wine и ошибка - "It appears that libnss-mdns is installed on your system"


Если при запуске wine на Debian amd64 получили ошибку:

 It appears that libnss-mdns is installed on your system,
 but lib32nss-mdns is not. Please note that Wine will not be
 able to access the Internet unless you either install
 lib32nss-mdns (or ia32-libnss-mdns), or uninstall libnss-mdns

требуется установить lib32nss-mdns


aptitude install lib32nss-mdns


пятница, 19 октября 2012 г.

Debian + Java + usb + hid

Собственно сама "обертка"-wrapper http://code.google.com/p/javahidapi/


Можно скачать binary пакет.
Можно скачать исходники и скомпилировать их по инструкции (осторожно, присутствуют синтаксические ошибки вида "make C linux", очевидно, что требуется "make -C linux").
Понадобится пакет mercurial если его еще нет.

hg clone https://code.google.com/p/javahidapi/

Для сборки по их инструкции понадобились дополнительные пакеты:

aptitude install libusb++-dev libusb-dev java-gcj-compat-dev libudev-devel libusb-1.0-0-dev

Готовую библиотеку необходимо скопировать из lib/native/linux/ в /lib и /lib32:

cp ./lib/native/linux/libhidapi-jni-64.so /lib/libhidapi-jni.so
cp ./lib/native/linux/libhidapi-jni-32.so /lib32/libhidapi-jni.so

Что бы запустить пример как указано в инструкции ("ant run"), необходимо отредактировать 78 строку файла build.xml --- <jvmarg value="-Djava.library.path=${basedir}/mac"/>

т.е. пример жестко забит на использование "mac", а нам нужен "linux"
 противном случае получаем при запуске ошибки вида:

 [java] Exception in thread "main" java.lang.UnsatisfiedLinkError: no hidapi-jni in java.library.path



среда, 17 октября 2012 г.

Debian + Java + usb


Взято тут http://www.libusb.org/
Сама библиотека http://sourceforge.net/projects/libusbjava/
Описание по установке http://libusbjava.sourceforge.net/wp/?page_id=8

Нужна LibusbJava - есть два варианта - либо ставим из sid пакет libusb-java-lib либо собираем сами. Для сборки понадобятся сами исходиники

svn checkout https://libusbjava.svn.sourceforge.net/svnroot/libusbjava/
(если нет svn - aptitude install subversion)


и пакеты:

aptitude install libusb++-dev libusb-dev java-gcj-compat-dev

Затем в каталоге LibusbJava выполняем:

ant linux

и созданный файл libusbJava.so.0.2.4.0 копируем в /usr/lib, а так же делаем симлинк

ln -s /usr/lib/libusbJava.so.0.2.4.0 /usr/lib/libusbJava.so


понедельник, 8 октября 2012 г.

через NAT не открываются некоторые сайты

Прямо скажем - разочаровываюсь в любимом дистрибутиве, нигде ранее такого не встречал. Давно не занимался настройкой nat, пришлось вспомнить. Быстро набросал правила и все вроде работает. Но вот беда - часть сайтов упорно не хотят у народа открываться. Коллектив женский - www.asos.com стал камнем преткновения.

Решилось прописыванием "магической" строки в правила файрвола:

$IPTABLES -o ppp0 -A FORWARD -p tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 800:1536 -j TCPMSS --clamp-mss-to-pmtu

но неприятный осадок остался.

Ejabberd и mysql


Настройка для mysql

** Качаем схему (схема есть в /usr/share/doc/ejabberd/examples/mysql.sql.gz)
wget https://git.process-one.net/ejabberd/mainline/blobs/raw/2.1.x/src/odbc/mysql.sql


** Создаём пользователя ejabberd:
$ mysql -p -u root
mysql> GRANT ALL ON ejabberd.* TO 'ejabberd'@'localhost' IDENTIFIED BY 'password';
пароль ставим свой

** Создаём базу данных ejabberd:
mysql> CREATE DATABASE ejabberd;
mysql> quit

** Загружаем схему в БД:
$ mysql -D ejabberd -p -u ejabberd  < mysql.sql

** настраиваем ejabberd на MySQL, прописываем в ejabberd.cfg:
%%{auth_method, internal}.
{auth_method, odbc}.
{odbc_server, {mysql, "localhost", "ejabberd", "ejabberd", "password"}}.
пароль ставим свой

** Указываем какие таблицы будут храниться в MySQL.
Список всех таблиц, данные из которых можно перенести в MySQL можно узнать посмотрев какие модули odbc присутствуют:
ls /usr/lib/ejabberd/ebin | grep mod | grep odbc
mod_last_odbc.beam
mod_offline_odbc.beam
mod_privacy_odbc.beam
mod_private_odbc.beam
mod_pubsub_odbc.beam
mod_roster_odbc.beam
mod_vcard_odbc.beam
т.е. находим в конфиге строки вида {mod_last,     []}, {mod_offline,  []}, и меняем их на {mod_last_odbc,     []},  {mod_offline_odbc,  []}, в соответствии со списком найденых модулей


** скачиваем модули подключения erlang к MySQL -- https://support.process-one.net/doc/display/CONTRIBS/Yxa - не работала на момент установки - было довольно продолжительное время "The system is currently under maintenance. Please, come back in a while. Sorry for the inconvenience." или берем
svn co https://svn.process-one.net/ejabberd-modules/mysql/trunk mysql

Компилируем с помощью скрипта build.sh (для этого нужен полный erlang иначе будет сообщение вида "mysql Crash dump was written to: erl_crash.dump")


Из каталога ebin копируем файлы *.beam к остальным модулям (файлы с расширением *.beam). В Debian это /usr/lib/ejabberd/ebin/

Рестартим ejabberd, но при этом может остаться висеть процесс /usr/lib/erlang/erts-5.8/bin/beam и модуль для mysql не подхватиться - его надо убить и затем запустить ejabberd.





воскресенье, 7 октября 2012 г.

Samba конвертирование пользователей из smbpasswd в базу tdb

Обновили samba и с ней новая схема хранения настроек.
В Debian это /var/lib/samba/secret.tdb

Идем в каталог, где хранится файл паролей smbpasswd для samba и в нем выполняем:

pdbedit -i smbpasswd:./smbpasswd



понедельник, 24 сентября 2012 г.

Конвертация pdf в epub, fb2

Сразу оговорюсь, pdf - подразумевается действительно текст и картинки, а не просто набор отсканированных страниц.

Из программ доступно http://calibre-ebook.com/  и инструкция к ней http://iworld-club.com/articles/pdf-epub-ibooks-ipad

Онлайн конвертер http://ebook.online-convert.com/


суббота, 22 сентября 2012 г.

Glassfish и Slackware

Качаем тут свежую версию Oracle GlassFish Server
http://www.oracle.com/technetwork/middleware/glassfish/downloads/index.html
в моем случае это ogs-3.1.2.2.zip

Распаковываем и переносим каталог glassfish3 в /opt

Создаем новый домен.

Запуск консоли админа /opt/glassfish3/bin/asadmin

Создаем домен командой
asadmin> create-domain _домен_
Отвечаем на вопросы (админ, пароль).


добавим в него JDBC-драйвера http://dev.mysql.com/downloads/connector/j/5.0.html
mysql-connector-java-5.1.20-bin.jar

Распаковываем и помещаем в /opt/glassfish3/glassfish/domains/_домен_/lib/ext

Запускаем домен
asadmin> start-domain


Заходим браузером на порт 4848 и авторизуемся. Если получено что-то вроде "Secure Admin must be enabled to access the DAS remotely" - необходимо разрешить доступ

asadmin> enable-secure-admin
Enter admin user name> admin
Enter admin password for user "admin">
и перезапустить домен.

Слева в меню Common Tasks -> JDBC нужно создать пул подключений (Connection Pool), ответив на вопросы. 2 экрана - вводим имя пула, выбираем нужный драйвер, url, логин и пароль к базе

После создания пула, можно добавить ресурс, который будет ссылаться на этот пул подключений. Имя ресурса будет использоваться Java-приложением для работы с СУБД. (JDBC Resource)
Вводим имя ресурса, выбираем пул. По завершении можно проверить подключение к СУБД. Для этого нужно открыть для изменения параметров пул соединений и воспользоваться кнопкой «Ping»

Glassfish + Mysql - настройка

Размещаем в /opt/glassfish3

Запуск консоли админа /opt/glassfish3/bin/asadmin

Создаем домен командой
asadmin> create-domain _домен_
Отвечаем на вопросы.

полезное описание http://pgtk.edu.ru/gooamoko/doku.php?id=java_glassfish_quickstart

добавим в него JDBC-драйвера http://dev.mysql.com/downloads/connector/j/5.0.html
mysql-connector-java-5.1.20-bin.jar

Распаковываем и помещаем в /opt/glassfish3/glassfish/domains/_домен_/lib/ext

Запускаем домен
asadmin> start-domain

Идем браузером на порт 4848 и авторизуемся. Если получено что-то вроде "Secure Admin must be enabled to access the DAS remotely" - необходимо разрешить доступ
asadmin> enable-secure-admin
Enter admin user name> admin
Enter admin password for user "admin">
и перезапустить домен.

Слева в меню Common Tasks -> JDBC нужно создать пул подключений (Connection Pool), ответив на вопросы. 2 экрана - вводим имя пула, выбираем нужный драйвер, url, логин и пароль к базе

После создания пула, можно добавить ресурс, который будет ссылаться на этот пул подключений. Имя ресурса будет использоваться Java-приложением для работы с СУБД. (JDBC Resource)
Вводим имя ресурса, выбираем пул. По завершении можно проверить подключение к СУБД. Для этого нужно открыть для изменения параметров пул соединений и воспользоваться кнопкой «Ping»

java 1.7 и Slackware 13


Пришла пора обновлять версию java.

Качаем с http://www.oracle.com/technetwork/java/javase/downloads/index.html
свежую версию JRE.
В моем случае это был файл jre-7u7-linux-i586.tar.gz

Распаковываем его и копируем каталог jre1.7.0_07
 в /usr/lib

Затем меняем (если там нет, то добавляем) в /etc/profile

export JAVA_HOME=/usr/lib/jre1.7.0_07/
export PATH=$JAVA_HOME/bin:$PATH

и проверяем вызов версии

$java -version

java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) Server VM (build 23.3-b01, mixed mode)

среда, 5 сентября 2012 г.

Проверка работы ntpd

/usr/local/bin/ntpq -c pe -c as

получим вывод с информацией по серверам и состоянию в виде:

remote refid st t when poll reach delay offset jitter
==============================================================================
gamma.h3x.no 129.240.64.3 3 u 7 64 377 39.283 8068.19 1101.40
*acacia.bilink.i 193.204.114.232 2 u 56 64 377 105.196 9002.56 260.485
+ns1.bvc-cloud.d 160.45.10.8 2 u 54 64 377 62.466 9125.29 220.933
stratum2-3.NTP. 129.70.130.71 2 u 42 64 377 101.781 7655.60 1107.56

ind assid status conf reach auth condition last_event cnt
===========================================================
1 21836 9074 yes yes none reject reachable 7
2 21837 9674 yes yes none sys.peer reachable 7
3 21838 9474 yes yes none candidate reachable 7
4 21839 9074 yes yes none reject reachable 7

понедельник, 3 сентября 2012 г.

Калькулятор - galculator

Простой, лаконичный. Перевод между DEC HEX OCT BIN одним кликом.

воскресенье, 2 сентября 2012 г.

не видимый курсор в mc на знаках табуляции

Очень раздражающий баг в в mcedit в gnome-terminal.

Один из вариантов - отключить отображение табуляции и пробелов в mc
в файле .mc/ini значения editor_visible_tabs и editor_visible_spaces установить в "0".

gcc-avr и error: attempt to use poisoned "SIG_UART_RECV"

Если при компиляции заполучили ошибки вида:
error: attempt to use poisoned "SIG_UART_RECV"
error: attempt to use poisoned "SIG_UART_DATA"

значит пришла пора уже забыть про эти константы и использовать новую их версию
USART_RXC_vect
USART_UDRE_vect

понедельник, 20 августа 2012 г.

Chrome и java

Если не запускаются java аплеты, необходимо чуть донастроить хром

mkdir /opt/google/chrome/plugins
cd /opt/google/chrome/plugins
ln -s _путь_где_у_Вас_jre/lib/_архитектура_процессора_/libnpjp2.so .

Хром должен сам подхватить плагин.

пятница, 27 июля 2012 г.

ТВтюнер Beholder X7 и видеовход

Есть на твтюнере beholder x7 видеовход - разъем типа "тюльпан" желтого цвета на дополнительном шнурке идущем в комплекте. Его канал 1, т.е. input=1

Для просмотра сигнала и тестирования можно использовать mplayer

mplayer -tv driver=v4l2:width=720:height=576:device=/dev/video0:input=1 tv://

понедельник, 23 июля 2012 г.

Glassfish и предупреждение Unable to set request character encoding to UTF-8

Если в логах Glassfish появляются строки вида:

WARNING: PWC4011: Unable to set request character encoding to UTF-8 from context /_приложение_ because request parameters have already been read, or ServletRequest.getReader() has already been called

То нужно явно указать кодировку utf-8 в glassfish-web.xml

<parameter-encoding default-charset="UTF-8">
</parameter-encoding>

Онлайн конвертер текста

http://0en.ru/

ICEFaces и окошко User Session Expired

При использовании ajax получаем вплывающее окно
========================
       User Session Expired
To reconnect click the Reload button on the
browser or click the button below
             Reload

========================
При этом в логах Glassfish отмечается строка вида:


WARNING: queued exception
javax.faces.application.ViewExpiredException: viewId:/index.xhtml - View /index.xhtml could not be restored.

Одна из причин подобного поведения - использования базовой авторизации. AJAX запросы не отправляют информацию об авторизации.

Как одно из решений данной проблемы - использовать следующий код в web.xml


<context-param>
<param-name>com.sun.faces.enableRestoreView11Compatibility</param-
name> <param-value>true</param-value>
</context-param>

Это заставит работать в режиме совместимости с JSF1.1

Можно "подавить" вывод этого окошка кодом:

<context-param>
<param-name>org.icefaces.disableDefaultErrorPopups</param-name>
<param-value>true</param-value>
</context-param>

пятница, 20 июля 2012 г.

Glassfish и деплой приложений.

Команда
asadmin deploy _приложение_.war

запросит логин админа и пароль.

Если же выдало что-то вроде

remote failure: Error occurred during deployment: Application with name GglWeb is already registered. Either specify that redeployment must be forced, or redeploy the application. Or if this is a new deployment, pick a different name. Please see server.log for more details.
Command deploy failed.

т.е. нас предупредили, что приложение уже есть.
используем
asadmin deploy --force _приложение_.war

mplayer и вебкамера

Если надо быстро проверить работу вебкамеры
mplayer -tv driver=v4l2:width=640:height=480:device=/dev/video0 tv://

возможно еще потребуется указать fps и пр.

четверг, 19 июля 2012 г.

Java + Mysql + utf8 = вопросы вместо русских букв (??????)

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

useUnicode=true
characterEncoding=utf8

Т.е. урл для подключения к базе должен представлять вид - jdbc:mysql://hostname:port/database?useUnicode=true&characterEncoding=utf8

и не лишним будет сразу после подключения к базе выполнить два "запроса"

stat.execute("set character set utf8");
stat.execute("set names utf8");

среда, 18 июля 2012 г.

NetBeans и hot keys

Shift + Esc - увеличить/уменьшить поле кода путем скрытия лишнего
Alt + Insert - генерация кода
Ctrl + Shift + I - импорт библиотек
Alt + Shift + I - импорт библиотеки

Alt + Shift + F - форматирование кода

Ctrl + G - переход к строке с номером
Ctrl + Q - возврата к месту последней правки (либо кнопка на панели)
Ctrl + Tab - переход по файлам

Ctrl + Shift + M - закладка вкл/выкл
Ctrl + Shift + точка - переход к следующей закладке
Ctrl + Shift + запятая - переход к предыдущей закладке

Ctrl + B - переход к определению выделенного метода

Сочетание клавиш http://netbeans.org/project_downloads/www/shortcuts.pdf

Tools - Options - Editor - Code Templates -> редактирование шаблонов
Так при выделении и вводе к примеру текста "psfi" + Tab - получим private static final int
sout + Tab - System.out.println("");

Выделить текст и нажать Ctrl + Shift + Стрелка вниз - копирование выделенного текста

на выделенном тексте Alt + Shift + Стрелки - перемещение кода, увеличение/уменьшение отступов

вторник, 17 июля 2012 г.

Debian и wifi usb адаптер TL-WN722N

При подключении определяется но нет firmware для него. Т.е. dmesg показывает:
usb 1-6: ath9k_htc: Firmware - htc_9271.fw not found

Качаем отсюда
http://linuxwireless.org/download/htc_fw/
файл htc_9271.fw и помещаем его в /lib/firmware

Проверяем - после подключения должен появиться интерфейс wlan0

вторник, 29 мая 2012 г.

Проброс порта в iptables

К примеру, нам нужно пробросить порт 2222 на внутренний ip=192.168.122.52 и стандартный для ssh порт 22

iptables -t nat -I PREROUTING -p tcp --dport 2222 -j DNAT --to 192.168.122.52:22
iptables -I FORWARD -p tcp -d 192.168.122.52 --dport 22 -j ACCEPT

Таким образом все внешние запросы на порт 2222 будут перенаправляться на внутреннй ip=192.168.122.52 и port=22

virt-install ValueError: Virtual network 'default' has not been started.

Получили такую ошибку:

virt-install ValueError: Virtual network 'default' has not been started.

Решение:

virsh net-start default

Redmine и установка плагина.

Установка плагина http://www.redmine.org/projects/redmine/wiki/Plugins

** скопировать каталог плагина в #{RAILS_ROOT}/vendor/plugins
** если плагин требует "миграции", то
rake db:migrate_plugins RAILS_ENV=production
** перезапускаем Redmine

Смотрим в Administration -> Plugins

воскресенье, 27 мая 2012 г.

Android и djvu

EBookDroid

http://4pda.ru/forum/index.php?showtopic=260150&st=520#entry13219076

как пишут - это дальнейшее развитие VuDroid

четверг, 24 мая 2012 г.

Debian и Mustek BearPaw 1200CU Plus

Качаем проишвку для сканера отсюда
http://www.meier-geinitz.de/sane/gt68xx-backend/
http://www.meier-geinitz.de/sane/gt68xx-backend/firmware/PS1Gfw.usb

Копируем прошивку в /usr/share/sane/gt68xx/

cp PS1Gfw.usb /usr/share/sane/gt68xx/
chmod a+r /usr/share/sane/gt68xx/PS1Gfw.usb

Запускаем xsane

четверг, 17 мая 2012 г.

Android и gps

Программы:

My Tracks - пожалуй самая удобная для записи треков, позволяет добавлять комментарии и т.п.
Sports Tracker - удобна для отслеживания тренировок на местности.

среда, 9 мая 2012 г.

Индексация flv

Часто после перекодирования видео в flv формат не срабатывает "прокрутка" плеера.
Поможет:

yamdi -i имя_файла_исх.flv -o имя_файла_рез.flv

либо

flvtool2 -UP имя_файла.flv

среда, 2 мая 2012 г.

Распаковать rpm

rpm2cpio file.rpm | cpio -idmuv --no-absolute-filenames

понедельник, 30 апреля 2012 г.

Сборка rpm пакетов

** ставим нужный для сборки пакет yum install rpmdevtools ** Создаем дерево каталогов в домашнем каталоге rpmdev-setuptree ** закидываем архив с исходниками в ./rpmbuild/SOURSES ** создаем файл _программа_.spec прописываем версии, строку конфига и сборки ** запускаем сборку rpmbuild -bb _программа_.spec ** проверяем в RPMS наличие собранной rpm

вторник, 17 апреля 2012 г.

Debian и видеоредактор

Задача простая - порезать видоролик на кусочки.
Разного рода мегамонстры для этой простой функции - лишнее.

Простой и интуитивно понятный Avidemux (лучше GTK версии).
Особо описывать нечего, в какой-то мере повторяет функционал VirtualDub. Но делает это как-то элегантнее.

Умеет перекодировать и т.п.

Немного поменялись репо, для установки необходимо добавить в /etc/apt/sources.list

deb http://www.deb-multimedia.org/ stable main contrib non-free

вторник, 10 апреля 2012 г.

NetBeans и сглаживание шрифтов

Если нужно отключить hinting (сглаживание) шрифтов, необходимо добавить в конфиг
в файле /каталог_установки/etc/netbeans.conf

в параметр "netbeans_default_options"

строку вида

"-J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=off"

воскресенье, 25 марта 2012 г.

Java + Mysql

Драйвер JDBC для mysql качаем отсюда: http://dev.mysql.com/downloads/connector/j/

Далее в проекте в каталоге src создаем каталог lib и туда из архива с драйвером копируем
mysql-connector-java-x.x.xx-bin.jar (либо через импорт)

Затем надо подключить jar в classpath - самая обширная инструкция есть тут http://www.vogella.de/articles/Eclipse/article.html#classpath

В кратце - идем: (проект) Properties -> Java Build Path -> (вкладка) Libraries -> (кнопка) Add JARs, находим наш проект и каталог lib в нем mysql-connector-java-x.x.xx-bin.jar и Ок.

Примеров кода полно в инете, к примеру http://www.vogella.de/articles/MySQLJava/article.html

Из основного:

Class.forName("com.mysql.jdbc.Driver");
connect = DriverManager.getConnection("jdbc:mysql://localhost/?"
+ "user=sqluser&password=sqluserpw");
statement = connect.createStatement();
resultSet = statement.executeQuery("select * from ....");
while (resultSet.next()) {
...
String user = resultSet.getString("myuser");
Date date = resultSet.getDate("datum");
...
}


ну и забыть про try + catch не даст компилятор.

суббота, 24 марта 2012 г.

E-reader Sony PRS-T1

Хорошая читалка. В Америке стоит около 100$.
Внутри андроид.

Руссификация и рут доступны на форуме
http://www.the-ebook.org/forum/viewtopic.php?t=21458

Более современный рут
http://www.the-ebook.org/forum/viewtopic.php?t=22502
сначала ставим Rescue Set 1.0.04.12210 - восстановительный пакет для прошивки версии 1.0.04.12210
http://projects.mobileread.com/reader/users/porkupan/PRST1/flash_packages/restore-set-1.0.04.12210.zip

затем - Абсолютно минимальный root (АМR)
Остальные приложения кидаем на флэшку и устанавливаем
CoolReader3
http://sourceforge.net/projects/crengine/files/CoolReader3

суббота, 17 марта 2012 г.

Android, Eclipse и отсутствие вкладки "Graphical Layout" при редактировании Layout

Eclipse и отсутствие вкладки "Graphical Layout" при редактировании Layout. Из доступных лишь Design и Source.

Решение - правый клик на файле layout в "Package Explorer" и далее Open With -> Android Layout Editor

четверг, 15 марта 2012 г.

Android и "Not trusted server certificate"

Ситуация - нужно написать приложение дергающее https://..., а там не подписанный сертификат (самоподписанный и т.п.). Причем этот сертификат никому даром не нужен в хранилище. При обычном вызове

URLConnection conn = url.openConnection();

получим исключение с содержимым "Not trusted server certificate"

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


TrustManager[] trustAllCerts = new TrustManager[]{
new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
public void checkServerTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
}
};

try {
SSLContext sc = SSLContext.getInstance("TLS");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
} catch (Exception e) {
}

и дальше уже все как обычно:

URL url = new URL("https://www.example.com");
URLConnection conn = url.openConnection();

понедельник, 12 марта 2012 г.

суббота, 10 марта 2012 г.

Debian и Chrome

Как установить:

репозиторий Google - в файл /etc/apt/source.list добавим строку:
deb http://dl.google.com/linux/chrome/deb/ stable main

ключ:
$ wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -

sudo apt-get update

aptitude install google-chrome-stable

Запись cd/dvd в Debian

Что-то Debian начинает немного утомлять форками. Искал привычный cdrecord, а нет его.

В оф.доке написали:
> Debian сделал форк программы cdrecord в etch.
> На системах, основанных на Debian,
> вместо cdrecord попробуйте wodim.

Запись образа
wodim dev=/dev/sr0 _ваш_образ_.iso

Параметр -dummy симуляция всех процессов записи, т.е. все будет реально выполняться, но лазер будет выключен.

Параметры APN МТС Беларусь

Типовые настройки

Для настройки телефона необходимо ввести следующие параметры в меню телефона:

Название профиля/Profile name: mts
Канал данных/Data bearer: GPRS
Точка доступа/APN: mts
Имя пользователя/User name: mts
Пароль/Password: mts

пятница, 9 марта 2012 г.

Eclipse и hotkey

Ctrl + I -- расстановка отступов

Ctrl + F12 -- изменение ориентации экрана в эмуляторе

Ctrl + 7 или Ctrl + Shift + C или Ctrl + / -- комментирование выделенных строк кода

Ctrl + Shift + L -- показывает список горячих клавиш и при этом не снимает фокуса с основного окна

Tab, Shift + Tab -- отступ кода, добавляет/забирает символ табуляции в выделенном или текущей строчке кода

Ctrl + F -- поиск по файлу
Ctrl + K -- находит следующее вхождение поискового запроса без открытия окна поиска

Shift + Enter -- перенос каретки на следующую строку без разрывания текущей

Ctrl + L -- переход к строке по номеру

Ctrl + J -- дополняющий поиск - показывает результаты по мере набора текста (нажали и начали набирать текст)

Ctrl + Shift + F -- форматирование кода

Ctrl + M -- разворачивает до максимального в пределах окна или сворачивает текущий вид

Ctrl + N -- открывает менеджер создания нового файла

Ctrl + F8 -- переключение между разными перспективами Eclipse

Ctrl + F6 -- переключение между уже открытыми редакторами

Ctrl + F7 -- переключение между видами в среде, повторное нажатие переключает назад

Ctrl + Page Up/Page Down -- переключение между соседними открытыми редакторами в Eclipse

Ctrl + D -- удаление строки на которой находится курсор или удаление строк с выделенным текстом

Alt + стрелки Вверх/Вниз -- перемещение строки или выделенного фрагмента

Alt + стрелки Влево/Вправо -- переключение между последними редактируемыми областями

Android, программирование и памятка

** В Activity метод setTitle - меняет заголовок - тот, что в string app_name прописан.

** Поличить значение ресурса можно через метод getResources(), так название приложения можно получить getResources().getString(R.string.app_name). Возвращает String.

** Проверить поле ввода myEditText на "пустоту":
if (TextUtils.isEmpty(myEditTextNum1.getText().toString()) {}

** Задание числового типа для элементов android:inputType="numberDecimal"
android:digits="0123456789.," явное задание набора цифр и разделителей.

** Быстрый онлайн-конвертер иконок http://android-ui-utils.googlecode.com/hg/asset-studio/dist/index.html

** Логи - вкладка LogCat в Eclipse. Отображение в меню Window -> "Show View" -> Other -> Android -> LogCat

** ПУстой LogCat. Нет захвата логов. Идем в Windows -> Open Perspective -> Others -> DDMS
слева в вкладке device находим 'emulator' и нажимаем на нем. В логах должны появится записи. Затем переключаемся на "перспективу" java

** Просмотр файлов в эмуляторе - в Eclipse меню Window -> Show View -> Other -> Android -> File Explorer. Данные приложения находятся в /data/data/_ваш_package_

** Хранение данных - метод getSharedPreferences("myPref", MODE_PRIVATE) - позволяет явно задать имя файла для хранения данных

** База SQLite. Необходимо использовать в качестве идентификатора поле "_id" ибо в доках по Cursor-адаптерам: "The Cursor must include a column named "_id" or this class will not work.". т.е. необходимо, чтобы таблица содержала поле _id, иначе адаптер не будет работать.

** Цвет заданный в xml метод .setTextColor(getResources().getColor(R.color.green));

** Работа с Map - к примеру переменная mapData
Вариант 1
Set<String> keys = mapData.keySet();
for (String key: keys) {
String value = (String) mapData.get(key);
}

Вариант 2
for (Map.Entry<String, Object> entry: mapData.entrySet()) {
String key = entry.getKey();
String value = (String) entry.getValue();
}

**
**
**
**
**
**

Android, adb и "???????????? no permissions"

Если утилита adb на запрос adb devices выдала "???????????? no permissions", необходимо правильно настроить права при создании.

Смотрим lsusb на предмет Вашего андроида, в моем случае это был:

Bus 002 Device 006: ID 12d1:1038 Huawei Technologies Co., Ltd.

Добавляем файлик /etc/udev/rules.d/51-android.rules со следующим содержанием (со своими значениями ID и пользователя).


SUBSYSTEMS=="usb", ATTRS{idVendor}=="12d1", ATTRS{idProduct} =="1038",
MODE="0666", OWNER="_пользователь_"


Затем /etc/init.d/udev reload. Переподключаем смарт.

и снова смотрим вывод adb devices

устройство должно опознаться и вывести что-то вроде:

4CA94Dxxxxx device

Еще бывает уже при настроенной udev "отказ", тогда помогает

sudo ./adb kill-server
sudo ./adb start-server
sudo ./adb devices

среда, 7 марта 2012 г.

Eclipse, Android, эмулятор (AVD) и "засыпание" на Launching xxx (27%)

Проблема при очередном вызове Run для тестирования приложения в эмуляторе Android.
Процесс останавливается на "Launching _имя_приложения_: (27%)"

Как один из методов обхода этого досадного бага - запуск AVD эмулятора ДО вызова Run.

т.е. последовательность действий такая

1. Стартуем Eclipse
2. Идем в меню Window -> AVD Manager
3. Выбираем наш эмулятор и жмем Start
4. Run - запускаем проект

воскресенье, 4 марта 2012 г.

Pencil и ошибка "Could not find compatible GRE between version 1.9 and 1.9.2.*"

Есть интересный инструмент для рисования интерфейсов и прототипов
Pencil - http://pencil.evolus.vn/en-US/Home.aspx

Но при запуске прилагаемой программой pencil получаем ошибку вида:

Could not find compatible GRE between version 1.9 and 1.9.2.*.

при этом xulrunner разумеется установлен

Что бы это исправить, создаем исполняемый скрипт pencil.sh

#!/bin/sh
PROGDIR=`dirname $0`
xulrunner-1.9.1 $PROGDIR/application.ini


в вашей системе версия 1.9.1 может быть другая

Android и Eclipse, настройка эмулятора.

Настройка Android Emulator.

А именно - Android Virtual Device (AVD)

1. В Eclipse, выбираем Window -> AVD Manager.
2. Клик на New
3. Name = что понравится, к примеру: my_avd
Target = выбираем установленный SDK.
Можно заполнить и остальные поля, но для начала хватит.
4. Клик на Create AVD.

пятница, 24 февраля 2012 г.

Djvu и просмотр

Традиционно идет DjView, но как оказалось Evince немного удобнее

kvm, lvm и virtio

Сам не проверял, но интернеты советуют, в общем использовать virtio для сети и диска в виртуальной машине.

Можно создать примерно такой командой (изменив конечно все для себя)

virt-install \
--connect qemu:///system \
-n virt1 \
-r 2048 \
--vcpus=1 \
--disk path=/dev/virt/virt1,bus=virtio \
--vnc \
--os-type linux \
--accelerate \
--network=bridge:br0,model=virtio \
--hvm \
-c /work/iso/CentOS-6.2-x86_64-minimal.iso

kvm, lvm и доступ к разделам диска с хост системы.

Предположим, понадобилось что-то прочитать или исправить в госте
При этом у гостя поключен lvm раздел в качестве "диска" /dev/virt/virt1
Гостя стоит остановить или монтировать в ro режиме.

Для начала "маппим" нужный раздел (со своей таблицей разделов)
kpartx -a /dev/virt/virt1

Теперь в /dev/mapper/ будет что-то вроде virt-virt, virt-virt1p1, virt-virt1p2 ...
Это и есть нужные нам разделы.

Дальше как обычно - mount
mount /dev/mapper/virt-virt1p1 /mnt/virt1p1
И работаем с ним.
Затем umount
и
kpartx -d /dev/virt/virt1

Вроде все.

понедельник, 20 февраля 2012 г.

Eclipse (Indigo), Tomcat и ошибка "Cannot create a server using the selected type"

Если при настройке Eclipse (Indigo) сервера Tomcat получили ошибку вида "Cannot create a server using the selected type"

Что можно сделать (по одному пункту или все сразу):
1. Идем в Window–>Preferences–>Server–>Runtime Environments и проверяем/фиксим пути к серверу

2. Переименовываем или удаляем org.eclipse.jst.server.tomcat.core.prefs в ./workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings

3. Переименовываем или удаляем org.eclipse.wst.server.core.prefs в ./workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings

На этом все, должно добавится без проблем.

воскресенье, 19 февраля 2012 г.

Ftp за NAT проброс портов и настройка диапазона.

Стандартная задача - пробросить ftp за Nat. Небольшая сложность в том, что нужно кроме 21 порта пробросить диапазон дополнительных портов и настроить сам ftp на указаение данного диапозона и ip внешнего интерфейса.
К примеру, выделим для ftp порт 2100 и 10000-10100
Локальный ftp сервер работает на 192.168.122.100 порт 21.

Тогда настройки iptables для "шлюза":

iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 2100 -j DNAT --to-destination 192.168.122.100:21
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 10000:10100 -j DNAT --to-destination 192.168.122.100

И в самом ftp надо указать эти нюансы. В случае vsftpd это делается добавлением строк:

pasv_min_port=10000 ;Указываем используемые сервером порты, первый
pasv_max_port=10100 ;и последний
pasv_address=_внешний_ip_шлюза_

В первом приблежении можно считать настроенным.

пятница, 17 февраля 2012 г.

vsftpd и домашние каталоги = 550 Create directory operation failed

Понадобилось на CentOs донастроить vsftpd для работы юзеров с домашними каталогами и вот тут при создании каталога получилось

550 Create directory operation failed.

Решение, позволить в SELinux работу с домашними каталогами

setsebool -P ftp_home_dir=1

вторник, 14 февраля 2012 г.

Tomcat и SSL

Генерируем ключ

keytool -genkey -alias tomcat -keyalg RSA -keystore /opt/apache-tomcat/keystore

обязательно проверьте, с какой версией keytool вы работаете, иначе tomcat будет выдавать в лог что-то вроде: invalid keystore format


Раскомментируем строки и отредактируем в файле /opt/apache-tomcat/conf/server.xml

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="/opt/apache-tomcat/keystore" keystorePass="пароль" />

Полезные ссылки

Просто сборник, что бы не потерять нигде и не забыть.

Онлайн конвертер текта (простановка > = >)- http://0en.ru/

понедельник, 13 февраля 2012 г.

Ошибка при выполнеии sudo: sorry, you must have a tty to run sudo

Такая ошибка происходит при строгой настройке sudoers

sudo: sorry, you must have a tty to run sudo

обойти ее можно закомментрировав строку

Defaults requiretty

Debian и установка Tomcat

Качаем свежую версию http://tomcat.apache.org/

apache-tomcat-7.0.25

распаковываем в /opt и делаем симлинк на /opt/apache-tomcat

Создать пользователя tomcat
adduser --system tomcat

Меняем владельца каталога /opt/apache-tomcat пользователя tomcat:
Debian -- chown -RLv tomcat:nogroup /opt/apache-tomcat
Centos -- chown -RLv tomcat:tomcat /opt/apache-tomcat

** Тестовый запуск
sudo -u tomcat /opt/apache-tomcat/bin/catalina.sh run

** в браузер по адресу http://имя_сервера:8080 должна открыться стартовая страница tomcat.

** если нужно запускать на портах ниже 1024, к примеру на стандартном 80 для http, необходимо установить утилиту jsvc
jsvc - предназначена для запуска java-программы как сервиса(демона) операционной системы.
донастроим конфиг /opt/apache-tomcat/conf/server.xml
следующий текст:

<connector connectiontimeout="20000" port="8080" protocol="HTTP/1.1" redirectport="8443"></connector>

заменим порт для http - 80, и указываем кодировку для URI:

<connector connectiontimeout="20000" port="80" protocol="HTTP/1.1" redirectport="8443" uriencoding="UTF-8"></connector>

в /etc/init.d/tomcat помещаем текст скрипта для запуска (подредактировать под свое, если что не так. обратите внимание на JAVA_HOME!!! Возможно понадобится указать полный путь к jsvc)
#=======================================================
#!/bin/sh
JAVA_HOME=/usr/lib/jvm/java-6-sun
CATALINA_HOME=/opt/apache-tomcat
TOMCAT_USER=tomcat

TMP_DIR=/var/tmp
PID_FILE=/var/run/apache-tomcat.pid
CATALINA_BASE=/opt/apache-tomcat

CATALINA_OPTS="-Xmx1024m -Xms512m -XX:MaxPermSize=128m -Djava.awt.headless=true"
CLASSPATH=\
$JAVA_HOME/lib/tools.jar:\
$CATALINA_HOME/bin/commons-daemon.jar:\
$CATALINA_HOME/bin/tomcat-juli.jar:\
$CATALINA_HOME/bin/bootstrap.jar

case "$1" in
start)
#
# Start Tomcat
#
jsvc \
-user $TOMCAT_USER \
-home $JAVA_HOME \
-Dcatalina.home=$CATALINA_HOME \
-Dcatalina.base=$CATALINA_BASE \
-Djava.io.tmpdir=$TMP_DIR \
-Dfile.encoding=UTF-8 \
-Duser.timezone=Europe/Samara \
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \
-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties \
-wait 10 \
-pidfile $PID_FILE \
-outfile $CATALINA_HOME/logs/catalina.out \
-errfile '&1' \
$CATALINA_OPTS \
-cp $CLASSPATH \
org.apache.catalina.startup.Bootstrap
#
# To get a verbose JVM
#-verbose \
# To get a debug of jsvc.
#-debug \
exit $?
;;

stop)
#
# Stop Tomcat
#
jsvc \
-stop \
-pidfile $PID_FILE \
org.apache.catalina.startup.Bootstrap
exit $?
;;
restart)
#
# Restart Tomcat
#
$0 stop
sleep 2
$0 start
;;
*)
echo "Usage tomcat start/stop"
exit 1;;
esac
#=======================================================

Debian и установка Java Sun JDK7

Качаем JDK 7 tar.gz
http://www.oracle.com/technetwork/java/javase/downloads/index.html


распаковываем и переносим в /usr/lib/jvm
Тут бы самое время сделать симлинк, дабы при апдейте просто перемещать симлинк на новую версию java.
Т.е. делаем линк = jdk_current
ln -s /usr/lib/jvm/jdk1.7_ваша_версия_  /usr/lib/jvm/jdk_current

Проверяем какие версии у нас сейчас есть

sudo update-alternatives --config java

смотрим что выдало

если в выводе было что-то вроде "no alternatives for java" то запускаем
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk_current/jre/bin/java 0


если есть список с цифровыми индексами от 0 до n, то увеличиваем на 1 для следующей команды
Так если было в выводе три строки от 0 до 2, то команда выглядит с "3" в последнем параматре
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk_current/jre/bin/java 3


активируем новую версию

update-alternatives --config java

и выбираем номер нужной версии, т.е. цифра из левой колонки вывода "Selection", по сути ту, что мы в предыдущем шаге задали.

проверяем

java -version

Так же стоит подобное проделать для javac, keytool и прочими нужными программами.
 Для Debian это будет что-то вроде этого:
 sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk_current/bin/javac _ваш_номер_альтернативы_

вторник, 7 февраля 2012 г.

Debian, KVM и виртуализация

Настройка виртуализации.

** проверяем поддерживает ли процессор аппаратную виртуализацию:
cat /proc/cpuinfo | egrep '(svm|vmx)'
Поддержка должна быть, иначе дальше нечего и мечтать о kvm.

** установка
sudo apt-get install kvm libvirt-bin virtinst bridge-utils
(при установке возможны траблы 404 из-за отсутствия либы в немецком репо)
reboot

** Проверяем (должно быть ТРИ слэша!!! иначе при двух нарвемся на сообщение вида: error: Cannot access CA certificate '/etc/pki/CA/cacert.pem': No such file or directory)

virsh -c qemu:///system list --all
В выводе пока виртуалок нет, но выводится что-то вроде "Id Name State -----"

** Добавим определение моста в /etc/network/interfaces

# virtual interfaces
auto br0
iface br0 inet static
bridge_ports vnet0
address 192.168.100.1
netmask 255.255.255.0
network 192.168.100.0
broadcast 192.168.100.255
bridge_stp off

/etc/init.d/networking restart
смотрим ifconfig, есть ли br0


** Создаем виртуальную машину:

Создаем для удобства каталоги (к примеру в /srv) iso и vms
Качаем образ iso нужной ОС.

virt-install -n vm1 -r 1024 -f /srv/vms/vm1.img -s 10 -c /srv/iso/ваша_ОС.iso --accelerate --os-type=linux —os-variant=generic26 -v --vnc -w bridge:br0

опции:
-n vm1 — имя домена (виртуальной машины)
-r 1024 — количество оперативной памяти
-f /srv/vms/vm1.img — расположение «жесткого диска».
s 10 — размер «жесткого диска»
-c /srv/iso/ваша_ОС.iso — указываем iso образ, с которого будем производить установку системы.
--accelerate --os-type=linux --os-variant=generic26 -v — оптимизируем VDS для работы с виртуальным Linux с ядром 2.6.хх
--vnc — запускаем VNC-сервер для доступа к виртуальной машине.
-w bridge:br0 — указываем, что виртуальная машина должна использовать сетевой мост br0 хост-машины


** Подключаемся к виртуалке

ssh -L 5900:localhost:5900 _логин_@_ip_
И во второй консоли:
vncviewer localhost:5900

** Устанавливаем как обычно сервер.
Если понадобится сменить "диск" в приводе используем команду
virsh attach-disk имя_виртуалки /полный/путь/к/iso/образу hdc --type cdrom --mode readonly
virsh attach-disk имя_виртуалки /полный/путь/к/iso/образу hdc --type cdrom --mode readonly
attach-disk имя_виртуалки /полный/путь/к/iso/образу hdc --type cdrom --mode readonly
virsh -c qemu:///system attach-disk имя_виртуалки /полный/путь/к/iso/образу hdc --type cdrom --mode readonly



** Настрока на хост серевере iptables на доступы извне по ssh и SNAT
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 2222 -j DNAT --to-destination 192.168.100.2:22
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j SNAT --to-source _ip_хоста_



** Удаление ВМ
virsh undefine vm1

понедельник, 6 февраля 2012 г.

Drupal 7 и постинсталл.

** Перевод интерфейса

Активируем модуль Locale
?q=admin/config/regional/language
Add language - Russian
Переставить галку языка Default на русский

?q=admin/config/regional/translate
Вкладка import
Language file - Browse - выбираем пакет с переводом - к примеру drupal-7.0.ru.po

** Человекочитаемые ссылки
включаем "чистые ссылки"
?q=admin/config/search/clean-urls

Модули необходимые для транслита урлов
Pathauto
Token
Transliteration

/admin/config/search/path/settings
ставим внизу галку "Transliterate prior to creating alias"


** Простая тема MAYO (White)
Модуль Color

четверг, 2 февраля 2012 г.

Debian и Dockbarx

Во всех манах встречается упоминание команды add-apt-repository ppa:dockbar-main/ppa

Для Debian это равносильно внесению в список apt такого источника

deb http://ppa.launchpad.net/dockbar-main/ppa/ubuntu lucid main

aptitude update

и теперь

aptitude install dockbarx

firefox и плагины 64bit

Что-то последнее время firefox все больше и больше разочаровывает (все субьективно конечно, пока остаюсь его приверженцем).

Так вот при ручном обновлении перестали работать плагины adobe и т.п.
А все ведь просто, на сайте фф предлагается для скачки версия в 32 бита. А плагины в 64 битной системе стоят соответствующие.

ФФ релизит 64bit отдельно - так для версии 10.0
http://releases.mozilla.org/pub/mozilla.org/firefox/releases/10.0/linux-x86_64
Качаем с нужным языком и устанавливаем (распаковываем, копируем и т.п.)

вторник, 31 января 2012 г.

Debian и LVM

aptitude install lvm2

Создаем разделы на диске с 0x8e (Linux LVM).

Инициализация разделов
pvcreate /dev/sda9

Создание физических томов и групп томов
vgcreate system-volume /dev/sda9
создает логический том с именем system-volume

После создания группы томов system-volume ведите команду vgdisplay для просмотра общей информации о вновь созданной группе томов
vgdisplay -v system-volume

Создание новых логических томов (разделов)

lvcreate -L 50G -n home system-volume

создается логический том размером 50 ГБ с именем home. После создания тома home можно проверить наличие узла этого устройства:

ls -l /dev/mapper/system--volume-home
ls -l /dev/system-volume/home

Можно просмотреть свойства логического тома с помощью команды lvdisplay.

Когда логический том готов, отформатируем его в файловую систему ext4, а затем установите желаемую точку монтирования:
mkfs.ext4 /dev/system-volume/home
mount -t ext4 /dev/system-volume/home /mnt/home
df -h /mnt/home

Может потребоваться изменить файл fstab для автоматического монтирования файловой системы во время загрузки:

/dev/system-volume/home /mnt/home ext4 defaults 0 2

Расширение томов

Если достаточно свободного места в группе томов, для расширения тома достаточно ввести команду lvextend, том даже не требуется предварительно размонтировать. Затем нужно расширить файловую систему внутри логического тома (это две разные вещи).
Если недостаточно места в группе томов, то потребуется сначала добавить дополнительные физические диски. Для этого действия похожи на самые первые действия по созданию.
Береь раздел на диске и изменяем тип раздела на 0x8e (Linux LVM) для облегчения идентификации LVM разделов/дисков. инициализируем физический диск c помощью pvcreate: pvcreate /dev/sda10.
Затем командой vgextend добавляем физический диск к существующей группе томов:

vgextend system-volume /dev/sda10.

можно создавать или добавлять несколько физических дисков одновременно через пробел дописав их в команду т.е. /dev/sda10 /dev/sda11 ...

теперь, когда места хватает, с помощью lvextend расширяем логический том (тома):

lvextend -L +5G /dev/system-volume/home

Эта команда расширяет логический том /dev/system-volume/home на 5ГБ. Если указать без знака "+" - то будет расширено до абсолютного значения (т.е. в данном примере весь раздел будет 5Gb)

теперь надо расширить файловую систему (чтобы дополнительное пространство можно было использовать). Это может быть сделано «на лету» (со смонтированной файловой системой), если позволяет файловая система. Для ext3/ext4 используется resize2fs

resize2fs /dev/system-volume/home

Для управления томами вы должны уметь уменьшать логические тома и удалять физические.

Уменьшение логических томов
можно уменьшить логический том так же, как и расширяли, используя команду lvreduce. Большинство файловых систем не поддерживают сокращение раздела «на лету».

umount /dev/system-volume/home
При испльзовании resize2fs просит запустить e2fsck -f /dev/system-volume/home

resize2fs -P /dev/system-volume/home - покажет минимальный размер раздела (в мане предупреждение об возможных ошибочных показаниях)

resize2fs /dev/system-volume/home 53G
уменьшит раздел до 53G

lvreduce -L 53G /dev/system-volume/home
файловая система не должна быть длиннее логического тома

Удаление физических томов
мы не сможем удалить физический том, использующийся в логическом. Для этого существует утилита pvmove, которая освобождает физические тома. Конечно, для нее нужно наличие свободных диапозонов. С помощью команды pvdisplay -m можно вывести карту распределения физического тома.

надо отключить распределения физического тома перед его освобождением

pvchange -xn /dev/sda10

чтобы переместить данные с этого тома, нужно выполнить:
pvmove -i 10 /dev/sda10
"-i 10" = отображать статус операции каждые 10 секунд.

Почти все дернуто отсюда
http://www.ibm.com/developerworks/ru/library/l-lvm2/

Debina и удаление драйверов ATI (проприетарных)

HP ProBook 4535s и настройка видеокарты

Если при обновлении ядра glxinfo стало ругаться на "x error of failed request" или и вовсе "segmentation fault" надо зачистить систему.

Сначала удаляем все, что так или иначе связано с fglrx-...
Если устанавливались драйвера с сайта AMD, то выполняем /usr/share/ati/amd-uninstall.sh --force
Можно проверить лог удаления в /etc/ati/fglrx-uninstall.log

И перезагрузка.

воскресенье, 29 января 2012 г.

Pulseaudio и bluetooth handsfree

aptitude install pulseaudio
aptitude install pulseaudio-module-bluetooth
aptitude install pavucontrol

удалить или переименовать файл /etc/asound.conf.
reboot

Собственно, звук через pulseaudio должен заработать. Затем включаем гарнитуру на "обзор" и находим ее (полезный для этого пакет blueman и его программа blueman-manager).

Далее необходимо выбрать в качестве вывода звука гарнитуру и тут есть несколько вариантов:
1. С помощью Gnome или KDE открыть настройки звука и найти гарнитуру и выставить на ней галку.
2. Запустить pavucontrol и в нем Конфигурации выбрать нужный режим работы гарнитуры и во время проигрывания открыть вкладку "Проигрывание" и изменить значение "конпки" с Internal Audio Analog Stereo на гарнитуру.

HP ProBook 4535s и настройка видеокарты

Для начала ставим fglrx-control (он следом потянет еще кучу пакетов). Хотя для ядра 3.2 это оказалось лишнее, достаточно было лишь от AMD с сайта.

Затем тут находим самый свежий драйвер http://support.amd.com/de/gpudownload/linux/Pages/radeon_linux.aspx
На момент написания это был 12.1 -- http://www2.ati.com/drivers/linux/amd-driver-installer-12-1-x86.x86_64.run

и затем устанавливаем его

sh amd-driver-installer-12-1-x86.x86_64.run

Ну а далее смотрим fglrxinfo на наличие информации об OpenGL и типе карты выбранной в данный момент. Возможны варианты 6480G и 6400М. Причем переключение происходит в Catalyst Control Center. И при этом как ни странно, при выборе "Переключаемые графические адаптеры" -> "Энергоэкономный GPU..." после перезагрузки происходит переключение на 6480G которая в тестах показывает почти в два раза большую производительность.

тестить можно так:
fgl_glxgears
glxgears

суббота, 28 января 2012 г.

HP ProBook 4535s и ошибка загрузки файла CAICOS_pfp.bin

Если при загрузке выскакивают такие строчки:

Failed to load firmware "radeon/CAICOS_pfp.bin"
*ERROR* Failed to load firmware!

Значит его нет в initrd.img-.....

Нужно проверить наличие в /lib/firmware/radeon этого файла. При отсутствии - добавить репозиторий sid non-free и с него поставить пакет firmware-linux-nonfree

Затем в /usr/share/initramfs-tools/hook-functions добавить в одну из функций (к примеру в manual_add_modules) команду
copy_exec "/lib/firmware/radeon/CAICOS_pfp.bin"

И выполнить update-initramfs -u

четверг, 26 января 2012 г.

Debian и настройка репозитория

Немецкий репо (по ряду причин)

deb ftp://ftp.de.debian.org/debian/ stable main contrib non-free
deb-src ftp://ftp.de.debian.org/debian/ stable main contrib non-free

Debian и HP ProBook 4535s

Сразу оговорюсь, все что делалось происходило в январе 2012. В дальнейшем часть инструкций потеряет актуальность.

При ядре 2.6.32 не работает нормально звук (card 1) и touchpad Synaptics (multitouch и т.п.)
Команда alsactl init выдает:

" Unknown hardware: "HDA-Intel" "ATI R6xx HDMI" "HDA: 1002aa01, 00aa0100, 00100100" "0x174b" "0xaa38"
Hardware is initialized using a guess method


Поэтому обновим ядро из backports до 2.6.39, там это все работает.
И вот тут ждал неприятный сюрприз - при высокой сетевой активности начинал потрескивать звук - причем это alsa голая (т.е. pulseaudio и пр. ни при чем). А на ядре 3.2.0 ничего такого "хрипящего" не наблюдается.

** Обновляем ядро.
в /etc/apt/sources.list помещаем
deb http://backports.debian.org/debian-backports squeeze-backports main contrib non-free

затем апдейтим
apt-get update

В http://backports-master.debian.org/Packages/ находим linux-image и linux-headers актуальной для вашего компьютера версии. Либо смотрим на вывод aptitude search linux-image
Для HP ProBook 4535s на данный момент написания linux-image-2.6.39-bpo.2-amd64 и linux-headers-2.6.39-bpo.2-amd64

Устанавливаем.
apt-get -t squeeze-backports install linux-image-2.6.39-bpo.2-amd64
apt-get -t squeeze-backports install linux-headers-2.6.39-bpo.2-amd64
если поругалось на отсутствие non-free firmware rtl - пакет firmware-realtek
apt-get -t squeeze-backports install firmware-realtek
После этого не забыть закомментировать строки в /etc/apt/sources.list связанные с debian-backports. И снова проапдейтить apt-get update

Перегружаемся, выбираем ядро 2.6.39-bp0.2-amd64
И теперь можно проверить наличие настроек звука.

Про звук смотрим
alsamixer -c 1

должен быть полный набор регуляторов из Master Headphon Speaker и т.д.

Надо создать файл /etc/asound.conf

pcm.!default {
type hw
card 1
}

ctl.!default {
type hw
card 1
}


** Touchpad Synaptics

Для активации всех вкусных плюшек сенсорной панели устанавливаем gsynaptics
apt-get install gsynaptics

запускаем gpointing-device-settings и выбираем что приглянется
если в гноме, то можно еще вызвать gnome-mouse-properties и в вкладке "тачпад" активировать клик сенсорной панелью.

** Bluetooth
Часто случается так, что после загрузки не поднимается адаптер и в lsusb его тоже не видно.
Необходимо включить в репозиториях non-free и установить firmware
aptitude install firmware-atheros

Собственно говоря, на данном этапе у вас должен работать правильно звук и touchpad (прокрутка касанием двух пальцев панели и сдвигом вверх-вниз, влево-вправо)

четверг, 5 января 2012 г.

Установка gitweb

aptitude install gitweb

Каталог для веб /usr/share/gitweb и /usr/lib/cgi-bin
Лично мне удобнее поместить их в другое место, прописав в настройках апача.

Для apache настройки кидаются в /etc/apache2/conf.d/gitweb
Имеет смысл изменить их и прописать в конкретный поддомен и т.п.

Основные настройки сидя в /etc/gitweb.conf
там и пути к репозиториям и т.п.

среда, 4 января 2012 г.

Mailman и изменение урла.

Предположим у вас есть списки рассылок и вдруг понадобилось изменить урл на котором они живут. Казалось бы, поменять в /etc/mailman/mm_cgf.py

DEFAULT_URL_HOST = 'нужный урл'
DEFAULT_URL_PATTERN = 'нужный паттерн'

и все дела, перезапустил mailman и готово... А вот и нет. Пришлось еще фиксить url

./withlist -l -r fix_url ваш_список -u нужный_урл -v