LINUX.ORG.RU

Сообщения Dramokl

 

Поиск программы для приблизительной оценки размеров

Добрый день,

пытаюсь найти программу для решения следующей задачи:

есть фотография объекта, известен один из размеров ( например ширина ).

Хочется указав этот размер на фотографии и его реальные значения, осуществлять дальнейшие измерения уже не в пикселях - а в миллиметрах итд.

 

Dramokl
()

Маленький патчик для gnome-terminal

Доброе время суток.

Закончил(вроде) написание костылей для gnome-terminal.
Исходный тред
патч
скрин

Чуть лирики:
- Пробовал использовать GtkHeaderbar - не вышло - фиксированный встроенный layout
- Сделал с использованием GtkFrame, и двумя GtkNotebook - замучился их синхронизовать. DnD так корректно и не заработал
- Итоговый вариант - обнуление titlebar(узкая полоска), дублирование логики управления окном(перетаскивание, максимизация, закрытие)

Перемещено Shaman007 из talks

 ,

Dramokl
()

Сборка livecd в Gentoo

Доброе время суток. Потратил некоторое время на то что бы разобраться - как же сделать свой livecd в gentoo. Собрал по кусочкам из нескольких мануалов, и вот что получилось.

Собирать будем из бинарных пакетов

export ACCEPT_KEYWORDS="amd64"
export PORTAGE_BINHOST="ssh://<binhost>/var/binpkgs/"
export ROOT=<где собираем>
Для удобства обслуживания - всё будет происходить под управлением git
mkdir -p $ROOT
git init $ROOT
Далее создаём базовую структуру каталогов и устанавливаем «минимум необходимого
USE="build" emerge --root=$ROOT -O baselayout
MAKEDEV -d $ROOT/dev console hda input ptmx std sd tty
rm -f $ROOT/dev/fd[0-9]*
rm -f $ROOT/dev/sd[a-d][a-z]* $ROOT/dev/sd[e-z]*
rm -f $ROOT/dev/tty[a-zA-Z]*

emerge --root=$ROOT -gK openrc vim bash vixie-cron gpm udev file findutils gawk grep \
                    groff iproute2 man man-pages-ru net-tools pciutils \
                    sed shadow usbutils util-linux which syslog-ng screen nfs-utils openssh wget socat rsync ntp \
                    gcc tar util-linux shadow udev procps psmisc cracklib gzip kbd dhcp
далее можно поставить всё что угодно, по желанию
emerge --root=$ROOT -gK <ваши пакеты>
почистим ненужный мусор
rm -rf $ROOT/var/tmp/*
rm -rf $ROOT/var/cache/*
rm -rf $ROOT/var/db
rm -rf $ROOT/tmp/*
rm -f $ROOT/etc/mtab
touch $ROOT/etc/mtab
rm -rf $ROOT/etc/portage
rm -rf $ROOT/usr/share/doc
rm -rf $ROOT/usr/src/
Далее по стандартному пути, можно сделать chroot, сменить пароль рута, прописать сервисы в автозагрузку,итд.
mount -o bind /dev $ROOT/dev
mount -t proc none $ROOT/proc
chroot $ROOT /bin/bash
<конфигурируем>
umount $ROOT/dev
umount $ROOT/proc
rm $ROOT/root/.bash_history
В сторонке можно нужно собрать ядро. Проще всего сделать это genkernel.Как то так.
rm -f /var/tmp/genkernel/*
genkernel --no-install --all-ramdisk-modules --kerneldir=<path to kernel> --e2fsprogs --disklabel --oldconfig --busybox all --unionfs --menuconfig all
забрать результат работы можно будет в /var/tmp/genkernel/ модули поставим вручную.
cd <kernel source>
INSTALL_MOD_PATH=$ROOT make modules_install
создадим структуру livecd
mkdir -p ./target/boot/grub
cp /var/tmp/genkernel/initramfs* ./target/
cp /var/tmp/genkernel/kernel* ./target/
cp /var/tmp/genkernel/System* ./target/
touch ./target/livecd
создаём конфиг grub2 в ./target/boot/grub/grub.cfg, примерно следующего содержания:
set default="0"
loadfont unicode
set gfxmode=800x600x32
insmod vbe
insmod vga
insmod gfxterm
set locale_dir=$prefix/locale
set lang=ru_RU
insmod gettext

terminal_output gfxterm
set timeout=2

menuentry 'Linux livecd' {
	set gfxpayload=keep
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='cd,msdos1'
	echo	'Загружается Linux '
	linux	(cd)/kernel-genkernel root=/dev/ram0 ro real_root=/dev/loop0 looptype=squashfs loop=/root.fs cdroot  video=vesafb:ywrap,mtrr:3 console=tty1 quiet net.ifnames=0
	echo	'Загружается начальный виртуальный диск …'
	initrd	(cd)/initramfs
}
теперь всё упаковываем и собираем итоговый образ.
echo ".git" > exclude.files
mksquashfs $ROOT ./target/root.fs -comp xz -ef exclude.files
grub2-mkrescue -d /usr/lib64/grub/i386-pc/ --modules="boot cat cpuid disk echo font file fshelp gettext gfxmenu gfxterm gfxterm_menu halt help iso9660 linux loopback ls lspci msdospart normal squash4 terminal vbe vga video xzio" -o cdrom.iso ./target

Какие будут замечания и предложения по данному методу?

 ,

Dramokl
()

Принтер HP1010

Доброе время суток, при печати на данном принтере получается оочень тусклый(светлый) отпечаток. Кто сталкивался с подобной проблемой?

hplip-3.14.1 cups-1.7.1

Dramokl
()

Разыскивается axalto\gemalto access client

Доброе время суток,

если у кого то завалялся дистрибутив - поделитесь, желательно под 64бита(если таковой вообще был)

 поиски smart card

Dramokl
()

Fn как модификатор

Доброе время суток.

Есть потребность на ноутбуке задействовать клавишу Fn, как модификатор для PageUp\PageDown.

хочу получить примерно следующее: Fn + PageDown = Home Fn + PageUp = End

xev видит её как XF86WakeUp (code 151) Единственное что настораживает при зажатие клавиши - сообщения посылаются непрерывно. Если использовать «стандартные» модификаторы, например Control - при зажатие формируется единовременное событие.

Пробовал правила для xmodmap из примеров - ничего не помогло.

Можно ли добиться такого поведения?

 

Dramokl
()

VFIO проброс pci устройств

Доброе время суток.

Просмотрел вот эту презентацию от RedHat,http://www.linux-kvm.org/wiki/images/b/b4/2012-forum-VFIO.pdf, где описываются все преимущества VFIO.

Но не совсем понятны формулировки на 11-13 страницах слайда.

У vt-d есть «встроенное» ограничение - нелизя пробрасывать отдельные устройства за мостами, и все опыты с xen, vmware, предыдущими версиями qemu это подтвердили - пробрасывается только весь мост целиком.

Преодолевает ли VFIO это ограничение или нет?

 , ,

Dramokl
()

libreoffice и горячие клавиши

Добрый время суток.

Хочу поделиться небольшой историей успеха. Некоторые пользователи (например GNOME 3.8 - пишу из горящего танка ) столкнулись с тем что в Gnome, начиная с версии 3.6 перестали работать горячие клавиши в libreoffice. Прямо или косвенно это связано с миграцией на ibus.

Что надо проделать(на примере gentoo):

1.Проверить что ibus собран с gtk3 и просто gtk

2.Так же установить ibus-m17n и ibus-table

3.В настройках раскладки, взамен раскладки «Русская» добавить «русский (kdb (m17n))»

После этого всё должно заработать как и раньше.

Надеюсь это поможет.

p.s. Так же после этих манипуляция заработали кирилические хоткеи в Eclipse, да бы не проводить подобные манипуляции http://savdalion.blogspot.ru/2011/10/eclipse.html

 , ,

Dramokl
()

Обновление до Gnome 3.8

Доброе время суток.

Пару дней назад с Gnome 3.8 сняли hardmask и он попал в ~. По зависимостям он предлагает снести udev и поставить systemd.

В баг-трекере уже не первый месяц обсуждается отучение Gnome от systemd - стоит ли этого ждать ? Или Поставить systemd в фоне, а продолжить использование openrc?

 ,

Dramokl
()

pulseaudio 4.0

http://www.freedesktop.org/wiki/Software/PulseAudio/Notes/4.0/

Кратко:

- быстрее

- лучше

- гибче

Dramokl
()

Smartcard key storage

Доброе время суток.

Появилось желание хранить ssh-ключ на смарт-карте. Под руками есть JavaCard Cyberflex 64K.

Долгие попытки прогрузить туда апплет не дали результата.

Поделитесь опытом. Стоит ли с этим возится или проще купить другую/новую смарт-карту?

Dramokl
()

не работает проброшенная видео-карта после перезагрузки DomU

Доброе время суток.

Настроил проброс нескольких pci устройств в DomU(на базе Windows), в частности видео-адаптера amd radeon hd7750.

После первой загрузки всё заработало корректно - после ребута видео адаптер не работает.

В логах xen ничего интересного не нашёл.

Гугл выдаёт противоречивую информацию, всё сводится к тому что надо принудительно переинициализировать устройство...D0-D3 итд.

Различные операции через sysfs не привели к результату.

по разныцм темам видел некоторые «истории успеха».

Собственно вопрос - возможно ли такую комбинацию заставить работать на базе xen 4.2? У кого то получилось заставить работать подобные схемы?(исключаю использование Quadro, Firepro...)

 

Dramokl
()

kvm и macvtap

Доброе время суток.

Настраиваю простое виртуальное окружение qemu-kvm. Для гостевых систем использую macvtap для прямой связи с сетевыми интерфейсами хоста. Возникла задача фильтрации трафика гостевой системы, при прохождение через хост.

Вот тут то и возник вопрос - ни в iptables ни в ebtables я не вижу пакетов гостевой системы(исследовал через добавление правила -j LOG в разных таблицах).

Осуществима ли такая фильтрация и как?.

Dramokl
()

OpenWrt и L2TP

Доброе время суток.

Имеется роутер, одной популярной фирмы, где дефолтная прошивка отвратительного качества.
Она была успешно заменена на OpenWRT(сейчас r28057), в общем всё работало чудесно и замечательно. Был настроен openl2tp для тогда ещё Корбины, в последствии Beeline. Работало стабильно год а то и больше. Но тут началась пора смена тарифов - и тут собственно начались чудеса. Сессия l2tp рвалась, не всегда с первого раза устанавливалась и.т.д.
Как временное решение, почитав форумы Билайна, стал использовать xl2tp. Всё стабильно работает - проблем нет. Кроме одной, довольно досадной - интернет работает не в полную силу - скорость ниже на треть, заявленной по тарифу.
Причину я вижу или в некорректной конфигурации xl2tp, либо в том что роутеру не хватает мощности для обслуживания такого потока данных.
Если каким то чудом установить соединение через openl2tp(1 раз из 10 это удаётся) - то скорость достигает заявленной в тарифе.

После введения в проблему вопросы:
1.Реально ли заставить работать xl2tp с потоком в 30Mbit на dir-825(интересует личный опыт)?
2.Можно ли настроить стабильную работу openl2tp?

Ниже содержание конфигов:
Для xl2tp:
# cat /etc/ppp/options.xl2tpd
debug
logfile /var/log/ppp.log
unit 0
remotename L2TP
ipparam beeline
connect /bin/true
mru 1460
mru 1460
noauth
nodeflate
nobsdcomp
persist
maxfail 0
defaultroute
replacedefaultroute
asyncmap 0xa0000
novj
nomp
nopcomp
noaccomp
lcp-echo-failure 10
lcp-echo-interval 60

# cat /etc/xl2tpd/xl2tpd.conf
[global]
access control = yes
auth file = /etc/ppp/chap-secrets

[lac beeline]
lns = tp.internet.beeline.ru
redial = yes
redial timeout = 10
require chap = yes
require authentication = no
name = *********
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
require pap = no
autodial = yes
tunnel rws = 8
tx bps = 100000000
rx bps = 100000000

# cat /etc/hosts
127.0.0.1 localhost
85.21.0.255 tp.internet.beeline.ru

Для openl2tp используется вот этот скрипт:
http://bazaar.launchpad.net/~rye/ junk/openwrt-openl2tp/view/head:/lib/networ...

Если необходима дополнительная информация - запрашивайте.

Dramokl
()

pidgin 2.8.0

На главной ещё нет, но уже список изменений обновили:

http://developer.pidgin.im/wiki/ChangeLog

хоть и 2.8 - ничего нового и интересного для себя не увидел.

Dramokl
()

Ремаппинг бедблоков

На внешнем харде появились бедблоки - что привело к соответствующим затруднениям. попытался их устранить

1. badblocks -b 4096 -s /dev/sdb1 -o result.badblock
2. fsck.reiserfs --rebuild-tree -B result.badblock /dev/sdb1
и вот тут произошло непонятное....несмотря на список бадблоков - перестроение дерева валится с ошибкой ввода/вывода......
а так как процесс уже пошёл ФС пришла в негодность....

Что можно принять для её восстановление.


p.s. Глупо было делать бекапы на внешний хард...
так что к вопросу о бекапирование данных - это они и были.

Dramokl
()

[задачка]Разграничение доступа

Есть S серверов, для запуска каждого из них необходимо предъявить Q ключей, при этом Qs ключей(из предъявленных) необходимо оставить в сервере, для корректного его функционирования. За серверы отвечает P рабочих,у каждого Qp ключей.При запуске сервера как минимум должно присутствовать Pq<=P рабочих.

Определить распределение ключей между рабочими.

Dramokl
()

pidgin 2.7.0

Судя по http://developer.pidgin.im/roadmap , разработка 2.7.0 завершена.
Кто нить знает когда будет официально объявлено о релизе?
судя по тикетам - довольно интересный будет релиз

Dramokl
()

[pidgin][надёжно]keyring\wallet

Недавно был пост о том что пароли хранятся в открытом виде:

libpurple # diff -rup account.c_orig account.c
--- account.c_orig   2010-01-15 13:57:27.000000000 +0300
+++ account.c   2010-01-15 16:36:38.000000000 +0300
@@ -41,11 +41,25 @@
#include «util.h»
#include «xmlnode.h»

+#include <gnome-keyring.h>
+
typedef struct
{
   PurpleConnectionErrorInfo *current_error;
} PurpleAccountPrivate;

+
+GnomeKeyringPasswordSchema pidgin_schema = {
+   GNOME_KEYRING_ITEM_GENERIC_SECRET,
+ {
+      { «pidgin account», GNOME_KEYRING_ATTRIBUTE_TYPE_STRING },
+      { NULL, 0 }
+ },
+   NULL,
+   NULL,
+   NULL
+};
+
#define PURPLE_ACCOUNT_GET_PRIVATE(account) \
   ((PurpleAccountPrivate *) (account->priv))

@@ -377,9 +391,18 @@ account_to_xmlnode(PurpleAccount *accoun

   if (purple_account_get_remember_password(account) &&
      ((tmp = purple_account_get_password(account)) != NULL))
-   {
-      child = xmlnode_new_child(node, «password»);
-      xmlnode_insert_data(child, tmp, -1);
+   {   
+      if (purple_account_get_use_wallet(account))
+      {
+         child = xmlnode_new_child(node, «wallet»);
+         xmlnode_insert_data(child, «1», -1);
+         gnome_keyring_store_password_sync(&pidgin_schema,NULL,purple_account_get_username(account),tmp,«pidgin account»,purple_account_get_username(account),NULL);
+      }
+      else
+      {
+         child = xmlnode_new_child(node, «password»);
+         xmlnode_insert_data(child, tmp, -1);
+      }
   }

   if ((tmp = purple_account_get_alias(account)) != NULL)
@@ -804,6 +827,9 @@ parse_account(xmlnode *node)
   char *protocol_id = NULL;
   char *name = NULL;
   char *data;
+
+   char *passwd;

   child = xmlnode_get_child(node, «protocol»);
   if (child != NULL)
@@ -832,12 +858,43 @@ parse_account(xmlnode *node)
   g_free(protocol_id);

   /* Read the password */
-   child = xmlnode_get_child(node, «password»);
+   child = xmlnode_get_child(node, «wallet»);
   if ((child != NULL) && ((data = xmlnode_get_data(child)) != NULL))
   {
-      purple_account_set_remember_password(ret, TRUE);
-      purple_account_set_password(ret, data);
-      g_free(data);
+      if (strcmp(data,«1») == 0)
+      {
+      /* enabled waallet password storage */
+         purple_account_set_use_wallet(ret, TRUE);
+         if (gnome_keyring_find_password_sync(&pidgin_schema,&passwd,«pidgin account»,purple_account_get_username(ret),NULL) == GNOME_KEYRING_RESULT_OK)
+         {
+            purple_account_set_remember_password(ret, TRUE);
+            purple_account_set_password(ret, passwd);
+            gnome_keyring_free_password(passwd);
+         }
+      }
+      else
+    {
+         purple_account_set_use_wallet(ret, FALSE);
+         g_free(data);
+         child = xmlnode_get_child(node, «password»);
+         if ((child != NULL) && ((data = xmlnode_get_data(child)) != NULL))
+         {
+            purple_account_set_remember_password(ret, TRUE);
+            purple_account_set_password(ret, data);
+            g_free(data);
+         }
+      }
+   }
+   else
+   {   
+      purple_account_set_use_wallet(ret, FALSE);
+      child = xmlnode_get_child(node, «password»);
+      if ((child != NULL) && ((data = xmlnode_get_data(child)) != NULL))
+      {
+         purple_account_set_remember_password(ret, TRUE);
+         purple_account_set_password(ret, data);
+         g_free(data);
+      }
   }

   /* Read the alias */
@@ -2890,3 +2947,21 @@ purple_accounts_uninit(void)
   purple_signals_disconnect_by_handle(handle);
   purple_signals_unregister_by_instance(handle);
}
+
+void
+purple_account_set_use_wallet(PurpleAccount *account, gboolean value)
+{
+   g_return_if_fail(account != NULL);
+
+   account->use_wallet = value;
+
+   schedule_accounts_save();
+}
+
+gboolean
+purple_account_get_use_wallet(const PurpleAccount *account)
+{
+   g_return_val_if_fail(account != NULL, FALSE);
+
+   return account->use_wallet;
+}

libpurple # diff -rup account.h_orig account.h
--- account.h_orig   2010-01-15 14:15:48.000000000 +0300
+++ account.h   2010-01-15 15:19:47.000000000 +0300
@@ -119,6 +119,7 @@ struct _PurpleAccount
   char *buddy_icon_path; /**< The buddy icon's non-cached path. */

   gboolean remember_pass; /**< Remember the password. */
+   gboolean use_wallet;

   char *protocol_id; /**< The ID of the protocol. */

@@ -1058,6 +1059,17 @@ void purple_accounts_uninit(void);

/*@}*/

+
+/**************************************************************************/
+/** @name Wallet Subsystem */
+/**************************************************************************/
+/*@{*/
+
+void purple_account_set_use_wallet(PurpleAccount *account, gboolean value);
+gboolean purple_account_get_use_wallet(const PurpleAccount *account);
+
+/*@}*/
+
#ifdef __cplusplus
}
#endif

 

Dramokl
()

[alsa]Conexant CX20561 (Hermosa)

Имеется ноутбук lenovo ideapad y430 со звуковой системой 2.1,т.е. два фронтальных спикера плюс сабвуфер в дне. Используется intel-hda кодек CX20561. Всё нормально воспроизводиться и играет. Но есть очень неприятная проблема - при подключение наушников - сабвуфер не отключается! И продолжает играть.

Используется ядерная alsa из 2.6.30.

Поиск в гугле не привёл к решению данной проблемы( натыкался на противоположный вопрос - как заставить сабвуфер работать).

Странное "решение" проблемы было найдено совершенно недавно, после того как в дуал бут был поставлен виндовс - в нём сабвуфер не работает,НО после того как осуществляется перезагрузка в linux - сабвуфер перестает работать и тут =)

А теперь собственно вопрос:
1.Если какой то корректный способ отключить сабвуфер в linux? Или это является недоработкой/баком конкретного модуля alsa?
2.Если это бага/недоработка - то ктонить может посоветовать утилиты(направление действий) что бы отследить что там делает звуковой драйвер в windows, и как то перенести это потом в модуль alsa

 

Dramokl
()

RSS подписка на новые темы