unikraft / pykraft

Python library for configuring and building unikernels
Other
177 stars 42 forks source link

kraft list -n not showing all the options #19

Closed dpadula closed 4 years ago

dpadula commented 4 years ago

Describe the bug I've cloned an installed kraft in the way showed here: https://github.com/unikraft/kraft with pip3

but when I run

kraft list -n

it is not showing all the options

To Reproduce In this video: https://ftp.osuosl.org/pub/fosdem/2020/K.4.601/uk_unicraft.mp4 more ARCHITECTURES and PLATFORMS are showed (I'm interested in linuxu)

Here is the list in my VM root@node0:~/.unikraft# kraft list CORE RELEASE LAST CHECKED unikraft 0.4 3 hours ago

PLATFORMS RELEASE LAST CHECKED aws 0.4 3 hours ago digitalocean 0.4 3 hours ago firecracker master 3 hours ago gcp 0.4 3 hours ago solo5 0.4 3 hours ago

LIBRARIES RELEASE LAST CHECKED ruby 0.4 3 hours ago axtls 0.4 3 hours ago pthreadpool 0.4 3 hours ago lwip 0.4 3 hours ago arm-intrinsics master 3 hours ago redis 0.4 3 hours ago pybind11 staging 3 hours ago micropython 0.4 3 hours ago libgo 0.4 3 hours ago zlib 0.4 3 hours ago newlib 0.4 3 hours ago gcc 0.4 3 hours ago musl 0.4 3 hours ago dnnl 0.4 3 hours ago libcxx 0.4 3 hours ago flatbuffers staging 3 hours ago lvgl 0.4 3 hours ago openssl 0.4 3 hours ago psimd 0.4 3 hours ago boost 0.4 3 hours ago bzip2 0.4 3 hours ago mbedtls master 3 hours ago nnpack 0.4 3 hours ago pthread-embedded 0.4 3 hours ago python3 0.4 3 hours ago protobuf 0.4 3 hours ago wamr 0.4 3 hours ago lua 0.4 3 hours ago libelf staging 3 hours ago farmhash staging 3 hours ago duktape 0.4 3 hours ago compiler-rt 0.4 3 hours ago eigen 0.4 3 hours ago libuv staging 3 hours ago http-parser 0.4 3 hours ago googlebenchmark 0.4 3 hours ago libcxxabi 0.4 3 hours ago libuuid 0.4 3 hours ago click 0.4 3 hours ago gemmlowp staging 3 hours ago libfxdiv 0.4 3 hours ago libucontext 0.4 3 hours ago pcre 0.4 3 hours ago fft2d staging 3 hours ago intx 0.4 3 hours ago libfp16 0.4 3 hours ago googletest 0.4 3 hours ago c-ares 0.4 3 hours ago zydis staging 3 hours ago nginx 0.4 3 hours ago lzma master 3 hours ago libunwind 0.4 3 hours ago open62541 0.4 3 hours ago intel-intrinsics 0.4 3 hours ago sqlite 0.4 3 hours ago

APPLICATIONS RELEASE LAST CHECKED helloworld-cpp 0.4 3 hours ago helloworld 0.4 3 hours ago redis 0.4 3 hours ago micropython 0.4 3 hours ago httpreply 0.4 3 hours ago helloworld-go 0.4 3 hours ago python3 0.4 3 hours ago nginx 0.4 3 hours ago duktape 0.4 3 hours ago lua 0.4 3 hours ago click master 3 hours ago sqlite 0.4 3 hours ago wamr 0.4 3 hours ago ruby 0.4 3 hours ago

Expected behavior In the video (minute 17:55) show ARCHITECTURES are: x86_64, arm64 and arm and PLATFORMS are: linuxu xen, and many more

In my case, I'm not have these options

Desktop (please complete the following information):

Additional context Debian is running in VMWare

Thanks in advance

nderjung commented 4 years ago

Hi, kraft list -n pages all the result, so you may have to use the space bar to view more. What happens when you omit -n ?

dpadula commented 4 years ago

Hi, thank you very much for answer so quickly! I guess, the (real) problem is:

I guess I tried with an -n option.

You'll see, I've cloned from here and I've tried to reproduce the steps in the video (https://ftp.osuosl.org/pub/fosdem/2020/K.4.601/uk_unicraft.mp4) but the message when I try to follow the steps in "kraft configure -n" command, is: "unikraft Target architecture (x86) is currently not supported".

I promise to post properly this later because yesterday it was too late and maybe I was so tired to describe properly the error.

Thanks again Diego

nderjung commented 4 years ago

Ah i see,

This video is slightly out of date. I'm in the process of refactoring some of kraft which means there are some bits that are not upstream and so it may be best to work from this known working version of kraft and then i can give you concrete instructions:

pip3 install git+https://github.com/unikraft/kraft.git@99cdb90d76c73c74b3b66995ca64a8aad49e6b58
# (Optional) Set the location of your Unikraft source repositories (this defaults to ~/.unikraft):
# export UK_WORKDIR=~/.alt-unikraft-srcs
kraft list --update
kraft list
# now let's create an application
mkdir ~/my-unikraft-unikernel
cd ~/my-unikraft-unikernel
kraft init -m x86_64 -p kvm
kraft configure -k # this will open the make menuconfig, set everything you need including arch and plat
kraft build

Hope this helps :)

For now if you are relying on kraft.yaml file, you need to add any additional kconfig options you toggle in the menuconfig, since this is only written to .config (if this is discarded you will need to re-toggle all options, unless they are in kraft.yam)

dpadula commented 4 years ago

Hey thanks Alexander! I promise I'll try this later. I have some questions now: 1) Can I ask you in the future how would I know from what patch "99cdb90d76c73c74b3b66995ca64a8aad49e6b58" clone kraft? 2) In my case, Debian 9 (stretch), do I must install some special package for menuconfig works?

Thanks again man! Cheers Diego

nderjung commented 4 years ago

So this version was just the one i have working. I'll be upstreaming more soon to master so we have something stable.

Also for the menuconfig to work (from the README.md):

apt-get install -y --no-install-recommends build-essential libncurses-dev libyaml-dev flex git wget socat bison unzip uuid-runtime
dpadula commented 4 years ago

Hey Alexander, I'm testing your instructions and so far so good until kraft list --update.

root@node0:~# kraft list --update Traceback (most recent call last): File "/usr/local/bin/kraft", line 11, in load_entry_point('unikraft-tools===0.4.0-34-g62f6520', 'console_scripts', 'kraft')() File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 561, in load_entry_point return get_distribution(dist).load_entry_point(group, name) File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 2631, in load_entry_point return ep.load() File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 2291, in load return self.resolve() File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 2297, in resolve module = import(self.module_name, fromlist=['name'], level=0) File "/usr/local/lib/python3.5/dist-packages/kraft/kraft.py", line 36, in from kraft.commands import build File "/usr/local/lib/python3.5/dist-packages/kraft/commands/init.py", line 35, in from .build import build File "/usr/local/lib/python3.5/dist-packages/kraft/commands/build.py", line 38, in from kraft.config import config File "/usr/local/lib/python3.5/dist-packages/kraft/config/config.py", line 44, in from .environment import Environment File "/usr/local/lib/python3.5/dist-packages/kraft/config/environment.py", line 40, in from kraft.errors import ConfigurationError File "/usr/local/lib/python3.5/dist-packages/kraft/errors.py", line 34, in from kraft.components.provider import ProviderType File "/usr/local/lib/python3.5/dist-packages/kraft/components/init.py", line 35, in from .core import Core File "/usr/local/lib/python3.5/dist-packages/kraft/components/core.py", line 34, in from kraft.components.repository import Repository File "/usr/local/lib/python3.5/dist-packages/kraft/components/repository.py", line 56, in from kraft.context import kraft_context File "/usr/local/lib/python3.5/dist-packages/kraft/context.py", line 46, in from kraft.environment import Environment File "/usr/local/lib/python3.5/dist-packages/kraft/environment.py", line 40, in from .errors import EnvFileNotFound ImportError: cannot import name 'EnvFileNotFound'

What am I doing wrong? Thanks one more time

Cheers Diego

dpadula commented 4 years ago

I think the problem is I used pip3 (python 3.5). Now I installed and used python 3.7 and it seems to be working but the packages ad libs are the same.

CORE RELEASE LAST CHECKED unikraft 0.4 3 hours ago

PLATFORMS RELEASE LAST CHECKED solo5 0.4 3 hours ago aws 0.4 3 hours ago gcp 0.4 3 hours ago firecracker master 3 hours ago digitalocean 0.4 3 hours ago

