пятница, 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 - он не влияет на результат.
В расширенных логах 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
Если Вы попытались настроить в 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">
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)
Если на 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 пакет.
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"/>
Можно скачать 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
Что бы запустить пример как указано в инструкции ("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 - 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
В 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/
Из программ доступно 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»
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»
Запуск консоли админа /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
получим вывод с информацией по серверам и состоянию в виде:
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 г.
воскресенье, 2 сентября 2012 г.
не видимый курсор в mc на знаках табуляции
Очень раздражающий баг в в mcedit в gnome-terminal.
Один из вариантов - отключить отображение табуляции и пробелов в mc
в файле .mc/ini значения editor_visible_tabs и editor_visible_spaces установить в "0".
Один из вариантов - отключить отображение табуляции и пробелов в 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
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 .
Хром должен сам подхватить плагин.
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://
Для просмотра сигнала и тестирования можно использовать 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>
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>
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>
========================
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
запросит логин админа и пароль.
Если же выдало что-то вроде
т.е. нас предупредили, что приложение уже есть.
используем
asadmin deploy --force _приложение_.war
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 и пр.
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");
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 + Стрелки - перемещение кода, увеличение/уменьшение отступов
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
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
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
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
** скопировать каталог плагина в #{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
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
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 - удобна для отслеживания тренировок на местности.
My Tracks - пожалуй самая удобная для записи треков, позволяет добавлять комментарии и т.п.
Sports Tracker - удобна для отслеживания тренировок на местности.
среда, 9 мая 2012 г.
Индексация flv
Часто после перекодирования видео в flv формат не срабатывает "прокрутка" плеера.
Поможет:
yamdi -i имя_файла_исх.flv -o имя_файла_рез.flv
либо
flvtool2 -UP имя_файла.flv
Поможет:
yamdi -i имя_файла_исх.flv -o имя_файла_рез.flv
либо
flvtool2 -UP имя_файла.flv
среда, 2 мая 2012 г.
понедельник, 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
Разного рода мегамонстры для этой простой функции - лишнее.
Простой и интуитивно понятный 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"
в файле /каталог_установки/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
Из основного:
ну и забыть про try + catch не даст компилятор.
Далее в проекте в каталоге 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
Внутри андроид.
Руссификация и рут доступны на форуме
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
Решение - правый клик на файле 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();
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
репозиторий 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 симуляция всех процессов записи, т.е. все будет реально выполняться, но лазер будет выключен.
В оф.доке написали:
> 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
Для настройки телефона необходимо ввести следующие параметры в меню телефона:
Название профиля/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 + стрелки Влево/Вправо -- переключение между последними редактируемыми областями
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();
}
**
**
**
**
**
**
** Поличить значение ресурса можно через метод 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
Добавляем файлик /etc/udev/rules.d/51-android.rules со следующим содержанием (со своими значениями ID и пользователя).
Затем /etc/init.d/udev reload. Переподключаем смарт.
и снова смотрим вывод adb devices
устройство должно опознаться и вывести что-то вроде:
4CA94Dxxxxx device
Еще бывает уже при настроенной udev "отказ", тогда помогает
sudo ./adb kill-server
sudo ./adb start-server
sudo ./adb devices
Смотрим 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 - запускаем проект
Процесс останавливается на "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
в вашей системе версия 1.9.1 может быть другая
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.
А именно - Android Virtual Device (AVD)
1. В Eclipse, выбираем Window -> AVD Manager.
2. Клик на New
3. Name = что понравится, к примеру: my_avd
Target = выбираем установленный SDK.
Можно заполнить и остальные поля, но для начала хватит.
4. Клик на Create AVD.
пятница, 24 февраля 2012 г.
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
Можно создать примерно такой командой (изменив конечно все для себя)
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
Вроде все.
При этом у гостя поключен 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
На этом все, должно добавится без проблем.
Что можно сделать (по одному пункту или все сразу):
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_шлюза_
В первом приблежении можно считать настроенным.
К примеру, выделим для 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
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="пароль" />
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/
Онлайн конвертер текта (простановка > = >)- 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
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
следующий текст:
заменим порт для http - 80, и указываем кодировку для URI:
в /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
#=======================================================
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 _ваш_номер_альтернативы_
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
** проверяем поддерживает ли процессор аппаратную виртуализацию:
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
Активируем модуль 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
Для 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
Качаем с нужным языком и устанавливаем (распаковываем, копируем и т.п.)
Так вот при ручном обновлении перестали работать плагины 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/
Создаем разделы на диске с 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
И перезагрузка.
Если при обновлении ядра 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 на гарнитуру.
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
Затем тут находим самый свежий драйвер 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
Если при загрузке выскакивают такие строчки:
Значит его нет в 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
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
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 выдает:
Поэтому обновим ядро из 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
** Touchpad Synaptics
Для активации всех вкусных плюшек сенсорной панели устанавливаем gsynaptics
apt-get install gsynaptics
запускаем gpointing-device-settings и выбираем что приглянется
если в гноме, то можно еще вызвать gnome-mouse-properties и в вкладке "тачпад" активировать клик сенсорной панелью.
** Bluetooth
Часто случается так, что после загрузки не поднимается адаптер и в lsusb его тоже не видно.
Необходимо включить в репозиториях non-free и установить firmware
aptitude install firmware-atheros
Собственно говоря, на данном этапе у вас должен работать правильно звук и touchpad (прокрутка касанием двух пальцев панели и сдвигом вверх-вниз, влево-вправо)
При ядре 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
там и пути к репозиториям и т.п.
Каталог для веб /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
DEFAULT_URL_HOST = 'нужный урл'
DEFAULT_URL_PATTERN = 'нужный паттерн'
и все дела, перезапустил mailman и готово... А вот и нет. Пришлось еще фиксить url
./withlist -l -r fix_url ваш_список -u нужный_урл -v
Подписаться на:
Сообщения (Atom)