LINUX.ORG.RU

Сообщения maked0n

 

Ищу opensource проект с кастомной TLS state machine

Хочу посмотреть проекты (язык не важен), где люди отошли от стандарта TLS и реализовали дополнительные переходы/заменили описанные стандартом в машине состояний. Это может быть форк OpenSSL, может быть форк другой реализации или же вообще что-то написанное с нуля.
Очень сложно гуглится, есть небольшая надежда, что кто-то тут сталкивался с такими проектами.

 

maked0n
()

Артефакты при компиляции под Linux

Наблюдаю занимательный баг, не представляю в какую сторону копать.
Дано: девайс STM32F779I-EVAL. В качестве Hello world хочу скомпилировать стандартный проект с GUI, который предлагается TouchGFX (поддерживается только на Windows).
1. Запускаю под виртуалкой с виндой TouchGFX, генерирую исходники. Собираю под той же виртуалкой с помощью arm-none-eabi-gcc-6.3.1, заливаю на девайс - все отлично.
2. Копирую исходники из виртуалки на Linux, собираю с помощью arm-none-eabi-gcc-8.2.0 (пробовал так же 6.4.0), заливаю на девайс (для чистоты эксперимента тем же виндовым st-link, который был в п.1) и получаю вот такой артефакт (нарушение цветов и некоторая «рябь» на экране).
Есть идеи в чем может крыться причина? Makefile на обеих платформах используется один и тот же, отличается только версия компилятора.

 ,

maked0n
()

Работа traceroute

Возник вопрос по работе traceroute, который я не смог нагуглить. Предположим, что к одному и тому же хосту можно достучаться разными путями (т.е. разными цепочками роутеров). Что нам выдаст traceroute? Ведь условный пятый пакет может пойти по одной ветке, а шестой - по другой. Таким образом, мы получим некорректный маршрут в выводе. Как решается эта проблема?

 ,

maked0n
()

Настройка сети для виртуалки в qemu

Настраиваю tap-интерфейс и мост до основного интерфейса:

ip tuntap add dev tap0 mode tap group kvm
ip link set dev tap0 up promisc on
ip addr add 0.0.0.0 dev tap0

ip link add br0 type bridge
ip link set br0 up
ip link set tap0 master br0
echo 0 > /sys/class/net/br0/bridge/stp_state
ip addr add 10.0.1.1/24 dev br0

sysctl net.ipv4.conf.tap0.proxy_arp=1
sysctl net.ipv4.conf.eno1.proxy_arp=1
sysctl net.ipv4.ip_forward=1

iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE
iptables -A FORWARD -i br0 -o eno1 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eno1 -o br0 -j ACCEPT
Запускаю qemu:
/usr/bin/qemu-system-x86_64 \
    -machine accel=kvm \
    -m 5196 \
    -hda "/home/maked0n/.aqemu/image.img" \
    -boot once=c,menu=off \
    -net nic,vlan=0 \
    -net tap,ifname=tap0,script=no \
    -rtc base=localtime
Сети в виртуалке нет. При попытке сделать пинг на гугл пишет
temporary failure in name resolution
ЧЯДНТ?

 , ,

maked0n
()

UTF-16 file C++

Нашел багу в своей программе, смог свести к такому минимальному семплу:

wifstream in("test_utf16", ios::binary);
in.imbue(locale(in.getloc(), new codecvt_utf16<wchar_t, 0x10ffff>()));
wstringstream wss;
wss << in.rdbuf();
auto ret = wss.str();
Утверждается, что этот код работает (по крайней мере так пишут на стек оверфлоу). Тем не менее, ret = L"", если смотреть в отладчике.
$ file test_utf16
test_utf16: Little-endian UTF-16 Unicode text, with no line terminators
$ cat test_utf16
ÿþ?@825B          // это "привет"
В чем подвох?

 , ,

maked0n
()

Встроенный модем thinkpad x270

Имею thinkpad x270, на борту Gentoo. Есть кто-то, кому удалось завести встроенный модем (чипсет Fibocom L831-EAU)? Нашел этот мануал, но мне не помогло: lsusb не показывает ничего похожего на модем. Поделитесь пожалуйста историей успеха.
UPD: вот тут еще советуют активировать через виндовое приложение. Правда что ли?
UPD: обнаружил, что нужен cdc_mbim. Пересобрал ядро с нужными опциями, теперь девайс виден. Пытаюсь сделать:

