LINUX.ORG.RU

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

Qemu и графика + 2 монитора (Arch+XFCE)

 ,

Моя попытка номер два начать нормально дружить с qemu (в прошлый раз почти разобрался, но сеть слетала через 15 минут, а нужно было ну очень срочно и запустил в virtualbox, а потом так что-то и юзал). Так вот, теперь почему-то жёстко тупит видео. Т.е. вылезает окошко например в крысе (с полупрозрачностью, терминала guake) - появляется кусками прямоугольников, а потом само. Сворачиваю окно - тоже подтупливает. Начинаю печатать - текст появляется с задержкой в секунду. А нужно вообще, чтобы работало на 2 мониторах (встроенном и hdmi). На хосте драйвер - открытый radeon(ati который). Остановиться как я понял надо на драйвере qxl для гостя (ибо в вики написано, что только он поддерживает 2 монитора). На хосте подгружены kvm и virtio. Запускать для проверки пробовал так:

-monitor stdio -soundhw es1370 -vga qxl -machine accel=kvm -m 1578
Потом так, чтобы увеличить видео-память:
-monitor stdio -soundhw es1370 -vga none -device qxl-vga,vgamem_mb=64 -machine accel=kvm -m 1578
Ну и с использованием спайса добавлять пробовал -spice port=5930,password=**********.
Вопрос, что можно ещё сделать, чтобы не тормозило? (kvm я включил).
Как подружить его с двумя мониторами? Нашёл, что драйвер должен быть qxl и скормить ему heads=2, куда ни пробовал в параметры запускать прописать - успехом не увенчалось.
Ещё (только на этом драйвере), у меня проблема с курсором мыши - он становится непонятных цветов (наполовину чёрный, наполовину белый) и нажимается странно.
У меня гость х86, какой выбрать эмулятор - i386, x86_64 разумнее наверное и давать 4 ядра ему?
Будут ли два монитора работать без спайса? Мне не нравится необходимость лишней сущности, плюс к тому окно qemu итак нормальное, а в spicy лишняя панель ненужная место занимает и он не отдаёт клаву при потере фокуса (это выбрано кстати в настройках), а отдаёт только если свернуть окошко.
И кстати, было бы круто, если qemu уважал аспект ратио гостя при смене разрешения и не было необходимости его пытаться вручную расширить, шрифты ведь мылятся при неточности.
Для чего используется -boot once=c,menu=off?

fehhner
()

Как там нынче груб ставится?

 ,

Решил тут арч переустановить, делал это загружаясь с ipxe. Дошёл до установки груба, тут начались проблемы. Под boot отдельный раздел размером 500M. Варианты развития событий:

/dev/sda1 — ext2, ставил командой grub-install --force /dev/sda. Force потому что иначе скажет что у раздела нет метки bios boot, а blocklists механизм ненадёжный. Раньше работало, сейчас бутлуп. Мигает на миг «GRUB LOADING» и всё.

/dev/sda1 — ext2, на этот раз с меткой bios boot, просто grub-install /dev/sda, аналогично первому получаем бутлуп.

/dev/sda1 — vfat, grub-install /dev/sda --target=x86_64-efi --efi-directory=/boot/. Ставится, но говорит что не может получить доступ каким-то там efi varibales или типа того, я так понял это NVRAM, потому что .efi файл есть, но автоматом не загружается.

И при особо еб^W неудачном раскладе можно получить надпись GRUB Ç, после нажатия на любую клавишу вылетит стандартная надпись про отсутствие загрузочного устройства. Честно, даже не запомнил как это сделал, но при таком раскладе даже с .efi файла не загрузиться.

Как нынче груб ставится? А ещё я слышал, linux можно напрямую загрузить, а нельзя ли сконфигурировать его так на этапе установки? Потому что та немногочисленная информация, что я нашёл, подсказывает что это баг.

P.S. Ноут hp pavilion g6 2323sr

Deleted
()

Создание графических приложений на Python

 , ,

