LINUX.ORG.RU

Сообщения Sunderland93

 

Монтирование съёмных носителей во FreeBSD: помогите!

Всем привет! Продолжается моя эпопея по превращению FreeBSD в приличный десктоп. На этот раз я столкнулся с критической проблемой: монтирование носителей. А если быть точнее - внешних дисков с NTFS и своих линуксовых разделов. Установил я KDE 4 (после долгих раздумий), сделал всё по инструкциям, которые собирал по всему интернету и описал в своем блоге. Что мне нужно? Мне нужно чтобы я в Dolhpin кликнул по значку нужного мне диска - и он сразу смонтировался и открылся, как в Линуксе. Но вместо этого я получаю ошибку org.freedesktop.Hal.Device.Volume.UnknownFailure: mount: illegal option -- u usage: mount [-t fstype] [-o options] target_fs mount_point С помощью гуглежа проблему решить не удалось, зато наткнулся на сообщение разрабов PC-BSD, что это проблема KDE, точнее того, что оно завязано на Линукс и использует линуксоспецифичные команды монтирования дисков. Решил попробовать MATE - вообще никакой реакции на клик по диску в Caja. Собственно, вопрос очевиден: как сделать хорошо? Ибо монтирование всего подряд через консоль - это для меня уже предел извращенства.

 , , , ,

Sunderland93 ()

Ошибка загрузки системы: cannot get c/h/s values

Доброго времени суток. Поставил на один из дисков, с таблицей разделов GPT, FreeBSD 11.1. Добавил опцию загрузки в GRUB, загружаюсь - а мне пишет hd4: cannot get c/h/s values. Сперва думал что это потому что не создал на этом диске раздел bios_grub (у меня мать с BIOS), но это ни на что не повлияло. Хотя на системном диске этот раздел имеется. И ещё странно: в Gparted диск определяется как /dev/sde, но на самом деле он /dev/sdd (так его видит gdisk). В чём причина всего этого? Вывод gdisk:

