[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [MirageOS-devel] Mirage on Xen/ARM status
That's pretty cool!!! Modifying the mirage's Makefile should be straightforward, look at https://github.com/mirage/mirage/blob/master/lib/mirage.ml#L1460 and feel free to ask if you have any question. Thomas On 16 May 2014, at 18:41, Thomas Leonard <talex5@xxxxxxxxx> wrote: > Good news for Mirage on Xen/ARM: mirage-skeleton/console is now working! > > It needs tidying up, but currently to run you need: > > 1. mirage-platform/arm-hacks3: > https://github.com/talex5/mirage-platform/tree/arm-hacks3 > > This has been updated for the new Mini-OS. dietlibc is gone (we no > longer need a C library). libm is also gone, but you'll need to > replace it with something else (see below). There's a new libxencaml > with the separated-out Mini-OS OCaml bindings. > > I had to make some changes to the Mirage API, because on ARM Xen > doesn't provide start_info. Also, I switched the timer stuff to use > mini-os's block_domain call, which handles ARM correctly. > > 2. mirage-console/master (modified to avoid using start_page) > https://github.com/talex5/mirage-console/commits/master > > 3. openlibm/arm-hacks (disables all long double support, which ARM > doesn't have and OCaml doesn't need) > https://github.com/talex5/openlibm/tree/arm-hacks > > 4. Mini-OS/devel (can now be installed as a library, libminios.a - use > "make install-ocamlfind") > https://github.com/talex5/xen/tree/devel > > > You'll also need a *soft-float* ARM build machine. Hard-float would > require extra support from Mini-OS. You can cross-compile the C code > easily enough, but OCaml can't cross compile, even from armhf to armel > (the -ffpu option just gives a silly error message). I got mine with: > > debootstrap --arch armel testing /mnt > > Finally, you'll also need to modify mir-console's Makefile, because I > didn't update mirage to generate it properly. This worked for me: > > KERNEL_DIR = $(shell ocamlfind query minios-kernel) > PLATFORM_DIR = $(shell ocamlfind query mirage-xen) > > build: main.native.o > ld -d -static -nostdlib -T $(KERNEL_DIR)/link.lds \ > --start-group \ > /usr/lib/gcc/arm-linux-gnueabi/4.8/libgcc.a \ > $(PLATFORM_DIR)/libocaml.a \ > $(PLATFORM_DIR)/libxencaml.a \ > ~/lib/libopenlibm.a \ > $(KERNEL_DIR)/libminios.a -o mir-console.elf \ > _build/main.native.o \ > --end-group > objcopy -O binary mir-console.elf mir-console.xen > > The next steps are to make this all a bit easier to install and clean > up the branches so they can be merged. Also, some things are broken > (printf doesn't accept %f, for example, because we're just using > Mini-OS's version). > > > -- > Dr Thomas Leonard http://0install.net/ > GPG: 9242 9807 C985 3C07 44A6 8B9A AE07 8280 59A5 3CC1 > GPG: DA98 25AE CAD0 8975 7CDA BD8E 0713 3F96 CA74 D8BA > > _______________________________________________ > MirageOS-devel mailing list > MirageOS-devel@xxxxxxxxxxxxxxxxxxxx > http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel _______________________________________________ MirageOS-devel mailing list MirageOS-devel@xxxxxxxxxxxxxxxxxxxx http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |