Code Monkey home page Code Monkey logo

nemu's People

Contributors

0x501d avatar arrowd avatar asakovets avatar dm9pzcaq avatar freddii avatar grafin avatar lastochka42 avatar ligurio avatar maksval avatar maximkot avatar mkwork avatar rofl0r avatar smartfinn avatar txgk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nemu's Issues

Improve VNC port assignment

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.

Option -s|--start bring down vm to "stopped" state

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

Fix Cmake uninstall target not removing empty data directories

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

Support for running UEFI VM's

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

Убрать compile-time отладку

Original report by 0x501D (Bitbucket: [Pavel Balaev](https://bitbucket.org/Pavel Balaev), ).


Нужно выпилить флаг NM_DEBUG (не забыть пильнуть его из ебилдов) и запилить опцию -d --debug

Снести все ассерты (заменить на нормальный код проверок)

И добавить логирование в журнал а не в файлы.

TAP interface name intersection

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 Ekaterina Budnikova (Bitbucket: Rootven, GitHub: Rootven).


Воспроизводится в оконном менеджере Awesome:
Если убить процесс nemu через Shift+modkey+C (функция c:kill() в .config/awesome/rc.lua), то вместе с программой умирает и запущенная виртуалка и навсегда зависает в статусе running, но больше не запускается, пока не будет вручную удалён соответствующий pid файл.

Add template-based machine creation

Based on some template (json) we should be able to create new VMs in nEMU automatically (from cli).

  1. Define template structure
  2. Add flag
  3. Add logic
  4. ???
  5. PROFIT

Изменить имя клона по умолчанию

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, перечислять все - утомительно.

Fix CMakeLists.txt for packaging

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...)

Export/Import VM between hosts with nEMU

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.

Use alternative names for network interfaces

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

Add VM/veth rename feature

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.

Reconnect to D-Bus in daemon mode.

If the connection dies for some reason between D-Bus calls we need
to properly reconnect because the current connection is not usable
anymore.

Please enable discard support

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

Please add support for user networking

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

Create linter configuration

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.

Source compilation problems

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.