Compile error in Foundations book

2022-06-10 Thread Guido Witmond
Hi Norman,

I spotted a compile error in the Foundations book.

Page 33 section
   void _handle_timeout()
   {
 log("woke up at ", _timer.elapsed_ms(), " ms");
   }
/home/user/genode/repos/lab/src/app/hello/main.cc:15:5: error: ‘log’ was not 
declared in this scope; did you mean ‘Genode::log’?

I guess this is an oversight as it is the first example that's worth copy/paste 
and try out..


Cheers, Guido.

PS. I've restarted my Genode experiments, this time with my APU4. I hope to 
turn it into a simple edge router for my home network... When it works I want 
to do a genodians blog on it.


___
Genode users mailing list
users@lists.genode.org
https://lists.genode.org/listinfo/users


Goa introduction breaks

2020-02-25 Thread Guido Witmond

Hi Norman,

I'm running the goa Hello-example from the genodians page 
https://www.genodians.org/nfeske/2019-11-25-goa



However, I got this error at the goa run step:

$ goa run
Error: runtime lacks a configuration

You may declare a 'config' attribute in the  node, or
define a  node inside the  node.

I fixed it by adding a  node in pkg/hello/runtime. ie:



...


You might want to update the genodians page so it keeps working for others.


Cheers, Guido.


___
Genode users mailing list
users@lists.genode.org
https://lists.genode.org/listinfo/users

Re: race-condition in ram_fs and fs_query?

2019-05-20 Thread Guido Witmond

Hi All,

Reading release-notes 18.08 it states that RAM_FS and VFS are supposed 
to be equal.


However, I don't get any errors when I replace my ram_fs config with 
this vfs:





  








It perfectly reports the filename and contents in the report_rom. :-)



Now the next step: create a dynamic ROM to start the pdf_view component 
on demand. Any pointers to run files that help me get going?


Cheers, Guido.



On 5/20/19 1:27 PM, Guido Witmond wrote:

Hi Genodians,

I'm working on my HnH19-project to create a component listening on a 
shared filesystem to open each pdf file into a separate instance of 
mupdf. Goal is to tie the share to a linux-vm in vbox so firefox and 
thunderbird can have a simple 'cp' command to get pdfs rendered outside 
that vm.


I add a RAM-FS, FS-QUERY and REPORT-ROM to mupdf.run. The file gets put 
in the ram-fs, fs-query should pick that up and report it to the 
report-rom.


     
     
     
       
     
     
     
     

     
     
     
    


     
     

     
     
     
       
     
     
     

I change the test-scenario to copy a pdf into the share and start the 
pdf-viewer. The viewer picks up the pdf and renders it. So far so good.



The problem is that while the 'add'-test copies the file, it gets 
detected by fs_query but fs_query thinks it's gone:


[init -> test -> add] --- noux started ---
[init -> fs_query] Error: failed to watch '//foo.pdf'
[init -> fs_query] Warning: could not obtain content of nonexistent file 
foo.pdf


(The error comes from gems/vfs.h L556, the warning from fs_query/main.cc 
L80.)


Fs_quey does send a new report but does not show the file, it show an 
empty directory.


[init -> report_new_pdf] report 'fs_query -> listing'
[init -> report_new_pdf]   
[init -> report_new_pdf]    
[init -> report_new_pdf]   

However, a ls -laR shows it's there:

[init -> test -> ls-after] /dest:
[init -> test -> ls-after] total 1
[init -> test -> ls-after] drwxr-xr-x 0 root 0    0 Jan  1 00:00 .
[init -> test -> ls-after] drwxr-xr-x 0 root 0    0 Jan  1 00:00 ..
[init -> test -> ls-after] -rwxrwxrwx 0 root 0 8192 Jan  1 00:00 foo.pdf


Now the race condition:

When I set the fs-query option to show the content to "no", it gives the 
same error: failed to watch '//foo.pdf' but it now it does send the file 
name to the report:


[init -> report_new_pdf]    


So it seems that somehow that fs_query watch learns there is a file 
while the contents are not yet committed. Accessing that triggers a 
file-not-found error.


Did I discover a race condition or am I doing something wrong?


With regards, Guido.

PS. I added the complete run-file and logs for completeness. (log-1 
shows the contents-flag to no).

PPS. I'm testing with Qemu in a linux VM on my AMD nixos host.

___
Genode users mailing list
users@lists.genode.org
https://lists.genode.org/listinfo/users




___
Genode users mailing list
users@lists.genode.org
https://lists.genode.org/listinfo/users