GPT fdisk (gdisk) version 1.0.1

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/sdd: 1953525168 sectors, 931.5 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): F14F2323-D4EE-4397-B677-9868A039423A
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 1953525134
Partitions will be aligned on 1024-sector boundaries
Total free space is 373239157 sectors (178.0 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048      1496401919   713.5 GiB   8300  DATA
   2      1496401920      1496402943   512.0 KiB   A501  
   3      1496402944      1580287991   40.0 GiB    A503  freebsd

fdisk -l
Disk /dev/sdc: 931,5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xb0bacb76

Device     Boot     Start        End    Sectors   Size Id Type
/dev/sdc1  *         2048    1026047    1024000   500M  7 HPFS/NTFS/exFAT
/dev/sdc2         1026048  235519999  234493952 111,8G  7 HPFS/NTFS/exFAT
/dev/sdc3       235522048 1953519884 1717997837 819,2G  7 HPFS/NTFS/exFAT


Disk /dev/sda: 55,9 GiB, 60022480896 bytes, 117231408 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 1BA5848A-49E5-463F-9D15-EB32F522BA7A

Device     Start       End   Sectors  Size Type
/dev/sda1   2048      8191      6144    3M BIOS boot
/dev/sda2   8192 117229567 117221376 55,9G Linux filesystem


Disk /dev/sdd: 931,5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: F14F2323-D4EE-4397-B677-9868A039423A

Device          Start        End    Sectors   Size Type
/dev/sdd1        2048 1496401919 1496399872 713,6G Linux filesystem
/dev/sdd2  1496401920 1496402943       1024   512K FreeBSD boot
/dev/sdd3  1496402944 1580287991   83885048    40G FreeBSD UFS

FreeBSD грузится через следующий конфиг:
menuentry "FreeBSD 11.1" --class freebsd --class bsd --class os {
    insmod ufs2
    insmod bsd
    insmod part_gpt
    set root='(hd4,3)'
    kfreebsd /boot/loader
}

 , , , ,

Sunderland93 ()

Выбор DE для FreeBSD

Всем привет! В очередной раз хочу поставить FreeBSD в качестве десктопа. Встал вопрос выбора DE. Собственно, вопрос прост - что из существующих DE лучше всего там работает? Странно, звучит конечно, но всё же. Пока присматриваюсь к Xfce и KDE 4, как сейчас дела с KDE 5? Насколько хорошо/криво работает Гном? В общем, жду мнений

 , ,

Sunderland93 ()

QtWebEngine отныне полноценно работает под Wayland

теперь такие браузеры как Qupzilla, Otter и Konqueror запускаются и работают нативно под Wayland

 , , , ,

Sunderland93 ()

AppArmor и SElinux в одной системе: возможно ли?

Привет всем. Однажды я уже создавал подобную тему, но ничего конкретного, к сожалению, не получил. Сейчас попробую поставить более чёткую цель: есть Flatpak и Snap. Первому для изоляции нужен SElinux, второму - AppArmor. Дистрибутив - Debian 9. AppArmor ставится и включается крайне просто, настройки не требует. И после установки snapd всё соответственно работает. Но Flatpak не умеет в AppArmor. Как быть если нужны оба этих формата пакетов? Возможно ли как-то вкорячить и AppArmor и SElinux на одну систему? Звучит конечно безумно, но всё же. И если кто в курсе - планируется ли в Snap поддержка SElinux, а во Flatpak - поддержка AppArmor?

 , , , ,

Sunderland93 ()

Почему протоколы (например Wayland) описываются в формате XML?

Сабж. Почему XML? Прошу объяснить

 , ,

Sunderland93 ()

Blender не видит GPU (CUDA)

Всем привет! Такая проблема: Blender 2.78, установленный из штатного репозитория Debian 9, не видит GPU как CUDA-девайс, то есть в настройках Блендера, для рендеринга не доступен GPU. В том время как если поставить Blender с сайта или из Стима - всё в порядке. В чём может быть причина? Все нужные пакеты установлены

 , ,

Sunderland93 ()

Прошу посоветовать годный хостинг для репозитория

Всем привет! OBS меня в конец задолбал своей тупостью и ограничениями, потому задумался о переносе своего Debian-репозитория на отдельный хостинг, чтобы всё как у людей было. Критерии такие:

1) Оптимальная цена. В идеале не дороже 300 рублей в месяц, потолок 500.
2) Пропускная способность не ниже 100 мегабит.
3) Предоставляемое место не менее 2-3 гигабайт.

Также жду советов от тех, кто организовывал свои репозитории

 , ,

Sunderland93 ()

Qt: компоновка формы фиксированного размера

Привет всем! Извиняюсь за потенциально тупой вопрос, но: нужно ли компоновать виджеты на форме при помощи layout's, если окно формы будет фиксированного размера (то есть не будет растягиваться)?

 , ,

Sunderland93 ()

Странности с OpenWRT/LEDE

Всем привет. Имеется маршрутизатор TP-LINIK WR842N, прошитый на последнюю LEDE. К нему в USB вставлен 4G-модем, работающий в режиме Hilink (по сути тоже маршрутизатор, также и веб-морда есть, и IP с DNS раздаёт). Так вот. При таком способен подключения к сети, скорость приёма всегда максимальная, но скорость отдачи мизерная и всё время обрывается (невозможно что-то в сеть загрузить). При этом если воткнуть модем напрямую в комп - всё работает нормально. В чём может быть причина? Конфиг сетевых интерфейсов:

config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fd0b:e2b7:ad5a::/48'

config interface 'lan'
        option type 'bridge'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option _orig_ifname 'eth0 wlan0-1'
        option _orig_bridge 'true'
        option ifname 'eth0'
        option broadcast '192.168.1.255'

config interface 'wan'
        option ifname 'eth1'
        option proto 'dhcp'

config interface 'wan6'
        option ifname 'eth1'
        option proto 'dhcpv6'

config switch
        option name 'switch0'
        option reset '1'
        option enable_vlan '1'

config switch_vlan
        option device 'switch0'
        option vlan '1'
        option ports '1 2 3 4 0'

config interface 'USB'
        option proto 'dhcp'
        option ifname 'eth2'

 , , , ,

Sunderland93 ()

Разработчики MATE планируют использовать дисплейный сервер Mir в качестве Wayland-композитора

