includeos / IncludeOS

A minimal, resource efficient unikernel for cloud services

Home Page:https://www.includeos.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ubuntu 20.04 fails to build Hello

lonnietc opened this issue · comments

Hi,

Not sure where best to post this, but the Hello example fails to build on my Ubintu 20.04 (64-bit AMD) system after installing the dependencies and following the steps.


lonnie@lonnie-p7-1451:~/IncludeOS/test/build$ conan install ../hello_world -pr gcc-7.3.0-linux-x86_64-toolchain
Configuration:
[settings]
arch=x86_64
arch_build=x86_64
build_type=Release
compiler=gcc
compiler.libcxx=libstdc++11
compiler.version=7
cppstd=17
os=Linux
os_build=Linux
[options]
[build_requires]
[env]
CC=/usr/bin/gcc-7
CFLAGS=-msse3 -mfpmath=sse -O2 -g
CXX=/usr/bin/g++-7
CXXFLAGS=-msse3 -mfpmath=sse -O2 -g
WARN: botan/2.8.0@includeos/stable: requirement libcxx/[>=5.0]@includeos/stable overridden by includeos/0.15.1-5@includeos/latest to libcxx/7.0.1@includeos/stable
WARN: openssl/1.1.1@includeos/stable: requirement libcxx/[>=5.0]@includeos/stable overridden by s2n/0.8@includeos/stable to libcxx/7.0.1@includeos/stable
Version ranges solved
Version range '>=0.14.0,include_prerelease=True' required by 'conanfile.txt' resolved to 'includeos/0.15.1-5@includeos/latest' in local cache
Version range '>=1.0.0' required by 'python_require' resolved to 'conan-tools/1.0.0@includeos/stable' in local cache
Version range '>=5.0' required by 'includeos/0.15.1-5@includeos/latest' resolved to 'libcxx/7.0.1@includeos/stable' in local cache
Version range '>=1.1.18' required by 'libcxx/7.0.1@includeos/stable' resolved to 'musl/1.1.18@includeos/stable' in local cache
Version range '>=5.0' required by 'botan/2.8.0@includeos/stable' valid for downstream requirement 'libcxx/7.0.1@includeos/stable'
Version range '>=1.1.18' required by 'botan/2.8.0@includeos/stable' resolved to 'musl/1.1.18@includeos/stable' in local cache
Version range '>=5.0' required by 'openssl/1.1.1@includeos/stable' valid for downstream requirement 'libcxx/7.0.1@includeos/stable'
Version range '>=0.14.0,include_prerelease=True' required by 'conanfile.txt' resolved to 'chainloader/0.15.1-5@includeos/latest' in local cache
Version range '>=0.16.0' required by 'conanfile.txt' resolved to 'vmrunner/0.16.0@includeos/stable' in local cache
Version range '>=0.15.0' required by 'conanfile.txt' resolved to 'vmbuild/0.15.0@includeos/stable' in local cache
Version range '>=1.0.0' required by 'python_require' resolved to 'conan-tools/1.0.0@includeos/stable' in local cache
Version range '>=1.0.0' required by 'python_require' resolved to 'conan-tools/1.0.0@includeos/stable' in local cache
Version range '>=1.0.0' required by 'python_require' resolved to 'conan-tools/1.0.0@includeos/stable' in local cache

