LINUX.ORG.RU

Сообщения Jullyfish

 
Форум — General

Определить какой процесс читает содержимое файла

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

Если посмотреть запуск программы через strace, никакого открытия файла не происходит. Если файла нет, сообщение об ошибке, тоже в логах strace нет.

При этом, судя по всему, файл открывается, считывается и закрывается. Поэтому lsof тут не помогает.

Какие есть ещё варианты?

 ,

Jullyfish
()
Форум — Development

Базовый минимум html, css без js для пк/смартфона/TUI

linux.org.ru, к примеру, хорошо выглядит как и в консольном браузере, как и на ПК, так и на смартфоне даже с отключенным js.

Есть какой-то небольшой набор базовых правил, чтобы всё было так аккуратно? Хочу себе на сайте также.

 , ,

Jullyfish
()
Форум — Multimedia

tuxguitar не запускается. java.lang.UnsupportedClassVersionError

При запуске выдаёт:

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/eclipse/swt/widgets/Display has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

Пробовал меня версию таким образом (как я понял, нужна версия 11, которая и установилась вместе с пакетом tuxguitar):

# update-alternatives --config java

There is 5 program that provides 'java'.

  Selection    Command
-----------------------------------------------
*  1           java-21-openjdk.x86_64 (/usr/lib/jvm/java-21-openjdk-21.0.4.0.7-2.fc40.x86_64/bin/java)
   2           java-17-openjdk.x86_64 (/usr/lib/jvm/java-17-openjdk-17.0.12.0.7-2.fc40.x86_64/bin/java)
   3           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.432.b06-3.fc40.x86_64/jre/bin/java)
   4           /usr/lib/jvm/jre-1.7.0-oracle.x86_64/bin/java
 + 5           /usr/lib/jvm/java-11-openjdk/bin/java
$ java -version
openjdk version "11.0.27" 2025-04-15
OpenJDK Runtime Environment (Red_Hat-11.0.27.0.6-1) (build 11.0.27+6)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.27.0.6-1) (build 11.0.27+6, mixed mode)

Ошибка всё та же. Как это вылечить?

 ,

Jullyfish
()
Форум — Linux-org-ru

Вёрстка комментариев поехала

Часто браузер открыт в полэкрана, такое увидел впервые:

Скриншот

 , ,

Jullyfish
()
Форум — Linux-hardware

Buildroot. Заставить работать нормально X11. Raspberry pi 3.

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

Вот всё в конфиге связанное с иксами:

BR2_PACKAGE_XORG7=y
BR2_PACKAGE_XSERVER_XORG_SERVER=y
BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR=y
BR2_PACKAGE_XSERVER_XORG_SERVER_XVFB=y
BR2_PACKAGE_LIBXCB=y
BR2_PACKAGE_XLIB_LIBICE=y
BR2_PACKAGE_XLIB_LIBSM=y
BR2_PACKAGE_XLIB_LIBX11=y
BR2_PACKAGE_XLIB_LIBXAU=y
BR2_PACKAGE_XLIB_LIBXAW=y
BR2_PACKAGE_XLIB_LIBXCURSOR=y
BR2_PACKAGE_XLIB_LIBXDAMAGE=y
BR2_PACKAGE_XLIB_LIBXDMCP=y
BR2_PACKAGE_XLIB_LIBXEXT=y
BR2_PACKAGE_XLIB_LIBXFIXES=y
BR2_PACKAGE_XLIB_LIBXFONT2=y
BR2_PACKAGE_XLIB_LIBXFT=y
BR2_PACKAGE_XLIB_LIBXI=y
BR2_PACKAGE_XLIB_LIBXINERAMA=y
BR2_PACKAGE_XLIB_LIBXMU=y
BR2_PACKAGE_XLIB_LIBXPM=y
BR2_PACKAGE_XLIB_LIBXRANDR=y
BR2_PACKAGE_XLIB_LIBXRENDER=y
BR2_PACKAGE_XLIB_LIBXRES=y
BR2_PACKAGE_XLIB_LIBXT=y
BR2_PACKAGE_XLIB_LIBXXF86VM=y
BR2_PACKAGE_XLIB_LIBFONTENC=y
BR2_PACKAGE_XLIB_LIBXCVT=y
BR2_PACKAGE_XLIB_LIBXKBFILE=y
BR2_PACKAGE_XLIB_LIBXSHMFENCE=y
BR2_PACKAGE_XLIB_XTRANS=y
BR2_PACKAGE_XAPP_SESSREG=y
BR2_PACKAGE_XAPP_TWM=y
BR2_PACKAGE_XAPP_XAUTH=y
BR2_PACKAGE_XAPP_XCLOCK=y
BR2_PACKAGE_XAPP_XDM=y
BR2_PACKAGE_XAPP_XEYES=y
BR2_PACKAGE_XAPP_XINIT=y
BR2_PACKAGE_XAPP_XKBCOMP=y
BR2_PACKAGE_XAPP_XRDB=y
BR2_PACKAGE_XDRIVER_XF86_INPUT_EVDEV=y
BR2_PACKAGE_XDRIVER_XF86_INPUT_LIBINPUT=y
BR2_PACKAGE_XDRIVER_XF86_INPUT_MOUSE=y
BR2_PACKAGE_XDRIVER_XF86_VIDEO_FBDEV=y
BR2_PACKAGE_XFONT_FONT_UTIL=y
BR2_PACKAGE_XFONT_ENCODINGS=y
BR2_PACKAGE_XFONT_FONT_ALIAS=y
BR2_PACKAGE_XFONT_FONT_CURSOR_MISC=y
BR2_PACKAGE_XFONT_FONT_MISC_MISC=y
BR2_PACKAGE_XCB_PROTO=y
BR2_PACKAGE_XORGPROTO=y
BR2_PACKAGE_MCOOKIE=y
BR2_PACKAGE_XDATA_XBITMAPS=y
BR2_PACKAGE_XTERM=y
BR2_PACKAGE_XKEYBOARD_CONFIG=y