race-condition in ram_fs and fs_query?

2019-05-20 Thread Guido Witmond

Hi Genodians,

I'm working on my HnH19-project to create a component listening on a 
shared filesystem to open each pdf file into a separate instance of 
mupdf. Goal is to tie the share to a linux-vm in vbox so firefox and 
thunderbird can have a simple 'cp' command to get pdfs rendered outside 
that vm.


I add a RAM-FS, FS-QUERY and REPORT-ROM to mupdf.run. The file gets put 
in the ram-fs, fs-query should pick that up and report it to the report-rom.





  








   








  




I change the test-scenario to copy a pdf into the share and start the 
pdf-viewer. The viewer picks up the pdf and renders it. So far so good.



The problem is that while the 'add'-test copies the file, it gets 
detected by fs_query but fs_query thinks it's gone:


[init -> test -> add] --- noux started ---
[init -> fs_query] Error: failed to watch '//foo.pdf'
[init -> fs_query] Warning: could not obtain content of nonexistent file 
foo.pdf


(The error comes from gems/vfs.h L556, the warning from fs_query/main.cc 
L80.)


Fs_quey does send a new report but does not show the file, it show an 
empty directory.


[init -> report_new_pdf] report 'fs_query -> listing'
[init -> report_new_pdf]   
[init -> report_new_pdf]
[init -> report_new_pdf]   

However, a ls -laR shows it's there:

[init -> test -> ls-after] /dest:
[init -> test -> ls-after] total 1
[init -> test -> ls-after] drwxr-xr-x 0 root 00 Jan  1 00:00 .
[init -> test -> ls-after] drwxr-xr-x 0 root 00 Jan  1 00:00 ..
[init -> test -> ls-after] -rwxrwxrwx 0 root 0 8192 Jan  1 00:00 foo.pdf


Now the race condition:

When I set the fs-query option to show the content to "no", it gives the 
same error: failed to watch '//foo.pdf' but it now it does send the file 
name to the report:


[init -> report_new_pdf]


So it seems that somehow that fs_query watch learns there is a file 
while the contents are not yet committed. Accessing that triggers a 
file-not-found error.


Did I discover a race condition or am I doing something wrong?


With regards, Guido.

PS. I added the complete run-file and logs for completeness. (log-1 
shows the contents-flag to no).

PPS. I'm testing with Qemu in a linux VM on my AMD nixos host.
including /home/guido/genode/tool/run/power_on/qemu
including /home/guido/genode/tool/run/log/qemu
including /home/guido/genode/tool/run/image/iso
including /home/guido/genode/tool/run/boot_dir/nova
including /home/guido/genode/repos/mupdf-gw/run/mupdf-gw.run
building targets:  app/pdf_view server/ram_fs app/fs_query app/sequence 
spawn make app/pdf_view server/ram_fs app/fs_query app/sequence
make[1]: Entering directory '/home/guido/genode/build/qemu_x86_64'
checking library dependencies...
  Library ldso-startup
  Library libc-stdlib
  Library libc-string
  Library libc-locale
  Library libc-inet
  Library libc-stdio
  Library libc-stdtime
  Library libc-gdtoa
  Library libc-regex
  Library libc-gen
  Library libc-setjmp
  Library libc-compat
  Library libc-mem
  Library libc-resolv
  Library libc-nameser
  Library libc-isc
  Library mupdf_host_tools
  Library ld
  Library libc-rpc
  Library libc-net
  Library base
  Program app/sequence/sequence
  Program server/ram_fs/ram_fs
  Library vfs
  Program app/fs_query/fs_query
  Library libc
  Library zlib
  Library jpeg
  Library freetype
  Library libm
  Library libpng
  Library openjpeg
  Library jbig2dec
  Library mupdf
  Program app/pdf_view/pdf_view
make[1]: Leaving directory '/home/guido/genode/build/qemu_x86_64'
genode build completed
checking configuration syntax
  CHECK init
using 'core-nova.o' as 'core.o'
install bootloader
creating ISO image...
xorriso 1.4.2 : RockRidge filesystem manipulator, libburnia project.

spawn qemu-system-x86_64 -no-kvm -display sdl -cpu core2duo -m 1536 -serial mon:stdio -cdrom var/run/mupdf-gw.iso -machine q35
warning: TCG doesn't support requested feature: CPUID.01H:EDX.vme [bit 1]
Bender: Hello World.

NOVA Microhypervisor v8-6ea1179 (x86_64): Apr 23 2019 21:58:39 [gcc 6.3.0] [MBI2]



