LINUX.ORG.RU

Избранные сообщения blexey

Bluetooth кнопка

 ,

Отцы, помогите советом!

Дано: блютус кнопка (которая для селфи и прочей фигни) к компу подключается, нажатия (enter и VolUp) видны. Хочется переназначить ее кнопки на Next и Prior например, но в списке xinput она видна как slave pointer, соответственно setxkbmap и xkbcomp ее в упор не видят, а xmodmap переназначает, но на всех устройствах сразу, что логично.

Как объяснить иксам что это клавиатура а не мышка? Ну или как переназначить кнопки другим способом?

Кусок лога Х: http://pastebin.com/944Lvndf

Вывод xinput: http://pastebin.com/n6dSuawx

nipper
()

Расшифровка файла конфигурации роутера TP-LINK. Что это? Бэкдор?

 , , , ,

Есть тут кулхацкеры? Интересует одна штуковина...

Есть сохраненная резервная копия файла конфигурации TP-LINK WR841ND - config.bin. Возникла идея влезть внутрь и посмотреть, что из себя представляет этот файл. Возникла она по аналогии с D-LINK'овским tar.gz архивом конфигурации, в котором все просто и понятно: архив, а внутри конфиги.

Надыбал в инете питоновский скрипт, который якобы может что-то дешифровать из файла config.bin. Ладно, думаю, интереса ради запущу. Запустил, на выходе - читаемый config.bin.txt. В принципе скрипт с задачей справился: расшифровало пароль Wi-Fi, логин и пароль для входа в админку, MAC-адреса и куча прочей полезной и не очень информации.

Но насторожила одна запись:

wan_dhcpplus_defsvr 1 218.29.0.227

Запустил whois и обнаружил, что это China Unicom Henan province network, Beijing, 100140, P.R.China и т.д.

Сижу теперь и думаю, что это за айпишник и что он делает в резервной копии конфигурации роутера? Гугл по запросу «China Unicom Henan» выдает много интересного, включая жалобы на атаки хакеров из этой сети, лол :D

Собственно, сам скрипт для расшифровки:

from Crypto.Cipher import DES
from hashlib import md5

key = '\x47\x8D\xA5\x0B\xF9\xE3\xD2\xCF'
crypto = DES.new( key, DES.MODE_ECB )

data = open('config.bin', 'rb').read()
data_decrypted = crypto.decrypt( data ).rstrip('\0')
assert data_decrypted[:16] == md5(data_decrypted[16:]).digest()
open('config.bin.txt', 'wb').write(data_decrypted[16:])
Gonzo
()

Обновился до jessie. Проблема с systemd и rc.local.

 ,

В /etc/rc.local был прописан простенький набор комманд для запуска encfs с запросом пароля прямо во время загрузки системы:

  stty -echo
  read -p "encfs: " encfspass; echo
  stty echo
  echo "$encfspass" | encfs --stdinpass --public /home/user/.encfs /home/user/encfs

После обновления оно совсем перестало работать. Погуглил по systemd и нашёл что StandardInput=tty-force а не no. Оно как-бы работает, но даёт мне всего несколько секунд (около трёх) на ввод пароля. Пароль простой, вбить за пару секунд легко, но смущает сам факт того что система продолжает грузиться в не зависимости от encfs'а. Хотелось бы как раньше — не пытаться загрузить комп пока пароль не введён.

Предложите варианты?

vg6zu
()

Микроскоп с видеоокуляром - нет поддержки линукс

 

Думаю приобрести этот видеоокуляр http://micromed-spb.ru/products/kamery-dlya-mikroskopii/videookulyar-toupcam-... но в нем нет поддержки линукс, возможно ли будет как-то запустить с помощью wine?

ioexception
()

Вышел Synfig Studio 1.0

 , ,

Группа Мультимедиа

Synfig Studio — свободная программа, предназначенная для создания двумерной векторной анимации.

Главные изменения:

  • Реализован однооконный режим.
  • Введена полноценная система «костей» для анимации движений.
  • Добавлена неразрушающая деформация изображений.
  • Добавлен инструмент «ножницы» для неразрушающего редактирования.
  • Реализован звуковой слой, обеспечивающий базовый функционал для синхронизации звука и анимации.

Подробности

WatchCat
()

Бесплатные идентификаторы USB для открытого аппаратного обеспечения

 , , ,

Группа Hardware and Drivers

Несмотря на то, что в 2013 году консорциум USB-IF отказался выделить диапазон идентификаторов (VendorID) для открытых проектов, энтузиастами была найдена лазейка.