X -configure не работает (да и все остальные иксовые команды), в логе следующая ошибка:

... fbdev_drv.so: undefined symbol: fbdevHWSave

Лечится созданием файла /etc/X11/xorg.conf со следующим содержанием:

Section "Module"
  Load "fbdevhw"
  Load "shadow"
EndSection

Таким образом иксы запускаются, но X -configure сделать нельзя, т.к. он начинает работу как если бы конфигов нет, а если нет конфига, то теряется fbdevHWSave.

Далее пытался заставить работать мышь.

Section "InputDevice"
        Identifier "Mouse"
        Driver "mouse"
        Option "Protocol" "Logitech" # "auto" делает PS/2
        Option "Device" "/dev/input/event1"
EndSection

И она даже как-то работает. Если протокол поставить auto, ставится по умолчанию PS/2 и курсор улетает куда-то… Если поставить Logitech (поскольку мышь у меня logitech), то курсор как-то хаотично двигается по оси X (и иногда по оси Y) и, судя по всему, ещё и клики делает при движении.

Пробовал ещё такое, но никакого видимого результата не дало, курсор не двигается:

Section "InputClass"
        Identifier "libinput mouse catchall"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection

А с клавиатурой много перепробовал, всё приводить не хочется. Единственное, сделаю замечание, что драйвер kbd отсутствует, ибо в buildroot он в LEGACY.

Кто тут силён в иксах?

 , , ,

Jullyfish
()
Форум — Talks

Разблокировка Rockchip MPP на GitHub

В конце прошлого года репозиторий был заблокирован и было очень много новостей на эту тему.

https://www.opennet.ru/opennews/art.shtml?num=64512

Сейчас его разблокировали, а как и почему, нигде не нашёл. Есть какие-нибудь подробности?

 ,

Jullyfish
()
Форум — Development

Buildroot. Символическая ссылка на .so файл

Через механизм br2-external добавил пакеты, которые собираются в *.so файлы. Все из них собираются с помощью обычного Makefile. В мануале написано, что в таком случае надо в libfoo.mk файле поступать следующим образом:

define LIBFOO_INSTALL_TARGET_CMDS
     $(INSTALL) -D -m 0755 $(@D)/libfoo.so* $(TARGET_DIR)/usr/lib
     $(INSTALL) -d -m 0755 $(TARGET_DIR)/etc/foo.d
endef

Как я и сделал в своём *.mk файле. Есть файл libfoo.so.1.2.3, на него должны быть символические ссылки libfoo.so.1 и libfoo.so. Они не создаются. Как правильно сделать, чтобы они создавались при сборке?

Для пакетов, что уже прилагаются к buildroot, эти ссылки создаются, но я так и не смог найти в каком месте. В мануале об этом ничего.

 ,

Jullyfish
()
Форум — Development

ncurses. Текущее положение курсора.

Решил поиграться с ncurses. Для начала решил написать программку, которая будет показывать текущее положение курсора мыши. И тут началось…

Для получения положения курсора настраивается мышь с помощью функции mousemask() с флагом REPORT_MOUSE_POSITION. Как оказалось, этого недостаточно. Поискал в интернетах, обнаружилось, что надо настроить терминал, чтобы он считывал положение мыши.

$ echo $TERM
xterm-256color

Выяснилось, что чтобы в xterm обнаружить движение, нужно передать следующую escape-последовательность "\033[?1003h\n".

Окей, программа работает, положение курсора указывается. Но после завершения программы, все движения мыши терминал выплёвывает в терминал. Чтобы отключить отслеживание курсора передаётся последовательность "\033[?1003l\n", добавил в конце программы. Всё супер. Но…

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

