LINUX.ORG.RU

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

QEMU в реальную сеть через WiFi

Форум — General

Проблема проста. Есть ноутбук подключенный к сети через WiFi.

Надо обеспечить доступ виртуальной машины на QEMU в эту же сеть.

Я понимаю, что для этого теоретически, надо создать tap сетевой адаптер и создать мост включающий его и сетевую карту, через которую реальная машина подключена к сети.

Вот тут и проблема - нельзя просто взять и создать мост с WiFi картой. Или как-то можно?

Подскажите пожалуйста. Возможно есть другие пути?

Виртуалка просто должна работать в реальной сети как еще один компьютер.

Интересует именно QEMU, как это сделать с Virtualbox я знаю, но он не подходит.

#####РЕШЕНИЕ#######

Спасибо @Pinkbyte! Я осилил по твоему совету.

Включаем Proxy ARP

# sysctl net.ipv4.conf.all.proxy_arp=1

Включаем IP Forwarding

# sysctl net.ipv4.ip_forward=1

Создаем tap сетевой интерфейс, доступный для пользователя (важно! qemu работает от пользователя !)

# tunctl -p -t tap0 -u <username>

Создаем маршрут для ip адреса виртуалки через tap0

ip route add 192.168.1.199 dev tap0

Запускаем QEMU с параметрами сети

-netdev tap,id=mynet0,ifname=tap0,script=no,downscript=no -device virtio-net-pci,netdev=mynet0

На гостевой системе - настраиваем статический ip адрес 192.168.1.199.

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

 ,

James_Holden
()

[Решено] Доступность витруалки на qemu по ssh

Форум — Admin

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

Имеется мой ПК с ip 10.96.0.216 и виртуалка qemu нанём.

Запускаю виртуалку такой командой

qemu-system-arm -M virt -m 1024 \
  -kernel /mnt/c5cf5a5b-1b9e-45ef-9ae0-401558bd94d2/VM/debianArm32hf/vmlinuz-5.10.0-12-armmp-lpae \
  -initrd /mnt/c5cf5a5b-1b9e-45ef-9ae0-401558bd94d2/VM/debianArm32hf/initrd.img-5.10.0-12-armmp-lpae \
  -append 'root=/dev/vda2' \
  -drive if=none,file=/mnt/c5cf5a5b-1b9e-45ef-9ae0-401558bd94d2/VM/debianArm32hf/arm32hf_hda.qcow2,format=qcow2,id=hd \
  -device virtio-blk-device,drive=hd \
  -netdev user,id=mynet,net=192.168.0.1/24,dhcpstart=192.168.0.100 \
  -device virtio-net-device,netdev=mynet \
  -nographic
Из виртуалки есть доступ к инету, но по ssh она не доступна.

При этом пинг до хостаидёт нормально.

Что мне сделать чтобы достучаться до виртуалки с хоста по ssh?

 ,

seijuurou
()

Как монтировать initrd.img ?

Форум — Admin

Вот такая проблема:

# mount -o loop initrd.img-4.18.0-16-generic /mnt
mount: /mnt: wrong fs type, bad option, bad superblock on /dev/loop0, missing codepage or helper program, or other error.
#

 , , , ,

superuser
()

Монтирование разделов без ввода пароля

Форум — General

У меня автомонтирование NTFS-разделов не включено, но каждый раз, когда я подключаю раздел (в GNOME), требуется ввод пароля root. Я так понимаю, что для того, чтобы отменить ввод пароля для данной операции, нужно добавить пользователя в определённую группу, вопрос: в какую?

eugeno
()

Intel-media-driver и libva-intel-driver

Форум — General

Приветствую. Перейду сразу к сути: может кто-нибудь, пожалуйста, мне объяснить различия двух реализаций VA-API для интела? Есть машина с графикой HD Graphics (Kaby Lake) - обе реализации работают, но зачем-то же интел создал и поддерживает обе. Перелопатил весь гугл, но вразумительного ничего не нашёл (может плохо искал).

 ,

O57567567
()

Дух уюта (с)

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

