[Barrelfish-users] requesting for Help
Reto Achermann
reto.achermann at inf.ethz.ch
Wed Apr 4 08:51:29 CEST 2018
Dear Ben,
please always write to the list. Answers inline below.
-- Reto
On 04/03/2018 11:33 AM, ben eslami wrote:
> Dear Reto
> I am so sorry to email you directly, but I've stuck in a bad situation.
> I understand what you said about running an app on Barrelfish, but there
> are still some problems.
>
> 1- I wrote a Hakefile in 'usr/example/xmpl-hello/Hakefile' like this:
> [ build application {target = {"examples/xmpl-hello", cFiles =
> ["hello.c"] } }
seems good to me.
>
> 2- I need to tell Hake to include this when building the Makefile. It
> means I have to add the created Hakefile to 'platforms/Hakefile' in
> order to automatically build the app. So the problem is where should I
> put the address of the created Hakefile in 'platform/Hakefile' ? There
> are several fields and I can see the address of the created Hakefile in
> field 'modules_xmpl'. So I assume there is no need to add anything in
> 'platform/Hakefile'. and run '../hake/hake.sh -s .. -a x86_64' in build dir.
Yes, you are right, if you use examples/xmpl-hello, this is already
added in modules_xmpl. The command for runnin hake is fine too. Yous
should be able to do make x86_64/sbin/examples/xmpl-hello now.
In general, for new modules, you can add just them to 'modules_x86_64'.
(for x86_64)
> 3- Weh I run '../hake/hake.sh -s .. -a x86_64' , there is a Makefile
> appeared in build directory. I can see the path
> './x86_64/usr/examples/xmpl-hello/_for_app_examples/xmpl-hello/hello.o'
> and other similar paths for hello.s and hello.o.depend inside Makefile.
> So I assume the app is ready to be built. Now I run 'make -j 4 X86_64_Basic'
Not exactly, when you look at the platform directive in the
platforms/Hakefile, you see that the 'modules_xmpl' are part of the
X86_64_Full. So you need to run make X86_64_Full in order to build the
examples.
>
> 4-Now in this stage, I look for built/platform/x86/menu.lst.x86_64, but
> there is nothing there until I run 'make qemu_x86_64'. I realized that
> menu.lst is built after running 'make qemu_x86_64'. So I open
> 'built/platform/x86/menu.lst.x86_64' and add 'module >
/x86_64/usr/examples/xmpl-hello/_for_app_examples/xmpl-hello/hello.o.depend'.
No, you need to add the targets as defined in the hake file.
module /x86_64/sbin/examples/xmpl-hello
Also note, that make qemu_x86_64 will only build the modules defined in
modules_x86_64 and modules_generic.
>
> I understand your instructions as like above but I got nothing. I
> was wondering if you could explain in more detail please.
>
> Regards,
> Ben
>
>
> On Mon, Apr 2, 2018 at 11:44 PM, Reto Achermann
> <reto.achermann at inf.ethz.ch <mailto:reto.achermann at inf.ethz.ch>> wrote:
>
> Dear Ben,
>
> When you like run something on Barrelfish a few things need to be in
> place
>
> 1) You need to write a Hakefile, which contains the target to be
> built and how it is built.
>
> 2) Then you need to tell Hake to include this when building the
> Makefile, This is done by re-running hake. After this step you can
> actually type 'make x86_64/sbin/<target>' assuming you want to build
> it for x86.
>
> 2) In order to have it build automatically when you type 'make
> X86_64_Basic' or 'make qemu_x86_64' you need to add it to the list
> of targets in platforms/Hakefile.
>
> 3) You need to tell grub or qemu to load your binary. For this you
> will need to add it to the menu.lst used by grub or qemu. In case of
> qemu, its located in $build/platforms/x86/ (again for x86 platforms)
>
> 4) then your program will either run directly after Barrelfish has
> booted or you can type <target> in Fish.
>
> -- Reto
>
>
>
> On 02/04/18 18:58, ben eslami wrote:
>
> There is some examples in usr/examples/. As a first step, I want
> to run xmpl-hello.
> -what I should do is first I should introduce xmpl-hello to
> Hakefile in platform/Hakefile, but I can see "modules_xmpl" that
> contains all of examples including xmpl-hello. So I assume there
> is no need to add xmpl-hello to the Hakefile. Am I right or not?
> - The second thing I should do is to add "module
> build/x86_64/sbin/examples/xmpl-hello" to
> build/platform/x86/menu.lst.x86_64, but there is nothing in
> build/x86_64/sbin/examples. Should I copy examples from
> usr/examples to build/x86_64/sbin/examples ??
>
> Could anyone pleeeaase help me ?
>
> On Mon, Apr 2, 2018 at 4:13 PM, ben eslami
> <beneslami72 at gmail.com <mailto:beneslami72 at gmail.com>
> <mailto:beneslami72 at gmail.com <mailto:beneslami72 at gmail.com>>>
> wrote:
>
> Hi
> Can anyone please help me to run "hello world" in BarrelFish?
> I think the tutorial is not up to date.
>
> Thanks
>
> On Sat, Mar 17, 2018 at 6:13 PM, ben eslami
> <beneslami72 at gmail.com <mailto:beneslami72 at gmail.com>
> <mailto:beneslami72 at gmail.com
> <mailto:beneslami72 at gmail.com>>> wrote:
>
> -in the file platform/Hakefile, there are some
> sections. In section of
> modules_common, I should add the following line
> "/sbin/examples/xmpl-hello", but in section
> modules_xmpl, the mentioned
> line exists. Is this correct or I should add in the
> sections of
> "modules_common" and "modules_x86_64"
>
> -in the file build/platform/x86/menu.lst.x86_64, I
> added the following
> line " module /x86_64/sbin/examples/xmpl-hello in the
> General user
> domain section.
>
> "../hake/hake.sh -s .. -a x86_64" and "make -j 4
> X86_64_Basic" are run
> without error. But "make qemu_x86_64" encounters this
> error:
> Failed to open file 'x86_64/sbin/examples/xmpl-hello
>
> what should I do now ?
>
> On Sat, Mar 17, 2018 at 3:00 PM, Joel Busch
> <buschjo at student.ethz.ch <mailto:buschjo at student.ethz.ch>
> <mailto:buschjo at student.ethz.ch
> <mailto:buschjo at student.ethz.ch>>> wrote:
>
> Hello Ben
>
> This is actually one I can help with I think,
> because I ran into
> some of the same roadblocks.
>
> symbolic_targets.mk <http://symbolic_targets.mk>
> <http://symbolic_targets.mk> does no longer
> exists, instead you can add modules to the file
> platforms/Hakefile
> there are different sections just make sure you use
> the one that's
> generic or the one specific to the architecture you
> want to run on.
>
> The menu.lst is now platform specific and you can
> either change the
> one generated during hake in
> build/platforms/<arch>/menu.ls <http://menu.ls>
> <http://menu.ls>t.<plat> or the one that is read
> during the hake
> process in hake/menu.lst.<plat>, in your case
> <arch> is x86 and
> <plat> is x86_64.
>
> And yes the make target sim doesn't exist anymore
> and qemu_x86_64 is
> what you want to use instead.
>
> Best Regards,
> Joel Busch
>
>
> On 17.03.2018 11:10, ben eslami wrote:
>
> Dear folks,
> -after booting Barrelfish, I tend to run "hello
> world". According
> to
> "http://wiki.barrelfish.org/Programming_for_Barrelfish
> <http://wiki.barrelfish.org/Programming_for_Barrelfish>
>
> <http://wiki.barrelfish.org/Programming_for_Barrelfish
> <http://wiki.barrelfish.org/Programming_for_Barrelfish>>",
> To get
> Hake to include a target for the hello world
> program in the
> generated Makefile, we must first add the
> target to the
> symbolic_targets.mk <http://symbolic_targets.mk>
> <http://symbolic_targets.mk> file, located in
> the build directory. But I don't have this
> file. should I create
> it first?
>
> -Suppose I created "symbolic_targets.mk
> <http://symbolic_targets.mk>
> <http://symbolic_targets.mk>" in build/ , then
> I did
> "../hake/hake.sh -s .. -a x86_64" in build/
> directory. After
> this, i run "make -j 8 X86_64_Basic" to compile
> Hello World file.
> But fir I should append "module
> /x86_64/sbin/examples/xmpl-hello"
> in menu.lst, but I don't see any file named
> menu.lst either.
> Should I create this first also ?
>
> -After all of these, I should run make sim.
> Does this mean that I
> should run "make qemu_x86_64?
>
> Thank you
>
>
>
>
> _______________________________________________
> Barrelfish-users mailing list
> Barrelfish-users at lists.inf.ethz.ch
> <mailto:Barrelfish-users at lists.inf.ethz.ch>
> <mailto:Barrelfish-users at lists.inf.ethz.ch
> <mailto:Barrelfish-users at lists.inf.ethz.ch>>
> https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users
> <https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users>
>
> <https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users
> <https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users>>
>
>
>
> _______________________________________________
> Barrelfish-users mailing list
> Barrelfish-users at lists.inf.ethz.ch
> <mailto:Barrelfish-users at lists.inf.ethz.ch>
> <mailto:Barrelfish-users at lists.inf.ethz.ch
> <mailto:Barrelfish-users at lists.inf.ethz.ch>>
> https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users
> <https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users>
>
> <https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users
> <https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users>>
>
>
>
>
>
>
> _______________________________________________
> Barrelfish-users mailing list
> Barrelfish-users at lists.inf.ethz.ch
> <mailto:Barrelfish-users at lists.inf.ethz.ch>
> https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users
> <https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users>
>
>
--
Reto Achermann,
http://people.inf.ethz.ch/acreto
More information about the Barrelfish-users
mailing list