Также есть прекрасный сигнал SIGSTOP и на него никакой обработчик повесить нельзя. И всё, тупик. Если программу отправить в «фон», то у нас терминал весело плюётся данными о положении мыши.

Может кто подскажет как это грамотно сделать?

Код программы целиком:

#include <ncurses.h>
#include <signal.h>
#include <stdlib.h>
#include <unistd.h>

enum { key_escape = 27 };

/*
 * Escape sequences for xterm mouse position detection.
 * TODO: find a better solution:
 */
const char report_mouse_start[]	= "\033[?1003h\n";
const char report_mouse_end[]	= "\033[?1003l\n";

static void at_exit()
{
	write(1, report_mouse_end, sizeof(report_mouse_end)-1);
	endwin();
}
static void sigexit_handler()
{
	at_exit();
	_exit(0);
}
static void set_signals()
{
	signal(SIGTERM, sigexit_handler);
	signal(SIGINT, sigexit_handler);
	signal(SIGQUIT, sigexit_handler);
}

static void init_curses()
{
	initscr();
	cbreak();
	keypad(stdscr, 1);
	noecho();
	curs_set(0);
	mousemask(REPORT_MOUSE_POSITION, NULL);
}

static void procmouse()
{
	MEVENT event;
	int rc;

	rc = getmouse(&event);
	if (rc == OK) {
		mvprintw(0, 0, "X:Y %03d:%03d", event.x, event.y);
	}
}

int main()
{
	int key;

	set_signals();
	atexit(at_exit);
	/* Init xterm mouse report: */
	write(1, report_mouse_start, sizeof(report_mouse_start)-1);
	init_curses();

	for (;;) {
		key = getch();
		if (key == KEY_MOUSE)
			procmouse();
		else if (key == key_escape)
			break;
	}

	return 0;
}

 , ,

Jullyfish
()
Форум — Admin

OpenBSD. Настроить http reverse proxy.

Есть два стула сервера, назовём их vps и home. На обоих серверах стоит OpenBSD и работает родной httpd. vps – хост в интернете, home – нет. Также есть своё доменное имя my.domain.net.

Как настроить так, чтобы при открытии vps.my.domain.net открывался сайт с компьютера vps (это как раз легко и уже сделано), а при открытии home.my.domain.net открывался сайт с компьютера home?

 , , ,

Jullyfish
()
Форум — Admin

~/.ssh/config подключение к одному хосту из разных мест.

Дано:

  • Ноутбук, с которым я бываю на работе и «где-то ещё»;
  • Рабочий сервер, «белого» IP нет;
  • ssh-туннель через мой домашний компьютер.

Требуется:

Настроить config, чтобы подключаться к одному хосту в зависимости от расположения. Не исключаю, что это невозможно. Но вдруг. :^)

Чуть подробнее с примерами:

Host work
	HostName my.home.net
	User user
	PubkeyAuthentication yes
	IdentityFile ~/.ssh/work
	Port 20000
	IdentitiesOnly yes

Host work_local
	HostName 192.168.1.200
	User user
	PubkeyAuthentication yes
	IdentityFile ~/.ssh/work
	IdentitiesOnly yes

Если я на работе, я подключаюсь так:

$ ssh work_local

Если я «где-то ещё»:

$ ssh work

Хочется, чтобы я мог в обоих случаях делать:

$ ssh work

Но если я на работе, то подключение по локальной сети (ssh user@192.168.1.200), а если «где-то ещё», то подключение через домашний компьютер (ssh -p20000 user@my.home.net).

 

Jullyfish
()
Форум — Linux-org-ru

Галочка решённой темы в лентах форума

В трекере и в отдельных темах видно когда тема отмечена как решённая. В лентах форума («Полная лента форума», «Лента технического форума», «Лента форума без Talks») никаких обозначений, что тема отмечена как решённая (или я такой невнимательный. :^) )

Можете, добавить, пожалуйста?

 

Jullyfish
()
Форум — Talks

Кто-нибудь умеет качать с Baidu?

В интернетах искал, как-то уже никакой способ не работает, а нужен файл на 16 гб.

https://pan.baidu.com/s/1zjUCHEgXTgyNr0PuFcoZ2Q?pwd=62o9 

 , ,

Jullyfish
()
Форум — Admin

Примонтировать директорию в оффтопике

Знакомый сидит под оффтопиком. У меня на компьютере есть директория, к которой я хочу дать ему доступ по сети (сеть не локальная), чтобы он там мог редактировать файлы (а конкретно его личные статичные веб-странички). Как это лучше сделать?

P.s. знакомый в возрасте, с консолью не знаком, ssh не предлагать.

 , ,