Хотелось бы хотя бы минимально освоить создание маленьких графических программ на Python. Мне, что называется, окончательно припекло мое незнание программирования, есть острая необходимость в некоторых маленьких утилитах, которые я нигде не могу найти.
Подскажите пожалуйста, на каком графическом фреймворке лучше всего начать освоение? Он должен быть максимально простым и не быть deprecated (активно развиваться, к примеру я бы PyQt4 сейчас не выбрал, потому что Qt4 уже отмирает в пользу Qt5, а переучиваться через пару лет не хочется). Посоветуйте пожалуйста также IDE, которая бы подходила для новичка и взяла на себя максимум рутинной работы (создание форм в визуальном редакторе, автоматическое создание необходимых конструкций для event'ов формы и т.д)

Rinaldus
()

Скрипт для массового переименования

 

Помогите написать скрипт для массового переименования (не важно на чем).

Есть несколько десятков папок типа 123, 124, 125 ... в каждой из которых несколько десятков изображений 01.png, 02.png, ... , 30.png. Надо к изображениям в каждой папке добавить в начало имени еще и номер папки (т.е. чтобы в папке 123 стало 123_01.png, 123_02.png, ... , 123_30.png и т.д.).

Вроде скрипт фигня, но у меня что-то не выходит.

greymax
()

Настройки django-приложения

 ,

Имеется в репозитории django-приложение разрабатываемое в PyCharm. Допустим, разработка ведется несколькими людьми на разных рабочих местах. На разных компьютерах файловые пути к некоторым необходимым для функционирования данным отличаются, потому прописывать их в settings.py не кошерно.

Как принято задавать файловые пути в качестве настроек, не занося их в репозиторий в django?

totik
()

Как правильно организовать запуск таких серверов, как mpd и transmission-daemon

 , , , ,

Добрый вечер. Я пользуюсь mpd и transmission-daemon на единственном домашнем компьютере, и usecase такой:

Единственный пользователь, к обоим серверам подключаюсь локально же, а клиент-серверная архитектура нужна, чтобы я мог рулить одними и теми же программами и через GUI, и по ssh с телефона (в случае музыки это актуально, когда я не за компом, а лежу, а в случае торрентов - вообще безразлично, где я, есть проброс портов). Также мне просто эстетически нравится такой подход.

Хочу реализовать запуск примерно таким образом: эти сервера должны автоматически запускаться при первом логине пользователя от имени пользователя до завершения последней сессии пользователя, безотносительно того, X или не X. Пожалуйста, подскажите, как лучше такое реализовать? cast intelfx, мне кажется, или с помощью systemd можно такое сделать? Заранее спасибо.

Norong
()

Исключить блок html с помощью xpath или regex в python

 , , ,

Привет, ЛОР!

Столкнулся с такой задачей: нужно с помощью python2 взять исходник html-страницы, далее удалить из неё определенные xpath'ы (к примеру, выпиливать блоки с рекламой, т.к. они не несут в себе никакой полезной информации), и вернуть модифицированный html-код.

Сейчас делаю так:

    @staticmethod
    def remove_unnecessary_tags(url, html_source):
        try:
            name = re.findall('.*?/?\.?(\w+)\.\w{2,4}/', url)[0]
        except KeyError:
            print 'Cannot find what the name in %s' % url
            return html_source
        original = html.fromstring(html_source)
        try:
            return original.xpath('.//*[not(%s)]' % x.get_xpaths(name))
        except Exception as e:
            print e
            return original

Проблем а в том, что возвращаю я уже не html-код, а список из

<Element div at 0xb58fad9c>
<Element script at 0xb58fadc4>
<Element script at 0xb58fadec>
<Element noscript at 0xb58fae14>
<Element div at 0xb58fae3c>
<Element img at 0xb58fae64>

У них есть методы elem.tag и elem.text, но ни один из них не позволяет получить полноценную строку типа <div class=«bla»>blabla</div>, как было изначально.

Конечно, остается еще вариант выпиливания кусков по regexp, но я не уверен что это хорошая идея.

Что посоветуешь, ЛОР?

kir64
()

firefox где хранит раздел applications, как его хакнуть.

 

Может есть возможность редактировать эти настройки, поскольку сам firefox это не умеет. У него есть небольшой/ограниченный набор расширений. При открытии файла *.avi предлагает это сделать в gedit. Я им уже туда писал, ничего не менятся.

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

barberry
()

Сздание unit-а для systemd.

 ,

Доброго времени суток Всем! Есть PACS - dcm4chee. Для управления этим сервисом составил такой unit файл для systemd:

[root@dcm4chee system]# cat ./dcm4chee.service
[Unit]
Description=DICOM server daemon
After=network.target mariadb.service iscsi.service

[Service]
ExecStart=/opt/dcm4chee-2.17.3-mysql/bin/dcm4chee_init_redhat.sh start
ExecReload=/opt/dcm4chee-2.17.3-mysql/bin/dcm4chee_init_redhat.sh restart
ExecStop=/opt/dcm4chee-2.17.3-mysql/bin/dcm4chee_init_redhat.sh stop
KillMode=control-group

[Install]
WantedBy=multi-user.target
[root@dcm4chee ~]# systemctl status dcm4chee
dcm4chee.service - DICOM server daemon
   Loaded: loaded (/usr/lib/systemd/system/dcm4chee.service; enabled)
   Active: failed (Result: exit-code) since Thu 2015-04-23 11:26:18 NOVT; 1 weeks 6 days ago
  Process: 2468 ExecStop=/opt/dcm4chee-2.17.3-mysql/bin/dcm4chee_init_redhat.sh stop (code=exited, status=1/FAILURE)
  Process: 2450 ExecStart=/opt/dcm4chee-2.17.3-mysql/bin/dcm4chee_init_redhat.sh start (code=exited, status=0/SUCCESS)
 Main PID: 2450 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/dcm4chee.service

Apr 23 11:26:18 dcm4chee.corp.zdravalt.ru dcm4chee_init_redhat.sh[2468]: at java.net.Socket.connect(Socket.java:529)
Apr 23 11:26:18 dcm4chee.corp.zdravalt.ru dcm4chee_init_redhat.sh[2468]: at java.net.Socket.connect(Socket.java:478)
Apr 23 11:26:18 dcm4chee.corp.zdravalt.ru dcm4chee_init_redhat.sh[2468]: at java.net.Socket.<init>(Socket.java:375)
Apr 23 11:26:18 dcm4chee.corp.zdravalt.ru dcm4chee_init_redhat.sh[2468]: at java.net.Socket.<init>(Socket.java:276)
Apr 23 11:26:18 dcm4chee.corp.zdravalt.ru dcm4chee_init_redhat.sh[2468]: at org.jnp.interfaces.TimedSocketFactory.createSocket(TimedSocketFactory.java:84)
Apr 23 11:26:18 dcm4chee.corp.zdravalt.ru dcm4chee_init_redhat.sh[2468]: at org.jnp.interfaces.TimedSocketFactory.createSocket(TimedSocketFactory.java:77)
Apr 23 11:26:18 dcm4chee.corp.zdravalt.ru dcm4chee_init_redhat.sh[2468]: at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:244)
Apr 23 11:26:18 dcm4chee.corp.zdravalt.ru dcm4chee_init_redhat.sh[2468]: ... 5 more
Apr 23 11:26:18 dcm4chee.corp.zdravalt.ru systemd[1]: dcm4chee.service: control process exited, code=exited status=1
Apr 23 11:26:18 dcm4chee.corp.zdravalt.ru systemd[1]: Unit dcm4chee.service entered failed state.