LIBRARIES RELEASE LAST CHECKED boost 0.4 3 hours ago http-parser 0.4 3 hours ago arm-intrinsics master 3 hours ago pcre 0.4 3 hours ago libfp16 0.4 3 hours ago libunwind 0.4 3 hours ago compiler-rt 0.4 3 hours ago lwip 0.4 3 hours ago fft2d staging 3 hours ago eigen 0.4 3 hours ago lzma master 3 hours ago openssl 0.4 3 hours ago micropython 0.4 3 hours ago c-ares 0.4 3 hours ago nnpack 0.4 3 hours ago farmhash staging 3 hours ago gemmlowp staging 3 hours ago zydis staging 3 hours ago googletest 0.4 3 hours ago sqlite 0.4 3 hours ago googlebenchmark 0.4 3 hours ago duktape 0.4 3 hours ago libuv staging 3 hours ago pthread-embedded 0.4 3 hours ago mbedtls master 3 hours ago intel-intrinsics 0.4 3 hours ago flatbuffers staging 3 hours ago axtls 0.4 3 hours ago libfxdiv 0.4 3 hours ago intx 0.4 3 hours ago psimd 0.4 3 hours ago zlib 0.4 3 hours ago protobuf 0.4 3 hours ago dnnl 0.4 3 hours ago lua 0.4 3 hours ago lvgl 0.4 3 hours ago libucontext 0.4 3 hours ago libcxxabi 0.4 3 hours ago ruby 0.4 3 hours ago python3 0.4 3 hours ago pybind11 staging 3 hours ago click 0.4 3 hours ago pthreadpool 0.4 3 hours ago libgo 0.4 3 hours ago redis 0.4 3 hours ago libelf staging 3 hours ago bzip2 0.4 3 hours ago open62541 0.4 3 hours ago libcxx 0.4 3 hours ago gcc 0.4 3 hours ago nginx 0.4 3 hours ago musl 0.4 3 hours ago libuuid 0.4 3 hours ago wamr 0.4 3 hours ago newlib 0.4 3 hours ago

APPLICATIONS RELEASE LAST CHECKED httpreply 0.4 3 hours ago wamr 0.4 3 hours ago helloworld-cpp 0.4 3 hours ago nginx 0.4 3 hours ago helloworld-go 0.4 3 hours ago python3 0.4 3 hours ago sqlite 0.4 3 hours ago redis 0.4 3 hours ago lua 0.4 3 hours ago ruby 0.4 3 hours ago duktape 0.4 3 hours ago micropython 0.4 3 hours ago click master 3 hours ago helloworld 0.4 3 hours ago

In the unikraft folder

root@node0:~/.unikraft# ls -la total 24 drwxr-xr-x 6 root root 4096 jul 1 00:14 . drwx------ 9 root root 4096 jul 1 00:14 .. drwxr-xr-x 16 root root 4096 jul 1 00:14 apps drwxr-xr-x 3 root root 4096 jul 1 00:14 kraft.cache drwxr-xr-x 57 root root 4096 jul 1 00:14 libs drwxr-xr-x 4 root root 4096 jul 1 00:14 unikraft root@node0:~/.unikraft#

In the plat folder

root@node0:~/.unikraft/unikraft/plat# ls -la total 28 drwxr-xr-x 7 root root 4096 jul 1 00:14 . drwxr-xr-x 4 root root 4096 jul 1 00:14 .. drwxr-xr-x 3 root root 4096 jul 1 00:14 aws drwxr-xr-x 3 root root 4096 jul 1 00:14 digitalocean drwxr-xr-x 3 root root 4096 jul 1 00:14 firecracker drwxr-xr-x 3 root root 4096 jul 1 00:14 gcp drwxr-xr-x 3 root root 4096 jul 1 00:14 solo5 root@node0:~/.unikraft/unikraft/plat#

And last, when I follow your instructions...

root@node0:~# cd myFirstUK/

root@node0:~/myFirstUK# kraft init -m x86_64 -p linuxu 2020-07-01 00:30:38 INFO Using core/unikraft@0.4... 2020-07-01 00:30:38 INFO Initialized new unikraft application 'myFirstUK' in /root/myFirstUK

root@node0:~/myFirstUK# kraft configure -k make: se entra en el directorio '/root/.unikraft/unikraft' Makefile:450: *** Target architecture (x86) is currently not supported (could not find /root/.unikraft/unikraft/arch/x86/x86/Makefile.uk).. Alto. make: se sale del directorio '/root/.unikraft/unikraft' root@node0:~/myFirstUK#

I cannot continue

What am I still doing wrong?

Thanks

nderjung commented 4 years ago

Are you, by chance, running a 32bit VM?

dpadula commented 4 years ago

Uhmmm, yes. I'm afraid so. Is that a problem ?

nderjung commented 4 years ago

This mode has not been properly tested with kraft yet. For now, it may be worth either switching to a 64-bit vm, or try using Unikraft in a more verbose manner.

dpadula commented 4 years ago

Oh I see, ok I'll try this and I'll let you know. It is very kind of you to have dedicated your time to me and this topic.

Thanks again Cheers

nderjung commented 4 years ago

No problem :)