Jullyfish
()
Форум — Linux-hardware

Монтирование образа без разделов? Как добавить разделы?

Есть одноплатник luckfox pico pro max. Для него есит SDK, который собирает linux. В дальнейшем можно собрать образ для sd-карты, отдельный скриптом. Я поковырял скрипт, он делает следующее:

dd if=env.img of=disk.img bs=1k seek=0
dd if=idblock.img of=disk.img bs=1k seek=32
dd if=uboot.img of=disk.img bs=1k seek=544
dd if=boot.img of=disk.img bs=1k seek=800
dd if=oem.img of=disk.img bs=1k seek=33568
dd if=userdata.img of=disk.img bs=1k seek=557856
dd if=rootfs.img of=disk.img bs=1k seek=820000

А затем можно disk.img залить на sd-карту:

dd if=disk.img of=/dev/sdX bs=1M

И оно будет работать.

Как в образ disk.img добавить таблицу разделов?

 , , ,

Jullyfish
()
Форум — Linux-hardware

CSI разъёмы на одноплатниках, как их различать?

На руках есть одноплатные компьютеры, на каждом есть CSI-разъём:

  • Orange Pi PC2
  • Raspberry Pi 3B+
  • ESP32-P4-ETH, Luckfox Pico Zero
  • Radxa Rock 5B
  • Китайские noname с RV1109/RV1126

У всех (по пунктам) физически CSI-разъёмы различаются. Бывает сильно (1 мм площадь контакта или 0.5), бывает совсем чуть-чуть (есть шляйфы 0.5, на одном 22 контакта, на другом 20 контактов, а маркировка одинаковая).

Как в этом зоопарке CSI-разъёмов ориентироваться?

 , , , ,

Jullyfish
()
Форум — Linux-hardware

Посоветуйте портативный hdmi-монитор для одноплатников

Нужен небольшой портативный дисплей, для работы с одноплатными компьютерами (raspberry pi 1 b+, raspberry pi 3 b+, orange pi 3b, orange pi pc2, в будущем может ещё какие будут).

Главное, чтобы он стабильно со всеми этими устройствами работал. Было бы неплохо, если бы он ещё был аккумуляторный и с тачскрином, но это не обязательно.

 ,

Jullyfish
()
Форум — Desktop

Мерцает экран в tty режиме после запуска screen, когда посылается bell сигнал

В tty режиме, если запустить screen, то, как я понимаю, когда отправляется сигнал bell (например, когда tab’ом пытаешь дополнить, а дополнять нечего, или есть жать backspace, когда текст весь стёрт) экран мерцает белым. Проблема воспроизводится на разных дистрибутивах. Это можно как-то исправить?

 , ,

Jullyfish
()
Форум — Linux-hardware

OpenBSD. Сменить разрешение экрана. tty

Дано:

  • Orange Pi PC2, на которой стоит OpenBSD;
  • Монитор bigme b13.

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

Есть ли возможность как-то сменить разрешение экрана? Преимущественно сижу без иксов, поэтому интересуют настройка для tty-режима.

 , , , ,

Jullyfish
()
Форум — Desktop

FreeBSD на основной машине.

Рассматриваю установку FreeBSD на основную машину. Ports and Packages Collection изучены, нужные все программы вроде как есть. Там даже бывают программы, которых нет в линуксовых репозиториях (например, CAMotics нет в Fedora, LibreWolf нет в Debian).

Вопросы:

  • Как у FreeBSD с драйверами?
  • Насколько юзерспейс не меняется от релиза к релизу? Тут постараюсь уточнить. Если взять ту же Slackware 15.0 (2022 г.) и к ней SlackBook (2005 г.), то в общем, SlackBook за 17 лет актуальность практически не потеряла. Система и юзерспейс по ней нормально получается настроить. Как-то в других дистрибутивах идёт какая-то жёсткая привязка к DE/WM и обычно приходится изучать их кишки, которые постоянно меняются. Как с этим во FreeBSD? Жирные DE/WM ставить не планирую;
  • Может есть ещё какие-то подводные камни, о которых мне стоит знать?

Железо основной машины:

Host: B360M H 
Resolution: 2560x1440
CPU: Intel i7-8700 (12) @ 4.600GHz 
GPU: NVIDIA GeForce GTX 1070
Memory: 10891MiB / 15916MiB

 ,

Jullyfish
()
Форум — Desktop

Debian 13 xfce4. Запуск программ при авторизации.

Установил себе Debian 13 с xfce4. При запуске системы открывается интерфейс (как он называется?), чтобы залогиниться, а также позволяет выбрать оконный менеджер.

Хочу, чтобы при запуске после авторизации сразу запускались кое-какие программы и скрипты, но ~/.xinitrc не работает. Что тут вместо ~/.xinitrc?

 ,

Jullyfish
()

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