[ 0] TSC:3211945 kHz BUS:1005565 kHz (measured)

[ 0] CORE:0:0:0 6:f:b:0 [0] Intel(R) Core(TM)2 Duo CPU T7700  @ 2.40GHz

Hypervisor reports 1x1 CPU 

Warning: CPU has no invariant TSC.

CPU ID (genode->kernel:package:core:thread) remapping

 remap (0->0:0:0:0) boot cpu

Hypervisor info page 

Interesting paper on breaking down OS-abstractions

2019-05-03 Thread Guido Witmond

Hi Genodians,

Today I came across this paper[1] on the slowdown from POSIX and other 
kernel abstractions. It offers the notion of a parakernel to break down 
the monolithic kernel and take kernel abstractions out of the data path.


It seems that Genode, although not a parakernel, is quite well adapted 
to this. Not by accident, I think ;-)




It's discussed at [2]

1: https://penberg.org/parakernel-hotos19.pdf
2: https://news.ycombinator.com/item?id=19818899

___
Genode users mailing list
users@lists.genode.org
https://lists.genode.org/listinfo/users

genodians content

2019-02-07 Thread Guido Witmond

Hi Genodians,

I've written some pages[1] in the style of Nix-pills[2] but on the 
subject of Genode.


Please review and give me your feedback. When its good enough, I ask 
Genode Labs to publish it on genodians.


1: https://github.com/gwitmond/genodian/
2: https://nixos.org/nixos/nix-pills/index.html

___
Genode users mailing list
users@lists.genode.org
https://lists.genode.org/listinfo/users

Error: hammer ABI contains Genode-internal symbol '__bss_start'

2019-01-09 Thread Guido Witmond

Dear Genodians,

I'm back at learning how to do packaging.

By following the developer-resources/porting_libraries guide, I ported 
the Hammer parser combinator library into a Genode port [1]. It builds 
and runs a simple test. (commit 665e71d).


Now I want to make it a depot package. I copied the structure from 
libports/expat and adapted it. I have a recipes/{api,src}/content.mk 
(commit XX)


I created the lib/symbols/hammer file by

! tool/abi_symbols bin/hammer.lib.so

Then I run the build:

! ~/genode/tool/depot/create guido/bin/x86_64/hammer UPDATE_VERSIONS=1
  FORCE=1 KEEP_BUILD_DIR=1

It starts good:
! created guido/api/base/2018-11-23
! created guido/api/hammer/2019-01-08
! created guido/api/libc/2018-11-26
! created guido/src/hammer/2019-01-08-a

However, I get this error during the compile of hammer.
! MERGEhammer.lib.so
! Error: hammer ABI contains Genode-internal symbol '__bss_start',
! Error: hammer ABI contains Genode-internal symbol '__eh_frame_start__'
all from the symbol_blacklist defined in check_abi.

It ends with this error: recipe for target 'hammer.lib.checked' failed


So where did I go wrong?



(Maybe this is an item for the list of missing documentation).


1: https://github.com/gwitmond/genode-hammer-library

___
Genode users mailing list
users@lists.genode.org
https://lists.genode.org/listinfo/users

Re: Roadmap 2019

2018-12-24 Thread Guido Witmond

Hi Norman and the whole Genode team,


First, I recognize the feeling that you are enthusiastic about your work 
and nobody seems to care. And how devastating that can feel.


I know that feeling from my attempt at designing and promoting my 
authentication protocol that (I believe) could decimate most phishing 
and identity theft attacks. I got so disappointed at the lack of 
response that I disabled web statistics so I didn't have to see how 
little visitors my site got. Now I've more or less given up on it.


Yet every time I see a news article about phishing or stolen (and 
abused) passwords I'm reminded that I came up with something that could 
have (helped to) prevent it.



Second, it's hard to create a new platform from scratch. As a rule of 
thumb, for any new invention it takes roughly 15 years from invention to 
market-readyness. So far, Genode Labs succeeded where others gave up. 
Thanks for not giving up.



Third, it's very hard to bring innovation into the IT-world. The IT 
community is very conservative.


Sandboxing to contain viruses is something that HP-Labs did 15 years ago 
for Windows XP [1]. Regrettably HP didn't succeed in selling it widely. 
Just last week, Microsoft has added a sandbox to Win10 in an attempt to 
contain malware.