В скрипте /opt/dcm4chee-2.17.3-mysql/bin/dcm4chee_init_redhat.sh кроме задания переменных окружения выполняется запуск java программы через ещё один скрипт.

Проблема в том что при просмотре статуса сервиса systemctl status dcm4chee, статус отображается не верно и выключить командой systemctl stop dcm4chee не получается.

Подскажите в чём проблема.

galliley
()

Radeon тащит в тестах, проваливает в играх

 , ,

Всем привет,

насмотревшись результаты тестов в Phoronix, начитавшись про успехи ребят, которые пилят дрова Radeon, решил преобрести себе R9 270X чтобы играть в свои танчики и War Thunder и бед не знать.

Но не тут-то было. Несмотря на то, что Steam и glxinfo говорят о том, что у меня и Direct Rendering, и OpenGL 3, и Mesa 10.5, FPS в вышеназначенных играх 10-15, причём почти не зависит от графических настроек. Вентиляторы крутятся еле-еле. Ошибок в Xorg нет, только такого рода предупреждения во время игр, раз в несколько минут:

[   238.995] (WW) RADEON(0): radeon_dri2_flip_event_handler: Pageflip completion event has impossible msc 14222 < target_msc 14223

Ещё интересный момент - в WoT на средних настройках графики и выше, не рисуются 3D-объекты (земля, танки, домики), только элементы интерфейса.

