[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [MirageOS-devel] Mirage on Xen/ARM status
On 5 June 2014 21:29, Anil Madhavapeddy <anil@xxxxxxxxxx> wrote: > On 4 Jun 2014, at 13:33, Thomas Leonard <talex5@xxxxxxxxx> wrote: > >> An update on the Mirage/ARM port: >> >> I have mirage-platform upgraded to the new Mini-OS (plus openlibm and >> no libc). Networking is working again on x86_64 (I can telnet to the >> mirage-skeleton/network service and send it a message), but not on ARM >> yet. > > Good to have x86_64 back! It's probably a good idea to CC me and Dave > on the patchbombs to xen-devel, as I only sample the list these days > due to mail volume. > >> This required some changes to Mini-OS to expose the grant table >> details and to stop Mini-OS's xenbus from stealing the event >> notifications. I need this clean this up. > > To be clear, this is networking using lwIP on ARM isnt it? For Mirage, > the MiniOS Xenbus should be disabled entirely since our own OCaml > Xenstore will handle everything. By default, minios's event handler calls do_event on each event, and loops until they're all handled, so I had to disable that code. >> OCaml's Random currently tries to open /dev/urandom, which fails. >> Looks like it falls back to using gettimeofday in that case. It logs a >> message to the console ("Attempt to open(/dev/urandom)!"), so >> hopefully we'll remember to fix it eventually. > > Is this initialised forcibly anywhere, or only when someone calls > a Random.self_init()? We need to deprecate this module in Mirage and > ensure that we have a randomfront/back model, or risk introducing > poor entropy. This hasn't mattered so far, but will be critical when > we activate the OCaml TLS library that Hannes and David are working on. The TCP/IP stack seems to want it. >> Networking doesn't work on ARM as the code wants to use start_info, >> which doesn't exist. I might try making a fake start_info page on ARM >> rather than modifying everything else. > > Yep, sounds like a good plan to ease x86/ARM transition. Here are some instructions for testing the current version of everything (hacks and all!): To test Mirage on Xen/ARM: These instructions are for building on a soft-float ARM machine (or VM), running on the board itself. If you prefer, you can cross-compile Mini-OS and openlibm and copy the files across (the cross compiler can be hard-float or soft-float; use DESTDIR=... to stage the files): make XEN_TARGET_ARCH=arm32 CROSS_COMPILE=arm-linux-gnueabihf- However, it doesn't save much time and you still need to build the OCaml code on the machine itself. 1. Install libminios.a git clone -b arm-preview https://github.com/talex5/xen.git mini-os cd mini-os ./configure cd extras/mini-os make CONFIG_TEST=n CONFIG_XENBUS=n CONFIG_START_NETWORK=n CONFIG_BLKFRONT=n CONFIG_NETFRONT=n CONFIG_FBFRONT=n CONFIG_KBDFRONT=n CONFIG_CONSFRONT=n CONFIG_XC=n -j4 install 3. Get openlibm and install git clone https://github.com/JuliaLang/openlibm.git cd openlibm make install 4. Pin mirage-platform git clone -b arm-preview https://github.com/talex5/mirage-platform.git opam pin mirage-xen ./mirage-platform 5. Pin mirage-console git clone -b arm-preview https://github.com/talex5/mirage-console.git opam pin mirage-console-xen ./mirage-console 6. Pin mirage git clone -b arm-preview https://github.com/talex5/mirage.git opam pin mirage mirage 7. Build mirage-skeleton/console git clone git://github.com/mirage/mirage-skeleton.git cd mirage-skeleton/console opam install mirage mirage configure --xen make The next step is to get networking working on ARM. -- 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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |