Giter Club home page Giter Club logo

camkes-vm-linux's Introduction

The seL4 microkernel

CII Best Practices CI seL4Test C Parser Compile Proof Sync RefMan XML

This project contains the source code of seL4 microkernel.

For details about the seL4 microkernel, including details about its formal correctness proof, please see the sel4.systems website and associated FAQ.

DOIs for citing recent releases of this repository:

  • DOI

We welcome contributions to seL4. Please see the website for information on how to contribute.

This repository is usually not used in isolation, but as part of the build system in a larger project.

seL4 Basics

Community

See the contact links on the seL4 website for the full list.

Reporting security vulnerabilities

If you believe you have found a security vulnerability in seL4 or related software, we ask you to follow our vulnerability disclosure policy.

Manual

A hosted version of the manual for the most recent release can be found here.

A web version of the API can be found here

Repository Overview

  • include and src: C and ASM source code of seL4
  • tools: build tools
  • libsel4: C bindings for the seL4 ABI
  • manual: LaTeX sources of the seL4 reference manual

Build Instructions

See the seL4 website for build instructions.

Status

A list of releases and current project status can be found under seL4 releases.

License

See the file LICENSE.md.

camkes-vm-linux's People

Contributors

chrisguikema avatar hlyytine avatar kent-mcleod avatar lsf37 avatar wellmcgarnicle avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

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

camkes-vm-linux's Issues

Why can't use Ethernet card in guest linux ?

I normally follow the instructions in official doc ("Virtualisation on seL4"), and succeed. But no matter how i change the configurations of Ethernet card it does not work fine. I check the status of eth0, like:


image


It seems like the guest linux does not know cable wasn't plugged in, I check the configuration add for vm0 and hardware arguments of this PCIE Ethernet card:

 /*   
 * 03:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
 * 	Interrupt: pin A routed to IRQ 16
 * 	Region 0: Memory at df1c0000 (32-bit, non-prefetchable) [size=128K]
 * 	Region 1: Memory at df100000 (32-bit, non-prefetchable) [size=512K]
 *	Region 2: I/O ports at e000 [size=32]
 *	Region 3: Memory at df1e0000 (32-bit, non-prefetchable) [size=16K]
*/ 

        vm0_config.pci_devices_iospace = 1;      
        
        vm0_config.ioports = [
            {"start":0xe000, "end":0xe020, "pci_device":0, "name":"Ethernet5"},// 32B
            //asdas
        ];

        vm0_config.pci_devices = [
            {
                "name":"Ethernet5",
                "bus":3, "dev":0, "fun":0,                                  // bus
                "irq":"Ethernet5",
                "memory":[
                    {"paddr":0xdf1c0000, "size":0x20000, "page_bits":12},   // 128K
                    {"paddr":0xdf100000, "size":0x80000, "page_bits":12},   // 512K
                    {"paddr":0xdf1e0000, "size":0x4000,  "page_bits":12}    // 16K
                ],
            }
        ];
        
        vm0_config.irqs = [
            {"name":"Ethernet5", "source":10, "level_trig":1, "active_low":1, "dest":16},
        ];

Is the configuration of vm0_config.irqs wrong? How to pass IRQ to guest linux? could you please help me with that , thanks for your time.

Can I run Linux/seL4 on top of risc-v?

After going through the camkes-vm-linux tutorial on sel4-tutorials, I noticed that risc-v was not an option. Is it or will it be supported?
Also, this seems to require vt-x support on x86, will it require hypervisor support as well on risc-v?

Not able to Login in buildroot camkes-vm-linux after booting

I have built and ran the bootable file via flash drive and received the output in the serial monitor as follows but am not able to input anything
VM Linux Logs.txt

`

Starting network[ 0.810972] ip (679) used greatest stack depth: 6732 bytes left
: OK

Failed to locate device consumes_event.
Failed to locate device emits_event.

Welcome to Buildroot

buildroot login: [ 1.431752] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x31015f85297, max_idle_ns: 440795334135 ns

[ 1.442241] clocksource: Switched to clocksource tsc

[ 2.811817] random: fast init done

[ 134.023597] random: crng init done

`

I have attached the log file if it helps
What changes should I do to make it work and what mistake i might be doing
VM Linux Logs.txt

Should it be easier to link linux VM binaries against the buildroot's uclibc?

Currently, the build setup for the in-VM binaries in all examples seems to be limited to creating binaries statically linked against the host glibc. There are a few issues with it:

  • This is a bit wasteful as now the rootfs gets a bunch of copies of two different libcs
  • getaddrinfo does not work (the glibc version requires dynamic loading of nss libraries to work).

Why the linux bzImage built by buildroot which i made can not run successfully on seL4?

How to compile Linux running on seL4? i simply use buildroot tool to build a kernel 4.8.16, the same as what you offered, but can't run successfully on seL4 whether in qemu or physic machine. the information is like this below:

[ 0.000000] Linux version 4.8.16 (jason@local) (gcc version 6.3.0 (Buildroot 2017.05) ) #1 SMP Wed Dec 19 21:16:18 CST 2018
[ 0.000000] Disabled fast string operations
[ 0.000000] x86/fpu: Legacy x87 FPU detected.
[ 0.000000] x86/fpu: Using 'eager' FPU context switches.
[ 0.000000] e820: BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x00000000000004ff] reserved
[ 0.000000] BIOS-e820: [mem 0x0000000000000500-0x0000000000007bff] usable
[ 0.000000] BIOS-e820: [mem 0x0000000000007c00-0x0000000000007dff] reserved
[ 0.000000] BIOS-e820: [mem 0x0000000000007e00-0x000000000009fbff] usable
[ 0.000000] BIOS-e820: [mem 0x000000000009fc00-0x000000000fffffff] reserved
[ 0.000000] BIOS-e820: [mem 0x0000000010000000-0x0000000017ffffff] usable
[ 0.000000] BIOS-e820: [mem 0x0000000018000000-0x00000000ffffffff] reserved
[ 0.000000] bootconsole [earlyser0] enabled
[ 0.000000] Notice: NX (Execute Disable) protection missing in CPU!
[ 0.000000] DMI not present or invalid.
[ 0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[ 0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[ 0.000000] e820: last_pfn = 0x18000 max_arch_pfn = 0x100000
[ 0.000000] MTRR: Disabled
[ 0.000000] x86/PAT: MTRRs disabled, skipping PAT initialization too.
[ 0.000000] x86/PAT: Configuration [0-7]: WB WT UC- UC WB WT UC- UC
[ 0.000000] Scanning 2 areas for low memory corruption
[ 0.000000] initial memory mapped: [mem 0x00000000-0x10ffffff]
[ 0.000000] Base memory trampoline at [c009b000] 9b000 size 16384
[ 0.000000] BRK [0x10d61000, 0x10d61fff] PGTABLE
[ 0.000000] RAMDISK: [mem 0x10e43000-0x10fabfff]
[ 0.000000] ACPI: Early table checksum verification disabled
[ 0.000000] ACPI: RSDP 0x00000000000E0000 000024 (v02 NICTA )
[ 0.000000] ACPI: XSDT 0x00000000000E1000 00002C (v01 NICTA XSDT 00000001 NICT 00000001)
[ 0.000000] ACPI: APIC 0x00000000000E102C 000034 (v03 NICTA APIC 00000003 NICT 00000001)
[ 0.000000] ACPI: Local APIC address 0xfee00000
The faulting Guest OS thread will now be blocked forever.
VM_FATAL_ERROR ::: vmexit handler return error
vmm_print_guest_context:27 | ================== GUEST OS CONTEXT =================
vmm_print_guest_context:30 | exit info : reason 0x30 qualification 0x181 instruction len 0x2 interrupt info 0x0 interrupt error 0x0
vmm_print_guest_context:32 | guest physical 0xfee00020 rflags 0x210046
vmm_print_guest_context:34 | guest interruptibility 0x0 control entry 0x0
vmm_print_guest_context:37 | eip 0xd0040e91
vmm_print_guest_context:39 | eax 0x 0 ebx 0x 0 ecx 0xd0c89fec
vmm_print_guest_context:41 | edx 0xfffff000 esi 0x 0 edi 0x 0
vmm_print_guest_context:43 | ebp 0xd0b19f78
vmm_print_guest_context:45 | cr0 0x80050033 cr3 0x10c86000 cr4 0x2680


But i built a version 4.7.2 or 4.8.16 rootfs, works fine within official bzImage. looks like the kernel i built is not fit for seL4. Is there need some special instructions for linux kernel? could you please help me with that. thanks for your time .

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.