An example of the conservatism: I explained some ideas of Genode 
(micro-kernel, sandboxing, separation, pola) to a 30yo manager of a 
software development company that advertised itself for writing secure 
software. He found the ideas interesting but did not want to spend time 
to research it. Not even reading on the topic. He said it was "academic 
stuff that eventually shows up in Linux". I couldn't convince him that 
it might be a good idea to be ahead of the curve. He was risk averse, as 
are most IT-people. Genode needs to find people willing to take a risk 
and reap the reward.


Every time I read about crypto malware holding a user or company hostage 
for ransom I'm reminded that had they used Genode it could have (helped 
to) prevent it.


I believe there is a huge market out there. The difficulty is getting 
there. I hope my answers to this mail give some ideas how to proceed.




Now about your goals and questions:

> 1) Widening the audience of Sculpt OS
> Consequently, we should improve its ease of use.

For me a 1000 times this.

To me, the learning curve of Genode is steep. The learning curve of 
(changing) Sculpt is steep too. Although I know most of the concepts of 
the platform, I find it still hard to develop in. Lately I went deep 
into changing the configuration of Virtualbox in Sculpt. What should be 
a few hours took me more than a week. And the result was still hacky :-(


Although there are many examples, I'd like to see them listed from 
simple to complex, each explaining a concept of Genode, builing on top 
of the previous ones. It could grow into a Genode for Dummies.


Other wish: please describe how I can enable all kinds of debugging 
modes. For example, when I make a XML syntax error in an init.config, 
the app doesn't start but the log remains quiet.


Other example, at one point I added printf-logging to init-components to 
trace the routing decisions so I could check that my config was correct. 
It would be great if there was a config option for that.



> 2) Fostering the community spirit around our project

I think you have a nice (but small) community already, with your team 
ready to answer any question quicky. Just keep doing that.


You've seen my recent write-up on adding a raw partition to virtualbox 
in Sculpt. I thought of making it a blog so others can learn from it 
too. (I'm not sure if that example makes a nice showcase of the ease of 
Sculpt :-).



> 3) Marketing of Genode-based products

I like the idea of cross-promotion between Genode and some companies 
that use it. Put some showcases on your site. Perhaps with a small 
testimonial from each company why they chose Genode.


Given the impossibility of convincing (conservative) people why Genode 
is better than their current system, don't focus on technical details. 
Instead focus on concrete benefits for (end) users:

- safe by design;
- protects privacy;
- little errors do not become catastrophes;
- robust against malware;
- no need for regular updates;
- updates don't break existing functionality;
- easy to use, also for non-computer users (see my dream system below).


> * What are your ambitions for 2019?

I still have my wish for running Genode on my server, running a 
webserver for static and dynamic content. I ran a static web site on 
Genode a few years ago. It lasted a week until it crashed due to a 
resource leak, (memory, VFS-file descriptors). I could not debug it, so 
the box runs Linux again.


I'd like to run a (small) dynamic web site on it. I.e. start with a blog 
and comments section and private messaging. For parsing I use the a 
composable parser generator such as the Hammer library [2] from the 
Langsec [3] community. I think 

Re: Experiences with Sculpt VC

2018-12-18 Thread Guido Witmond

Hi Norman,

Thanks for your quick and clear response.


On 12/18/18 12:03, Norman Feske wrote:


For the secondary disk, the Sculpt manager needs these components only
for the discovery, the inspection, or to perform disk operations. But if
none those operations are performed, there is no part_blk or file-system
component running.


I wonder why the manager did start my vm-nixos when part_blk became 
available but decided to kill it when the inspector closes. It knows 
there is a dependency.





With this approach, you won't need to rely on any side effect of the
Sculpt manager's built-in policy. Note however, that the inspection or
management of the secondary disk is not expected to work as long as
"manual_ahci-1.part_blk" is deployed. The AHCI-1 disk can be used by
only one component at a time.


Bummer, I had in mind to dedicate that secondary partition to the 
vm-nixos with a policy and leave the rest to Sculpt.


But first, I'll give your suggestion a try. I'll probably learn a lot again.

(Or I'll give the whole disks to the VM, that's what I want in my 
desktop environment, eventually. ZFS loves whole disks.)


Cheers, Guido.


___
Genode users mailing list
users@lists.genode.org
https://lists.genode.org/listinfo/users

Experiences with Sculpt VC

2018-12-17 Thread Guido Witmond

Hi Genodians,


I've been playing with Sculpt VC again. Doing so thought me a lot more 
about routing.



This time I succeeded in creating a VM with partitions on two SATA 
disks. It runs Nixos inside with the /home partition on an encrypted ZFS 
mirror. (and the root partition on a virtual disk, just like the Debian VM).


When I want to start the VM and the ahci-1.part_blk is not running, the 
Runtime manager reports with a diagnostic stating vm-nixos needs 
ahci-1.part_blk. To start my vm, I inspect a different partition on that 
disk. That starts the part_blk and Runtime starts my VM.


So far so good. The problems start here:

1. When the VM runs and I stop inspecting that partition, the Runtime 
manager kills my VM.


The manager was happy to start my VM when the resource came available 
but does not keep the part_blk alive when the inspector stops.


2. When the VM runs (and has a session to the part_blk for that 
partition, I can format that partition from the Storage component. I get 
data corruption errors in ZFS on that disk. (But ZFS lives on and 
repairs it from the other mirror).


That seems to be in violation of The Book para 4.5.8:
   """The part-block component requests a single block session,
  parses a partition table,
  and hands out each partition as a separate block session to its 
clients.

  There can be one client for each partition.
   """

I would expect that the formatter would get an error because it should 
not get a session to that partition.



Could someone shine a light on what's going on?

The log file is here: https://paste.wtmnd.nl/xfNMa3yY

I wrote a full write-up of my sculpting here: 
https://paste.wtmnd.nl/WKUQowg2 -- I intend to make it a blog post for 
others to learn from, hence the writing style.



Regards, Guido.

___
Genode users mailing list
users@lists.genode.org
https://lists.genode.org/listinfo/users

Explicit routing

2018-09-02 Thread Guido Witmond

Hi Genodians,

I'm stuck with service routing. When I use the default routes the 
hello-application works. When I remove the default and create explicit 
routes for the ROM-service these fail. Here's my writeup:


I added this line to repos/os/src/init/child.cc:
  Init::Child::resolve_session_request(
  +  log("child \"", name(), "\" resolves \"",
service_name, "\" label [", label, "]");

It logs which child is resolving what service and label. With default 
routing, I get this output (for ROMs) in make run/hello:


Genode 18.05-203-gf4ea50c6f 
[init] child "hello_client" resolves "ROM" label [hello_client]
[init] child "hello_client" resolves "ROM" label [ld.lib.so]
[init] child "hello_server" resolves "ROM" label [hello_server]
[init] child "hello_server" resolves "ROM" label [ld.lib.so]
[init] child "hello_server" resolves "ROM" label [hello_server -> config]
[init] child "hello_client" resolves "ROM" label [hello_client -> config]
[init] child "hello_server" resolves "ROM" label [hello_server -> 
session_requests]

...
[init -> hello_client] hello test completed

So far so good.

However, when I take out the  entry and add explicit 
routes to hello.run for the hello-client serivce:


  
  
  
  
  
  
  
 


 
  

I get these errors: (skipping things that go well)

[init] child "hello_client" resolves "ROM" label [hello_client]
[init] Warning: hello_client: no route to service "ROM"
[init] Error: hello_client: ROM environment session denied
...
[init] child "hello_client" resolves "ROM" label [ld.lib.so]
[init] Warning: hello_client: no route to service "ROM"
[init] Error: hello_client: ROM environment session denied
...
Makefile:312: recipe for target 'run/hello' failed

What's happening here?
Why are my explicit routes to the labels I find in the first log not 
working?

How can I make explicit routes work for these services?


Cheers, Guido.

___
Genode users mailing list
users@lists.genode.org
https://lists.genode.org/listinfo/users

Re: scupt-tc real hardware: 0/3

2018-07-06 Thread Guido Witmond

On 07/06/2018 03:44 PM, Paul Dufresne wrote:
I have built the run/demo on Nova, burn the demo.iso on a CD, and tried 
it on my Dell Optiplex 745.

Does reboot in loop too.

I am considering making a program that just loop to stop the reboot loop. :)


Hi Paul,

I've ran the boot loop on my Optiplex 380 and got this output. Hope it 
helps you diagnose your problem.


# cu -s 115200 -l /dev/ttyS0
Connected.
Bender: Hello World.
framebuffer at [b8000+b8fa0) 80x25@16
warning - unknown framebuffer type
framebuffer at [b8000+b8fa0) 80x25@16
warning - unknown framebuffer type

NOVA Microhypervisor v7-9b24eb4 (x86_64): Jun 12 2018 22:09:48 [gcc 
6.3.0] [MBI2]


cu: Got hangup signal

Disconnected.


Cheers, Guido.

___
Genode users mailing list
users@lists.genode.org
https://lists.genode.org/listinfo/users

Re: scupt-tc real hardware: 0/3

2018-07-05 Thread Guido Witmond

On 07/05/2018 07:57 PM, Paul Dufresne wrote:
Oh well, I am like a returning Genode user, for almost ... one and an 
half year I guess.


I am glad to see that there is now an image (a USB one... I would guess 
it would not work on a DVD?).


I have downloaded it yesterday, and tried it on 3 computers (2 almost 
the same: Dell Optiplex 745, not sure the other is a 745 too).
One of the two is my own computer, and I have try many BIOS config, but 
it does always do the same:
show the Logo, screen become black for about 7 secs... then it reboots 
and loop.


Hi Paul,


Welcome back ;-)

I noticed the same boot loop on a Dell Optiplex 380. This one is so old 
it has a serial and parallel port. The serial port showed me some boot 
lines and if I remember correctly it was something about missing video 
card before the reboot. If someone wants, I can capture that serial log 
and hardware specs.


I'm not sure if the GMA 4500 video chip is supported by Genode, if you 
have an old VESA video card lying around, you might have some more luck 
on the Dell.


I ran Sculpt on a 6 year old Sandy Bridge Pentium (G620) with built-in 
video chip, that runs great, after some trouble with network and usb. 
Genode likes my Intel gbit Nic better than the RTL 8111/8169. I got some 
spurios hangs on the latter.


It also booted on my AMD Ryzen 5 system but it did not detect SATA 
drives. Nor did virtualisation work. Both Vbox and Seoul hang. Better 
than I expected but not usable yet.



Hope this encourages you to keep going on with Genode :-)

Cheers, Guido.

___
Genode users mailing list
users@lists.genode.org
https://lists.genode.org/listinfo/users

Re: Need help understanding packaging

2018-07-04 Thread Guido Witmond

On 07/03/2018 02:55 PM, Norman Feske wrote:


As far
as documenting the process of creating a 'content.mk' file goes, it is
not easy to find a useful level of detail.


I know. Writing good documents is hard. I hope my experiences help you 
find a base level of detail. Perhaps Genode Labs could curate a set of 
example files, rated from simple to complex and referred to in the 
documentation. That would certainly have helped me.



Question: do you foresee that third party developers place their git
source in repos/ like I did or in depot/ and
bypassing that recipes/hash/content.mk part.


Similar to hosting a symbolic link '/repos/feather', you may in
principle host a symbolic link in '/depot/guido/src/feather',
pointing to your source tree. I admittedly haven't tried this but you
may give it a try. Note, however, that the publish step would archive
the entire content of the directory. So it might be preferable to have a
tool (makefile) in place to assemble the content.


Although helpful, that was not the answer I was expecting. I wanted your 
vision on whether third parties should create their repositories like 
genode/repos/ complete with a recipe to transform it into a 
depot//... structure or to skip the genode/repos part entirely and 
use a depot//../ structure as base of development? The 
latter would save a lot of documenting :-)




4. I did a depot/build guido/bin/x86_64/feather/2018-06-30 KEEP_BUILD_DIR=1
That gave me this error:
   Makefile: 131: *** "g++ version 6.3.0 is required, we got
   /usr/bin/g++".


This is strange. Have you successfully built one of Genode's binary
archives, e.g., guido/bin/x86_64/report_rom? If this works, what is the
difference between your src archive and report_rom's? By any chance, do
you happen to have an 'etc/' or 'mk/' directory in your archive? This
shouldn't be.


I found the source of this problem. I fat-fingered the x86_64 as x84_64. 
That gave the error. When I transcribed the command line from my VM (I 
could not copy-paste), I 'corrected' it in my previous mail to you. 
Sorry about that confusion.


Cheers, Guido.

___
Genode users mailing list
users@lists.genode.org
https://lists.genode.org/listinfo/users

Re: Need help understanding packaging

2018-07-01 Thread Guido Witmond

On 06/27/2018 03:36 PM, Norman Feske wrote:

Hi Norman,

Here's my experiences with packaging my app.

1. As I'm in the role of system integrator (not genode developer), I 
originally placed my feather-package in genode/projects/feather and 
added that path to REPOSITORIES in genode/build/x86_64/etc/build.conf. 
While that works for the make run/feather mechanism, it does not work 
for the packaging. That requires the source code in 
genode/repos/feather. It's in the manual but was my first stumbling block.


2. I needed to add the content.mk as well as the hash file to my recipes
directory to make the depot/create work. Without either I got the error:
"incomplete or missing recipe (guido/src/feather). It's probably in the
book but the error message is quite vague. A message "missing
file/repo//recipes/src//hash" would be more
helpful. I'll add it after I get the hang of the packaging system (to
prevent adding stuff that's not needed).

3. The part where I found the documentation lacking was the description 
of the content.mk file. The documentation did not lead me to a working 
version. Ultimately, I copied the one from gems/.../depot_deploy and 
adapted it.


After that depot/create worked. It gave me a depot/guido/src/feather 
directory with the same structure as my repo/feather.


Question: do you foresee that third party developers place their git 
source in repos/ like I did or in depot/ and 
bypassing that recipes/hash/content.mk part.



4. I did a depot/build guido/bin/x86_64/feather/2018-06-30 KEEP_BUILD_DIR=1
That gave me this error:
  Makefile: 131: *** "g++ version 6.3.0 is required, we got
  /usr/bin/g++".

I added that last part to builddir/build.mk to diagnose what compiler 
ran. It seems that this code in 
depot/guido/bin/build/etc/tools.conf expects SPECS to be 
just x86_64 while specs.conf contains: SPECS += genode x86_64

ifeq ($(filter-out $(SPECS),x86_64),)
CROSS_DEV_PREFIX ?= /usr/local/genode-gcc/bin/genode-x86-
endif
It left CROSS_DEV_PREFIX unset, falling back to the compiler in $PATH.

Is this a bug or did I miss something?


5. Setting export CROSS_DEV_PREFIX=/usr/local/.../genode-x86- by hand 
made the build get further. I got these errors.

"Library-description file libc.mk is missing."
(And so for libc_lwip.mk, libc_lwip_nic_dhcp.mk and posix.mk).
Here the error message is correct but lacks the hint to add the 
dependencies to used_apis in the previous step.


6. After setting the dependencies in used_apis, and running create 
again, I get this error at build:

checking library dependencies...
Skip target feather because it requires
libc_support_for_your_target_platform
created guido/bin/x84_64/feather/2018-07-01-b

The libc_support... 'target' suggests that it can't determine the 
platform. Is that the SPECS += genode x86_64 bug again?


Yet it did create a that directory it specfied but it's empty and 
further invocations of build happily tell me that there is everything is 
up to date. I expect it would not make that directory or retry builing 
until it has more deliverables.



Hope my feedback helps you to improve Genode.

Cheers, Guido.

___
Genode users mailing list
users@lists.genode.org
https://lists.genode.org/listinfo/users

Re: Need help understanding packaging

2018-06-25 Thread Guido Witmond

On 06/25/2018 10:44 PM, Guido Witmond wrote:

But I get stuck with making it into a depot-package. I lack the clarity 
of what the next steps are.


I forgot to mention that I read the book and the articles on the site 
and I think I know the abstract of it but I lack the concrete steps.


What I think I know know:
- I have to make the directory into a SRC-package
- From there I do a build to get BIN package
- That I copy to a webroot and point my testbox to it.

Hope this clarifies where I'm stuck.

Cheers, Guido.

___
Genode users mailing list
users@lists.genode.org
https://lists.genode.org/listinfo/users

Need help understanding packaging

2018-06-25 Thread Guido Witmond

Hi Genodians,

I've got this little project for a web service[1]. It works as a 
run-script and even boots as disk image on my intel box. *)


It's fast. It serves a file at 40MBytes/second and only 5 ms latency 
between connecting to it and the first bytes on a Gbps LAN. Although 
that file was served from memory, half the speed of the LAN without any 
tuning is promising!


But I get stuck with making it into a depot-package. I lack the clarity 
of what the next steps are.


My subgoals:
1. make it a depot-package;
2. make it configurable by user;
3. replace ragel parser[2] with hammer library[3] as a dependency.

How could I proceed with these steps? Is there an example run-script to 
package conversion I could follow?


Cheers, Guido.



1: github.com/gwitmond/feather
2: https://www.colm.net/open-source/ragel/
3a: https://github.com/UpstandingHackers/hammer
3b: http://www.langsec.org/

*) Sculpt runs fine on AMD's Ryzen too, except for SATA, virtualisation.

___
Genode users mailing list
users@lists.genode.org
https://lists.genode.org/listinfo/users

Re: My experience with the official release of Sculpt TC

2018-06-22 Thread Guido Witmond
I forgot to sent this to the list for everyone, not just the spooks who 
tapped the line ;-)


On 06/21/2018 01:51 PM, Norman Feske wrote:

Hi Guido,


thanks for the report and the log. I have a faint suspicion.



could you please give the following image a try?

   http://genode.org/files/nfeske/sculpt-2018-06-21.img


Hi Norman,

Your hunch was correct, this image runs the expand process correctly on
my 'bad' stick. I ran it three times just to make sure, both in usb2 and
usb3 sockets. All good.

Other news:
1. I noticed that the debian iso-download on this 06-21 image was
jittery, stopping the now-counter for a second every few MBs. Is that an
effect of these patches?

2. With the old (sculpt-tc) image, the debian download sometimes hang
with what looked like a filesystem lockup. I could not save the
config/deploy, nor exit vim. Other processes seemed unaffected. Is that
lockup to be expected from the old code?

It could also have been a memory error I encountered with memtest. But
that was transient. I could not pinpoint it to a single DIMM, nor did it
occur any time after that. Perhaps this iron is getting old and flaky.

Anyway, thanks for the patch.

I've attached the log.

Cheers, Guido.




log-expand-ok-on-img-2018-06-21
Description: Binary data
___
Genode users mailing list
users@lists.genode.org
https://lists.genode.org/listinfo/users

Re: My experience with the official release of Sculpt TC

2018-06-14 Thread Guido Witmond

On 06/14/2018 08:22 PM, Norman Feske wrote:


thanks for the report and the log. I have a faint suspicion.

Are you able to reproduce the error with the "bad" USB stick, or is
there only a one-off chance to see it? If the error is reproduceable,
could I send you a disk-image link for testing?


Hi Norman,

I've tried again with the same stick and the hang is reproducable, as 
well as the trigger to restart by plugging a different stick as well.


I installed sculpt-tc on that newer stick, booted it and the expand 
worked first time!


Thanks for your offer for a debugging image but I think I don't need it 
anymore. If you want to test your suspicion, I can run it with the bad 
stick and provide you the log.


Thanks for the push to try again. Now the download-errors

Cheers, Guido.


___
Genode users mailing list
users@lists.genode.org
https://lists.genode.org/listinfo/users

My experience with the official release of Sculpt TC

2018-06-14 Thread Guido Witmond

Hi Genodians,


I tried this version too.

It has some visual differences:
- the network-section has these buttons: Off, Local, Wired. While the 
18.05 version had Off, Wired, Wifi. There is no mention of Local in the 
Sculpt article.


The Expand option of the GENODE-partition hang at first with an error:


[runtime -> usb-1-2.part_blk] Error: Block-session creation failed 
(ram_quota=4208640, cap_quota=5, tx_buf_size=4194304, label="")
[runtime -> usb-1-2.part_blk] Error: Uncaught exception of type 
'Genode::Service_denied'


When I plugged in a second USB-stick, the resize proces restarted and 
delivered a bootable resized stick.


In case you're interested, I attached the LOG of that session.

Cheers, Guido.


log-hanging-resize
Description: Binary data
___
Genode users mailing list
users@lists.genode.org
https://lists.genode.org/listinfo/users

my Sculpt Early Adopters experiences

2018-06-08 Thread Guido Witmond

Hi Genodians,

Last week I've played with the Sculpt EA system. It looks great. And 
with the new booting code, it runs on my hardware.


It boots on my old Gigabyte H67MA-USB3-B3 mobo with a Pentium G620 
processor and 16 GB RAM. I didn't connect any Sata disks yet. Built-in 
Intel video to VGA and DVI-D display. No RS232 output, regrettably.
(Another box, a DELL optiplex 360 PC, does do RS232 after grub but lacks 
recognised display adapter and reboots).



My experiences:

Things that work:
- booting, OK;
- Leitzentrale OK;
- Disk, network and debug log OK;
- live reconfiguration of display from VGA to DVI OK;
- wired network config OK; however the system does not respond to ping;
- Deploy backdrop OK, 2048 game OK, noux OK.

After that I had some less luck.

- Some downloads seem to hang. It could either be out of RAM (config), 
or a lost packet that is not detected.
  I'm using the RAM-disk that gets to 64MB in size. (I remember, but 
could not reproduce) it going to 128MB


- Expanding the GENODE-partition on the USB-stick makes it unbootable. 
The system can't find and start Grub anymore. This happened repeatable 
both with a Kingston 8GB USB2 stick as well as with a Sandisk 32GB USB3 
stick.


I haven't been able to test the virtual machine with debian payload due 
to the download errors.


Questions:
- is there a way to send the debug log via ethernet?
- did I miss some configuration settings that made the downloads get stuck?


Cheers, Guido.

___
Genode users mailing list
users@lists.genode.org
https://lists.genode.org/listinfo/users