LINUX.ORG.RU

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

Как можно пропатчить исходники ядра?

Форум — General

Здравия! Есть на арм исходники ядра от sunxi, но в них в драйверах ввода-вывода проблема-если пишет на диск например видео с камер или с нета загрузка идёт, то система виснет, да так, что логгировать нереально, два года я с этой проблемой мучаюсь, но вот попробовал гентушные сорцы-там этого нет, не виснет. Но из гентушных сорцов собирается без рабочего eth0, потому подумал я, а можно пропатчить драйвер? По идее исходники же текстовые файлы? Только не знаю я, как это сделать, надеюсь подскажут здесь.

 ,

burato
()

Кросс компиляция qt

Форум — Development

Пытаюсь собрать qtbase-5.7.1 на debian 10 (amd64) для win32, при выполнении ./configure получаю ошибку:

./configure \
	-v \
	-xplatform win32-g++ \
	-device-option CROSS_COMPILE=i686-w64-mingw32- \
	-prefix ../qtbase-everywhere-win32_5.7.1/ \
	-opensource \
	-confirm-license \
	-release \
	-strip \
	-shared \
	-gui \
	-widgets \
	-no-opengl \
	-nomake tests \
	-nomake examples \
	-qt-sql-mysql \
	-qt-sql-odbc \
	-qt-sql-sqlite \
	-qt-sql-sqlite2
...
i686-w64-mingw32-g++ -Wl,-s -Wl,-subsystem,windows -mthreads -o mysql.exe mysql.o  -L/usr/lib/i386-linux-gnu -lmariadb -lmysqlclient 
/usr/bin/i686-w64-mingw32-ld: cannot find -lmariadb
collect2: error: ld returned 1 exit status
make: *** [Makefile:62: mysql.exe] Ошибка 1

libmariadb-dev:i386 и libmariadb-dev-compat:i386 установлены, libmariadb.so лежит на месте:

ls /usr/lib/i386-linux-gnu/*mariadb*
364K -rw-r--r-- 1 root root 361K фев  2 19:33 /usr/lib/i386-linux-gnu/libmariadbclient.a
   0 lrwxrwxrwx 1 root root   15 фев  2 19:33 /usr/lib/i386-linux-gnu/libmariadbclient.so -> libmariadb.so.3
   0 lrwxrwxrwx 1 root root   15 фев  2 19:33 /usr/lib/i386-linux-gnu/libmariadb.so -> libmariadb.so.3
272K -rw-r--r-- 1 root root 269K фев  2 19:33 /usr/lib/i386-linux-gnu/libmariadb.so.3

Как побороть данную проблему?

 , ,

MIV
()

Scrot. Скопировать ссылку на созданный файл в буфер обмена

Форум — General

Как скопировать ссылку на файл в буфер обмена после снятия скриншота.
Вроде очевидная вещь, но у меня не работает. Что я делаю не так?

scrot -e 'mv $f ~/scrns/ | xsel -ib'

где:
scrot — сделать скриншот
-e ’mv $f ~/scrns/ — скопировать в каталог
xsel -ib’ — скопировать в буфер обмена

Скриншот делает, в каталог перемещает, но ссылки в буфере обмена на файл нет. Ошибок не выдаёт.

К слову, попробовал использовать xclip, но он тоже не дал результата.

 , ,

Dreamdrawer
()

Кросс-платформенный разбор аргументов командной строки

Форум — Development

Понадобилось разбирать аргументы командной строки на С++. Самое главное требование: чтобы можно было с минимумом усилий и зависимостей собирать на Linux, Windows и MacOS. Погуглил и понял, что в случае с С++ не все так просто, как в более современных ЯП, а именно есть такие варианты:

  1. Стародедовский копролит из POSIX, т.е. getopt. Минус: в стандартной поставке MS VC++ его, как я понял, нет, ибо unistd.h. Кто-то предлагает специально для оффтопика передирать часть unistd.h и соотв. функционала, но это звучит как исключительно красноглазый пердолинг;

  2. boost.program_options Минус: только ради этого добавлять зависимость от части boost…

  3. QCommandLineParser Минус: см. п.2), только в этом случае надо тащить часть Qt, что кажется еще большим оверкиллом;

  4. Какие-то костыли из рецептов «одной бабки» с SO. Минус: нет желания лепить самодельный велосипед на ровном месте, и еще надо понять, что код вообще рабочий, а не только лайкнут автором вопроса, который этот код запустил один раз и выбросил;

  5. Какие-то васянские библиотеки. Минус: см. п.4). Хоть качество (может быть) и выше, чем портянки с SO, все равно надо тянуть доп. зависимость, и тогда уж лучше взять boost как более качественную библиотеку.

Ничего не забыл? На сколько я понял, в С++20 этого тоже нет. Как-то грустно в 21-м веке, когда уже вот-вот скоро выйдет 6й по счету стандарт языка, не иметь такой фичи в стандартной библиотеке.

 ,

seiken
()

Потестируйте чатик на Кутях

Форум — Development

Приветствую всех обитателей ЛОРа. Пришел к вам с просьбой протестировать самописный чат на C++ с использованием Qt. Это мой первый проект вообще и делается исключительно для того, чтобы набраться опыта. Все полный опенсорс,

Сервер: https://github.com/gadoofou87/neutron
Клиент: https://github.com/gadoofou87/neutron-qt

доступно для собственной сборки, но для онтопика приготовил AppImage (доступен тут - https://github.com/gadoofou87/neutron-qt/releases).

Больше всего хотелось бы услышать комментарии безопасников, потому что реализован собственный криптопротокол (статические ключи на ECDH, эфемерные на SIDH, ID сервера - хэш от публичного ключа, который проверяется при каждом рукопожатии с сервером, чтобы блокировать MITM). Из остального, сервер умеет параллелить клиентов по всем потокам, реализованы комнаты (в том числе запароленные), отправка сообщений, файлов (+ предпросмотр картинок), получение непрочитанных сообщений.

ID: FDF882BA452BAF7C1FCF348633F6003086029A09B4BC764B175ED1914A44F34E
Хост: ec2-18-222-196-33.us-east-2.compute.amazonaws.com
Порт: 10500

Специально для тестов поднял бесплатный сервер на Амазоне, из доступного места там всего 4 гига, потому прошу не заливать большие файлы. Буду рад любой критике

 

hommoul68
()

Изолированное пространство для команд в bash

Форум — General

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

 , ,

shkolnik_2019
()

Конфигурация dnscrypt-proxy в debian 10

Форум — General

Всех с наступившим и наступающими. Сервер на debian 10 с минимальной конфигурацией. Никаких средств работы с dns кроме dnscrypt-proxy не установлено. При настройке ориентировался на archwiki и wiki dnscrypt-proxy.

Порядок действий

apt install dnscrypt-proxy
systemctl stop dnscrypt-proxy.socket
mv /etc/resolv.conf{,-default}
echo 'nameserver 127.0.0.1' | tee /etc/resolv.conf
chattr +i /etc/resolv.conf
systemctl start dnscrypt-proxy.socket

ДКП успешно стартует

Jan 01 11:40:15 deb-serv dnscrypt-proxy[708]: [2020-01-01 11:40:15] [NOTICE] dnscrypt-proxy 2.0.19
Jan 01 11:40:15 deb-serv dnscrypt-proxy[708]: [2020-01-01 11:40:15] [NOTICE] Wiring systemd TCP socket #0, dnscrypt-proxy.socket, 127.0.2.1:53
Jan 01 11:40:15 deb-serv dnscrypt-proxy[708]: [2020-01-01 11:40:15] [NOTICE] Wiring systemd UDP socket #1, dnscrypt-proxy.socket, 127.0.2.1:53
Jan 01 11:40:15 deb-serv dnscrypt-proxy[708]: [2020-01-01 11:40:15] [NOTICE] [cloudflare] OK (DoH) - rtt: 4ms
Jan 01 11:40:15 deb-serv dnscrypt-proxy[708]: [2020-01-01 11:40:15] [NOTICE] Server with the lowest initial latency: cloudflare (rtt: 4ms)
Jan 01 11:40:15 deb-serv dnscrypt-proxy[708]: [2020-01-01 11:40:15] [NOTICE] dnscrypt-proxy is ready - live servers: 1

Как видно из журнала ДКП почему-то работает с 127.0.2.1:53. В toml файле конфигурация дефолтная

listen_addresses = []
server_names = ['cloudflare']

[query_log]
  file = '/var/log/dnscrypt-proxy/query.log'

[nx_log]
  file = '/var/log/dnscrypt-proxy/nx.log'

[sources]
  [sources.'public-resolvers']
  url = 'https://download.dnscrypt.info/resolvers-list/v2/public-resolvers.md'
  cache_file = '/var/cache/dnscrypt-proxy/public-resolvers.md'
  minisign_key = 'ключ'
  refresh_delay = 72
  prefix = ''

По информации о настройке из вики ДКП в дебиане нужно работать именно с сокетом, а не сервисом, и не указывать какие-либо адреса в listen_addresses, потому что systemd сам разрулит все.

Если в resolv.conf задать адрес, с которым работает ДКП - 127.0.2.1, то ДКП сразу начинает ругатся на отсутствие привилегий для работы, хотя запущен он от рута.

Почему же ДКП работает с неправильным адресом?

 ,

exfx
()

Settis нездорового человека

Галерея — Скриншоты

После неудачного стечения обстоятельств — заметно упавшего как раз к новогодним праздникам здоровья — было принято решение поувеличивать шрифты и сбавить контрастность всего, что попадётся под руку. Как нельзя кстати тут пришлась Dracula. Насыщенность цветов на моём ноутбуке низкая; Подозреваю, у многих это будет смотреться гораздо цветастее.

  • Ubuntu 18.04
  • dwm, потому что почему что-либо другое, если он просто работает
  • Файловый менеджер, как правило, не используется, но когда хочется полистать фоточки, открываю pcmanfm
  • Терминал — st (imgur.com), все равно используется почти всегда в связке с tmux, в установке чего-то другого смысл не видится
  • По работе использую Visual Studio Code, потому что искаропки всё есть, но я вам его не покажу (впрочем, там и так Dracula); для нерабочих моментов есть Emacs, но каких именно, я вам тоже не покажу, вот для примера шаблон для ТЗ в org-mode
  • Музыкальный плеер (виден на скриншоте, используется примерно никогда в связи с наличием плеера) — cmus
  • ШГ — Fira Mono, Fira Sans, в Telegram так и не понял, как менять шрифты, вообще крайне сложно там что-либо настроить
  • Видео играется исключительно на телевизоре через Chromecast, но вообще есть VLC, если лень тянуться за телефоном — он спокойно подхватывает этот гуглодевайс и стримит на него
  • шелл — zsh

На скриншоте DuckDuckGo показан для демонстрации темы; Да, у меня действительно диарея; Нет, я просто решил посмотреть, что порекомендуют в качестве народных средств от диареи;

 , ,

Princesska
()

Красивые способы корректного сравнения знаковых и беззнаковых целых

Форум — Development

Стандарты языка С предписывают компиляторам пользовать «быстрое» сравнение, вместо корректного.

То есть в следующем коде согласно всех стандартов языка С переменная res должна получить значение 0 а не 1, что крайне непрактично.

unsigned int a = 1;
int b = -1;
int res = (b < a);

Недавно я узнал что существует заметно больше способов корректного сравнения чем я изначально предполагал. Поэтому мне интересен чужой опыт.

Естественно речь о ситуациях где отказаться ни от знаковых, ни от беззнаковых никак нельзя.

Мой основной способ решения этой проблемы через расширение разрядности, так как я в первую очередь имею дело с unsigned char, но смесь size_t c ssize_t или что-то подобное также нередко доставляет неудобства.

Опишите кто и как выкручивается в сложившейся ситуации.

[UPDATE] ассемблерные листинги к классическим алгоритмам сравнения

For example x86 gcc 7.1 will for C++ source:

bool compare(int x, unsigned int y) {
    return (x < y); // "wrong" (will emit warning)
}

bool compare2(int x, unsigned int y) {
    return (x < 0 || static_cast<unsigned int>(x) < y);
}

bool compare3(int x, unsigned int y) {
    return static_cast<long long>(x) < static_cast<long long>(y);
}

Produce this assembly (godbolt live demo):

compare(int, unsigned int):
        cmp     edi, esi
        setb    al
        ret

compare2(int, unsigned int):
        mov     edx, edi
        shr     edx, 31
        cmp     edi, esi
        setb    al
        or      eax, edx
        ret

compare3(int, unsigned int):
        movsx   rdi, edi
        mov     esi, esi
        cmp     rdi, rsi
        setl    al
        ret

Взято вот здесь:

https://stackoverflow.com/a/44070807/73747

 , ,

cvv
()

модульный роутер уже в продаже ....

Форум — General

Хотите собрать свой роутер ? https://www.turris.cz/en/mox/overview/

 

Jopich1
()

Консольная отладка кода с ассемблерными вставками

Форум — Development

Есть виртуальная машина QEMU AArch64 есть программа, которую можно компилировать с отладочными символами и без оптимизации. Как ее отлаживать?

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

Но можно ли повесить окошко со значением некоторых регистров, или заставить gdb выводить ряд некоторых регистров после исполнения каждого шага и последующей остановки?

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

Попытки повесить окошко с регистрами в текстовом интерфейсе cgdb не сработали, какой то глюк, видимо не поддерживается на aarch64.

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

 , ,

I-Love-Microsoft
()

Насколько bool thread-safe

Форум — Development
class BlaBla
{
public:
    BlaBla() :
        mbValue(false)
    {}

    bool value() const {
        return mbValue;

    void compute(...) {
        mbValue = true / false;
    }

private:
    bool mbValue;
};

Опустим здесь подробности расчёта. Интересен только bool, насколько он thread-safe здесь?

 ,

UVV
()

В Qt избавляются от QTextCodec

Форум — Development

https://bugreports.qt.io/browse/QTBUG-75665

https://bugreports.qt.io/browse/QTBUG-75991

https://lists.qt-project.org/pipermail/development/2019-October/037791.html

Коротко для Ъ:

Из QtCore в 6-й версии будет удалён QTextCodec и его поддержка во всех связанных классах. В одном из багрепортов предлагается перенести всё связанное с перекодировкой в отдельный модуль. Но есть опасения, что согласно политики партии, новый модуль будет исключительно под GPL/Commercial. Сие весьма усложнит разработку софта для работы с текстом, где постоянно приходится иметь дело с зоопарком кодировок.

 

truetester
()

Сделал пакет для смены обоины на случайную с wallhaven.cc

Форум — Development

Пакет добавил в aur:

$ yay -S random-wallpaper
$ sudo systemctl start random-wallpaper.timer && sudo systemctl enable random-wallpaper.timer

Исходный код тут (github.com).

И PKGBUILD:

# Maintainer: Sergey M <tz4678@gmail.com>
pkgname=random-wallpaper
pkgver=0.1.0
pkgrel=1
pkgdesc='Changes the desktop wallpaper to random from the site wallhaven.cc'
arch=('any')
url='https://github.com/tz4678/random-wallpaper'
license=('MIT')
depends=('jq')
source=('git+https://github.com/tz4678/random-wallpaper.git')
md5sums=('SKIP')

package() {
  cd "$srcdir/$pkgname"
  install -Dm755 $pkgname $pkgdir/usr/bin/$pkgname
  install -Dm644 $pkgname.service $pkgdir/usr/lib/systemd/system/$pkgname.service
  install -Dm644 $pkgname.timer $pkgdir/usr/lib/systemd/system/$pkgname.timer
  install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
  install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md"
}

Как лучше всего сделать конфиги? Например, время обновления обоины 15 минут задается в /url/lib/systemd/system/random-wallpaper.timer, а я хочу в отдельном конфиге все задавать.

И другой вопрос: есть ли какие-то недочеты в моем коде?

 , ,

tz4678
()

Прокси, который...

Форум — Admin

Надоело на каждой домашней машине (тесть, жена, дети, у каждого своя машина/ось/учётка, зоопарк винд, линуксов и разных браузеров разных версий в них) проверять и настраивать вот эти все ublock, matrix и прочие. Чисто физически надоело.

Сюда, в нагрузочку, ещё можно добавить мобильные по wi-fi, в том числе и если это в гости зашел человек и ему дали доступ к сети.

Хочу поднять прокси, через который будут ходить все HTTP(S) запросы. И, чтобы прокся анализировала:

1) к каким хостам идут запросы.
2) куки
3) URL path
4) query params
5) POST data

и на основании полученных данных принимала решение:

а) дропнуть запрос
б) ответить 301/302/401/403/404
в) удалить/добавить/заменить куки
г) пропустить как есть

Да — я говорю о классическом MITM, но для собственного блага.

1) Я НЕ хочу чтобы меня трекали счётчики.
2) Я хочу для конкретных сайтов (догадайтесь каких) всегда быть анонимным с любого устройства в моей сети (а-ля приватный режим браузера).
3) Я хочу блокировать все запросы к рекламным сетям для всех машин.
4) Я хочу блокировать какие-то запросы, если они идут с конкретной машины.
5) Я хочу НЕ блокировать какие-то запросы, если они идут с другой конкретной машины.
6) Я хочу НЕ применять правила для какой-то машины или применять их выборочно.
7) Я НЕ хочу чтобы какие-то корподобрые браузеры и виджеты самостоятельно что-то куда-то засылали.
8) Я хочу иметь белые, серые и прочие списки хостов и/или возможность настраивать их по маске, например, регуляркой.
N...) Что ещё я забыл хотеть?
N...+1) Я хочу настраивать эти правила в одном месте.

Подскажите опенсорс+фри ПО максимально покрывающее мои хотелки. Или комплекс такого ПО, с помощью которого я смогу получить желаемое.

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

И вот ещё. Если с HTTP трафиком всё просто и понятно, то с HTTPS нужен же свой корневой серт. Этот серт надо добавить во все браузеры. Тогда, траф я смогу расшифровать на проксе и проанализировав всё что мне нужно, принять решение насчёт запроса, а во внешний мир отправлять (при необходимости модифицированый) запрос уже с правильными публичными сертами и на реальные хосты. Будет ли это работать?

sudo cast ValdikSS — кажется, ты сможешь пролить свет на многие мои вопросы.

 , , ,

deep-purple
()

recorder экрана и клавиатуры под линукс?

Форум — Desktop

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

есть ли что-нибудь такое под линукс?

задача: записывать видосы по использованию софта и кидать на видео-хостинг

 , ,

luntik2012
()

FreeSoftware на Эльбрусе

Форум — Development

Биполярочка от Базальта: https://youtu.be/NLOtcsNBuBs

Портирование свободного ПО на которой даже ISA засекречена, и компилятор есть только проприетарный.

Книгу в свободный доступ дали: http://mcst.ru/files/511cea/886487/1a8f40/000000/book_elbrus.pdf

Книгу не читал, но может там есть что-то полезное.

Если кто-то захочет купить, то есть магазин: http://shop.irsural.ru/comp/catalog/computers/3079

 , ,

fsb4000
()

DVB на arm64

Форум — Linux-hardware

пытаюсь запустить драйвера https://github.com/DigitalDevices/dddvb на jetson ( arm64)

Не получается не то что настроить тюнер, а вообще сделать что-либо с ними:

# ./astra --femon 'dvb://#adapter=3&type=S2&frequency=11785&polarization=R&symbolrate=27500' |head -20
Oct 18 13:29:13: INFO: [main] Starting Astra v.5.61
Oct 18 13:29:13: INFO: check license
Oct 18 13:29:13: ERROR: [core/socket 4] getaddrinfo() failed 'ls1.cesbo.com' [No address associated with hostname])
Oct 18 13:29:13: ERROR: [dvb_input 3:0] FE_SET_PROPERTY DTV_CLEAR failed [Inappropriate ioctl for device]
Oct 18 13:29:13: ERROR: [dvb_input 3:0] FE_SET_PROPERTY DTV_CLEAR failed [Inappropriate ioctl for device]
Oct 18 13:29:13: ERROR: [dvb_input 3:0] FE_SET_PROPERTY DTV_CLEAR failed [Inappropriate ioctl for device]

в интернетах говорят про проблему dvb на arm64: https://tvheadend.org/issues/2665 типа из-за размера структур проблемы.

Кто-нибудь пробовал завести DVB плату на 64-битном арме?

 ,

max_lapshin
()

Проект Plasma Mobile наращивает активность

Новости — KDE
Группа KDE

А также начинает публиковать еженедельные отчёты о проделанной работе. Вот что было сделано за последние 2 недели:

  • Plasma Nano Shell — основной вариант оболочки для мобильных и встраиваемых устройств;
  • в Kirigami добавлены новые API PagePool и PagePoolAction для настольных и мобильных приложений;
  • фреймворк MauiKit интегрирован в KDE Frameworks 5 и получил новые возможности;
  • Nota — простой текстовый редактор с подсветкой синтаксиса и работой с несколькими файлами во вкладках;
  • Buho — менеджер заметок и ссылок (закладок) научился синхронизации через NextCloud;
  • несколько других приложений, вроде сканера QR-кодов Qrca и менеджера файлов Index.

Несколько скриншотов последней версии оболочки и приложений:

менеджер файлов Index

текстовый редактор Nota

музыкальный плеер Vvave

оболочка Plasma Mobile

>>> Подробности

 , ,

Deleted
()

Посоветуйте, чем можно организовать видетрансляцию

Форум — Multimedia

На входе 2-3 видеопотока, на выходе файл, и чтобы можно было сделать «картинку в картинке», переключаться между входными потоками и добавлять текст и изображения «на лету».

Понятно, что ffmpeg, но вдруг есть что-то с мышевозным интерфейсом?

Спасибо.

 ,

vvn_black
()