Martin Wimpress, один из разработчиков MATE и создатель дистрибутива UbuntuMATE, поделился планами по обеспечению поддержки оконной системы Wayland в окружении MATE. В силу крайне малого количества разработчиков, а также их ограниченности во времени, которое они могут тратить на разработку MATE, было решено не писать свой Wayland-композитор с нуля, а использовать дисплейный сервер Mir, адаптировав его для работы в качестве Wayland-композитора. Причины, по которым они не хотят использовать, например GNOME Mutter он не назвал. Однако разработчики осознают, что при текущих темпах разработки MATE, поддержка Wayland там будет обеспечена спустя несколько лет, и чтобы этого не допустить - решено взять готовую разработку и лишь немного переделать

Источник: http://phoronix.com/scan.php?page=news_item&px=MATE-Mir-Possibilities

 , ,

Sunderland93 ()

В Fedora 27 планируется интеграция PipeWire - эффективной замены PulseAudio и JACK

В Fedora 27 планируется интегрировать PipeWire - новую подсистему, ранее известную как Pinos, или «pulseaudio for video». Задачей PipeWire будет объединение в себе не только функционала PulseAudio и JACK для предоставления высококачественной работы аудио, но и обеспечение работы с видеопотоками, что также позволит упростить вывод видео через Flatpak-приложения и предоставить API для захвата изображения в Wayland (наконец-то!) - скринкасты, шаринг экрана и так далее. Новая подсистема разрабатывается при участии ключевых разработчиков GStreamer и PulseAudio, и в скором будущем будет представлена в Fedora. Разработчики хотят превратить Fedora в «лучшее место для создания различного контента». Прям как в своё время Amiga

https://blogs.gnome.org/uraeus/2017/06/20/fedora-workstation-26-and-beyond/

P.S. Дабы не причинять боль разработчикам, планируется обеспечить полную совместимость с PulseAudio и прочим, дабы не пришлось ни коим образом модифицировать существующие приложения. Учитывая что обещает всё это не Canonical, а RedHat - это всё правда

 , , , ,

Sunderland93 ()

Тестовые сборки Ubuntu переведены по умолчанию на GNOME

Субж http://www.omgubuntu.co.uk/2017/06/ubuntu-17-10-daily-builds-gnome

P.S. не так уж плохо смотрится, моё мнение. Хотя непонятно почему LightDM а не GDM?

 , , ,

Sunderland93 ()

Не могу загрузить исходный код в PPA

Всем привет. Думал что проблему пофиксили, но она осталась. Debian 9. Пытаюсь загрузить исходники на свой PPA при помощи dput-ng. В Debian 8 и Ubuntu 16.04 всё работает, а здесь выдаёт ошибку юникода:

[DEBUG] 1496562906.938614: (load_config) Loading configuration: profiles DEFAULT
[DEBUG] 1496562906.939437: (load_config) Loading configuration: profiles DEFAULT
[DEBUG] 1496562906.939561: (load_config) Loading configuration: profiles DEFAULT
[DEBUG] 1496562906.939721: (load_config) Loading configuration: metas boring
[DEBUG] 1496562906.941066: (load_config) Loading configuration: profiles DEFAULT
[DEBUG] 1496562906.941946: (load_config) Loading configuration: profiles aftl
[DEBUG] 1496562906.942125: (load_config) Loading configuration: profiles aftl
[DEBUG] 1496562906.942299: (load_config) Loading configuration: profiles aftl
[DEBUG] 1496562906.942592: (load_config) Loading configuration: profiles aftl
[DEBUG] 1496562906.942879: (get_config) Got configuration: aftl
[DEBUG] 1496562906.942925: (get_config)         hash: md5
[DEBUG] 1496562906.942975: (get_config)         scp_compress: False
[DEBUG] 1496562906.943026: (get_config)         hooks: [u'allowed-distribution', u'checksum', u'suite-mismatch', u'gpg']
[DEBUG] 1496562906.943075: (get_config)         meta: boring
[DEBUG] 1496562906.943121: (get_config)         interface: cli
[DEBUG] 1496562906.943167: (get_config)         run_lintian: False
[DEBUG] 1496562906.943213: (get_config)         allow_dcut: False
[DEBUG] 1496562906.943259: (get_config)         full_upload_log: False
[DEBUG] 1496562906.943304: (get_config)         name: aftl
[DEBUG] 1496562906.943361: (get_config)         default_host_main: 
[DEBUG] 1496562906.943408: (get_config)         incoming: ~samoilov-lex/ubuntu/aftl-stable/
[DEBUG] 1496562906.943451: (get_config)         allowed_distributions: (?!UNRELEASED)
[DEBUG] 1496562906.943497: (get_config)         pre_upload_command: 
[DEBUG] 1496562906.943543: (get_config)         allow_unsigned_uploads: False
[DEBUG] 1496562906.943589: (get_config)         passive_ftp: True
[DEBUG] 1496562906.943635: (get_config)         codenames: None
[DEBUG] 1496562906.943680: (get_config)         fqdn: ppa.launchpad.net
[DEBUG] 1496562906.943723: (get_config)         allowed-distribution: {}
[DEBUG] 1496562906.943768: (get_config)         check_version: False
[DEBUG] 1496562906.943810: (get_config)         login: anonymous
[DEBUG] 1496562906.943855: (get_config)         run_dinstall: False
[DEBUG] 1496562906.943896: (get_config)         method: ftp
[DEBUG] 1496562906.943941: (get_config)         post_upload_command: 
[DEBUG] 1496562906.943988: (validate_object) Loading schema config from /usr/share/dput-ng/schemas
[DEBUG] 1496562906.944126: (validate_object) Skipping skel/schemas
[DEBUG] 1496562906.944921: (load_config) Loading configuration: hooks allowed-distribution
[DEBUG] 1496562906.945214: (validate_object) Loading schema plugin from /usr/share/dput-ng/schemas
[DEBUG] 1496562906.945304: (validate_object) Skipping skel/schemas
[DEBUG] 1496562906.945458: (mangle_sys) Loading external script location /usr/share/dput-ng/scripts
[DEBUG] 1496562906.945509: (mangle_sys) Loading external script location /etc/dput.d/scripts
[DEBUG] 1496562906.945569: (mangle_sys) Loading external script location /media/DATA/Загрузки/android-file-transfer-3.0/skel/scripts
[DEBUG] 1496562906.945619: (mangle_sys) Loading external script location /home/sunderland93/.dput.d/scripts
[DEBUG] 1496562906.945996: (load_config) Loading configuration: hooks checksum
[DEBUG] 1496562906.946292: (validate_object) Loading schema plugin from /usr/share/dput-ng/schemas
[DEBUG] 1496562906.946383: (validate_object) Skipping skel/schemas
[DEBUG] 1496562906.946684: (load_config) Loading configuration: hooks suite-mismatch
[DEBUG] 1496562906.946968: (validate_object) Loading schema plugin from /usr/share/dput-ng/schemas
[DEBUG] 1496562906.947058: (validate_object) Skipping skel/schemas
[DEBUG] 1496562906.947276: (load_config) Loading configuration: hooks gpg
[DEBUG] 1496562906.947582: (validate_object) Loading schema plugin from /usr/share/dput-ng/schemas
[DEBUG] 1496562906.947672: (validate_object) Skipping skel/schemas
[DEBUG] 1496562906.947958: (determine_logfile) Writing log to /home/sunderland93/Загрузки/android-file-transfer_3.0-3_source.aftl.upload
Uploading android-file-transfer using ftp to aftl (host: ppa.launchpad.net; directory: ~samoilov-lex/ubuntu/aftl-stable/)
[INFO] 1496562906.949333: (invoke_dput) Uploading android-file-transfer using ftp to aftl (host: ppa.launchpad.net; directory: ~samoilov-lex/ubuntu/aftl-stable/)
[DEBUG] 1496562906.949629: (load_config) Loading configuration: hooks allowed-distribution
[DEBUG] 1496562906.949931: (validate_object) Loading schema plugin from /usr/share/dput-ng/schemas
[DEBUG] 1496562906.950022: (validate_object) Skipping skel/schemas
running allowed-distribution: check whether a local profile permits uploads to the target distribution
[INFO] 1496562906.950145: (run_hook) running allowed-distribution: check whether a local profile permits uploads to the target distribution
[DEBUG] 1496562906.950317: (load_config) Loading configuration: hooks allowed-distribution
[DEBUG] 1496562906.950691: (validate_object) Loading schema plugin from /usr/share/dput-ng/schemas
[DEBUG] 1496562906.950828: (validate_object) Skipping skel/schemas
[DEBUG] 1496562906.951203: (load_config) Loading configuration: interfaces cli
[DEBUG] 1496562906.951605: (validate_object) Loading schema plugin from /usr/share/dput-ng/schemas
[DEBUG] 1496562906.951696: (validate_object) Skipping skel/schemas
[DEBUG] 1496562906.952216: (load_config) Loading configuration: hooks checksum
[DEBUG] 1496562906.952516: (validate_object) Loading schema plugin from /usr/share/dput-ng/schemas
[DEBUG] 1496562906.952605: (validate_object) Skipping skel/schemas
running checksum: verify checksums before uploading
[INFO] 1496562906.952725: (run_hook) running checksum: verify checksums before uploading
[DEBUG] 1496562906.952891: (load_config) Loading configuration: hooks checksum
[DEBUG] 1496562906.953171: (validate_object) Loading schema plugin from /usr/share/dput-ng/schemas
[DEBUG] 1496562906.953261: (validate_object) Skipping skel/schemas
[DEBUG] 1496562906.953497: (load_config) Loading configuration: interfaces cli
[DEBUG] 1496562906.953777: (validate_object) Loading schema plugin from /usr/share/dput-ng/schemas
[DEBUG] 1496562906.953867: (validate_object) Skipping skel/schemas
[DEBUG] 1496562906.954066: (validate_checksums) validating md5 checksums
Traceback (most recent call last):
  File "/usr/bin/dput", line 106, in <module>
    upload_package(changes, args)
  File "/usr/lib/python2.7/dist-packages/dput/uploader.py", line 312, in invoke_dput
    run_pre_hooks(changes, profile)
  File "/usr/lib/python2.7/dist-packages/dput/hook.py", line 54, in run_pre_hooks
    run_hook(name, hook, changes, profile)
  File "/usr/lib/python2.7/dist-packages/dput/hook.py", line 83, in run_hook
    return run_func_by_name('hooks', name, changes, profile)
  File "/usr/lib/python2.7/dist-packages/dput/util.py", line 366, in run_func_by_name
    obj(changes, profile, interface)
  File "/usr/lib/python2.7/dist-packages/dput/hooks/checksum.py", line 53, in validate_checksums
    changes.validate_checksums(check_hash=profile["hash"])
  File "/usr/lib/python2.7/dist-packages/dput/changes.py", line 297, in validate_checksums
    for filename in self.get_files():
  File "/usr/lib/python2.7/dist-packages/dput/changes.py", line 121, in get_files
    for z in self._data['Files']]
  File "/usr/lib/python2.7/posixpath.py", line 73, in join
    path += '/' + b
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 19: ordinal not in range(128)