$ sudo mbim-network /dev/cdc-wdm0 start
(файл /etc/mbim-network.conf есть, внутри только APN=yota.ru) но получаю
error: couldn't get IP configuration response message: Transaction timed out
error: couldn't open the MbimDevice: Transaction timed out

 , mbim, ,

maked0n
()

Виджеты на рабочем столе

Использую dwm, хочу написать себе некий виджет, который будет висеть на рабочем столе и отображать инфу с poloniex. Никогда раньше не писал виджеты, в связи с чем даже не знаю в какую сторону смотреть. Есть вариант написать все на Qt, например, и заставить его висеть «всегда снизу». Но кмк это какое-то извращение учитывая кастомизируемость dwm. Примеров виджетов я не нашел, все патчи направлены на изменение панелек, так что у меня уже закрадывается сомнение: может быть я путаю грешное с праведным и dwm не имеет никакого отношения к виджетам на рабочем столе? Подскажите пожалуйста в какую сторону смотреть, что использовать будет «true way».

PS: если вдруг есть готовые - не предлагать: хочу написать сам.

 ,

maked0n
()

Откусить место в начале раздела

При разметке дисков не посмотрел, что перед первым разделом нет 2MB, из-за чего теперь не могу поставить grub. Систему естественно уже поставил. Собственно вопрос: могу ли я уменьшить размер ext4, а затем откусить кусок от начала? Обычно я так делал, но откусывал в конце. Боюсь, что 'сжатие' ext4 освободит место в конце, а не в начале.

 

maked0n
()

Корпус корней русского языка

Добыть корпус слов русского языка - не проблема. Но мне позарез понадобился корпус корней русского языка. Можно его где-то найти в готовом виде?

 ,

maked0n
()

impicit noexcept

В стандарте сказано следующее:

An inheriting constructor (12.9) and an implicitly declared special member function (Clause 12) have an exception-specification. If f is an inheriting constructor or an implicitly declared default constructor, copy constructor, move constructor, destructor, copy assignment operator, or move assignment operator, its implicit exception-specification specifies the type-id T if and only if T is allowed by the exception-specification of a function directly invoked by f’s implicit definition; f allows all exceptions if any function it directly invokes allows all exceptions, and f has the exception-specification noexcept(true) if every function it directly invokes allows no exceptions. [ Note: It follows that f has the exception-specification noexcept(true) if it invokes no other functions. — end note ]

Меня сбивает дополнение после точки с запятой: «f allows all exceptions if any function it directly invokes allows all exceptions… noexcept(true) if every function it directly invokes allows no exceptions ». Не понимаю: имеется ввиду все тот же конкретный случай неявно заданных специальных функций-членов или это уже отдельный факт, который не зависит от того, явно или неявно объявлена f. Что скажете?

 

maked0n
()

Новый язык для микросервисов

Нашел вот такой проект. Кто-нибудь тыкал? Что думаете вообще?

 , ,

maked0n
()

Конвертация «неправильной» строки

Доброго времени суток,
хочу уметь преобразовывать некорректную utf-8 строку в (тоже, возможно, некорректную) строку utf-16, да так, чтобы при обратном преобразовании «некорретность» сохранилась, то бишь я не потерял никакой информации. Вот, что смог найти по этому поводу (увы, только википедия):

These replacement algorithms are «lossy», as more than one sequence is translated to the same code point. This means that it would not be possible to reliably convert back to the original encoding, therefore losing information. Reserving 128 code points (such as U+DC80–U+DCFF) to indicate errors, and defining the UTF-8 encoding of these points as invalid so they convert to 3 errors, would seem to make conversion lossless. But this runs into practical difficulties: the converted text cannot be modified such that errors are arranged so they convert back into valid UTF-8, which means if the conversion is UTF-16, it cannot also be used to store arbitrary invalid UTF-16, which is usually needed on the same systems that need invalid UTF-8. U+DC80–U+DCFF are reserved for UTF-16 surrogates, so that when they are used for UTF-8 in this way, and the string is converted to UTF-16 this can lead to bugs or the string being rejected.

Что-то не могу распарсить: о каких трех ошибках идет речь вот тут

...so they convert to 3 errors

и почему это поможет мне конвертировать без потерь?
Или, может быть, у кого-то есть уже похожий опыт?

 , , ,

maked0n
()

Звук через DisplayPort

Gentoo, ядро 4.7.3, видеокарта AMD R9 390x, драйвера AMDGPU. Сейчас работает звук через hdmi, pulseaudio замечательно все подхватывает. Вот /etc/asound.conf:

pcm.!default {
	type plug
	slave.pcm "hdmi"
}
$ aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
pulse
    PulseAudio Sound Server
hdmi:CARD=HDMI,DEV=0
    HDA ATI HDMI, HDMI 0
    HDMI Audio Output
hdmi:CARD=HDMI,DEV=1
    HDA ATI HDMI, HDMI 1
    HDMI Audio Output
hdmi:CARD=HDMI,DEV=2
    HDA ATI HDMI, HDMI 2
    HDMI Audio Output
hdmi:CARD=HDMI,DEV=3
    HDA ATI HDMI, HDMI 3
    HDMI Audio Output
hdmi:CARD=HDMI,DEV=4
    HDA ATI HDMI, HDMI 4
    HDMI Audio Output
hdmi:CARD=HDMI,DEV=5
    HDA ATI HDMI, HDMI 5
    HDMI Audio Output
sysdefault:CARD=Camera
    Default Audio Device
Сегодня поставил второй монитор и подключил через DisplayPort. Хочу, чтобы звук шел именно через него. В pulseaudio никак не выбрать - есть только этот hdmi. Погуглил, но почему-то везде пишут, что в AMDGPU вообще нет поддержки звука через HDMI/DP, это только в разработке. Однако, это противоречит моему опыту. Помогите разобраться, пожалуйста.

 , , ,

maked0n
()

Линковка boost::python

Если линкую boost::python как -lboost_python, то линкер пишет, что не может найти такое. А если указываю прямой путь к либе через -L/usr/lib64/..., то все ок. Подскажите пожалуйста, почему так может происходить?

 ,

maked0n
()

Проблемы с boost в Ubuntu

Доброго времени суток. Возникла проблема при сборке проекта под Ubuntu 16.04 и 14.04. При этом, под арчем (с версией boost 1.63) и под генту (с версией boost 1.56) проект собирается нормально.
Вот Makefile:

CC = g++
CFLAGS = -c -std=c++11 -Wall -Wextra
LFLAGS = -lboost_system -lboost_thread -lpthread

all: server client

server: servermain.o daemon.o
	$(CC) $(LFLAGS) servermain.o daemon.o -o frtpdaemon
servermain.o: server/main.cpp
	$(CC) $(CFLAGS) server/main.cpp -o servermain.o
clog.o: server/clog.hpp
	$(CC) $(CFLAGS) server/clog.hpp -o clog.o
parser.o: server/cparser.hpp
	$(CC) $(CFLAGS) server/cparser.hpp -o parser.o
daemon.o: server/cdaemon.cpp server/cdaemon.h
	$(CC) $(CFLAGS) server/cdaemon.cpp -o daemon.o

client: clientmain.o client.o
	$(CC) $(LFLAGS) -shared clientmain.o client.o -o libfrtpsrv.so
clientmain.o: client/main.cpp
	$(CC) $(CFLAGS) -fpic client/main.cpp -o clientmain.o
client.o: client/cclient.cpp client/cclient.h
	$(CC) $(CFLAGS) -fpic client/cclient.cpp -o client.o

clean:
	rm *.o frtpdaemon libfrtpsrv.so
При сборке в Ubuntu возникают следующие ошибки линковщика:
servermain.o: In function `__static_initialization_and_destruction_0(int, int)':
main.cpp:(.text+0x1de): undefined reference to `boost::system::generic_category()'
main.cpp:(.text+0x1ea): undefined reference to `boost::system::generic_category()'
main.cpp:(.text+0x1f6): undefined reference to `boost::system::system_category()'
servermain.o: In function `boost::asio::error::get_system_category()':
main.cpp:(.text._ZN5boost4asio5error19get_system_categoryEv[_ZN5boost4asio5error19get_system_categoryEv]+0x5): undefined reference to `boost::system::system_category()'
daemon.o: In function `__static_initialization_and_destruction_0(int, int)':
cdaemon.cpp:(.text+0x16bb): undefined reference to `boost::system::generic_category()'
cdaemon.cpp:(.text+0x16c7): undefined reference to `boost::system::generic_category()'
cdaemon.cpp:(.text+0x16d3): undefined reference to `boost::system::system_category()'
daemon.o: In function `boost::system::error_code::error_code()':
cdaemon.cpp:(.text._ZN5boost6system10error_codeC2Ev[_ZN5boost6system10error_codeC5Ev]+0x17): undefined reference to `boost::system::system_category()'
daemon.o: In function `boost::asio::detail::posix_signal_blocker::posix_signal_blocker()':
cdaemon.cpp:(.text._ZN5boost4asio6detail20posix_signal_blockerC2Ev[_ZN5boost4asio6detail20posix_signal_blockerC5Ev]+0x64): undefined reference to `pthread_sigmask'
daemon.o: In function `boost::asio::detail::posix_signal_blocker::~posix_signal_blocker()':
cdaemon.cpp:(.text._ZN5boost4asio6detail20posix_signal_blockerD2Ev[_ZN5boost4asio6detail20posix_signal_blockerD5Ev]+0x2d): undefined reference to `pthread_sigmask'
collect2: error: ld returned 1 exit status
Boost в убунте установлен. Вместо -lboost_system и -lboost_thread пробовал указывать библиотеки явно, что все равно не привело ни к каким результатам. Кто-то сталкивался с таким?

 ,

