LINUX.ORG.RU

Сообщения mradermaxlol

 

Создание образа GPT-диска с несколькими разделами без loop-устройств

Всем привет.

Возникла следующая задача: создать образ диска с GPT и двумя разделами (EFI/FAT32 и ext4), чтобы его можно было сразу заливать на блочное устройство.

Я быстро родил тривиальное решение:

  • создать болванку образа нужного размера с помощью truncate
  • sgdisk’ом разметить образ в GPT с двумя разделами нужных типов
  • создать loop-ноды для образа диска через losetup
  • примонтировать loopNpM, залить данные, отмонтировать и убрать loop-ноды

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

В голову пришла мысль создать болванку с GPT-таблицей и cat’ом или dd’шкой присобачить в конец этой болванки образы разделов (создаваемые условными mkfs.XXX part_XXX.img). Попытался реализовать - не вышло, образ диска превращается в кашу, хоть я вроде и указывал отступ на 2048 байт от начала. Скорее всего я просто не осилил что-то в используемых утилитах, либо не вкурил матчасть.

Итак, вопрос: как в болванку образа GPT-диска добавить разделы из своих образов без использования loop-устройств?

UPD: вот так.

 , , ,

mradermaxlol
()

iptables, или как закрыть порт

hello world

В продолжение предыдущей моей темы из этого раздела.

Обнаружил, что к виртуалке на сервере можно подключиться не только по server_wg_ip:32101, но и по server_public_ip:32101 (порт 32101 пробрасывается в виртуалку как порт 3389) - что в общем-то неудивительно. Перезапустил libvirt, сделал iptables -A INPUT -p tcp -d server_public_ip --destination-port 32101 -j DROP, запустил вм - а подключаться по server_public_ip:32101 всё ещё можно (я хочу, чтобы подключение по публичному IP блокировалось, а по WireGuard-адресу разрешалось). ЧЯДНТ?

Меня ещё интересует вот что: можно ли сделать «master»-правило (т.е. ему было бы фиолетово на то, что там в хуке наизменял libvirt, например) iptables, которое блокировало бы все порты на enpNsX и потом разрешало бы конкретные? А там уже можно аналогично разрешить только нужное по интерфейсу wgN.

UPD: решение.

 , ,

mradermaxlol
()

Libvirt, WireGuard, их скрещивание и проброс портов в ВМ

hello world

Имеется (dedicated) сервер с одним публичным IPшником, на сервере руками настроен WireGuard (на serverip:42069, например) и прикручен к systemd-networkd, во внешний интернет кроме самого wg ничего не пробрасывается. Сервер держит виртуальную машину с мастдаем (пока что одну, как разберусь с сетевым цирком - будет больше) через KVM+Libvirt.

Нужно сделать так, чтобы был туннель WireGuard между виртуалкой и, например, моей рабочей машиной, чтобы я с последней подключался по, скажем, serverip:22869 (помимо «основного» соединения рабочая машина => сервер). Вопрос: а как так сделать-то?

Я пробовал кривыми-косыми правилами iptables (честно скомунизженных из интернета и адаптированных для своих систем) и с дефолтной NAT-сетью перенаправлять порты сервера в порты виртуалки, но то ли я не вкурил в правила и сделал всё через одно место, то ли изначально не туда вою.
Пробовал ещё вот это - вроде выхлоп iptables -L меняется, а нужный порт всё ещё closed и контакт между виртуалкой и рабочей системой наладить не получается.
Только что попробовал ради прикола поднять bridge-соединение - на виртуалке теперь вообще нет сети (удивительно). Ну и настроил в Libvirt я его так себе, полагаю.

В виртуалке на время тестирования был отключён Windows Firewall, порт WireGuard тот же 22869 (пытался пробрасывать одинаковые порты с хоста в vm).

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

UPD: решение и дополнение к нему.

 , , , ,

mradermaxlol
()

Модули ядра для виртуальных GPU

Всем доброго времени суток.

В очередной раз полез ковырять конфиг ядра и вспомнил давно интересующий вопрос, на который уже долгое время не могу найти адекватного ответа.

Суть: есть, например, CONFIG_DRM_VMWGFX:
Choose this option if you would like to run 3D acceleration in a VMware virtual machine. This is a KMS enabled DRM driver for the VMware SVGA2 virtual hardware. The compiled module will be called "vmwgfx.ko".

Нужен ли этот модуль (и аналогичные) для хоста, который хочет запускать виртуалки с каким-никаким ускорением видео, или он необходим только для гостевой системы и на хосте это дело можно смело отключать?

 , , , ,

mradermaxlol
()

ncmpcpp и добавление в плейлист всей библиотеки треков

Вечер добрый, товарищи ;)