С обычным dput ошибка немного другая:
D: dput 0.12.1
D: Login: sunderland93
D: Parsing Configuration File /etc/dput.cf
D: Parsing Configuration File /home/sunderland93/.dput.cf
D: Checking if a host was named on the command line.
D: Host aftl found in config
D: modules_found: ['ftp', 'http', 'https', 'local', 'rsync', 'scp']
D: Module: ftp (<module 'dput.methods.ftp' from '/usr/share/dput/dput/methods/ftp.pyc'>)
D: Method name: ftp
D: Module: http (<module 'dput.methods.http' from '/usr/share/dput/dput/methods/http.pyc'>)
D: Method name: http
D: Module: https (<module 'dput.methods.https' from '/usr/share/dput/dput/methods/https.pyc'>)
D: Method name: https
D: Module: local (<module 'dput.methods.local' from '/usr/share/dput/dput/methods/local.pyc'>)
D: Method name: local
D: Module: rsync (<module 'dput.methods.rsync' from '/usr/share/dput/dput/methods/rsync.pyc'>)
D: Method name: rsync
D: Module: scp (<module 'dput.methods.scp' from '/usr/share/dput/dput/methods/scp.pyc'>)
D: Method name: scp
D: Validating contents of changes file /home/sunderland93/Загрузки/android-file-transfer_3.0-3_source.changes
D: Architecture: source
D: dsc-File: android-file-transfer_3.0-3.dsc
D: upload control file: /home/sunderland93/Загрузки/android-file-transfer_3.0-3_source.changes
D: source control file: /home/sunderland93/Загрузки/android-file-transfer_3.0-3.dsc
Checking signature on .changes
Traceback (most recent call last):
  File "/usr/bin/dput", line 11, in <module>
    load_entry_point('dput==0.12.1', 'console_scripts', 'execute-dput')()
  File "/usr/share/dput/dput/dput.py", line 1012, in main
    config, check_only, check_version, unsigned_upload, debug)
  File "/usr/share/dput/dput/dput.py", line 374, in verify_files
    config, check_only, unsigned_upload, binary_upload, debug)
  File "/usr/share/dput/dput/dput.py", line 272, in verify_signature
    assert_good_signature_or_exit(changes_file_path)
  File "/usr/share/dput/dput/dput.py", line 256, in assert_good_signature_or_exit
    crypto.check_file_signature(infile)
  File "/usr/share/dput/dput/crypto.py", line 106, in check_file_signature
    path=infile.name, sig=signature, description=description))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 19: ordinal not in range(128)

