LINUX.ORG.RU

Сообщения snake266

 

CMake find_package(Threads) падает

В общем, решил использовать для своего проекта CMake. В проекте использую SDL2 и SDL2_image (там еще подтянется SDL2_mixer), начал гуглить, как все это слинковать. Сначала я удивился, что CMake из коробки не может подтянуть SDL2-библиотеки, только SDL, потом нашел репозиторий с FindSDL2*.cmake. Окей, склонировал все в корень проекта в cmake/sdl2/. Написал вот такой CMakeLists.txt:

cmake_minimum_required(VERSION 3.10)

project(prototype)

list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/sdl2)

add_executable(${PROJECT_NAME} main.c)

target_include_directories(${PROJECT_NAME} PRIVATE graphics)

find_package(SDL2 REQUIRED)
target_link_libraries(${PROJECT_NAME} SDL2::Main)

find_package(SDL2_image REQUIRED)
target_link_libraries(${PROJECT_NAME} SDL2::Image)

Валится с:

> cmake -S . -B build
CMake Error at cmake/sdl2/FindSDL2.cmake:243 (message):
  Could NOT find Threads (Threads is required by SDL2).
Call Stack (most recent call first):
  CMakeLists.txt:11 (find_package)


-- Configuring incomplete, errors occurred!

На вот этом if:

...
if(NOT APPLE)
  find_package(Threads QUIET)
  if(NOT Threads_FOUND)
    set(SDL2_THREADS_NOT_FOUND "Could NOT find Threads (Threads is required by SDL2).")
    if(SDL2_FIND_REQUIRED)
      message(FATAL_ERROR ${SDL2_THREADS_NOT_FOUND})
    else()
        if(NOT SDL2_FIND_QUIETLY)
          message(STATUS ${SDL2_THREADS_NOT_FOUND})
        endif()
      return()
    endif()
    unset(SDL2_THREADS_NOT_FOUND)
  endif()
endif()
...

Как я понял, он не может найти pthread. Решил, добавить add_compile_options(-lpthread) также валится.
Заметил, что find /lib -name "*pthread" ничего не выводит, но тестовая сборка с gcc main.c -pthread отрабатывает нормально.
Также я пробовал добавлять set(THREADS_PREFER_PTHREAD_FLAG TRUE) и в мой CMakeLists.txt и в cmake/sdl2/FindSDL2.cmake, но оно тоже не помогало

Почему cmake не может собрать проект? Что я делаю не так?

Решение

Заменить find_package на find_library таким образом:

- find_package(SDL2 REQUIRED)
- target_link_libraries(${PROJECT_NAME} SDL2::Main)
+ find_library(SDL2_LIBRARY NAMES SDL2)
+ target_link_libraries(${PROJECT_NAME} ${SDL2_LIBRARY})

- find_package(SDL2_image REQUIRED)
- target_link_libraries(${PROJECT_NAME} SDL2::Image)
+ find_library(SDL2_IMAGE_LIBRARY NAMES SDL2_image)
+ target_link_libraries(${PROJECT_NAME} ${SDL2_IMAGE_LIBRARY})

 ,

snake266 ()

Grub не ставится на EFI

Чтобы занять себя этим замечательным летом, решил попробовать Gentoo, но пока только в виртуалке, для тренировки. Проблема возникла на настройке grub, а именно спотыкается об efi:

(chroot) live cd / # grub-install --target=x86_64-efi --efi-directory=/boot
Installing for x86_64-efi platform.
EFI variables are not supported on this system.
EFI variables are not supported on this system.
grub-install: error: efibootmgr failed to register the boot entry: No such file or directory.

Ядро стоит sys-kernel/gentoo-kernel-bin, efibootmgr установлен.
emerge --config sys-kernel/gentoo-kernel-bin запускал, но ни # modprobe efivars ни # modprobe efivarfs не работает, говорит что такого модуля в /lib/modules/5.10.27-gentoo-x86_64 нет (ошибка кроется тут?).
/boot точно сделан как EFI partion, размечен как vfat.