При этом в Phoronix Unigine Heaven выдаёт FPS около 30 на 1920х1080, Unigine Tropics - около 70-80, никаких проблем ни с текстурами, ни с чем-либо ещё.

Кстати, пробовал поставить и блоб, это почти ничего не дало кроме глюков с текстурами.

Куда копнуть? Что ещё можно проверить?

О системе: Fedora 21 x86_64

$ uname -a
Linux localhost.localdomain 3.18.9-200.fc21.x86_64 #1 SMP Mon Mar 9 15:10:50 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

xorg.conf отсутствует

$ inxi -G
Graphics:  Card: Advanced Micro Devices [AMD/ATI] Curacao XT [Radeon R9 270X]
           Display Server: Fedora X.org 116.3 drivers: ati,radeon (unloaded: fbdev,vesa)
           Resolution: 1920x1080@60.00hz, 1680x1050@59.88hz
           GLX Renderer: Gallium 0.4 on AMD PITCAIRN GLX Version: 3.0 Mesa 10.4.3
$ glxinfo | grep Open
OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD PITCAIRN
OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.4.3
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 10.4.3
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 10.4.3
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.0
OpenGL ES profile extensions:
$ glxinfo | grep render
direct rendering: Yes
Xorg.0.log: http://paste.fedoraproject.org/200402/26825038

lelfay
()

Оптимизировать Makefile

 

di= -I..\..\..\include

all: qquickwebenginehistory.o qquickwebengineloadrequest.o qquickwebenginenavigationrequest.o qquickwebenginenewviewrequest.o qquickwebenginesettings.o qquickwebenginesingleton.o qquickwebengineview.o qtwebengineglobal.o
	ar rvs libQt5WebEngine.a qquickwebenginehistory.o qquickwebengineloadrequest.o qquickwebenginenavigationrequest.o qquickwebenginenewviewrequest.o qquickwebenginesettings.o qquickwebenginesingleton.o qquickwebengineview.o qtwebengineglobal.o

.cpp.o:
	g++ -c -O2 $(di) $< -o $@

Подскажите, как для цели all не перечислять буквально все зависимости, а сделать это кратко подобно ".cpp.o: g++ -c -O2 $(di) $< -o $@"? Т.е. чтобы фактические имена файлов не присутствовали в мэйкфайле.

soldio
()

Watch People Code. Посмотреть, как люди программируют.

 , ,

Проект со странным смыслом Watch People Code, где идут стримы с одноименной ветки на Reddit (http://www.reddit.com/r/WatchPeopleCode). Разные программисты снимают процесс написания и отладки кода.

http://www.watchpeoplecode.com/

Zubok
()

Звук 5.1 в Fedora 21...не работает сабвуфер.

 , , ,

Захожу на страничку в контакте и при проигрывании музыки со странички работают все 5 динамиков, кроме сабвуфера. Скачиваю эти же песни при помощи дополнения Firefox'a на комп, включаю, но сабвуфер работает (после того, как я изменил в настройках VLC Output module: «ALSA audio output»(вместо Automatic), а в Device'e выставил «HDA ATI SB, ALC898 Analog 5.1 Surround output to Front, Center, Rear and Subwoofer speakers»). Что нужно сделать, чтобы настройки VLC применялись и при проигрывании музыки со странички контакта?

Desmond_Hume
()

Этот сложный форк

 ,


#!/usr/bin/python
import os
import signal
import sys
import time

lock_filename = 'master.lock'


def master_loop():
    for i in range(0, 3):
        pid = os.fork()
        with open(str(os.getpid()), "a") as f:
            f.write(str(pid)+"\n")
    while True:
        time.sleep(0.1)



def fork_loop():
    with open('f_'+str(os.getpid()), "w") as f:
        f.write("fork")
    while True:
        pass


def remove_lock(sgn, frame):
    os.remove(lock_filename)
    sys.exit(0)

if __name__ == "__main__":
    with open("s_"+str(os.getpid()), "w") as out_f:
        out_f.write(str(os.getpid()))
    master = False
    if not os.path.exists(lock_filename):
        master = True
        with open(lock_filename, "w") as out_f:
            out_f.write(str(os.getpid()))
        signal.signal(signal.SIGTERM, remove_lock)
        signal.signal(signal.SIGINT, remove_lock)
    if master:
        master_loop()
    else:
        fork_loop()

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

Chubakur
()

Один экземпляр python-daemon

 ,

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