Вот, решил немного покрасноглазить установить Void Linux на своей домашней, видавшей виды и некоторое дерьмо машинке...

( читать дальше... )

 , ,

Gonzo
()

Xfce, Voidlinux: ни в одном терминале не работает ввод русских букв

Форум — Desktop

Здравствуйте. Установил void, поюзал, столкнулся с такой проблемой.

Три дня все было нормально, на четвёртый перестали вводиться русские буквы в (тогда еще голую) консоль.

Ни в bash, ни в dash, ни в zsh не работал ввод русских букв – zsh заменял каждую букву этим – <ffffff>, bash не только писал вместо первой русской буквы двоеточие, но и затирал все, что перед этой буквой было, включая приглашение. dash отвечал вопросиками.
И что самое хорошее, если одну и ту же программу запустить из-под разных шеллов, то и программа будет воспринимать русские буквы по-разному. Установил mksh – вдруг заработает. Заработало.

Теперь установил иксы, lightdm, xfce. Захожу в терминал – вместо русских букв ничего не вводится. Ну то есть вообще ничего, как если бы я не трогал клавиатуру. И сейчас это от шелла не зависит. В других программах все вводится.
Ну, я подумал, что это глюк xfce-terminal. Установил gnome-terminal, mate-terminal, xterm, urxvt, konsole. Та же самая ситуация во всех терминалах.

upd: Это были проблемы с локалью. Установил везде en_US.UTF-8 и все заработало.

 , ,

tongubin
()

Отключаем PulseAudio в Linux

Форум — Linux-hardware

Здравствуйте! Сегодня мы узнаем, как отключить PulseAudio в Linux! Но «для чего?» не узнаем - вы должны знать ответ сами!

Как это сделать?

mkdir ~/.config/pulse
echo "autospawn = no" >> ~/.config/pulse/client.conf
killall pulseaudio

Вообще, тут должен был быть скучный список «если такой-то дистр меньше N-й версии, то ~/.pulse, а если больше, то ~/.config/pulse». Или хитрый скрипт, который проверяет «if ~/.pulse exist, then echo tuda, else echo v ~/.config/pulse». Но сделаем просто:

mkdir ~/.config/pulse
mkdir ~/.pulse
echo "autospawn = no" >> ~/.config/pulse/client.conf
echo "autospawn = no" >> ~/.pulse/client.conf
killall pulseaudio

Вот! Чтобы наверняка.

Почему не работает просто killall pulseaudio?

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

Почему не удалить пульсу?

Многие программы слинкованы с /usr/lib/libpulse.so.0 Upd: Оказывается libpulse и системная служба PulseAudio - в разных пакетах! Значит, удалять всё-таки можно.

То есть, отключаем пульсу - и всё, звук идёт через ALSA?

Да. Попробуйте сами.

Хотя не совсем. В некоторых дистрибутивах Linux не исчезает ALSA-устройство «pulse» - звук, соответственно, идёт в /dev/null. У меня в Debian и Ubuntu ALSA-устройство «pulse» пропадает при отключении пульсы. А в openSUSE пришлось также удалить/переименовать/закомментировать конфигурационный файл /etc/asound-pulse.conf.

Это устройство - довольно хитрый «костыль»: те программы, которые поддерживают PulseAudio, выводят звук напрямую в него. А те, которые поддерживают только ALSA, выводят звук в ALSA-устройство default, ведущее в «pulse», которое ведёт в PulseAudio. А потом снова в ALSA, и далее в дом, который построил Джек