Может кто-нибудь из использующих ncmpcpp (фронтэнд для mpd) подсказать, как можно добавить в плейлист (для рандомного воспроизведения всего и вся) всю музыкальную библиотеку без перебирания всех исполнителей, к примеру? Читал FAQ и хелпу, не нашёл ничего нужного, либо криво читал :/

 , ,

mradermaxlol
()

Скрещивание JACK2 и PulseAudio

День добрый, товарищи. Собсвтенно, суть такова: пишу гитару через Guitarix2, всё хорошо, да вот только из-за того, что JACK2 отжимает всю звуковушку, не могу, к примеру, включить музыку и играть синхронно, ибо пульса не может подключиться к звуковухе => ни один плеер/браузер/что-нибудь не воспроизводит что-либо, а это не есть хорошо. Назревает вопрос: как заставить джек и пульсу работать вместе, дабы не было подобных проблем? В интернете нашёл 1,5 мана на офстранице JACKAudio, где нужной инфы я не откопал, однако понял то, что можно делать проброс пульса -> джек, хоть и какими-то окольными (костыльными) путями.

Итак, есть ли способ заставить пульсу и джек работать одновременно и максимально бесшовно?

 , , ,

mradermaxlol
()

Ошибки make install в ебилде Haguichi

Всем приветы.

Имею ебилд для Haguichi. В нём всё хорошо, только на этапе выполнения src_install() бегут ошибки... Их так много, что пришлось залить на pastebin.

Вопрос таков: как это лечить? При всей этой срани, при сборке руками всё прекрасно.

 , , ,

mradermaxlol
()

Python3, Urwid и менюшки

Вечер добрый.

Пилю менюху для своей питоно3проги на Urwid. Всё бы ничего, но есть проблемы с выходом из цикла Urwid.

Допустим, есть кусок кода из туториала:

import urwid

choices = u'Chapman Cleese Gilliam Idle Jones Palin'.split()

def menu(title, choices):
    body = [urwid.Text(title), urwid.Divider()]
    for c in choices:
        button = urwid.Button(c)
        urwid.connect_signal(button, 'click', item_chosen, c)
        body.append(urwid.AttrMap(button, None, focus_map='reversed'))
    return urwid.ListBox(urwid.SimpleFocusListWalker(body))

def item_chosen(button, choice):
    response = urwid.Text([u'You chose ', choice, u'\n'])
    done = urwid.Button(u'Ok')
    urwid.connect_signal(done, 'click', exit_program)
    main.original_widget = urwid.Filler(urwid.Pile([response,
        urwid.AttrMap(done, None, focus_map='reversed')]))

def exit_program(button):
    raise urwid.ExitMainLoop()

main = urwid.Padding(menu(u'Pythons', choices), left=2, right=2)
top = urwid.Overlay(main, urwid.SolidFill(u'\N{MEDIUM SHADE}'),
    align='center', width=('relative', 60),
    valign='middle', height=('relative', 60),
    min_width=20, min_height=9)
urwid.MainLoop(top, palette=[('reversed', 'standout', '')]).run()
И я не могу реализовать запуск функции (из проги, офкоурс) после выбора пункта меню.

Сейчас не могу предоставить полный исходник, но вопрос таков: как сделать запуск внешней функции и завершение выполнения кода менюшки после выбора чего-либо? raise urwid.ExitMainLoop тупо делает форс-экзит, а это не то, что нужно.

 , ,

mradermaxlol
()

Python3, VKapi и строки

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

Совсем уже измучался. Создаю прогу, в которой есть авторизация ВК. Юзаю libVK от dimka665. Всё бы хорошо, но я кое-чего не догоняю. Есть код:

#!/usr/bin/env python3
import curses
import vk

#Start ncurses window
global stdscr
stdscr = curses.initscr()
curses.noecho()
curses.cbreak()
stdscr.keypad(True)

def Close(): #Close the window
    curses.nocbreak()
    stdscr.keypad(False)
    curses.echo()

def Clear(): #Clear NCurses window
    stdscr.clear()
    stdscr.refresh()
    curses.endwin()

def VKLogin(): #Start VK session
    #Get login
    from curses.textpad import Textbox, rectangle
    stdscr.addstr(0, 0, "Enter your VK login: (Ctrl-G/Enter to continue, Ctrl+H to delete symbols)")
    editwin = curses.newwin(1,30, 2,1)
    rectangle(stdscr, 1,0, 1+1+1, 1+30+1)
    stdscr.refresh()
    box = Textbox(editwin)
    box.edit() #Let the user edit until Ctrl-G is struck
    login = str(box.gather())

    #Clear window
    Clear()

    #Get password
    stdscr.addstr(0, 0, "Enter your VK password: (Ctrl-G/Enter to continue, Ctrl+H to delete symbols)")
    editwin = curses.newwin(1,30, 2,1)
    stdscr.refresh()
    rectangle(stdscr, 1,0, 1+1+1, 1+30+1)
    stdscr.refresh()
    box = Textbox(editwin)
    box.edit() #Let the user edit until Ctrl-G is struck
    stdscr.clear()
    password = str(box.gather())

    #Clear window
    Clear()
    curses.endwin()

    #Start session with collected data
    session = vk.AuthSession(app_id = 5350360, user_login = login, user_password = password)
    api = vk.API(session, v = '5.3.5', lang = 'ru', timeout=10)
    #api.users.get(user_ids=1)
    def Menu(): #Navigation menus
        from curses import panel
        stdwin = curses.newwin()
        #TODO
    #Menu()

