[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