conanfile.txt: Installing package
Requirements
GSL/2.0.0@includeos/stable from 'includeos' - Cache
botan/2.8.0@includeos/stable from 'includeos' - Cache
http-parser/2.8.1@includeos/stable from 'includeos' - Cache
includeos/0.15.1-5@includeos/latest from 'includeos' - Cache
libcxx/7.0.1@includeos/stable from 'includeos' - Cache
libcxxabi/7.0.1@includeos/stable from 'includeos' - Cache
libgcc/1.0@includeos/stable from 'includeos' - Cache
libunwind/7.0.1@includeos/stable from 'includeos' - Cache
musl/1.1.18@includeos/stable from 'includeos' - Cache
openssl/1.1.1@includeos/stable from 'includeos' - Cache
rapidjson/1.1.0@includeos/stable from 'includeos' - Cache
s2n/0.8@includeos/stable from 'includeos' - Cache
uzlib/v2.1.1@includeos/stable from 'includeos' - Cache
Python requires
conan-tools/1.0.0@includeos/stable
Packages
GSL/2.0.0@includeos/stable:5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9 - Download
botan/2.8.0@includeos/stable:da59a9abb477f02674b83d6c28ffb976d2329c3c - Missing
http-parser/2.8.1@includeos/stable:6ae331b72e7e265ca2a3d1d8246faf73aa030238 - Download
includeos/0.15.1-5@includeos/latest:8ccaba897f311aea6e6153412a42c103f3a61d52 - Missing
libcxx/7.0.1@includeos/stable:2fd99d114414bf3d24c4f729e8c45d0f4391837f - Missing
libcxxabi/7.0.1@includeos/stable:9bfdcfa2bb925892ecf42e2a018a3f3529826676 - Missing
libgcc/1.0@includeos/stable:9bfdcfa2bb925892ecf42e2a018a3f3529826676 - Download
libunwind/7.0.1@includeos/stable:6ae331b72e7e265ca2a3d1d8246faf73aa030238 - Download
musl/1.1.18@includeos/stable:814c55266c97e8ac35915be388bafaa950f8088a - Missing
openssl/1.1.1@includeos/stable:d1f2fd118ae70b4bfc4a5a09408aee2101e3fa04 - Missing
rapidjson/1.1.0@includeos/stable:5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9 - Download
s2n/0.8@includeos/stable:a3392d1c57072d6a3aef8ee94f0f529a52fd5db3 - Missing
uzlib/v2.1.1@includeos/stable:6ae331b72e7e265ca2a3d1d8246faf73aa030238 - Download
Build requirements
chainloader/0.15.1-5@includeos/latest from 'includeos' - Cache
vmbuild/0.15.0@includeos/stable from 'includeos' - Cache
vmrunner/0.16.0@includeos/stable from 'includeos' - Cache
Build requirements packages
chainloader/0.15.1-5@includeos/latest:5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9 - Download
vmbuild/0.15.0@includeos/stable:44fcf6b9a7fb86b2586303e3db40189d3b511830 - Download
vmrunner/0.16.0@includeos/stable:5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9 - Download

Installing (downloading, building) binaries...
ERROR: Missing binary: botan/2.8.0@includeos/stable:da59a9abb477f02674b83d6c28ffb976d2329c3c
ERROR: Missing binary: includeos/0.15.1-5@includeos/latest:8ccaba897f311aea6e6153412a42c103f3a61d52
ERROR: Missing binary: libcxx/7.0.1@includeos/stable:2fd99d114414bf3d24c4f729e8c45d0f4391837f
ERROR: Missing binary: libcxxabi/7.0.1@includeos/stable:9bfdcfa2bb925892ecf42e2a018a3f3529826676
ERROR: Missing binary: musl/1.1.18@includeos/stable:814c55266c97e8ac35915be388bafaa950f8088a
ERROR: Missing binary: openssl/1.1.1@includeos/stable:d1f2fd118ae70b4bfc4a5a09408aee2101e3fa04
ERROR: Missing binary: s2n/0.8@includeos/stable:a3392d1c57072d6a3aef8ee94f0f529a52fd5db3

libcxxabi/7.0.1@includeos/stable: WARN: Can't find a 'libcxxabi/7.0.1@includeos/stable' package for the specified settings, options and dependencies:

  • Settings: arch=x86_64, build_type=Release, compiler=gcc, compiler.libcxx=libstdc++11, compiler.version=7, os=Linux
  • Options: shared=False
  • Dependencies:
  • Requirements:
  • Package ID: 9bfdcfa2bb925892ecf42e2a018a3f3529826676

ERROR: Missing prebuilt package for 'botan/2.8.0@includeos/stable', 'includeos/0.15.1-5@includeos/latest', 'libcxx/7.0.1@includeos/stable', 'libcxxabi/7.0.1@includeos/stable', 'musl/1.1.18@includeos/stable', 'openssl/1.1.1@includeos/stable', 's2n/0.8@includeos/stable'
Try to build from sources with "--build=missing"
Or read "http://docs.conan.io/en/latest/faq/troubleshooting.html#error-missing-prebuilt-package"


Any ideas on how I can fix this?

Also, I am new to the conan build system as well.

Thanks

What happens if you try the profile clang-6.0-linux-x86_64 ?

With that profile, it seems to be able to go through the complete build steps but I get an error once I try to "boot hello"


Setup Ubuntu
$ apt-get install python3-pip python3-dev git cmake clang-6.0 gcc nasm make qemu
$ pip3 install setuptools wheel conan psutil jsonschema
$ conan config install https://github.com/includeos/conan_config.git


Recipe Steps for Hello
$ git clone https://github.com/includeos/hello_world.git
$ mkdir your_build_dir && cd "$_"
$ conan install ../hello_world -pr <your_conan_profile>
$ source activate.sh
$ cmake ../hello_world
$ cmake --build .
$ boot hello


.
.
.
(conanenv) lonnie@lonnie-p7-1451:~/IncludeOS/test/build$ boot hello

Looking for chainloader:
Found /home/lonnie/.conan/data/chainloader/0.15.1-5/includeos/latest/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/bin/chainloader Type: /home/lonnie/.conan/data/chainloader/0.15.1-5/includeos/latest/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/bin/chainloader: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, stripped

[ WARNING ] Running with sudo
[sudo] password for lonnie:

[ PROGRAM_FAILURE ] process exited


Everything seems to work through all of the steps this time, but fails to run the "Hello" program

Did I miss something here?
Thanks again

I am using also Ubuntu 20.04
please try conan install ../hello_world -pr gcc-7.3.0-linux-x86_64 --build=missing
this works for me.

And please check if you can run qemu-system-x86_64
In my case I had to install additional packages for qemu

I think the packages for the profile are missing that's why you need --build=missing

You might be hitting a bug in our boot program where it just exits if the bridge isn't created. Try boot --create-bridge hello.

Hi @faerbersteve,

I tried the --build=missing as you suggested, but it could be, for at least that one that I have g++ 9 installed and not gcc-7


CMake Error at /usr/share/cmake-3.16/Modules/CMakeDetermineCXXCompiler.cmake:48 (message):
Could not find compiler set in environment variable CXX:

/usr/bin/g++-7.

Call Stack (most recent call first):
CMakeLists.txt:21 (project)

CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!
See also "/home/lonnie/.conan/data/libcxxabi/7.0.1/includeos/stable/build/9bfdcfa2bb925892ecf42e2a018a3f3529826676/CMakeFiles/CMakeOutput.log".
libcxxabi/7.0.1@includeos/stable:
libcxxabi/7.0.1@includeos/stable: ERROR: Package '9bfdcfa2bb925892ecf42e2a018a3f3529826676' build failed
libcxxabi/7.0.1@includeos/stable: WARN: Build folder /home/lonnie/.conan/data/libcxxabi/7.0.1/includeos/stable/build/9bfdcfa2bb925892ecf42e2a018a3f3529826676
ERROR: libcxxabi/7.0.1@includeos/stable: Error in build() method, line 69
cmake = self._configure_cmake()
while calling '_configure_cmake', line 65
cmake.configure(source_folder=source)
ConanException: Error 1 while executing cd '/home/lonnie/.conan/data/libcxxabi/7.0.1/includeos/stable/build/9bfdcfa2bb925892ecf42e2a018a3f3529826676' && cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE="Release" -DCONAN_IN_LOCAL_CACHE="ON" -DCONAN_COMPILER="gcc" -DCONAN_COMPILER_VERSION="7" -DCONAN_CXX_FLAGS="-m64" -DCONAN_SHARED_LINKER_FLAGS="-m64" -DCONAN_C_FLAGS="-m64" -DCONAN_LIBCXX="libstdc++11" -DBUILD_SHARED_LIBS="OFF" -DCMAKE_INSTALL_PREFIX="/home/lonnie/.conan/data/libcxxabi/7.0.1/includeos/stable/package/9bfdcfa2bb925892ecf42e2a018a3f3529826676" -DCMAKE_INSTALL_BINDIR="bin" -DCMAKE_INSTALL_SBINDIR="bin" -DCMAKE_INSTALL_LIBEXECDIR="bin" -DCMAKE_INSTALL_LIBDIR="lib" -DCMAKE_INSTALL_INCLUDEDIR="include" -DCMAKE_INSTALL_OLDINCLUDEDIR="include" -DCMAKE_INSTALL_DATAROOTDIR="share" -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY="ON" -DCONAN_EXPORTED="1" -DLIBCXXABI_LIBCXX_INCLUDES="/home/lonnie/.conan/data/libcxxabi/7.0.1/includeos/stable/source/libcxx/include" -DLIBCXXABI_USE_LLVM_UNWINDER="True" -DLIBCXXABI_ENABLE_SHARED="False" -DLIBCXXABI_ENABLE_STATIC="True" -DLIBCXXABI_ENABLE_STATIC_UNWINDER="True" -DLLVM_PATH="/home/lonnie/.conan/data/libcxxabi/7.0.1/includeos/stable/source/llvm" -Wno-dev '/home/lonnie/.conan/data/libcxxabi/7.0.1/includeos/stable/source/libcxxabi'
l
onnie@lonnie-p7-1451:~/IncludeOS/build$ g++ --version
g++ (Ubuntu 9.3.0-10ubuntu2) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