Нашел эту страницу на хэнбуке. Проверяю:

# mount | grep efivars

А у меня там ничего. В русском переводе указано такое предложение:

Если данная файловая система не смонтирована (она должна быть смонтирована через скрипт инициализации sysfs), можно смонтировать ее вручную следующей командой:root #mount -t efivarfs efivarfs /sys/firmware/efi/efivars

Но у меня нет ни /sys/firmware/efi/efivars ни /sys/firmware/efi, а создать я их не могу.

efibootmgr -v тоже отвечает: EFI variables are not supported on this system.

Что я делаю не так? Что мне надо сделать чтобы все заработало?

P.S. Я хочу попробовать поставить именно EFI, потому что до этого все ставил на BIOS (Legacy mode), хочу открыть для себя что-то новое.

 , ,

snake266 ()

Не работает микрофон у наушников

Заметил проблему, что вместо микрофона на наушниках используется встроенный в ноутбук.

Помню полгода назад мучался с пульсой (как вот тут), но ничего не получилось. Сейчас решил попробовать pipewire, подумал, что может тут сразу заработает, но нет.

Вывод pactl list с pipewire: pastbin
Вывод pacmd lis-soursec (пульса):

❯ pacmd list-sources
2 source(s) available.
    index: 0
	name: <alsa_output.pci-0000_00_1b.0.analog-stereo.monitor>
	driver: <module-alsa-card.c>
	flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
	state: RUNNING
	suspend cause: (none)
	priority: 1030
	volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
	        balance 0.00
	base volume: 65536 / 100% / 0.00 dB
	volume steps: 65537
	muted: no
	current latency: 0.00 ms
	max rewind: 6 KiB
	sample spec: s16le 2ch 44100Hz
	channel map: front-left,front-right
	             Stereo
	used by: 1
	linked by: 1
	configured latency: 40.00 ms; range is 0.50 .. 2000.00 ms
	monitor_of: 0
	card: 1 <alsa_card.pci-0000_00_1b.0>
	module: 7
	properties:
		device.description = "Monitor of Built-in Audio Analog Stereo"
		device.class = "monitor"
		alsa.card = "1"
		alsa.card_name = "HDA Intel PCH"
		alsa.long_card_name = "HDA Intel PCH at 0xb3614000 irq 50"
		alsa.driver_name = "snd_hda_intel"
		device.bus_path = "pci-0000:00:1b.0"
		sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card1"
		device.bus = "pci"
		device.vendor.id = "8086"
		device.vendor.name = "Intel Corporation"
		device.product.id = "9c20"
		device.product.name = "8 Series HD Audio Controller"
		device.form_factor = "internal"
		device.string = "1"
		module-udev-detect.discovered = "1"
		device.icon_name = "audio-card-pci"
  * index: 1
	name: <alsa_input.pci-0000_00_1b.0.analog-stereo>
	driver: <module-alsa-card.c>
	flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
	state: RUNNING
	suspend cause: (none)
	priority: 9039
	volume: front-left: 9628 /  15% / -49.98 dB,   front-right: 9628 /  15% / -49.98 dB
	        balance 0.00
	base volume: 5206 /   8% / -66.00 dB
	volume steps: 65537
	muted: no
	current latency: 0.01 ms
	max rewind: 0 KiB
	sample spec: s16le 2ch 44100Hz
	channel map: front-left,front-right
	             Stereo
	used by: 1
	linked by: 1
	configured latency: 40.00 ms; range is 0.50 .. 2000.00 ms
	card: 1 <alsa_card.pci-0000_00_1b.0>
	module: 7
	properties:
		alsa.resolution_bits = "16"
		device.api = "alsa"
		device.class = "sound"
		alsa.class = "generic"
		alsa.subclass = "generic-mix"
		alsa.name = "ALC283 Analog"
		alsa.id = "ALC283 Analog"
		alsa.subdevice = "0"
		alsa.subdevice_name = "subdevice #0"
		alsa.device = "0"
		alsa.card = "1"
		alsa.card_name = "HDA Intel PCH"
		alsa.long_card_name = "HDA Intel PCH at 0xb3614000 irq 50"
		alsa.driver_name = "snd_hda_intel"
		device.bus_path = "pci-0000:00:1b.0"
		sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card1"
		device.bus = "pci"
		device.vendor.id = "8086"
		device.vendor.name = "Intel Corporation"
		device.product.id = "9c20"
		device.product.name = "8 Series HD Audio Controller"
		device.form_factor = "internal"
		device.string = "front:1"
		device.buffering.buffer_size = "352800"
		device.buffering.fragment_size = "176400"
		device.access_mode = "mmap+timer"
		device.profile.name = "analog-stereo"
		device.profile.description = "Analog Stereo"
		device.description = "Built-in Audio Analog Stereo"
		module-udev-detect.discovered = "1"
		device.icon_name = "audio-card-pci"
	ports:
		analog-input-mic: Microphone (priority 8700, latency offset 0 usec, available: unknown)
			properties:
				device.icon_name = "audio-input-microphone"
	active port: <analog-input-mic>