Помогите разобраться. Репортил баг в Debian - никакого ответа.

 , , , ,

Sunderland93 ()

PyQt5: как правильно назначить событие на кнопку?

Привет всем. Пишу тут утилиту для создания загрузочных флешек. На PyQt 5. Делаю всё согласно книге (да много источников просматривал) Для создания главного окна применял Qt Designer, затем конвертировал форму в класс Python. Создал ещё один файл, подключил форму, всё работает. Прописываю действие для кнопки (открытие диалога About), функцию, запускаю приложение - и кнопка не работает. Что только не перепробовал уже. Такое чувство что интерпретатор тупо игнорит строку с назначением обработчика, ибо даже если там намеренно сделать ошибку - прога запускается как ни в чём не бывало. Где ошибка? Вот форма:

# -*- coding: utf-8 -*-

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(420, 301)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
        MainWindow.setSizePolicy(sizePolicy)
        MainWindow.setMinimumSize(QtCore.QSize(420, 301))
        MainWindow.setMaximumSize(QtCore.QSize(420, 301))
        icon = QtGui.QIcon.fromTheme("drive-removable-media")
        MainWindow.setWindowIcon(icon)
        self.centralWidget = QtWidgets.QWidget(MainWindow)
        self.centralWidget.setObjectName("centralWidget")
        self.label = QtWidgets.QLabel(self.centralWidget)
        self.label.setGeometry(QtCore.QRect(10, 0, 59, 21))
        self.label.setObjectName("label")
        self.comboBox = QtWidgets.QComboBox(self.centralWidget)
        self.comboBox.setGeometry(QtCore.QRect(10, 20, 401, 32))
        self.comboBox.setObjectName("comboBox")
        self.label_2 = QtWidgets.QLabel(self.centralWidget)
        self.label_2.setGeometry(QtCore.QRect(10, 60, 59, 18))
        self.label_2.setObjectName("label_2")
        self.toolButton = QtWidgets.QToolButton(self.centralWidget)
        self.toolButton.setGeometry(QtCore.QRect(380, 80, 33, 34))
        self.toolButton.setText("")
        icon = QtGui.QIcon.fromTheme("document-open")
        self.toolButton.setIcon(icon)
        self.toolButton.setObjectName("toolButton")
        self.label_3 = QtWidgets.QLabel(self.centralWidget)
        self.label_3.setGeometry(QtCore.QRect(10, 120, 41, 18))
        self.label_3.setObjectName("label_3")
        self.lineEdit = QtWidgets.QLineEdit(self.centralWidget)
        self.lineEdit.setGeometry(QtCore.QRect(10, 140, 201, 32))
        self.lineEdit.setObjectName("lineEdit")
        self.label_4 = QtWidgets.QLabel(self.centralWidget)
        self.label_4.setGeometry(QtCore.QRect(220, 120, 71, 18))
        self.label_4.setObjectName("label_4")
        self.comboBox_3 = QtWidgets.QComboBox(self.centralWidget)
        self.comboBox_3.setGeometry(QtCore.QRect(220, 140, 191, 32))
        self.comboBox_3.setObjectName("comboBox_3")
        self.comboBox_3.addItem("")
        self.comboBox_3.addItem("")
        self.comboBox_3.addItem("")
        self.line = QtWidgets.QFrame(self.centralWidget)
        self.line.setGeometry(QtCore.QRect(10, 180, 401, 16))
        self.line.setFrameShape(QtWidgets.QFrame.HLine)
        self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line.setObjectName("line")
        self.progressBar = QtWidgets.QProgressBar(self.centralWidget)
        self.progressBar.setGeometry(QtCore.QRect(10, 210, 401, 23))
        self.progressBar.setProperty("value", 0)
        self.progressBar.setObjectName("progressBar")
        self.cancelButton = QtWidgets.QPushButton(self.centralWidget)
        self.cancelButton.setGeometry(QtCore.QRect(320, 260, 88, 34))
        icon = QtGui.QIcon.fromTheme("dialog-cancel")
        self.cancelButton.setIcon(icon)
        self.cancelButton.setObjectName("cancelButton")
        self.writeButton = QtWidgets.QPushButton(self.centralWidget)
        self.writeButton.setGeometry(QtCore.QRect(230, 260, 88, 34))
        icon = QtGui.QIcon.fromTheme("dialog-ok")
        self.writeButton.setIcon(icon)
        self.writeButton.setObjectName("writeButton")
        self.aboutButton = QtWidgets.QPushButton(self.centralWidget)
        self.aboutButton.setGeometry(QtCore.QRect(10, 260, 88, 34))
        icon = QtGui.QIcon.fromTheme("help-about")
        self.aboutButton.setIcon(icon)
        self.aboutButton.setObjectName("aboutButton")
        self.lineEdit_2 = QtWidgets.QLineEdit(self.centralWidget)
        self.lineEdit_2.setGeometry(QtCore.QRect(10, 80, 361, 32))
        self.lineEdit_2.setObjectName("lineEdit_2")
        MainWindow.setCentralWidget(self.centralWidget)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "QImageWriter"))
        self.label.setText(_translate("MainWindow", "Device:"))
        self.label_2.setText(_translate("MainWindow", "ISO:"))
        self.label_3.setText(_translate("MainWindow", "Label:"))
        self.lineEdit.setText(_translate("MainWindow", "USB_STICK"))
        self.label_4.setText(_translate("MainWindow", "Filesystem:"))
        self.comboBox_3.setItemText(0, _translate("MainWindow", "FAT32"))
        self.comboBox_3.setItemText(1, _translate("MainWindow", "NTFS"))
        self.comboBox_3.setItemText(2, _translate("MainWindow", "EXT4"))
        self.cancelButton.setText(_translate("MainWindow", "Cancel"))
        self.writeButton.setText(_translate("MainWindow", "Write"))
        self.aboutButton.setText(_translate("MainWindow", "About"))