Hi, @fwsGonzo -- The "boot --create-bridge hello" also crashed

Maybe a a fresh install will do the trick.
Appreciate the help eveyone.

Hi All,

I was able to resolve it, I think.

Had to go through and re-install Qemu.

I removed Qemu and did an overkill for the re-install like this:

sudo apt install qemu qemu-utils qemu-kvm virt-manager libvirt-daemon-system libvirt-clients bridge-utils

and tried it again.


SeaBIOS (version 1.13.0-1ubuntu1)

iPXE (http://ipxe.org) 00:03.0 CA00 PCI2.10 PnP PMM+07F8C8A0+07ECC8A0 CA00
Press Ctrl-B to configure iPXE (PCI 00:03.0)...

Booting from ROM..* Multiboot begin: 0x9500

  • Multiboot cmdline @ 0x22e019: /home/lonnie/.conan/data/chainloader/0.15.1-5/includeos/latest/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/bin/chainloader"
  • Multiboot end: 0x22e09c
  • Module list @ 0x22e000
    • Module @ 0x22f000
    • Args: hello ""
    • End: 0x3939a8
  • Multiboot end: 0x3939a8
    Booted with multiboot
    • Boot flags: 0x24f

    • Valid memory (130559 Kib):
      0x00000000 - 0x0009fbff (639 Kib)
      0x00100000 - 0x07fdffff (129920 Kib)

    • Booted with parameters @ 0x22e019: /home/lonnie/.conan/data/chainloader/0.15.1-5/includeos/latest/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/bi"

    • Multiboot provided memory map (7 entries @ 0x9000)
      0x0000000000 - 0x000009fbff FREE (639 Kb.)
      0x000009fc00 - 0x000009ffff RESERVED (1 Kb.)
      0x00000f0000 - 0x00000fffff RESERVED (64 Kb.)
      0x0000100000 - 0x0007fdffff FREE (129920 Kb.)
      0x0007fe0000 - 0x0007ffffff RESERVED (128 Kb.)
      0x00feffc000 - 0x00feffffff RESERVED (16 Kb.)
      0x00fffc0000 - 0x00ffffffff RESERVED (256 Kb.)

OS loaded with 1 modules
* hello "" @ 0x22f000 - 0x3939a8, size: 1460648b

  • Multiboot begin: 0x9500
  • Multiboot end: 0x326840
    [x86_64 PC] constructor
    [ Machine ] Initializing heap
    [ Machine ] Main memory detected as 130441024 b
    [ Machine ] Reserving 1048576 b for machine use
    Booted with multiboot
    • Boot flags: 0x24f

    • Valid memory (130559 Kib):
      0x00000000 - 0x0009fbff (639 Kib)
      0x00100000 - 0x07fdffff (129920 Kib)

    • Booted with parameters @ 0x8000: hello ""

    • Multiboot provided memory map (7 entries @ 0x9000)
      0x0000000000 - 0x000009fbff FREE (639 Kb.)
      0x000009fc00 - 0x000009ffff RESERVED (1 Kb.)
      0x00000f0000 - 0x00000fffff RESERVED (64 Kb.)
      0x0000100000 - 0x0007fdffff FREE (129920 Kb.)
      0x0007fe0000 - 0x0007ffffff RESERVED (128 Kb.)
      0x00feffc000 - 0x00feffffff RESERVED (16 Kb.)
      0x00fffc0000 - 0x00ffffffff RESERVED (256 Kb.)
      ================================================================================
      IncludeOS 0.15.1-5 (x86_64 / 64-bit)
      +--> Running [ Hello world - OS included ]

 +--> WARNING: No good random source found: RDRAND/RDSEED instructions not available.
 +--> FATAL: Random source check failed. Terminating.
 +-->        To disable this check, re-run cmake with "-DFOR_PRODUCTION=OFF".
     [ Kernel ] Stopping service
     [ Kernel ] Powering off

[ SUCCESS ] process exited

 - - - - - - 
 
Can this approach also produce an ISO?  Just wondering.

Thanks again so very much and I want to try some other examples.

Are there any graphic examples with libraries that are not tied to X11?
Cheers