genodelabs / genode-world Goto Github PK
View Code? Open in Web Editor NEWCollection of community-maintained components for Genode
License: Other
Collection of community-maintained components for Genode
License: Other
I tried to adjust this last minute and didn't test it properly on real hardware.
$ ./tool/ports/prepare_port uhexen2
uhexen2 download http://downloads.sourceforge.net/project/uhexen2/Hammer%20of%20Thyrion/1.5.6/Source/hexen2source-1.5.6.tgz
Error: Download for uhexen2 failed
My new AMT machine should get here today or tomorrow, but in the meantime, I've been using this to test scenarios on real hardware.
This is only rfc1350 (1992), so the maximum supported file size is 32MB. Eventually the block size option from later versions will need to be implemented.
Requires genodelabs/genode#1888
https://github.com/vurtun/nuklear
Nuklear is a "minimal state immediate mode graphical user interface toolkit", which struck me as a potential alternative to Qt for writting small Genode apps. I was able to create a simple Nitpicker backend without much effort, but there are a few problems that need to be addressed before it can be a viable option for GUIs.
If we look at rendering to a framebuffer, things are simple, Nuklear positions its own windows and provides things like resizing and minimize with its own controls, so think of it as something like an SDL application that manages its own dialogs. The only issue here is that some of the drawing primatives are missing, like drawing lines and polygons.
For Nitpicker it gets tricky, the backend draws all of the GUI elements but because it is minimal state there is no window metada present for the backend to use to create the proper views. By rendering when all the window drawing commands have been collected, but before leaving a window context, the size of a window is available and a Nitpicker view can be place appropriately. Drawing a multiple window becomes difficult because it is hard to determine the lifetime of the preceding windows.
Another problem is that some window dialogs will draw outside the bounds of the window, but the information isn't present to make a new view for the dialog that overlaps with the window view.
I made a mockup of a configuration utility for setting screen resolution, but as you can see, the combo boxes do not work because they render beyond the window view boundry, and successive widgets are not blitted properly with previous widgets.
It was fun getting it to work, but my question now is, considering the alternatives, is this an experiment worth continuing? (Not to take priority over other, more pressing projects of course)
I've written a Google Authenticator compatible password generator as a VFS plugin.
Implementing the generator as a special file was the most generic way I could think of to do it. This allows the generator to be used most anywhere, you can cat it with Noux, you can serve the file over http, you can use it programmatically anywhere you can read files.
Tested with Github and a few other services.
LINK tftp_rom
component.o: In function `Tftp_rom::Session_component::~Session_component()':
/home/krishna/tmp/genode-world.git/src/server/tftp_rom/component.cc:159: undefined reference to `udp_remove'
/home/krishna/tmp/genode-world.git/src/server/tftp_rom/component.cc:162: undefined reference to `pbuf_free'
component.o: In function `Tftp_rom::Session_component::finalize()':
/home/krishna/tmp/genode-world.git/src/server/tftp_rom/component.cc:96: undefined reference to `pbuf_free'
[...]
This is a pretty simple component, it intercepts file system session requests and changes the root based on the label. Handy for directing many low trust subsystems to a common server.
This is a Nix support component that is also general purpose.
I'm not too happy about the current state of the driver itself (see the Todo section in the README) but it is lurking around on my disk for far too long now. Since I don't see me addressing the todo items soon, let's get it out there and maybe someone will give it a shot ☺.
In any case, the driver supports the most common gamepads (Xbox360/One and Playstation DS3/DS4) and works fine with e.g. libretro.
In genodelabs/genode#2199, we simplify the component-startup procedure, which requires minor adjustments of components.
Forwards ROM requests to a list of label prefixes, returning the first successful session.
The simplest and most immediate use case would be to try and load ROMs from kernel memory before falling back to an instance of fs_rom, saving memory and load time.
I would rather have a generic session fallback component, but it wasn't worth the effort of creating different root components at runtime without using templates. This is probably best implemented at the parent, but I think the first thing to do is just to see how useful fallbacks are for the ROM service.
I threw in new game too.
Tftp_rom is not freeing the session dataspace at session destruction.
Server to duplicate log streams, see README.
This is a simple component I made for remapping joystick and gamepad buttons.
Libraries for connection with database PostgreSQL server
I've decided my emulator work can be merged into this repository. Audio is not working, or atleast it is not accurate at non-native sampling rates, which is not a problem for the Pi.
I've included two run scenarios with homebrew games on the NES and SNES, both with audio disabled.
The Libretro explanation: https://www.libretro.com/index.php/api/
ping @cnuke
I have a draft of a component that captures packets and saves them to file in the pcapng format. Its not quite finished but I'll open the issue now in case I forget about it, and ping it when I'm done.
Program drivers/sd_card/spec/zynq/sd_card_drv
COMPILE main.o
/home/krishna/tmp/genode-world.git/src/drivers/sd_card/spec/zynq/main.cc:20:20: fatal error: driver.h: No such file or directory
#include <driver.h>
^
compilation terminated.
make[2]: *** [main.o] Error 1
make[2]: Target `all' not remade because of errors.
make[1]: *** [sd_card_drv.prg] Error 2
Library config
Program drivers/i2c/spec/zynq/zynq_i2c_drv
COMPILE main.o
In file included from /home/krishna/tmp/genode-world.git/src/drivers/i2c/spec/zynq/main.cc:25:0:
/home/krishna/tmp/genode-world.git/src/drivers/i2c/spec/zynq/driver.h:90:3: error: ‘I2C0_MMIO_BASE’ is not a member of ‘Genode::Board_base’
{Genode::Board_base::I2C0_MMIO_BASE, Genode::Board_base::I2C_MMIO_SIZE},
^
/home/krishna/tmp/genode-world.git/src/drivers/i2c/spec/zynq/driver.h:90:39: error: ‘I2C_MMIO_SIZE’ is not a member of ‘Genode::Board_base’
{Genode::Board_base::I2C0_MMIO_BASE, Genode::Board_base::I2C_MMIO_SIZE},
^
/home/krishna/tmp/genode-world.git/src/drivers/i2c/spec/zynq/driver.h:91:3: error: ‘I2C1_MMIO_BASE’ is not a member of ‘Genode::Board_base’
{Genode::Board_base::I2C1_MMIO_BASE, Genode::Board_base::I2C_MMIO_SIZE},
^
/home/krishna/tmp/genode-world.git/src/drivers/i2c/spec/zynq/driver.h:91:39: error: ‘I2C_MMIO_SIZE’ is not a member of ‘Genode::Board_base’
{Genode::Board_base::I2C1_MMIO_BASE, Genode::Board_base::I2C_MMIO_SIZE},
^
/home/krishna/tmp/genode-world.git/src/drivers/i2c/spec/zynq/driver.h:92:1: error: could not convert ‘{<expression error>, <expression error>}’ from ‘<brace-enclosed initializer list>’ to ‘I2C::Driver::I2C_bank’
};
^
/home/krishna/tmp/genode-world.git/src/drivers/i2c/spec/zynq/driver.h:92:1: error: could not convert ‘{<expression error>, <expression error>}’ from ‘<brace-enclosed initializer list>’ to ‘I2C::Driver::I2C_bank’
The chroot server needs an update for changes to Session_label and the Component API.
This is a long term project, but I would like to be able to generate sound from arbitrary system events. Right now my thought is to regex LOG sessions and generate events that can be fed to a synthesizer or something that can play back samples.
I did a bit of research and Chuck seems like the best choice for generating sound, I think the next step would then perhaps to make an OSC session to feed it events with.
I will be porting Chuck when I have the time, unless anyone has a better idea.
I don't use this, and I'm not sure anyone else does, but better it bitrot here than in the dark.
Update for base and Input API changes, pass mouse events full-speed to improve usability.
Menno Valkema contributed a port of mbed TLS (formerly PolarSSL).
This has been around for a while, but I've started using it again recently.
http://simul.iro.umontreal.ca/testu01/tu01.html
I mentioned this on the mailing list a while back but left it in my private repo.
I'm not sure what this is good for, but it can trigger the problem I reported in genodelabs/genode#2215
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.