Вот код исполняемого файла:
#!/usr/bin/env python3

from PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBox
from mainwindow import *
import sys

class QImageWriter (QMainWindow, Ui_MainWindow):
    def  __init__(self):
        QMainWindow.__init__(self)
        self.window = QtWidgets.QMainWindow()
        self.setupUi(self.window)
        
        self.aboutButton.clicked.connect(self.about)
        
        
def about(self):
        
        msg = QMessageBox()
        msg.setIcon(QMessageBox.Information)
        msg.setText('QImageWriter - a tool for write disk images to USB drive, written on PyQt5\nThis program redistributed under GNU GPLv3 license. \
                     Copyright (C) 2017 Aleksey Samoilov aka Sunderland93')
        msg.setWindowTitle('About')
        msg.exec_()
        
        
if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(window)
    
    window.show()
    sys.exit(app.exec_())

 , , ,

Sunderland93 ()

Qt 6 замаячил на горизонте

Ларс Кнолл (Lars Knoll) (или Нолл, не знаю как правильно) опубликовал несколько заметок, касаемо ближайшего будущего Qt

  • Он признаёт проблемы с нечастыми выпусками патч-релизов Qt, включая то что Qt 5.8 вообще не получит ни одного патч-релиза (Qt 5.8.1 и так далее). Но надеется что благодаря улучшению непрерывной интеграции и частым бета версиям, ситуация улучшится;
  • Qt 5.9, который выйдет в мае этого года, будет вторым LTS-релизом с поддержкой 3-х лет. Текущим LTS-выпуском является Qt 5.6;
  • Qt 5.10 по-прежнему запланирован на конец осени этого года, тогда как Qt 5.11 выйдет весной 2018;
  • После выпуска Qt 5.11 команда разработчиков сосредоточится на разработке Qt 6, детали о котором будут объявлены в этом году.

    Источник http://lists.qt-project.org/pipermail/development/2017-May/029902.html

 ,

Sunderland93 ()

Не загружается система: no init found, filesystem with invalid superblock

Привет всем. Такая беда: есть комп с Debian 8. На пустой раздел рядом поставил Ubuntu 17.04, всё хорошо. После использования Debian 8 некоторое время, перезагружаюсь в Ubuntu - и система падает в Busybox с сообщениями:

Found EXT4 filesystem with invalid superblock.....No init found..
и в таком духе, и предлагает вручную запустить e2fsck. Запускаю, находит кучу ошибок, правит, перезагрузка - всё работает. До поры до времени. Диск нормальный, без бэд-блоков, для чистоты эксперимента ставил на другой. Также пробовал Debian 9 - та же хрень. В чём может быть дело? Почему у меня слетает файловая система?

 , , , ,

Sunderland93 ()

PyQt5 и Qt Designer: правильно подключить форму приложения

Всем привет. Изучаю PyQt, морды приложениям (как минимум на первых порах) буду лепить в Qt Designer. В интернетах нашёл 3 способа подключения формы к коду: напрямую подключать .ui файл дизайнера, конвертировать его в класс через pyuic и конвертировать непосредственно в коде приложения через uic.loadUi(). Вопрос к знатокам: какой способ предпочтительнее? На мой взгляд подключать форму напрямую будет удобнее тогда, когда нужно будет что-то в ней подправить. Но с другой стороны - если её подключать как класс, код становится более понятным. Так ли это?

 , , , ,

Sunderland93 ()

Несколько вопросов по установке системы на SSD

Всем привет! Несмотря на кучу прочитанной инфы, в голове осталась каша, так как везде пишут по-разному. Одни рекомендуют что-то, другие настоятельно не советуют использовать это «что-то». Диск у меня Silicon Power 60g на SandForce-контроллере. Есть вопросы:

1) TRIM. Как его лучше запускать - монтированием с опцией discard, через fstrim или вообще забить, если имеется много неразмеченного пространства, как советуют в Debian?

2) Нужно ли включать опцию noatime? Как она влияет на работу SSD? В частности если на нём будет корневой раздел

3) SWAP. Памяти у меня 8 гигов, но при рендеринге чего-то в Blender бывает задействуется своп (не более 2-х гигов). Как поступить - сделать swap-раздел на SSD в 2 гига, или использовать swap-file? Или может лучше поставать swapspace, чтобы он динамически создавал и удалял своп при необходимости?

4) В сети пишут что нужно оставить 10% неразмеченного пространства на диске, чтобы он не тормозил при заполнении файлами. В моём случае это 6 гигов. Этого будет достаточно или нужно больше?

5) Планировщик I/O. CFQ, NOOP или Deadline? Так как использовать буду Debian, где по дефолту стоит CFQ - стоит ли его заменить на другой?

6) Файловая система для корня: Ext4 или Btrfs? Много слышал что вторая более оптимизирована для SSD. Это так?

 , , ,

Sunderland93 ()

Qt5: виджеты vs QML

Всем привет! Активно изучаю Qt5, накупил литературы. Есть грандиозные планы на разработку нескольких интерфейсов, в том числе - переписывание интерфейса пары нужных мне программ с wxWidgets на Qt. И задался вопросом - на чём лучше реализовывать GUI - обычных виджетах Qt5, или QML? В сети нашёл лишь плюсы QML в сравнении с виджетами, как простота написания, читабельность, аппаратное ускорение отрисовки. Стало быть у виджетов всё наоборот? Прошу опытных Qt-девелоперов вкратце рассказать о плюсах и минусах виджетов и QML.

 , ,

Sunderland93 ()

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