При определении USB-устройств операционные системы использует 16-разрядные идентификаторы VendorID (VID) и ProductID (PID). В частности, невозможно одновременно использовать два устройства с одинаковыми идентификаторами, если им требуются разные драйверы.

Правила получения диапазона строго запрещают передачу идентификаторов продукта в любой форме, а само получение обходится в несколько тысяч долларов (за один диапазон ёмкостью аж в 65535 PID, что приводит к очевидному выводу — большая часть полученных идентификаторов лежит у владельцев мёртвым грузом). Но эти правила не распространяются на диапазоны, выданные в давние времена, ещё до образования USB-IF. Компания InterBiometrics, владеющая именно таким диапазоном (VID 1209), за всё время использовала лишь 6 идентификаторов из 65535. Поэтому она оставила себе «про запас» PID с 0×1000 по 0×1FFF, а остальные (0×2000-0xFFFF) передала проекту pid.codes, благодаря чему, любое открытое аппаратное обеспечение теперь может получить свой уникальный идентификатор.

Процедура описана здесь. Условиями получения являются: распространение под свободной лицензией, наличие публичного репозитория и, естественно, интерфейса USB.

>>> Подробности (pid.codes)

anonymous
()

Оптимизация nginx: 200k... 150k... 5k... 1k... wordpress... :D

 , ,

ощщем, ЛОР, пилю очередной тупняк, проходи мимо.

бенчмарк

ab -n 100000 -c 100 -k -H "Accept-Encoding: gzip, deflate" localhost/ 2>&1 | egrep "^(Failed|Requests)"

процессор Pentium G3258 с разгоном до 3.9GHz, остальное не важно. хотите пофапать на хай-лоад?

значит к делу. вот такой конфиг, (сервер _) отлавливает все запросы, которые не подходят под другие хосты.

server {
  listen 80;
  server_name _;

  location = /_.gif {
    empty_gif;
  }
}

ab localhost/_.gif выдаст вам результат в 200000 (двести тысяч!) запросов в секунду. empty_gif это модуль, поэтому такой быстрый.

