Compile error in Foundations book
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
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?
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?
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... [00;33m Library [0mldso-startup [00;33m Library [0mlibc-stdlib [00;33m Library [0mlibc-string [00;33m Library [0mlibc-locale [00;33m Library [0mlibc-inet [00;33m Library [0mlibc-stdio [00;33m Library [0mlibc-stdtime [00;33m Library [0mlibc-gdtoa [00;33m Library [0mlibc-regex [00;33m Library [0mlibc-gen [00;33m Library [0mlibc-setjmp [00;33m Library [0mlibc-compat [00;33m Library [0mlibc-mem [00;33m Library [0mlibc-resolv [00;33m Library [0mlibc-nameser [00;33m Library [0mlibc-isc [00;33m Library [0mmupdf_host_tools [00;33m Library [0mld [00;33m Library [0mlibc-rpc [00;33m Library [0mlibc-net [00;33m Library [0mbase [01;33m Program [0mapp/sequence/sequence [01;33m Program [0mserver/ram_fs/ram_fs [00;33m Library [0mvfs [01;33m Program [0mapp/fs_query/fs_query [00;33m Library [0mlibc [00;33m Library [0mzlib [00;33m Library [0mjpeg [00;33m Library [0mfreetype [00;33m Library [0mlibm [00;33m Library [0mlibpng [00;33m Library [0mopenjpeg [00;33m Library [0mjbig2dec [00;33m Library [0mmupdf [01;33m Program [0mapp/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 [0m [34mWarning: CPU has no invariant TSC.[0m CPU ID (genode->kernel:package:core:thread) remapping[0m remap (0->0:0:0:0) boot cpu[0m Hypervisor info page
Interesting paper on breaking down OS-abstractions
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
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'
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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