Какие проблемы могут быть?

  1. Исчез значок в системном трее

    У меня в KDE такого не было, но было в MATE. В MATE можно установить программку Volti. В репозиториях она собрана с GTK2, а в GIT доступна начальная поддержка GTK3

  2. Перестали работать мультимедийные клавиши клавиатуры

    У меня такого не было, но другие люди жаловались. Если у вас не работает, включите в настройках Volti. Работает либо через HAL, которого в современном линуксе уже нет (но есть в CentOS 6), либо через Xlib (который в современном линуксе ещё есть). Также советую выставить в настройках Volti недефолтный микшер (например этот), потому что дефолтный неудобен.

  3. Исчез звук в Skype 4.3

    Запускайте через apulse (уже в репозиториях!)

  4. Исчез звук в приложениях, использующих SDL (99% игр)

    У меня в KDE такого не было, но было в MATE. Проверить можно этой игрой. Решается так:

    echo "drivers = alsa" > ~/.alsoftrc

    Или:

    export SDL_AUDIODRIVER=alsa
    ./run_game.sh
  5. Как заставить работать Bluetooth-гарнитуру?

    А тут вот что произошло. BlueZ 4 поддерживал ALSA, а BlueZ 5 - перестал. Разработчики сказали «а мы не обязаны! Вот посмотрите: разработчики PulseAudio написали плагин сами. Почему плагин для ALSA должны писать мы?», и удалили поддержку ALSA.

    Bluez-alsa пока доступен не во всех репозиториях, поэтому даю ссылку на исходники. Инструкция по настройке.

 , ,

ZenitharChampion
()

Linux Ate My RAM

Форум — Talks

В соседнем треде один товарищ высказал следующую мысль:

Линукс здесь при том, что если компы подорожают (ещё раза в три-четыре), то линукс отыграет ещё пару процентов пользователей на десктопе. Ибо, в отличие от винды, его можно на всяких Raspberry Pi запускать, а они дёшевы.

И вот я что хочу по этому поводу сказать. Я скопировал из официального туториала GTK hello world с пустым окном:

$ cat example-1.c 
#include <gtk/gtk.h>

static void
activate (GtkApplication *app, gpointer user_data)
{
  GtkWidget *window;

  window = gtk_application_window_new (app);
  gtk_window_set_title (GTK_WINDOW (window), "My Window");
  gtk_window_set_default_size (GTK_WINDOW (window), 200, 200);
  gtk_widget_show (window);
}

int
main (int argc, char **argv)
{
  GtkApplication *app;
  int status;

  app = gtk_application_new ("org.gtk.example", G_APPLICATION_FLAGS_NONE);
  g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
  status = g_application_run (G_APPLICATION (app), argc, argv);
  g_object_unref (app);

  return status;
}

Поскольку код одинаковый для GTK 3 и 4, я скомпилировал его для обоих библиотек:

$ gcc $( pkg-config --cflags gtk4 ) -o example-1_gtk4 example-1.c $( pkg-config --libs gtk4 )

$ gcc $( pkg-config --cflags gtk+-3.0 ) -o example-1_gtk3 example-1.c $( pkg-config --libs gtk+-3.0 )

И запустил оба файла:

GTK3: запускается почти мгновенно, RAM – 36Mb (что тоже не мало).

GTK4: запускается у меня около 1.5 секунды, RAM – 147Mb.

Нет, это не ошибка, не 47, а именно 147Mb. Пустое окно. Вы можете проверить это сами. Я бы даже смирился с таким потреблением памяти, если бы оно запускалось мгновенно. Это не говоря уже о том, что GTK3 считается тормозным раможором по сравнению с GTK2.

Где там, говорите, вам Линукс запускается? На каком-каком железе?

UPD: Для GTK2

$ cat simple.c
#include <gtk/gtk.h>

int
main (int argc, char *argv[])
{

  GtkWidget *window;

  gtk_init (&argc, &argv);

  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  gtk_widget_show (window);

  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);

  gtk_main ();

  return 0;
}

$ gcc -o simple simple.c $(pkg-config --libs --cflags gtk+-2.0)

GTK2: запускается мгновенно, RAM – 14Mb.

 greta plumberg,

Im_not_a_robot
()

Объясните про Android NDK для дебилоидов.

Форум — Development

Утерждения, которые я считаю истинными, но не уверен в их истинности. Просьба знатокам пофиксить. Вопросы.

1) C++ код для NDK будет скомпилирован в машинные инструкции конкретного камня.

2) Если C++ компилируется в JVM-код, то нафига бы тогда был нужен C++?