Для демонизации использую python-daemon из PEP-3143. В общем случае, демон выглядит так:

# -*- coding: utf-8 -*-
import os
import daemon
import time

PIDFILE='/tmp/foo.pid'

class App():
    def __init__(self):
        self.stdin_path = '/dev/null'
        self.stdout_path = '/dev/tty'
        self.stderr_path = '/dev/tty'
        self.pidfile_path =  PIDFILE
        self.pidfile_timeout = 5
    def run(self):
        while True:
            print "test..."
            time.sleep(10)

    
app = App()
daemon_runner = runner.DaemonRunner(app)
daemon_runner.do_action()

Но, несмотря на pid-файл второй демон запускается спокойно.

Самое простое что пришло в голову - проверять os.path.exists(PIDFILE), а потом try os.kill(pidfile.read_pid(), 0) и ловить except OSError

Но, выглядит как-то костылевато.

Когда гуглил, нашел функцию http://www.thecodingforums.com/threads/single-instance-daemons.644188/

def single_instance(id):
    sock = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM)
    sock.bind('\0' + id)
    return sock

Но, ума не приложу как ей пользоваться, она у меня валится на sock.bind

Еще я нашел такую проверку (средствами самого python-daemon):

pidfile = daemon.pidfile.TimeoutPIDLockFile("/tmp/mydaemon.pid", -1)
if daemon.runner.is_pidfile_stale(pidfile):
Но она вообще непонятно как работает - файл /tmp/mydaemon.pid не создается и is_pidfile_stale всегда возвращает false.

Как правильно ограничивать количество копий процесса? Можете просто ткнуть в доки или бросить ссылкой.

JANB
()

Как примонтировать определенную часть (раздел) dd-образа диска?

 avfsd, , ,

Как примонтировать dd-образ я знаю:

avfsd -o allow_root ~/.avfs
losetup /dev/loop1 /mnt/backup/dd.image
mount /dev/loop1 -oro /mnt/test

А что, если dd-образ был снят с /dev/sda полностью, где были: sda1, sda2 ?

Как узнать смещение (если я правильно понимаю) и примонтировать определенный раздел этого образа?

Т.к. ошибка такая, если монтировать такой образ целиком:

mount: wrong fs type, bad option, bad superblock on /dev/loop1,
       missing codepage or helper program, or other error

science
()

Геймпад под онтопик

 , , , ,

Набралось некоторое количество игорей под онтопик, для которых клавиатура, в качестве контроллера, не самый лучший вариант. Насоветуйте бюджетных геймпадов, которые без проблем заведутся под Ubuntu/openSUSE.

gwinn
()

CUPS - как увидеть принтер по сети

есть три машины с дебианом sid, к одной подключен принтер, поднят CUPS. На одной из двух других машин сетевые принтеры с первой машины видны и печать работает. С другой машины ни CUPS, ни hp-setup из HPLIP не видят принтер. Вручную прописанный не печатает, задания улетают вникуда. Но запущенная на этой же машине в виртуалке винда принтер видит и печатает.

Полностью вычищал CUPS и ставил по новой, переставлял HPLIP толку ноль. Не видит принтеров. Подскажите, куда посмотреть. Проблема явно не на принтсервере, а на клиенте.

griz
()

ZBackup 1.0

 , , , zbackup

Группа Open Source

Вышел первый публичный релиз утилиты резервного копирования с глобальной дедупликацией zbackup. Программа находит области, содержащие одни и те же данные во всех сохраняемых в неё образах, и сохраняет их только один раз. Данные затем сжимаются и, по желанию, шифруются. Оптимально подавать на вход один большой .tar файл, содержащий полный бэкап системы, или же непосредственно сырой образ диска, подлежащий резервному копированию - программа не пытается интерпретировать формат файла, а просто дедуплицирует любой полученный от пользователя. Дедупликация глобальна - данные, полученные в разное время из разных образов, сохраняются только один раз. За счет этого достигается высокая инкрементальность и низкие затраты дискового пространства.

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

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

Домашняя страница программы: http://zbackup.org/

Страница разработки на github: https://github.com/zbackup/zbackup/

>>> Версия 1.0 (tar.gz) (github.com)

ikm
()

Групповое переименовывание

 

Имею файлы вида file1.txt, file2.txt .. file10.txt Как переименовать их в в file0001.txt, file0002.txt .. file0010.txt?

int13h
()