VKLogin()
Close()
#TODO: menu, authorization
Как видите, через ncurses-textbox задаётся логин и пароль, которые передаются vk.AuthSession(). ОДНАКО, ответ являет собой жалобу на неверный пароль. При этом, если чётко прописать логин/пароль в vk.AuthSession(), то всё будет хорошо.

Вопрос прост: ЧЯДНТ?

 , , , ,

mradermaxlol
()

Пердоллинг с ебилдами в Gentoo: V3.0

Добрый день.

Опять грабли, ага. В репозитории содержится оверлей с вином и Unity3D. И с последним есть проблемы: $FILESDIR нет. Просто нет. Вывод ls:

root@m-Gentoo-PC /h/maxik# ls /var/tmp/portage/games-engines/unity3d-5.3.3/
build-info/  distdir/  homedir/  image/  temp/  work/
root@m-Gentoo-PC /h/maxik# ls /var/lib/layman/maxik-ebuilds/games-engines/unity3d/files/
EULA                unity-editor*         unity-monodevelop.desktop  update-eula*
monodevelop-unity*  unity-editor.desktop  unity-monodevelop.png

Что я делаю не так и как исправить $FILESDIR?

 , ,

mradermaxlol
()

Пердоллинг с ебилдами в Gentoo: v2.0

Всем приветы.

Честно, я уже прожёг всю мебель, на которой можно сидеть. Я не могу понять, как работает чёртов пункт SRC_URI в чёртовых ебилдах.

Если конкретнее: есть оверлей, в котором висит ебилд для вина. Решил добавить модульности и вытащить тип вина (ванилька, staging, ванилька + Nine, staging + Nine) в if-ы и переменные. Вот кусок кода:

if (!(use staging) && !(use d3d9)) || (!(use staging) && use d3d9); then
		if use d3d9; then
			WINETYPE="nine"
		else
			WINETYPE="vanilla"
		fi
		SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}/${MY_P}.tar.bz2 -> ${WINETYPE}.tar.bz2" # Vanilla Wine with/without Nine
		
	elif use staging && !(use d3d9); then
		WINETYPE="staging"
		SRC_URI="https://github.com/wine-compholio/wine-staging/archive/v${PV} -> ${WINETYPE}.tar.gz" # Wine with Staging patchset
		
	elif use staging && use d3d9; then
		WINETYPE="stnine"
		SRC_URI="https://github.com/mradermaxlol/pontostroy-wine/archive/v${PV}.tar.gz -> ${WINETYPE}.tar.gz" # Staging-and-Nine-patched Wine
	fi
Кусок кода установки sourcedir:
if [ "$WINETYPE" == "stnine" ]; then
	S="${WORKDIR}/pontostroy-wine-${PV}"
elif [ "$WINETYPE" == "vanilla" ] || [ "$WINETYPE" == "nine" ]; then
	S="${WORKDIR}/${PN}-${PV}"
elif [ "$WINETYPE" == "staging" ]; then
	S="${WORKDIR}/${PN}-staging-${PV}"
fi
Кусок кода распаковки:
if [ "$WINETYPE" == "staging" ]; then	
		unpack "staging.tar.gz"
	elif [ "$WINETYPE" == "stnine" ]; then
		unpack "stnine.tar.gz"
	elif [ "$WINETYPE" == "vanilla" ] || [ "$WINETYPE" == "nine" ]; then
		unpack "vanilla.tar.bz2"
	fi

Проблема в том, что repoman ну никак не хочет качать архивы pontostroy и staging. Т.е. при запуске repoman manifest генерятся суммы для %нужныефайлы% и vanilla.tar.bz2, всё. Что я делаю не так?

 , , ,

mradermaxlol
()

Изменение вывода glxinfo

Вечер добрый.

Есть желание изменить кусок вывода glxinfo, а именно - пункт OpenGL Renderer: с «Gallium 0.4 on AMD PICTAIRN [...]» на что-то вменяемое, типа «R7 370».

Как можно это сделать? Есть ли возможность настройки данного пункта? Вангую, что да, ибо блобы, например, меняют строки на свои. Или это всё захардкожено в libGL.so?

 , , , ,

mradermaxlol
()

Ebuild для Wine со свистоперделками

Утро доброе.

Я всё ещё трахаюсь совокупляюсь пердоллюсь разбираюсь с этим чёртовым ебилдом для свежего вина с staging + nine (https://github.com/mradermaxlol/wine-d3d9-gentoo), с переменным успехом.

После недавнего секса с дебилдом имеется:

Скачивание уже патченного вина

Накатывание патчей найна + патчей wine-gaming-nine

Сборка (успешная) на amd64, x86_32 потестить не могу

СЕГФОЛТ!!!1

Кто-нибудь может посмотреть ебилд, потестить сборку и сказать, что не так? Сейчас вангую на staging, ибо патч почти не менялся (1 строка, лол).

 , , , ,

mradermaxlol
()

Багтрекер IXiT (GalliumNine)

Вечер добрый.

Никто не может дать ссылочку на багтрекер Wine-Nine? Вики ixit.cz лежит (либо я лох что-то делаю не так).

Короче, куда отправлять багрепорты, связанные с GalliumNine в Wine?

Большой привет.

 , ,

mradermaxlol
()

Пердоллинг с ебилдами в Gentoo

Приффки, как делиффки?

Имеется проблема в виде отсутствия в генте пакетов вина с staging+nine. Решил запилить свой оверлей с блэкджеком и шлюхами с данными плюшками, но что-то пошло не так, а именно - процесс патчинга вина найном. То есть в ебилде прописано, что патчить, но что-то идёт не так - некоторые файлы не находятся патчем.

Как победить это? Если что, оверлей тут, ебилд в нём (ваш кэп).

 , , , ,

mradermaxlol
()

Layman и части оверлея

Вечер добрый.

Столкнулся с проблемой: нужен Wine из оверлея Bobwya (https://github.com/bobwya/bobwya/tree/master/app-emulation/wine), но не нужен весь оверлей, а только кусок с ебилдами вина. Как импортировать этот самый кусок лэйманом, не подтягивая оверлей целиком?

Кстати, есть ли оверлей (не от NP-Hardass) с вином (свежим) + стагинг + д3д9?

 , , ,

mradermaxlol
()

Geany, Vala и автозаполнение

Добрый вечер. Есть такая проблема: в качестве IDE для Vala используется Geany. Всё бы хорошо, вот только автозаполнение вроде как не работает. То есть, по Ctrl+Space можно выбрать пример из готового кода, а в иных случаях ничего нет.

Как настроить автозаполнение как в IDE типа VS/Monodevelop/PyCharm, где во время написания предлагаются варианты, для Vala?

 , , ,

mradermaxlol
()

Разборки с Python в Gentoo

Ой, что это? Второй топик за полчаса? Добрый вечер, ЛОРовцы.

Суть такова: в генте стандартно поставляется Python 3.4.3 в качестве Python 3. Однако, как многие знают, существует и 3.5.1. Хотелось бы экстерминировать 3.4.3 и вместо него полностью перевести систему на связку 2.7 + 3.5. Как это реализовать? Тупая смена профиля (eselect python set {значение с 3.5.1}) не помогает - всё билдится с 3.5.1, да и дефолтом остаётся 3.4.3. В какой бубен нужно постучать и что сделать, чтобы

экстерминировать 3.4.3 и вместо него полностью перевести систему на связку 2.7 + 3.5

?

 , ,

mradermaxlol
()

Gentoo, KDE 5 и русификация

Вечер добрый.

Решил опробовать генту. Всё хорошо, настроил систему и поставил кеды 5. Однако всё пошло не совсем так, конкретно - нет перевода на русиш. Причём пакеты ставились с LINGUAS="... ru ...". Что делать и куда копать, чтобы запилить нормальные локали?

Да, кстати, с locale.conf всё хорошо. В SystemSettings в поле Avalible Languages пишет «American English».

 , , , ,

mradermaxlol
()

Странности git

Вечер добрый, товарищи.

Появилась проблемка с гитом: при клонировании любого репозитория скорость загрузки колеблется от 10 до 20кб/с. Это, мягко говоря, нехорошо, ибо нужно выкачивать сорцы ядра, и много раз. Проявляется в git clone, а также и в pull/push и т.д. Проявилась проблема сегодня, до этого всё было отлично. При этом, все остальные загрузки работают, как надо - DLoad Speed ~= 7мб/c.

В чём проблема, куда копать? Провайдер - МГТС, может, у них что-то случилось? Ибо репозитории с гуглосорса и гитхаба качаются одинаково медленно. Проверял и на лине (git 2.6.4), и на шиндошсе (2.7.0-scm). GitHub for Windows тупит так же, как и остальные субъекты...

 , , ,

mradermaxlol
()

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