3) Мобильных процессоров много, значит приложение должно содержать 50 вариантов машинного кода для одного и того же C++ кода для 50 разных камней, на которых твоё приложение потенциально могут запустить.

3.1) Среда разработки NDK содержит 50 компиляторов под 50 камней и рожает 50 сборок твоего кода под все камни, на которые нацелена твоя разработка.

4) Обычно C++ применяют для реализации каких-то .so-шек, реализующих тяжёлые вычисления, а само приложение проще написать на Java. Оттуда C++-код подключается как java-модули и используется путём создания экземпляров классов определённого типа, только эти классы написаны на C++ и лежат в .so-шках.

5) Целиком приложения на C++ писать смысла мало и никто не пишет void main(...) под NDK.

kiverattes
()

Пожалуйста, подскажите, на каком конфиге QEMU можно запустить установку Debian ARM?

Форум — General

https://saimei.ftp.acc.umu.se/debian-cd/current/arm64/iso-cd/debian-10.0.0-ar...

Чтобы поставилось с GRUB2 for ARM.

Интересует машина и проц. или целиком строка запуска QEMU.

 ,

simoshina
()

Прошивка Андройд через Linux

Форум — Desktop

Добрый день.

Проблема в том что комп не видит телефонов для прошивки, как файловое хранилище работает отлично.

Полностью что я уже делал прописал тут https://4pda.ru/forum/index.php?showtopic=469340&view=findpost&p=91690571

Еще в данный момент пробую и другие варианты, но пока ничего не работает

ОС Magos Linux на базе ROSA

 ,

BuxarNET
()

Boost скрипт для Thinkpad X230. Готово. Забирайте.

Форум — Linux-hardware

После того как снес с него винду ужасно не хватало кнопочки «турбо», которая присутствовала в Lenovo Power Manager. Накостылял свой скрипт. При запуске смотрит какой говернор используется в данный момент. Если ondemand, то включаем вентилятор на полную, переключаем говернор в userspace и выкручиваем частоты на максимум. Если userspace, то частоты в минимум, говернор в ondemand, вентилятор в auto. Использую его на Ubuntu 12.04. В принципе без проблем затачивается под любой ноут. Забирайте, если кому интересно. Для включения возможности ручного управления вентилятором в синкпадах делаем так:

To enable fan control, the module parameter fan_control=1 must be given to thinkpad-acpi. For example, in Ubuntu 8.04 (Hardy Heron), add the following to /etc/modprobe.d/options: options thinkpad_acpi fan_control=1

Если у вас другая модель синкпада, то подстройте скорость вентилятора в соответствии с вот этими рекомендациями. Сам скрипт:

#!/bin/bash

# Checking root user
if [ "$(id -u)" != "0" ]; then
   echo "This script must be run as root" 1>&2
   exit 1
fi
# Checking current state
if [ `cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor` = 'userspace' ]
then
	# Lowest speed and ondemand governor for all cores
	for CPU in /sys/devices/system/cpu/*/cpufreq/
	do
  	  echo `cat ${CPU}cpuinfo_min_freq` | tee ${CPU}scaling_setspeed
			echo ondemand | tee ${CPU}scaling_governor
	done
	# Automatic fan control
	echo level auto | tee /proc/acpi/ibm/fan 
else
	# Otherwise full fan speed
	echo level full-speed | tee /proc/acpi/ibm/fan
	# And full speed for all cores
	for CPU in /sys/devices/system/cpu/*/cpufreq/
	do
			echo userspace | tee ${CPU}scaling_governor
  	  echo `cat ${CPU}cpuinfo_max_freq` | tee ${CPU}scaling_setspeed
	done
fi
TEMP=$((`cat /sys/class/thermal/thermal_zone0/temp`/1000))
echo "CPU Temp: ${TEMP}C"

# Developed by gear. You can contact me by misty.g3ar@gmail.com

 , , , ,

gear
()

Запись звонков в Андроид-10

Форум — Mobile

И все-таки, Самсунг А-50 (А505FM) какая программа лучше для записи звонков, перепробовал штук 10-ть, не работают, от слова совсем!

 ,

piwww
()

Софтварный/веб эмулятор электрической цепи.

Форум — Talks

Привет. В общем ударила мне моча в голову на старости лет интересоваться электроникой и электричеством безо всяких допусков. Цель себе ставлю научиться ремонтировать всяческие девайсы, а вот к «творчеству» пока душа не лежит, то есть своё радиво если и спаяю, то по готовой схеме. В книжках часто приводятся схемы с расчётом на то, чтобы их собрать и попробовать в реале, да только вот нет у меня времени на то чтобы делать их хардварно (жизни нет не только за мкадом, но и после работы). А поглядеть как оно на деле, а не просто почитать описание, все же интересно, ну в частности транзисторы. Так вот, подскажите какой нибудь софтварный эмулятор электрической цепи, чтобы можно было нарисовать схему, указать на ней параметры всех устройств. Например тут такое то сопротивление, там такая то ёмкость, такая то индуктивность, а ежели есть виртуальные аналоги реально существующих сложных устройств типа микросхем, так вообще шикарно будет. Ну и чтобы можно было потом во включенной схеме, виртуальным же мультиметром или осциллографом что нибудь померить. Я не знаю как такие проги называются, но точно знаю, что они есть. Хотелось бы чтобы была бесплатная, более менее простой интерфейс (то есть не уровень КАД для професионала электронщика - мне до этого как до Китая раком) ну и понятное дело чтоб под линупс, то есть либо нативная, либо веб.

 , ,

justin_case
()

как влинковать initramfs в файл-образ ядра?

Форум — Linux-install

The old initrd was always a separate file, while the initramfs archive is linked into the linux kernel image.

Чего я хочу добиться:
Чтобы в GRUB было две строчки: в первой строке (linux) грузилось бы ядро и неизменяемый initramfs, а во второй строчке (initrd) грузились бы настройки (всякие там mdadm.conf с конкретными UUID массивов конкретной машины).

 , ,

Einstok_Fair
()

как ускорить линукс ядро даже в ущерб безопасности для локалхоста игоря

Форум — Admin

настраивать ванильное ядро и cmdline уже умею
локалхост без интернета
и как вырубить всякие защищалки в компиляции софта и ядра в gentoo
и прочее
скидывайте все сюда даже бесполезное

 , , ,

nanosecond
()

Intel выпилил S3 (suspend-to-ram) в 11 поколении

Форум — Desktop

Привет, ЛОР!
Решил рассказать о своей истории узбека сношения с ноутбками на Intel 11 поколения.

Конкретнее — сегодня поговорим о засыпании (suspend, suspend-to-ram, S3).
Если вкратце — засыпания в ноутбуках больше не будет. Вообще. Совсем.

Ссылка: https://www.reddit.com/r/System76/comments/k7xrtz/ill_have_whatever_intel_was...

Вместо Ъ-засыпания S3 (с обесточиванием всей периферии, кроме оперативной памяти) — теперь некий S0iX.
Это значит, что процессор теперь не будет обесточиваться и будет работать всегда.
Кроме очевидных минусов вроде уменьшения времени автономной работы в режиме засыпания, есть ещё и неочевидные — вроде тех, что из-за того, что CPU (и, вроде как, некоторая периферия) будет включена всегда — за нами будут следить ещё лучше и тщательнее.

Ну и, конечно же, в Linux ближайшее время это будет поддерживаться через жопу.
Например, на последнем лаптопе от Fujitsu (Lifebook U7311) засыпание не работает вовсе, потому что BIOS лаптопа бодро рапортует о поддержке S3, которое CPU, естественно, не поддерживает, с предсказуемым результатом.

А ещё сегодня мы поговорим о том, чем заменить S3 (точнее, об альтернативе б-мерзкому S0iX, накостыленной шаловливыми ручонками линуксоида).
fakesleep.sh — скрипт, который делает примерно то же самое — «усыпляет» пользовательские процессы (kill -STOP), усыпляет USB-девайсы, отключает указанные ядра процессора и выключает дисплей (и, конечно же, «вертает всё взад» при «пробуждении»).
Использовать его очень просто: нам понадобится acpid и пара нехитрых скриптов:

/etc/acpi/events/laptop-lid

event=button/lid.*
action=/etc/acpi/laptop-lid.sh

/etc/acpi/laptop-lid.sh
#!/bin/sh

FAKESLEEP=/home/ann/.bin/fakesleep
ACTION=$(grep -q closed /proc/acpi/button/lid/LID/state && echo sleep || echo resume)

$FAKESLEEP $ACTION

Естественно, нужно подправить несколько переменных в скрипте и путь до этого скрипта в laptop-lid.sh.

Как результат — ноутбук при закрытой крышке не засыпает полностью (как и в S0iX), но при этом мы можем контролировать процессы, которые мы останавливаем/не останавливаем, при этом время автономной работы в режиме «спячки» такое же (фиговое, но терпимое):
ann.: ~ ➤  acpi                                                                                                                                                                                                                                      
Battery 0: Discharging, 86%, 25:17:22 remaining

(проверено по SSH, которое остаётся доступным как раз благодаря тому, что мы контролируем, какие процессы мы усыпляем, а какие нет)

Просьба всем использующим 11 поколение Intel и сочувствующим протестировать это поделие и дать советы по улучшению/ухудшению этого всего хозяйства.
Естественно, это всё юзабельно не только на 11 поколении, а на любом ноутбуке.

sudo cast i-rinat (на всякий случай)

 , ,

annerleen
()

Сетевой движок на Си. Вычитывание данных из сокета в 4кб буферы.

Форум — Development

Хотелось построить сетевую подсистему, написанную на крестах, на такой идее: разные протоколы/модули обмениваются «цепочками буферов» (блохчейнами ога), в том числе и сетевая подсистема. Например, если кто-то хочет отправить по вебсокету 12 кб данных юзеру, то этот кто-то просит у центрального менеджера ресурсов 3 блока, наполняет их данными, чейнит их в одну цепь и кидает поинтер на первый блок в «сеть». Epoll-driven «сеть» отправит все данные (когда сможет) из этих блоков последовательно в сокет и отдаст «менеджеру ресурсов» блоки обратно по мере отправки. Блоки переюзываются всеми компонентами, потребляются по мере нужды, а новые коннекты не жрут память только по факту коннекта, тяжелее заддосить, всё красиво. Короче, общая идея в том, что есть некий slab-аллокатор блоков, владеющий ими и выдающий в аренду и блоки, протекая через все подсистемы и задерживаясь в сетевом модуле, если сразу запсать в сокет не удалось (больше чем TCP window или другой прикол), и в конце возвращаются в блокопрародитель обратно. Памяти при таком подходе в целом в любой момент сожрано меньше, чем если бы при наших 5к соединений каждый коннекшен бы держал собственный буфер на пару метров.

Одно но: если такая моя «сеть» решила вычитать из сокета мегабайт, то она сделает 1024/4 = 256 сисколлов read(), чтобы выжрать данные в цепь 4кб-блоков вместо одного сисколла, если бы у неё был буфер на 1 метр. На отправке те же приколы - рост числа сисколлов.

Да, есть оптимизации - можно юзать блоки разных размеров в разных местах, можно смотреть на Content-Length в случае протокола HTTP и готовиться к мегабайту оптимальнее заранее и т.п.

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

Про recvmmsg/sendmmsg и io_uring в принципе в курсе.

UPDATE

«4 кб буферы» отошли в прошлое, текущее понимание затеи как «цепочка буферов разной фиксированной длины», например HTTP-ответ юзеру может быть цепочкой из буфера 4КБ (на хидеры) и за ним буфер в мегабайт под body.

 

kilokolyan
()

power bank

Форум — Talks

Какие power bank правильно брать в 2021? Лучше wireless, но необязательно. Максимально быстрая зарядка. 10K mAh и выше. Опционально - крепкие и лёгкие. Какие бранды нельзя брать вообще, а какие рулят?
Конечно же, телефон на Андроиде, стал бы я иначе спрашивать на ЛОРе!

 powerbanks

svu
()