к сожалению, со статикой картина чуть более печальна. ab localhost/index.html (файлик, что идет вместе с nginx'ом), сообщает о выполнении 125000 тире 150000 запросов в секунду, что тоже не так плохо. то есть, берете свой проект, оборачиваете всю динамику в fastcgi_cache, дабы nginx кэшировал запросы в статику и получаете очень быстрый сайт, мягко говоря.

рецепт успеха

worker_processes 4;
worker_priority -5;

worker_rlimit_nofile 9000;

timer_resolution 100ms;

events {
  use epoll;

  worker_connections 9000;
  multi_accept on;
}

чтобы не расходовать ресурс жесткого диска, I/O, желательно отключить логи, ну или, указать buffer=, да побольше.

error_log /var/log/nginx/error.log warn;

access_log /var/log/nginx/access.log main buffer=64k;
access_log off;
log_not_found off;

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

ssi on;

с ней производительность просядет до копеечных 40000 тысяч на статике и на 20% на динамике, что лучше откажитесь от нее вообще. забудьте.

gzip on;

баллада о двух стульях и матери. придется выбирать между процессорным временем и линком. ресурсоемкая операция, производительность сервера страдает на 20%, но зато пропускная способность сети может быть увеличена в 3 раза за счет сжатия трафика.

open_file_cache max=9000 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 2;
open_file_cache_errors on;

с этим думаю ясно, кэш дескрипторов файлов. нужен.

забудьте о существовании if в nginx, не злоупотребляйте location, каждый отнимает много ресурсов.

любой другой ара-тюнинг по вкусу, на самом деле получится что-то вроде экономии на спичках, так например, tcp_nodelay дает разницу всего в 1000 запросов при 200000 к _.gif (empty_gif). посему смотреть нужно строго по ситуации, конкретных советов уже не дам.

теперь от статики к динамике. обязательно установить php opcache.

# curl http://php.net/distributions/php-5.5.23.tar.xz | tar -xJ -v
# cd php-5.5.23
# ./configure --disable-all --enable-opcache
# make build-modules
# install -m 755 modules/*.so /usr/lib/php/extensions
# echo "zend_extension=opcache.so" > /etc/php/conf.d/opcache.ini

хороший прирост в скорости дает Ъ-распараллеливание и правильная настройка. запускать нужно два бэкенда, абсолютно одинаковых, на одном хосте.

upstream php-fpm {
  server unix:/var/run/php5-fpm.sock0 weight=100 max_fails=5 fail_timeout=5;
  server unix:/var/run/php5-fpm.sock1 weight=100 max_fails=5 fail_timeout=5;
}
location ~ \.php$ {
  try_files $uri =404;

  fastcgi_pass php-fpm;
  fastcgi_index index.php;

  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  include fastcgi_params;
}

настройка php-fpm'ов /etc/php/pool{0,1}.conf

[global]
log_level = notice
emergency_restart_threshold = 0
emergency_restart_interval = 0
process_control_timeout = 0
daemonize = yes

[pool0]
listen = /var/run/php5-fpm.sock0
listen.owner = www
listen.group = www
listen.mode = 0660

user = www
group = www

pm = static
pm.max_children = 8
pm.max_requests = 500

второй точно такой же

:%s/pool0/pool1

:%s/sock0/sock1

# /usr/sbin/php-fpm --fpm-config /etc/php/pool0.conf
# /usr/sbin/php-fpm --fpm-config /etc/php/pool1.conf
# /usr/sbin/nginx -t && /usr/sbin/nginx -s reload

а теперь получите пятикратный прирост производительности php. вот.

Spoofing
()

Управление компьютером с медиа-контентом с другого компьютера

 ,

Подумываю над созданием медиа-центра на основе обычного ПК с подключением его к телевизору. Вопрос: каким образом можно будет управлять воспроизведением контента на медиа-центре с другого компа? Все это конечно будет объединено локальной сетью.

Kompilainenn
()

Безбажная система

 , ,

У меня в очередной раз упал thunar при копировании файла из одной папки в другу, как же меня это все достало. Линукс для десктопа неготов ещё лет 200 как будет. Ну почему все в багах, багаг, бахах. Они везде. Повсюду. Как же мне это надоело! Какое решение проблем? Какое DE самое безбажное? На красоту наплевать.

abs
()

Qt5 Configuration Tool 0.7

 

Группа Open Source

Доступна очередная версия утилиты для настройки внешнего вида Qt5-приложений. Основная цель разработки - решить проблему настройки Qt5-приложений в рабочих окружениях, для которых отсутствует интеграция с Qt5.

В настоящее время программа обладает следующими возможностями:

( читать дальше... )

>>> Подробности (qt-apps.org)

anonymous
()

File sharing для домашней сети

 , , ,

Есть домашняя сеть с выделенным сервером, который служит гейтвеем в инет, на котором крутится торрентокачалка, фаервол, и файлопомойка. И сервер, и все клиенты под линуксом. Сервер не работает постоянно — если на локальном интерфейсе нет входящих пакетов в течение 3 минут, сервер засыпает. Клиенты при старте будят сервер через wake-on-lan, и в последствии раз в минуту пингуют его на всякий случай, чтоб не уснул. Схема работает неплохо: проснувшийся клиент будит сервер, и через считанные секунды на клиенте есть инет.

Но: Сервер шарит файлопомойку по нфс. Клиенты монтируют помойку используя autofs (automount). Проблема в том, что после длительной спячки нфс на клиенте **очень** *долго* расчухивается. Иногда быстрее ребутнуть клиента чем ждать пока нфс очнётся.

Вопросы: Можно ли как-нить настроить нфс (сервер? клиент?) чтоб избежать длительных зависаний? Куда копать? Есть ли альтернативы?

debugger
()

доступ к wi-fi после регистрации на сайте, это как?

 ,

в общем сказали купить микротики с функцией смарт wi-fi, типа там это можно настроить, зарегался на сайте, потом доступ к интернету получил, но я не совсем понимаю, как микротик должен будет брать инфу с сайта, о регистрации данного телефона/ планшета. Вариант с паролем отпадает, нужно, чтобы он мак адреса как то брал, но вот как?

erzent
()

ArchLinux решил перейти на KDE5?

 ,

Обновил Arch. Обновились пакеты konsolepart4 4.14.3-5 и kate 14.12.1-3. Теперь эти две программы выглядят не так, как остальные — игнорируют настройки в systemsettings.

Если в konsole вызвать диалог «О KDE», то он радостно сообщает, что платформа 5.6.0.

Вопроса 2:

1. Собственно, что это? Почему куски нового KDE попали в 4-ую ветку? 2. Для этих программ как то можно настроить стиль отображения?

lemas
()

Wi-fi пульт.

 

Здравствуйте. Размышлял я недавно об управлении устройствами с телефона и пришел к выводу, что это жуть как неудобно. Скажем, чтобы включить свет, мне понадобится разблокировать, запустить wi-fi (для особо экономных), запустить приложение, подождать пока но подключится и только потом нажимать заветную кнопку.

Пришла в голову мысль, что неплохо бы для этих целей подощел wi-fi ПДУ. Функции его очень просты - на каждую кнопку назначаем GET/POST запрос на нужный нам url. При нажатии на кнопку пульт просыпается и отправляет запрос. Всю остальную работу делает web-сервер или непосредственно девайс/сервис с REST-управлением

Если еще немного пофантазировать, можно добавить telnet/SSH/SMTP - протоколы и светодиод, загорающийся разным цветом в зависимости от успеха/ошибки

Подскажите, может быть уже есть в природе подобное. Или может есть какая-нибудь платка с Wi-fi и микроконтроллером, которая позволит сделать самому с минимумом пайки?

makoven
()

BlockField - Самопальный сетевой шутер

 , блоки, ,

Описание
Делаю в свободное время собственный мультиплеерный командный шутер (подобие Ace Of Spades), на Unity3d. Unity3d используется только для GUI + 3d рендер, всё остальное чистый C#.
Самые свежие бинарники
Скриншот

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

Компоненты с открытым исходным кодом
LiteNetLib - сеть
LiteJson - парсинг конфигов и мелочи


P.S.
Если у кого какие баги с видео - попробуйте запускать с ключом -force-opengl
Буду рад вашим отзывам!

RevenantX
()

Редактор тайловых карт Tiled 0.11.0

 , ,

Группа Open Source

Тихо, но незаметно вышла новая версия Tiled — свободного редактора тайловых карт. Основным новшеством этого релиза стала поддержка гексагональных карт (подробнее).

Другие изменения:

  • экспорт по умолчанию использует настройки из прошлого вызова;
  • добавлен хоткей (Ctrl+R) для перезагрузки карты;
  • возможность редактировать названия Custom properties для тайлов;
  • добавлены уникальные идентификаторы для объектов;
  • новый плагин для экспорта в CSV;
  • экспорт карты через cli;
  • поддержка сборки с помощью Qbs;
  • обновлены переводы;
  • и многое другое.

>>> Подробности (mapeditor.org)

aidan
()

Найти ближайшие точки

 

Имеем вектор3 массив позиций каждой из точек (vertex) модели. Необходимо найти ближайшие точки в радиусе от какой-то конкретной. Скажем есть модель линия:

x20, y20,z0
x20, y10,z0
x20, y0, z0
x20,-y10,z0
x20,-y20,z0
нужно найти от точки x20, y0, z0 ближайшие точки в радиусе 15 единиц, то есть, точки:
x20, y10,z0
x20,-y10,z0
Как это сделать?

gbiont
()

Где применима многопоточность, а где нет (алгоритмы)?

 ,

Т.е. какие алгоритмы могут быть запрограммированы многопоточно, а какие наоборот - нет. Мне нужно сделать презентацию на эту тему. Буду рад полезным ссылкам. Не могу найти общей информации по этой теме. Для многопоточности: последовательность в алгоритме должна быть согласованной и линеаризуемоей. Но как доказать линеаризуемость алгоритма!? Да и примеры хорошо бы привести. Нашел инфу по теме http://www.slideshare.net/elizarov/ss-33970658 но там слишком обобщенно всё. Мне нужно больше практических примеров (примеров алгоритмов).

mrXorg
()

Выполнять скрипт при восходе солнца

 ,

Собственно как можно выполнять скрипт в момент восхода/захода Солнца.

kombrig
()

Как остановить mplyer из другово процесса?

 , , ,

Добрый вечер!

Есть задача:

1. Играет ролик.

2. По определенному событию надо запустить другой (короткий) ролик. При этом, перый надо либо запаузить, либо запомнить, на каком месте он играет и выключить.

3. По завершению второго ролика надо опять включить проигрывание первого с того же места (где его запаузили/выключили).

Как послать mplayer-у «сигнал пауза»? Либо как запомнить, где он остановился (если ему послали kill/term сигнал), и запустить его этого места?

В качестве плеера палнируется mplayer. Вывод должен идти на отдельный монитор (DISPLAY). Запуск плеера будет производиться скорее всего из C++/Qt5 кода.

Mplayer использовать не обязательно, подойдет и любой другой. Qt/C++ - не обязательно, подойдет и решение для любого shell скрипта. Хотя, если есть возможность сделать это средствами Qt, то почему бы и нет. По сути надо каким то боком паузить thread или дочерний процесс, в котором будет работать первый плеер.

Заранее благодарен за Ваши советы.

samson
()