В pavu отображается только встроенный микрофон. Что сделать с пульсой, чтобы микрофон заработал?

 , ,

snake266 ()

Gnome и уведомления

А можно как-то в гноме отключить уведомления типа "Application name" is ready скрин? Особенно такие уведомления появляются у телеграмма и без разницы какие уведомления выбраны нативные или телграмовские.

 ,

snake266 ()

Приложение для чтения книг с удобной интеграцией словаря/переводчика.

Сабж.

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

В принципе, если есть что-то такое и для онтопика, то тоже может подойти.

UPD. В общем, решил остановиться на GoldenDict, его поддерживают популярные читалки (я пробовал с Moon Reader) и для него есть огромное кол-во словарей.

 , ,

snake266 ()

lstlisting русские буквы съезжают

Сабж. Использую tectonic и listing. Есть вот такой код для octave:

n = 5; %Кол-во измерений
x = [2 : 6];
y = [17.2, 45.5, 96.5, 175.8, 288.9];

s(1,1) = n;
s(2, 1) = sum(x);
s(1, 2) = s(2, 1);
s(2, 2) = sum(x.^2)
b = [sum(y); sum(y*x')]

a = s\b
y2 = a(1) + a(2)*x
hold on; grid on;
plot(x, y, 'linestyle', 'none', 'marker', 's', 'color', 'r', 'markerfacecolor', 'r');
plot(x, y2, 'color', 'g');
legend('Тест', 'Апроксимирующая прямая')

Русский текст съезжает и получается так. Настройки для listing

\lstset {
  backgroundcolor = \color{backcolor},
  frame = single
}

Судя по этому топику (LaTeX: Русский в Listings) это проблема именно listing. Попробовал добавить

\usepackage[utf8x]{inputenc}
\lstset {
  backgroundcolor = \color{backcolor},
  frame = single,
  inputencoding=utf8x,
  extendedchars=\true
}

Но это не помогло.

 ,

snake266 ()

Пропал ярлык после редактирования .desktop

Заметил, что в emacs не работает compose key (не в терминале). Нашел решение XMODIFIERS=@im=none emacs, скопировал emacs.desktop к себе в .local/share/applications, поменял строчку с Exec=emacs %F на Exec=XMODIFIERS=@im=none emacs %F и отваливается ярлык в de. Что я делаю не так?

 ,

snake266 ()

Как запустить ip link set up на логине

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

Надо запустить sudo ip link set enp1s0f1 up и sudo dhcpcd. С sudo dhcpcd решено, я нашел dhcpcd.service, а вот по ip link set up я такого найти не смог. Какие есть варианты запускать эту команду на старте? Может системд юнит есть какой? Или самому написать?

 

snake266 ()

Нет доступа к /home

В общем, давно как то устанавливал этот сетап и как то сделал такой финт, что /home который на sda7 не прописан в fstab. Сейчас решил починить это, потому что некоторые программы неверно рассчитывают свободное место в хомяке, ну /home нету в выхлопе df -h. Прописал в fstab: /dev/sda7 /home ext4 noatime 0 2

Теперь при логине выдаёт:<user>: /home/<user>: change directory failed: Permission denied. Могу предположить что этот юзер не состоит в нужно группе, но я не знаю в какой.

 ,

snake266 ()

Края тачпада

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

Может это можно как то реализвать? Беглый взгляд на ман libinput не дал результатов.

 , , ,

snake266 ()

Непонятные отступы у urxvt в awesome wm

Проблема: у urxvt снизу и справа непонятные отступы раз два. Как решить эту проблему?

 ,

snake266 ()

awesome и функциональные клавиши

Понемногу осваиваю awesome wm. Начал настраивать Fn-клавиши написал вот такое

awful.key({ }, "#122", function () awful.spawn.with_shell("pulsemixer --change-volume -5") end)

Громкость не понижается, если вбить ручками команду то громкость уменшится. Пробовал подставлять и #122 и XF86AudioLowerVolume не работает (keycode 122 = XF86AudioLowerVolume NoSymbol XF86AudioLowerVolume ).

Еще написал вот такое

function mute_unmute()
   local audio_mixer = "pulsemixer "
   local command_to_check_mute = audio_mixer .. "--get-mute"
   local mute_status = nil
   awful.spawn.easy_async_with_shell(command_to_check_mute, function (out)
										mute_status = out
   end)
   if mute_status ~= nil then
	  if mute_status == "0" then
		 awful.spawn.with_shell(audio_mixer .. "--mute")
	  else
		 awful.spawn.with_shell(audio_mixer .. "--unmute")
	  end
   else
	  naughty.notify({title="Can not (un)mute", text="some error has occured"})
   end
   
end

awful.key({ }, "XF86AudioMute", function () mute_unmute() end)

И звук тоже не заглушается на сочетание на fn+f1.

Покажите что я делаю неправильно направьте на нужные ссылки

 ,

snake266 ()

Немного геометрии

Здравствуйте, пишу с просьбой объяснить, либо дать ссылку на нужную тему. Почему тут угол бета равен углу альфа? Может от усталости уже совсем скис и какого-то школьного свойства не вижу. Второй вопрос: что тут с углом бета? Судя по всему, там уже не все так просто как в первом, потому что сегодня на экзамене решал вторую картинку по примером первой (потому что времени думать особо не было), просто приравняв бету к альфа и получил неправильный ответ.

Линукс тут при том, что к экзамену готовился на линуксе (проходил его на нем же), а презентации делал в LibreOffice.

 ,

snake266 ()

Хочу начать писать игру

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

Во-первых, сценарий. У меня есть пару идей, но мне кажется эти идеи надо подкрепить профессиональной литературой, для лучшего эффекта. Посоветуйте легкую книгу в этом направлении.

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

В-третьих, музыка. Тут все легче: у меня много друзей, которые играют на музыкальных инструментах. У меня есть представление что должно играть. Тут вопросов, вроде, нет.

В-четвертых, геймплей, жанр и механики. Пока это мое слабое место, я еще не придумал как в мир без магии, фентези и прочего добавить каких-то геймплейных механик. Днем герой мог бы ходить по общежитию, взаимодействовать с объектами и изучать их, выполнять задания, но потом я задумался:«А как еще можно разнообразить геймплей». Вспомнил, что была такая игра Catherine. Подумал, что тоже можно добавить некую мини-игру, которая бы происходила в конце игрового дня и влияла на героя в его реальности. Но, мне кажется что, эта мини-игра должна быть драйвовая, динамичная, чтобы щекотать игроку нервы, чтобы он понимал, что если он тут провалится, то это повлияет на персонажа.

В-пятых, яп. У меня есть пара требований к языку:

  • Без GC, чтобы картинка не лагала. Хотя, у меня есть ощущение, что у меня картинка будет не сильно сложная.
  • Удобная поддержка юникода и в Linux и в Windows. Все таки сценарий будет написан на русском.

И что у нас остается:

  • С. SDL2. (скорее всего придется крутить велосипед для юникода(?))

  • C++. SDL2, SFML.

  • Rust. биндинги к sdl2, sfml или же чисто растовсикй piston.

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

 

snake266 ()

Экзамен или ЕГЭ

В общем, учусь на первом курсе, поэтому эмоции от ЕГЭ постепенно угасают как вдруг нам в беседу группы скидывают эту прелесть. Вот видос.

Для ъ: Сервис применяет какие то автоматические алгоритма распознавания лиц, чтобы анализировать на «угрозы проведенияя экзамена». Также те же алгоритмы распознавания лиц используются для идентификации студента, также идентификация может осуществляться по электронному почерку, экг и другим биометрическим параметрам. По веб камере следят за тем чтобы студент не отводил взгляд, не было посторонних голосов и тд. Также есть возможность следить за сменой вкладок и окон студентом.

 ,

snake266 ()

Графические библиотеки для C (3D, 2D)

В общем, что на сегодняшний день релевантно в области графических библиотек (3D, 2D) для C? На данный момент щупаю OpenGL. Может стоит сначала разобраться в OpenGL, а потом переходить на какой-нибудь SDL2 (для 2D, а для 3D оставить OpenGL)

 , ,

snake266 ()

В Konsole странные полосы

В Konsole появляются странные полосы, которые видно только если их выделить или пока до полос не дойдет приглашение для ввода. Видеокарта: Intel UHD 620. Скриншот раз, Скриншот два. Что делать?

UPD. Стриница с багом https://bugs.kde.org/show_bug.cgi?id=373232

 ,

snake266 ()

Grub unknown filesystem

Начал накатывать линь на ноут с UEFI. Разметил диск (btrfs) на /boot, /, /home. Установил grub по арчвики, сделал grub-mkconfig -o /boot/grub/grub.cfg. Перезагружаюсь, вылетает в обычный шелл граба, ls выдаёт:

(hd0,gpt4)....(hd0,gpt1)

Пробовал ставить prefix и root ставить на все разделы ничего не срабатывает. Решил попробовать зайти с live при загрузке с флешки выдаёт падает в rescue Mode с unknown filesystem. ls выдаёт

(hd0) (hd1)

Тут, на попытки insmod’od выдаёт unknown filesystem

Что делать?

Правило загрузки из меню UEFI imgur

 , ,

snake266 ()

Заранее положить пакет в образ

В общем, я довольно большой промежуток времени в поисках своего, поэтому прыгаю по дистрибутивам (недавно еще в сторону freebsd и openbsd начал смотреть), все бы ничего, но есть одна проблема: много где нет нужного драйвера для моей сетевой карты, где то даже в livecd (сетевая карта BCM43142). Есть какой то способ заранее положить нужный драйвер в образ? К примеру, как взять образ с фряхой и закинуть туда драйвер (любой, главное чтобы можно было подключиться к сети и все сделать классно)?

P.S. Да можно подключаться по проводу, но добираться до него лень и сложновато.

 , , , ,

snake266 ()

Выбор ноутбука тред

Вообщем, нужен ноут. Какие требования:

  • 13-ти дюймовый хороший экран, чтобы не портить глаза
  • Вес около килограмма, не больше 1,4кг, чтобы было удобно носить
  • Хорошая сборка и качественный корпус
  • Время работы от батареи где то от 8 часов, хотя чем больше тем лучше

Бюджет до 100к. Знаю про макбук, но хочется чего-то подешевле.

 

snake266 ()

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