nemutui / nemu Goto Github PK
View Code? Open in Web Editor NEWNcurses UI for QEMU
License: BSD 2-Clause "Simplified" License
Ncurses UI for QEMU
License: BSD 2-Clause "Simplified" License
Original report by 0x501D (Bitbucket: [Pavel Balaev](https://bitbucket.org/Pavel Balaev), ).
Make ability to import OVA images.
Original report by Boris Stepanenko (Bitbucket: GrafIn1992, ).
Original report by 0x501D (Bitbucket: [Pavel Balaev](https://bitbucket.org/Pavel Balaev), ).
For now VNC listen ports are assigned on VM creation by increment last used VNC port.
Last port is taken from database.
After 65k -5900 guest installation pool of VNC ports will be vanished.
Also user cannot change VNC port if it intersects with other program.
subj
I faced with weird behavior when I re-enter nemu --start VM
command the VM state in nemu changed to 'stopped', but the VM keeps running as expected:
master@vserver:~$ nemu --version
nEMU v2.4.0
+ spice
+ vnc-client
+ ovf
master@vserver:~$ nemu --start openwrt
master@vserver:~$ nemu -l
openwrt - running
master@vserver:~$ nemu --start openwrt
master@vserver:~$ nemu -l
openwrt - stopped
master@vserver:~$ nemu -l
openwrt - stopped
master@vserver:~$ ping openwrt
PING openwrt (192.168.8.2) 56(84) bytes of data.
64 bytes from openwrt (192.168.8.2): icmp_seq=1 ttl=64 time=0.686 ms
64 bytes from openwrt (192.168.8.2): icmp_seq=2 ttl=64 time=0.869 ms
^C
--- openwrt ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 3ms
rtt min/avg/max/mdev = 0.686/0.777/0.869/0.095 ms
After running make uninstall it only deletes files. Empty directories persist:
# make uninstall
Scanning dependencies of target uninstall
-- Uninstalling /usr/local/bin/nemu
-- Uninstalling /usr/local/share/nemu/templates/config/nemu.cfg.sample
...
-- Uninstalling /usr/local/share/locale/ru/LC_MESSAGES/nemu.mo
# tree /usr/local/share/nemu
/usr/local/share/nemu
├── qemu
│ ├── bin
│ ├── include
│ ├── libexec
│ └── share
│ ├── applications
│ ├── icons
│ │ └── hicolor
│ │ ├── 128x128
│ │ │ └── apps
│ │ ├── 16x16
│ │ │ └── apps
│ │ ├── 24x24
│ │ │ └── apps
│ │ ├── 256x256
│ │ │ └── apps
│ │ ├── 32x32
│ │ │ └── apps
│ │ ├── 48x48
│ │ │ └── apps
│ │ ├── 512x512
│ │ │ └── apps
│ │ ├── 64x64
│ │ │ └── apps
│ │ └── scalable
│ │ └── apps
│ └── qemu
│ ├── firmware
│ ├── keymaps
│ └── vhost-user
├── scripts
└── templates
└── config
33 directories, 0 files
We should migrate all open issues from https://bitbucket.org/PascalRD/nemu/issues?status=new&status=open to this repository.
Can this software run on the arrch64 hardware architecture?
I'm not sure if this already implemented, but is it possible to launch a virtual machine with UEFI instead of BIOS? if not, would you consider a good idea putting it into the project?
It could be something like the run_archiso
script created by archiso
package which gives you the option to pass the -u
flag to set the boot type to UEFI, but added as a toggleable option on the TUI
EDIT: Under the hood, basically what it does is to get the appropriate OVMF.fd
(32 or 64 bits) file from the edk2-ovmf
package and pass it to qemu
through the --bios
flag
subj
Original report by 0x501D (Bitbucket: [Pavel Balaev](https://bitbucket.org/Pavel Balaev), ).
It was broken in 1.3.1.
Need to fix start/end indexes of list on delete/add operations.
Original report by 0x501D (Bitbucket: [Pavel Balaev](https://bitbucket.org/Pavel Balaev), ).
Subj. Hotkey - "/".
Original report by 0x501D (Bitbucket: [Pavel Balaev](https://bitbucket.org/Pavel Balaev), ).
При импорте на ФС в nm_copy_file_sendfile перед_копированием не проверяется, - а хватит ли вообще места? В результате приложение падает, сожрав всё доступное пространство.
Should be used with flags -S and --stop, will stop vm if it's running.
Original report by 0x501D (Bitbucket: [Pavel Balaev](https://bitbucket.org/Pavel Balaev), ).
Нужно выпилить флаг NM_DEBUG (не забыть пильнуть его из ебилдов) и запилить опцию -d --debug
Снести все ассерты (заменить на нормальный код проверок)
И добавить логирование в журнал а не в файлы.
Original report by 0x501D (Bitbucket: [Pavel Balaev](https://bitbucket.org/Pavel Balaev), ).
from nm_add_vm.c:396
#!c
nm_str_format(&if_name, "%s_eth%zu", vm->name.data, n);
if (if_name.len > 15) /* Linux tap iface max name len */
{
nm_str_trunc(&if_name, 14);
nm_str_format(&if_name, "%zu", n);
}
Linux TAP interface name has maximum length 15 characters.
So if VM name is too long and we have multiply VMs with same prefix collision may occures.
Original report by 0x501D (Bitbucket: [Pavel Balaev](https://bitbucket.org/Pavel Balaev), ).
subj. А то сейчас там …….
Make exporting non-linear. Big maps now look awful and unreadable.
Hi,
my terminal's cursor is a blinking underscore (_), which is hardly readable inside the nemu config UI.
Can you somehow work around that in curses, e.g. force another cursor there?
Would be great!
Kind regards,
Nils
See commit 0f0d83a456d0a60be9031a19311bfcb0f9519afb in github QEMU repo (https://github.com/qemu/qemu).
todo:
Should be configurable via CMake flag and via .nemu.cfg
Original report by Ekaterina Budnikova (Bitbucket: Rootven, GitHub: Rootven).
Воспроизводится в оконном менеджере Awesome:
Если убить процесс nemu через Shift+modkey+C (функция c:kill() в .config/awesome/rc.lua), то вместе с программой умирает и запущенная виртуалка и навсегда зависает в статусе running, но больше не запускается, пока не будет вручную удалён соответствующий pid файл.
Original report by Ekaterina Budnikova (Bitbucket: Rootven, GitHub: Rootven).
При попытке запустить машину, в имени которой есть пробел:
cannot remove ‘/home/rootven/nemu_vm/devuan’: Is a directory
Удалить виртуалку, в имени которой есть пробел, можно.
Original report by 0x501D (Bitbucket: [Pavel Balaev](https://bitbucket.org/Pavel Balaev), ).
nm_add_vm_to_fs падаем при попытке создать уже существующую директорию. А надо бы проверять до того, как пытаться что-то создать
Based on some template (json) we should be able to create new VMs in nEMU automatically (from cli).
Original report by Boris Stepanenko (Bitbucket: GrafIn1992, ).
Now nemu leaves vm interface which is connected to veth when deleting vm (you have to manually delete unused tap interfaces before deleting vm).
nemu should automatically delete interfaces on vm delete
SUBJ
Original report by Ekaterina Budnikova (Bitbucket: Rootven, GitHub: Rootven).
При клонировании виртуалки сейчас по умолчанию в качестве имени клона предлагается использовать текущее имя виртуалки плюс нижнее подчёркивание. При работе в X-сессии нижнего подчёркивания не видно, поэтому после создания клона нижнее подчёркивание возникает из ниоткуда.
Если запустить клонирование в консоли без X-сервера, то нижнее подчёркивание видно.
Лучше для имени клона брать текущее имя машины и добавлять к нему "-clone" или что-то аналогичное.
Original report by 0x501D (Bitbucket: [Pavel Balaev](https://bitbucket.org/Pavel Balaev), ).
Было бы не плохо во время первичного генерирования конфига просматривать /usr/bin и подставлять доступные цели, в зависимости от найденного. У юзера их может быть около 64, перечислять все - утомительно.
nEMU must check current database version and exit if it not actual.
We should update existing VMs with current QEMU default machine type. When adding new VM default machine type from QEMU should be inserted.
Hi,
I tried to package nemu, but I had problems doing so. Someone indicated that this happens due to your CMakeLists.txt here: NixOS/nixpkgs#82004
Would be nice if you could fix it (whatever that means, I don't know how to write CMakeLists.txt files...)
Maybe exporting OVA will be enough, but then we will not be able to migrate network structure and some nEMU specific configs. Or we can add export/import tar archive with json configuration and VMs disks.
Original report by Sergey E. (Bitbucket: SmartFinn, GitHub: SmartFinn).
Hi!
I have created a package for Debian and Ubuntu. I will be appreciated if you added a link to the packages to README or wiki.
Source: https://build.opensuse.org/package/show/home:SmartFinn:nEMU/nemu
Packages: https://software.opensuse.org/download.html?project=home:SmartFinn:nEMU&package=nemu
Also, I can make packages for Fedora, openSUSE, CentOS or Arch (maybe) if someone asks me.
Use alternative names for network interfaces if name length > 16.
For now we need to use mac addr in interface name if size > 16 bytes.
Example: vm-deadbeef0224
With alt iface name we can add full name.
Example:
$ ip l sh dev vm-deadbeef0224
28: vm-deadbeef0224: <BROADCAST,MULTICAST,ALLMULTI,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 500
link/ether de:ad:be:ef:02:24 brd ff:ff:ff:ff:ff:ff
altname someotherveryveryveryverylongnamevm-eth0
Linux kernel >= 5.5
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7a56493f0620
Please add the ability to take VM snapshots from the command line to make backup easier.
Thanks!
Would be cool if we were able to rename VM and veth interfaces after they were created. It's possible to do now via manual sql db and linux network manipulation.
If the connection dies for some reason between D-Bus calls we need
to properly reconnect because the current connection is not usable
anymore.
Original report by 0x501D (Bitbucket: [Pavel Balaev](https://bitbucket.org/Pavel Balaev), ).
Incorrect file path if VM was imported from OVA.
exec_error: qemu-img: Could not open '/home/void/tmp/vm/vrf0/vrf0_a.img': Could not open '/home/void/tmp/vm/vrf0/vrf0_a.img': No such file or directory
Fix: get drive name from DB.
Original report by Boris Stepanenko (Bitbucket: GrafIn1992, ).
Russian wiki page needs to be updated.
English wiki page should be made.
Hi,
adding discard=on to the device options of qemu brings discard/trim support. When fstrim is called inside the VM the host get's notified about freed disk space and therefor images can actually get smaller again. This works for qcow2 images, for other types I don't know, but nemu uses qcow2 anyway.
There is a a security implication with discard and LUKS, but the guest has to trust the VM host anyways.
So: Please add discard support!
Kind regards,
Nils
Hi,
I do prefer user networking as I get a NAT'ed network with a DHCP setup working out of the box.
Currently I have to disable networking in nemu and add flags manually like
-device virtio-net,netdev=VM1 -netdev user,id=VM1
and it would be great to enable it directly through a checkbox in nemu, so I'd like to request that feature.
Kind regards,
Nils
subj
Linux kernel 5.4 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2d1d25d0a224
We should implement it as an option (alternative to Plan9 sharing)
We should agree upon code-style and write linter configuration for it.
For now the proposition is to stick with linux kernel code style with 4 spaces instead of tabs.
Original report by 0x501D (Bitbucket: [Pavel Balaev](https://bitbucket.org/Pavel Balaev), ).
For now only main, vm and local network windows can change window size correctly.
Must fix it.
When I tried to compile the source code, some undefined fields or functions appeared, and I didn't find the specific reason.
example:
nm_vm_snapshot.c:(.text+0x12b): undefined reference to new_field' nm_vm_snapshot.c:(.text+0x150): undefined reference to
new_field'
nm_vm_snapshot.c:(.text+0x173): undefined reference to field_opts_off' nm_vm_snapshot.c:(.text+0x17a): undefined reference to
TYPE_ENUM'
nm_vm_snapshot.c:(.text+0x194): undefined reference to set_field_type' nm_vm_snapshot.c:(.text+0x1a9): undefined reference to
set_field_buffer'
Why does it appear, for example “TYPE_ENUM” has no fields defined
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.