= seL4 Version 7.0.0 Release =
Announcing the release of seL4 7.0.0 with the following changes:
== Changes ==
* Support for building standalone ia32 kernel added in e7327fa6df3
* ia32: Set sensible defaults for FS and GS selectors in c2f6d48bcf2
* aarch64: Use tpidrro_el0 for IPC buffer instead of tpidr_el0 in ae9fe9b5d18
* More seL4 manual documentation added for aarch64 object invocations
* Default NUM_DOMAINS set to 16 for x86-64 standalone builds in baa9798f793
* libsel4: Return seL4_Error in invocation stubs in 8fb06eecff9 ''' This is a source code level breaking change '''
* Add a CMake based build system in 0b73072016e
* x86: Increase TCB size for debug builds in 4c8be8f4f91
* libsel4: x86: Remove nested struct declarations in a8d6315eb16 ''' This is a source code level breaking change '''
* Bugfix: x86: Unmap pages when delete non final frame caps in 08b9265563a
= Notable changes =
* CMake based build system added: Initial experimental support has been added for using CMake for building the kernel and some user level libraries. Currently the only project that takes advantage of this is seL4test when using the cmake.xml manifest in sel4test-manifest. Documentation can be found at: https://github.com/seL4/seL4_tools/tree/master/cmake-tool
= Upgrade notes =
* This release is not source compatible with previous releases.
* seL4 invocations that previously returned long now return seL4_Error which is an enum. Our libraries have already been updated to reflect this change, but in other places where seL4 invocations are used directly, the return types will need to be updated to reflect this change.
* On x86 some structs in the Bootinfo have been rearranged. This only affects seL4_VBEModeInfoBlock_t which is used if VESA BIOS Extensions (VBE) information is being used.
= Known issues =
* One of our tests is non-deterministicly becoming unresponsive on the SMP release build on the Sabre IMX.6 platform, which is a non verified configuration of the kernel. We are working on fixing this problem, and will likely do a point release once it is fixed.
= Full changelog =
Use `git log 6.0.0..7.0.0` in https://github.com/seL4/seL4
= More details =
See the 7.0.0 manual <http://sel4.systems/Info/Docs/seL4-manual-7.0.0.pdf> included in the release or ask on the mailing list!
I mentioned this here earlier, but I haven't really gone into a lot of
detail about it here. I am planning to write an seL4-based OS similar
to QNX and Plan 9 called UX/RT. I am intending it to be both an
embedded OS (mostly for the larger types of embedded systems where QNX
or Linux would be used, as opposed to simpler ones) as well as a
desktop OS. I plan to use as much third-party code as possible to
avoid making lots of extra work (likely LKL
<https://github.com/lkl/linux> and/or the NetBSD rump kernel for
device drivers, disk filesystems, and the network stack; a libc based
on musl; and basic commands forked from those of FreeBSD). UX/RT will
be a pure Unix-like system with no concept of "personality-neutral"
services, and the root server will implement a subset of the Unix API
directly (as in QNX, although the root server will be completely
separate from the kernel of course, unlike that of QNX). However,
there will be a Linux compatibility layer implemented with libraries
and filesystem servers. I am going to avoid C for new code as much as
possible for security, preferring Rust for anything
performance-critical.
The main concept behind the design will be to take "everything is a
file" as far as it possibly can go. Nearly all resources in the system
will appear in the filesystem, even things like process memory (kernel
memory and the interface to the root server will be among the few
non-files in the system, although the API of the root server will be
implemented with an anonymous FD internally). The filesystem will be a
combination of a thin layer on top of L4 IPC with read() and write()
calling L4 IPC directly (short transfers will probably be sent
entirely in message registers and long ones sent by using shared
pages), and a memory mapping layer. The VFS will implement the name
service and memory mapping parts of the filesystem; read() and write()
will bypass the VFS layer entirely and will use seL4 IPC to
communicate directly with the other thread. There will also be APIs
that expose message registers and shared pages more directly although
they will do it in a way that interoperates with read() and write()
(these will mostly be used with a new "message-special" file type that
preserves message boundaries but otherwise acts like a normal byte
stream if used with read() or write()). No provisions will be made for
use of IPC or capabilities outside the filesystem.
Security will be based on an ACL-per-process model, where the root
server will have an in-memory list of files for each process
specifying which files it is allowed to access, as opposed to a
hierarchical pure-capability model like other L4-based systems (a pure
capability model seems like it would be a poor fit for a pure
Unix-like system). It will be possible to either specify rwx
permission bits explicitly or use the mode from the filesystem; it
will also be possible for an ACL entry to specify all files under a
particular directory. File descriptors will be implemented as groups
of capabilities, and the root server will hand them out when a process
successfully opens a file (unlike in QNX there will be no need for
individual filesystem servers to check whether the client process is
authorized to access a file). There will be an ACL management server
that will persistently associate permissions with programs, and it
will also be possible for sufficiently privileged processes to
dynamically modify the ACLs of other processes.
I currently have a bootloader, some basic infrastructure for building
boot ISO images, and a patch for seL4 to support QNX-like XIP
single-image boot using a variant of Multiboot2. I can build a boot
ISO with a system image containing only the kernel, but it crashes
with a triple fault somewhere in either the bootloader or the kernel
(I haven't yet tried to track down where it's occurring). Once I move
on to user mode code, I'm going to be using the Rust libraries from
Robigalia as a basis for the root server (higher-level Rust-based
components will use a normal Unix build of the Rust standard library
instead).
The code I have so far can be found at <https://gitlab.com/uxrt> for
UX/RT itself and <https://gitlab.com/uxrt-bos> for the bootloader. I
have some (long and not particularly well-organized) notes on my plans
for UX/RT's architecture at
<https://gitlab.com/uxrt/uxrt-toplevel/blob/master/architecture_notes>.
Anybody is more than welcome to contribute if they want.
Hello,
I have a question about standard output. I have a camkes component than can
write into text-mode VGA buffer (basically it follows this simple example
http://wiki.osdev.org/Bare_Bones#Writing_a_kernel_in_C ) but I would like
to be able to redirect the kernel messages during startup to be printed on
screen using VGA buffer.
Once another component (either Linux in a VM, or some other camkes app)
will initialize, it will be able to take control over the screen output
(and for example show login window etc).
My questions is - is this possible with seL4? And if so, what would it
entail?
I guess in the minimal version, I would have to provide a different
implementation of seL4_DebugPutChar, is that correct?
The VGA standard seems to define the buffer to be at 0xB8000, so it should
be consistent between x86 platforms.
Regards
Michal
Hello,
we use the seL4 benchmark interface to feed Genode's trace
infrastructure with information about the CPU utilization of threads and
of idle times.
In general the integration was reasonable straightforward.
One minor point we had. It seems that the idle time of a CPU can only be
requested by a thread running on the vary same CPU. Requesting the CPU
idle times of a remote CPU (the calling thread is on another CPU) is not
supported, right ?
In principle we may start on each CPU a thread just for the sake of
requesting the idle utilization time, which however looks a bit of overkill.
We "kind of" circumvent the issue for us by changing the syscall
handling in the kernel in that regard, that the CPU number of the
requested target thread is taken instead that of the caller thread, e.g.
like this:
--- a/src/benchmark/benchmark_utilisation.c
+++ b/src/benchmark/benchmark_utilisation.c
@@ -36,6 +36,11 @@ void benchmark_track_utilisation_dump(void)
tcb = TCB_PTR(cap_thread_cap_get_capTCBPtr(lu_ret.cap));
buffer[BENCHMARK_TCB_UTILISATION] = tcb->benchmark.utilisation; /*
Requested thread utilisation */
+#if CONFIG_MAX_NUM_NODES > 1
+ if (tcb->tcbAffinity < ksNumCPUs)
+ buffer[BENCHMARK_IDLE_UTILISATION] =
NODE_STATE_ON_CORE(ksIdleThread,
tcb->tcbAffinity)->benchmark.utilisation; /* Idle thread utilisation */
+ else
+#endif
buffer[BENCHMARK_IDLE_UTILISATION] =
NODE_STATE(ksIdleThread)->benchmark.utilisation; /* Idle thread
utilisation */
#ifdef CONFIG_ARM_ENABLE_PMU_OVERFLOW_INTERRUPT
With this change, we still have to create a thread on every CPU (since
we need a capability for the syscall), but at least the threads must not
be running actively.
Does this change (the patch) make sense to you and is it worthwhile to
adjust in general on your side - or would you advise/envision another
approach/direction ?
(like specifying the cpu number for the idle times directly via the
syscall or having a explicit syscall just for cpu idle times [but there
are no specific thread idle capabilities as syscall parameter] etc.)
Another question:
Currently it seems that no idle CPU times are provided, as long as no
user thread is actively running on that specific CPU. We can handle it,
no problem in general - however we would have to adjust generic code
(which runs on 8 different kernels) specifically for seL4 to handle this
minor case.
Could this possibly be changed (easily) ?
Thanks,
Alex.
--
Alexander Boettcher
Genode Labs
http://www.genode-labs.com - http://www.genode.org
Genode Labs GmbH - Amtsgericht Dresden - HRB 28424 - Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Hi,
I am trying to compile seL4 for the BBB. I am getting the following errors
when it gets to timer_service. I am following the instructions at
https://github.com/seL4/refos-manifest. I got past another compile error
by adding a typedef to device_timer.h for pstimer_t. Any help is
appreciated.
// tfp, added to avoid compiler error
typedef uint32_t pstimer_t;
[apps/timer_server] building...
[HEADERS]
[STAGE] autoconf.h
[CC] src/state.o
In file included from
/home/users/staff/tpeterson/sel4/beagle/stage/arm/am335x/include/refos-util/device_io.h:22:0,
from
/home/users/staff/tpeterson/sel4/beagle/apps/timer_server/src/device_timer.h:21,
from
/home/users/staff/tpeterson/sel4/beagle/apps/timer_server/src/state.h:27,
from
/home/users/staff/tpeterson/sel4/beagle/apps/timer_server/src/state.c:24:
/home/users/staff/tpeterson/sel4/beagle/stage/arm/am335x/include/refos-rpc/data_client_helper.h:
In function 'data_open_map':
/home/users/staff/tpeterson/sel4/beagle/stage/arm/am335x/include/refos-rpc/data_client_helper.h:95:69:
warning: passing argument 6 o f 'data_open' from incompatible pointer
type [-Wincompatible-pointer-types]
d.dataspace = data_open(session, name, flags, mode, dspaceSize,
&errnoRetVal);
^
In file included from
/home/users/staff/tpeterson/sel4/beagle/stage/arm/am335x/include/refos-util/device_io.h:21:0,
from
/home/users/staff/tpeterson/sel4/beagle/apps/timer_server/src/device_timer.h:21,
from
/home/users/staff/tpeterson/sel4/beagle/apps/timer_server/src/state.h:27,
from
/home/users/staff/tpeterson/sel4/beagle/apps/timer_server/src/state.c:24:
/home/users/staff/tpeterson/sel4/beagle/stage/arm/am335x/include/refos-rpc/data_client.h:72:11:
note: expected 'int ** (*)()' but ar gument is of type 'int *'
seL4_CPtr data_open(seL4_CPtr session, char* name, int flags, int mode,
int size, int* errno);
^
[CC] src/device_timer.o
/home/users/staff/tpeterson/sel4/beagle/apps/timer_server/src/device_timer.c:
In function 'device_timer_handle_irq':
/home/users/staff/tpeterson/sel4/beagle/apps/timer_server/src/device_timer.c:146:5:
warning: implicit declaration of function 'timer _handle_irq'
[-Wimplicit-function-declaration]
timer_handle_irq(s->timerDev, irq);
^
/home/users/staff/tpeterson/sel4/beagle/apps/timer_server/src/device_timer.c:
In function 'device_timer_init':
/home/users/staff/tpeterson/sel4/beagle/apps/timer_server/src/device_timer.c:239:5:
error: unknown type name 'timer_config_t'
timer_config_t config;
^
/home/users/staff/tpeterson/sel4/beagle/apps/timer_server/src/device_timer.c:240:11:
error: request for member 'vaddr' in something not a structure or union
config.vaddr = ps_io_map(&io->opsIO.io_mapper,
dm_timer_paddrs[TIMER_ID],
^
/home/users/staff/tpeterson/sel4/beagle/apps/timer_server/src/device_timer.c:240:52:
error: 'dm_timer_paddrs' undeclared (first use in this function)
config.vaddr = ps_io_map(&io->opsIO.io_mapper,
dm_timer_paddrs[TIMER_ID],
^
/home/users/staff/tpeterson/sel4/beagle/apps/timer_server/src/device_timer.c:240:52:
note: each undeclared identifier is reported on ly once for each
function it appears in
/home/users/staff/tpeterson/sel4/beagle/apps/timer_server/src/device_timer.c:242:11:
error: request for member 'irq' in something no t a structure or union
config.irq = dm_timer_irqs[TIMER_ID];
^
/home/users/staff/tpeterson/sel4/beagle/apps/timer_server/src/device_timer.c:242:18:
error: 'dm_timer_irqs' undeclared (first use in this function)
config.irq = dm_timer_irqs[TIMER_ID];
^
/home/users/staff/tpeterson/sel4/beagle/apps/timer_server/src/device_timer.c:243:16:
error: request for member 'vaddr' in something not a structure or union
if (!config.vaddr) {
^
/home/users/staff/tpeterson/sel4/beagle/apps/timer_server/src/device_timer.c:248:19:
warning: implicit declaration of function 'ps_g et_timer'
[-Wimplicit-function-declaration]
s->timerDev = ps_get_timer(TIMER_ID, &config);
^
/home/users/staff/tpeterson/sel4/beagle/apps/timer_server/src/device_timer.c:248:17:
warning: assignment makes pointer from integer without a cast
[-Wint-conversion]
s->timerDev = ps_get_timer(TIMER_ID, &config);
^
/home/users/staff/tpeterson/sel4/beagle/apps/timer_server/src/device_timer.c:250:11:
error: request for member 'vaddr' in something not a structure or union
config.vaddr = ps_io_map(&io->opsIO.io_mapper,
dm_timer_paddrs[TICK_ID],
^
/home/users/staff/tpeterson/sel4/beagle/apps/timer_server/src/device_timer.c:252:11:
error: request for member 'irq' in something no t a structure or union
config.irq = dm_timer_irqs[TICK_ID];
^
/home/users/staff/tpeterson/sel4/beagle/apps/timer_server/src/device_timer.c:253:16:
error: request for member 'vaddr' in something not a structure or union
if (!config.vaddr) {
^
/home/users/staff/tpeterson/sel4/beagle/apps/timer_server/src/device_timer.c:258:16:
warning: assignment makes pointer from integer without a cast
[-Wint-conversion]
s->tickDev = ps_get_timer(TICK_ID, &config);
^
/home/users/staff/tpeterson/sel4/beagle/apps/timer_server/src/device_timer.c:273:41:
error: request for member 'properties' in somet hing not a structure or
union
for (uint32_t i = 0; i < s->timerDev->properties.irqs; i++) {
^
/home/users/staff/tpeterson/sel4/beagle/apps/timer_server/src/device_timer.c:274:19:
warning: implicit declaration of function 'time r_get_nth_irq'
[-Wimplicit-function-declaration]
int irq = timer_get_nth_irq(s->timerDev, i);
^
/home/users/staff/tpeterson/sel4/beagle/apps/timer_server/src/device_timer.c:282:44:
error: request for member 'properties' in somet hing not a structure or
union
for (uint32_t i = 0; i < s->tickDev->properties.irqs; i++) {
^
/home/users/staff/tpeterson/sel4/beagle/apps/timer_server/src/device_timer.c:289:21:
warning: implicit declaration of function 'time r_start'
[-Wimplicit-function-declaration]
int error = timer_start(s->tickDev);
^
/home/users/staff/tpeterson/sel4/beagle/apps/timer_server/src/device_timer.c:310:13:
warning: implicit declaration of function 'time r_periodic'
[-Wimplicit-function-declaration]
error = timer_periodic(s->timerDev, TIMER_PERIODIC_MAX);
^
/home/users/staff/tpeterson/sel4/beagle/apps/timer_server/src/device_timer.c:
In function 'device_timer_get_time':
/home/users/staff/tpeterson/sel4/beagle/apps/timer_server/src/device_timer.c:344:21:
warning: implicit declaration of function 'time r_get_time'
[-Wimplicit-function-declaration]
uint64_t time = timer_get_time(s->timerDev);
^
/home/users/staff/tpeterson/sel4/beagle/apps/timer_server/src/device_timer.c:345:21:
error: request for member 'properties' in somet hing not a structure or
union
if (!s->timerDev->properties.upcounter) {
^
make[1]: ***
[/home/users/staff/tpeterson/sel4/beagle/stage/arm/am335x/common/common.mk:265:
src/device_timer.o] Error 1
make: *** [tools/common/project.mk:331: timer_server] Error 2
Todd Peterson
Chief Embedded Systems Engineer
Management Sciences, Inc.
6022 Constitution Ave NE
Albuquerque, NM 87144
505-255-8611 (office)
505-205-7057 (cell)
This email message and any attachments are for the sole use of the
intended recipient(s) and may contain proprietary and/or confidential
information which may be privileged or otherwise protected from
disclosure. Any unauthorized review, use, disclosure or distribution is
prohibited. If you are not the intended recipient(s), please contact the
sender by reply email and destroy the original message and any copies of
the message as well as any attachments to the original message.
Hello,
we're happy to announce the version 17.08 of the Genode OS Framework.
Within the last release cycle (3-months) we upgraded our Genode/seL4
support from kernel version 3.2.0 to 6.0.0, enabled x86_64 and ARM
support, added UEFI support to the seL4 kernel and enabled SMP for x86.
A summary of changes and features are:
- Hardware-accelerated graphics for Intel Gen-8 GPUs
- The seL4 6.0 kernel on ARM and 64-bit x86 hardware
- Genode as Xen DomU
- Preliminary UEFI support for NOVA, base-hw, and seL4
- New server for capturing reports to files
- New runtime for the sequential execution of components
- Support for boot-time initialized frame buffer
- FatFS-based VFS plugin
- Extended non-blocking operation of the VFS
- Refined time handling
- Updated Muen separation kernel
The long version of the official release documentation:
https://genode.org/documentation/release-notes/17.08
All the best,
--
Alexander Boettcher
Genode Labs
http://www.genode-labs.com - http://www.genode.org
Genode Labs GmbH - Amtsgericht Dresden - HRB 28424 - Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Hello,
we're are in progress of extending our Genode/seL4 support, namely
adding x86_64 and ARM support.
During this work I encountered on x86_64 some sporadically crashes of
the seL4 kernel. It happened during the debugging of our roottask on
seL4 in form of a page fault in the kernel ("KERNEL EXCEPTION") or a
static assertion in the kernel (see below).
>From my understanding, this shouldn't be possible based on your
verification work. Nevertheless, it happens reliable.
(To be fair, the roottask was in this scenario already a bit confused
and did things wrong - which however should never be enough to force the
kernel in an exception or assertion - I presume.)
I saved and stripped down the scenario which causes the kernel exception
with high reliably and hope you can re-produce it and find the root
cause. I stripped down the scenario to just the Genode image binary and
the steps we did to create the seL4 kernel from the vanilla sources.
Steps to reproduce:
qemu-system-x86_64 -no-kvm -serial stdio -m 512 -kernel sel4 -initrd
bomb_image.elf
The binaries of "bomb_image.elf" can be found at [1] and the kernel
"sel4" at [2].
The kernel is based on seL4 6.0 and a patch to pc99/autoconf.h (see
[0]). Beside that it is the vanilla 6.0 kernel:
https://github.com/seL4/seL4.git
git commit 8564ace4dfb622ec69e0f7d762ebfbc8552ec918
"update VERSION file to 6.0.0"
patch -p1 <~autoconfig.patch
BOARD=x86_64 ARCH=x86 SEL4_ARCH=x86_64 PLAT=pc99 DEBUG=1 make
objcopy -O elf32-i386 kernel.elf.strip sel4
(Qemu complains otherwise about 64bit elf for boot)
The final "sel4" binary can be used with the "bomb_image.elf" and qemu
as pointed out above.
I tried Qemu 2.5.0 as shipped with Ubuntu 16.04 LTS and Qemu 2.8.0
(self-compiled). On real hardware the scenario typically leads after a
while (kernel booted, roottask booted, scenario starts to run) to a
reboot (without the messages or assertion as in the Qemu case, see below).
The tool-chain for Genode is based on GNU GCC 6.3.0 (see [3] and [4]).
The kernel was either compiled with Genode's toolchain (6.3.0) or with
the standard GCC as provided by Ubuntu 16.04 LTS (GCC 5.4.0).
On x86_32 I could not reproduce the issue. (On ARM I did not try.)
I hope the information are helpful - if you need more just ask.
Cheers,
Alex.
========== KERNEL EXCEPTION ==========
Vector: 0xe
ErrCode: 0x0
IP: 0xffffffff80720e60
SP: 0xffffffff80740e08
FLAGS: 0x6
CR0: 0x8000003b
CR2: 0x3007065 (page-fault address)
CR3: 0x1ffb000 (page-directory physical address)
CR4: 0x220
Stack Dump:
*0xffffffff80740e08 == 0xffffff8001a99b00
*0xffffffff80740e10 == 0xffffffff80729b1f
*0xffffffff80740e18 == 0x1
*0xffffffff80740e20 == 0xffffffff80721c59
*0xffffffff80740e28 == 0xffffffff
*0xffffffff80740e30 == 0x0
*0xffffffff80740e38 == 0xffffff801f02b740
*0xffffffff80740e40 == 0xffffff801f02b740
*0xffffffff80740e48 == 0x1
*0xffffffff80740e50 == 0xffffff8001a99000
*0xffffffff80740e58 == 0x7
*0xffffffff80740e60 == 0x59
*0xffffffff80740e68 == 0xffffff8001a99b00
*0xffffffff80740e70 == 0xffffffff80729cf3
*0xffffffff80740e78 == 0x9000000000000007
*0xffffffff80740e80 == 0xffffff8001a99059
*0xffffffff80740e88 == 0xffffff80ffffffff
*0xffffffff80740e90 == 0xffffffff80740f18
*0xffffffff80740e98 == 0xffffff800013c200
*0xffffffff80740ea0 == 0x10000
Halting...
halting...
Kernel entry via Syscall, number: 1, Call
Cap type: 10, Invocation tag: 16
or
seL4 failed assertion
'(cte_t*)mdb_node_get_mdbNext(destSlot->cteMDBNode) == NULL &&
(cte_t*)mdb_node_get_mdbPrev(destSlot->cteMDBNode) == NULL' at
src/object/cnode.c:457 in function cteInsert
halting...
Kernel entry via Syscall, number: 1, Call
Cap type: 10, Invocation tag: 18
or a fault by the roottask (and not in the kernel). So - this is no
issue for the kernel:
Caught cap fault in send phase at address 0x0
while trying to handle:
vm fault on data at address 0x18 with status 0x4
in thread 0xffffff800013c200 "child of: 'rootserver'" at address 0x20419cf
[0]
https://github.com/alex-ab/genode/blob/crash_sel4_kernel_vanilla/autoconfig…
[1]
https://github.com/alex-ab/genode/raw/crash_sel4_kernel_vanilla/image_bomb.…
[2] https://github.com/alex-ab/genode/raw/crash_sel4_kernel_vanilla/sel4
[3] https://genode.org/download/tool-chain
[4] https://sourceforge.net/projects/genode/files/genode-toolchain/17.05/
--
Alexander Boettcher
Genode Labs
http://www.genode-labs.com - http://www.genode.org
Genode Labs GmbH - Amtsgericht Dresden - HRB 28424 - Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Hello to All,
I am trying to do some message passing between a vm component and a camkes
component.
I have tried by enabling the Vchan option on the build system and compiling
the helloworld linux user level program on a tk1. I received an error about
the /dev/vmm_manager not being able to open. What is the proper method of
setting up the Vchan communication for camkes-arm-vmm on a tk1?
Thank You
Dear,
I used "qemu-system-i386 -m 1024 -kernel images/kernel-ia32-pc99 -initrd images/capdl-loader-experimental-image-ia32-pc99"
It showed "Booting from ROM"
Thanks, Sincerely
------------------ Original ------------------
From: "devel-request";<devel-request(a)sel4.systems>;
Date: Thu, Aug 24, 2017 10:00 AM
To: "devel"<devel(a)sel4.systems>;
Subject: Devel Digest, Vol 39, Issue 26
Send Devel mailing list submissions to
devel(a)sel4.systems
To subscribe or unsubscribe via the World Wide Web, visit
https://sel4.systems/lists/listinfo/devel
or, via email, send a message with subject or body 'help' to
devel-request(a)sel4.systems
You can reach the person managing the list at
devel-owner(a)sel4.systems
When replying, please edit your Subject line so it is more specific
than "Re: Contents of Devel digest..."
Today's Topics:
1. Re: about camkesvm (Kofidoku.Atuah(a)data61.csiro.au)
----------------------------------------------------------------------
Message: 1
Date: Thu, 24 Aug 2017 00:00:19 +0000
From: <Kofidoku.Atuah(a)data61.csiro.au>
To: <devel(a)sel4.systems>
Subject: Re: [seL4] about camkesvm
Message-ID: <1503532819201.94096(a)data61.csiro.au>
Content-Type: text/plain; charset="iso-8859-1"
Hey Talos,
Sorry we didn't make this clearer on that page: those defconfigs build an x86-pc image; not an ARM image. Could you try running Qemu again, but with something similar to,
qemu-system-i386 -m <WHATEVER_RAM_SIZE_YOU_WANT> -kernel <SEL4_KERNEL_IMAGE> -initrd <CAPDL_INITRD_IMAGE>
And tell me what happens? Sorry for the inconvenience.
--
Kofi Doku Atuah
Kernel engineer
DATA61 | CSIRO
________________________________
From: Devel <devel-bounces(a)sel4.systems> on behalf of talos <2486580938(a)qq.com>
Sent: 22 August 2017 15:39
To: devel
Subject: [seL4] about camkesvm
Hi
I started the tutorial following the link:
https://wiki.sel4.systems/CAmkESVM
I used "make minimal_defconfig" substituting "make cma34cr_minimal_defconfig" for int the directory config there is minimal_defconfig
then make and qemu-system-arm -M kzm -nographic -kernel images/capdl-loader-experimental-image-ia32-pc99
but the error is
Segmentation fault (core dumped)
what's wrong? Thanks
Sincerely
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://sel4.systems/pipermail/devel/attachments/20170824/cd4992b3/attachmen…>
------------------------------
Subject: Digest Footer
_______________________________________________
Devel mailing list
Devel(a)sel4.systems
https://sel4.systems/lists/listinfo/devel
------------------------------
End of Devel Digest, Vol 39, Issue 26
*************************************