maked0n
()

Фризится Xorg на дровах amdgpu

Доброго времени суток. Имею видеокарту AMD R9 390X. По совету некоторых товарищей пробовал накатить новенький amdgpu-pro, но с ним были проблемы при сборке wine. Решил вернуться на amdgpu и ждать, пока *-pro доведут до ума. Но возникла проблема. Люблю поиграть в дотку с вободное от работы и учебы время. А эта самая дотка при запуске периодически вешает намертво иксы. На клавиатуру никакой реакции. Единственное что могу - залогиниться по ssh. Таким способом проверил Xorg.0.log - ни единой ошибки. Ничего подозрительного в dmesg и /var/log/messages. Содержимое xorg.conf.d:

Section "Device"
   Identifier "AMD"
   Driver "amdgpu"
   BusID "PCI:04:00:0"
   Option "AccelMethod" "glamor"
EndSection
Section "Screen"
   Identifier "Screen0"
   DefaultDepth 24
   SubSection "Display"
              Depth 24
   EndSubSection
EndSection
lscpi -k говорит о том, что подгружен нужный модуль - amdgpu. Ядро 4.7.3-hardened. Подскажите, куда смотреть? Никаких идей.

 , ,

maked0n
()

Плагины для neovim

Есть такая фича в IDEшках - выделяешь текст, жмешь Tab и весь текст сдвигается на одну табуляцию. Жмешь Shift+Tab - сдвигается на -1 табуляцию. Какой есть плагин для neovim, реализующий это?
И по поводу автодополнения кода на C++. Стоит deoplete + deoplete-clang + neoinclude. Однако, складывается ощущение, будто область видимости автодополнения - только один файл. Если я в заголовочнике объявил поле или метод класса, то после ввода MyClass:: или my_class_instance. / my_class_instance-> автодополнение мне их не предложит. Более того, в первом случае мне предлагает «автодополнить» не поля и методы данного класса, а все на свете, совершенно к нему не относящееся. ЧЯДНТ?
ЗЫ: YCM не предлагать.

 ,

maked0n
()

Fetch failed gentoo

Доброго времени суток. Пытаюсь поставить себе новомодный amdgpu-pro. Делаю по инструкции на их github, добавил локальный overlay, делаю

# emerge amdgpu-pro-dkms
на что он мне говорит, что fetch failed и нужно вручную выкачать один архив и поместить его в /usr/portage/distfiles. Довольно стандартная процедура, так что я выполнил это требование. Но ошибка по-прежнему такая же, складывается ощущение, будто portage просто не видит выкачанный мною архив. С правами все в порядке, владелец и группа - portage. Подскажите пожалуйста, чем может быть вызвано такое поведение? Впервые сталкиваюсь с таким.
Система gentoo 4.7.3-hardened, portage версии 2.3.0.

 ,

maked0n
()

Совместимость планок ОЗУ и HP Proliant

Доброго времени суток. У кого-нибудь заводился HP Proliant ML310e или что-нибудь похожее с оперативкой HX318C10FK2/16? Я тут купил две по 8, пихаю в одну пару слотов - просто не грузится, пихаю во вторую пару слотов - отчаянно пищит. По дефолту с ним идет 4Gb, хочется конечно большего.

 , , ,

maked0n
()

Catalyst gentoo

Доброго времени суток. Не могу собрать драйвер для amd-видеокарты. После того, как наложил все патчи, перезапускаю сборку и получаю:

make[2]: *** No rule to make target 'libfglrx_ip.a', needed by 'fglrx.o'. Stop.
Ядро 4.4.8-hardened.
Что посоветуете?

 , , , ,

maked0n
()

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