Re: Qt Virtualkeyboard example
Hi Johannes, On 26.07.2017 14:42, Johannes Kliemann wrote: > Hi, > > I tried to build the Qt Virtualkeyboard example. > I adapted the target.mk of the calculatorform example to point to the > correct project file. > Make fails at the project file at line 6 with missing separator. This > part contains the following: > > static { > QT += svg > QTPLUGIN += qtvirtualkeyboardplugin > } > > > Is there an additional flag required? Manually running qmake && make > works fine. the Genode build system does not run qmake, but includes the qmake project file as if it were a Makefile. This works well for simple project files, but if the project file uses qmake-specific syntax and these parts are relevant, they must be replaced with something that GNU make understands. In your case it would probably suffice to just delete the 'static {' line and the '}' line. The 'QT' variable gets evaluated in [1] and there's no svg support right now. A port of the Qt5Svg library would include the following new files: - repos/libports/lib/import/import-qt5_svg.mk - repos/libports/lib/mk/qt5_svg.mk - repos/libports/lib/mk/qt5_svg_generated.inc The 'QTPLUGIN' variable does not get evaluated in the 'target_final.inc' file right now. To do that, I think you would need to add each part of the variable content to the LIBS variable (prefixed with 'qt5_'), resulting in 'LIBS += qt5_qtvirtualkeyboardplugin' in your case, and then build the plugin as a shared library, similar to the 'qt5_qjpeg' library. I've attached the generated include files and a patch with the script used to generate the files, in case you need to change the configuration and regenerate them. Regards, Christian [1] https://github.com/genodelabs/genode/blob/master/repos/libports/src/app/qt5/tmpl/target_final.inc QT_DEFINES += -DQT_NO_FOREACH -DQT_NO_USING_NAMESPACE -DQT_BUILD_SVG_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x05 -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB QT_INCPATH += \ qtsvg/src/svg \ qtsvg/include \ qtsvg/include/QtSvg \ qtsvg/include/QtSvg/5.8.0 \ qtsvg/include/QtSvg/5.8.0/QtSvg \ qtbase/include/QtWidgets/5.8.0 \ qtbase/include/QtWidgets/5.8.0/QtWidgets \ qtbase/include/QtGui/5.8.0 \ qtbase/include/QtGui/5.8.0/QtGui \ qtbase/include/QtCore/5.8.0 \ qtbase/include/QtCore/5.8.0/QtCore \ qtbase/include \ qtbase/include/QtWidgets \ qtbase/include/QtGui \ qtbase/include/QtCore \ qtbase/mkspecs/genode-g++ QT_SOURCES += \ qsvggraphics.cpp \ qsvghandler.cpp \ qsvgnode.cpp \ qsvgstructure.cpp \ qsvgstyle.cpp \ qsvgfont.cpp \ qsvgtinydocument.cpp \ qsvgrenderer.cpp \ qsvgwidget.cpp \ qgraphicssvgitem.cpp \ qsvggenerator.cpp \ moc_qsvgwidget.cpp QT_VPATH += \ qtsvg/src/svg \ # some source files need to be generated by moc from other source/header files before # they get #included again by the original source file in the compiling stage # source files generated from existing header files ('moc_%.cpp: %.h' rule in import-qt5.inc) # extracted from 'compiler_moc_header_make_all' target COMPILER_MOC_HEADER_MAKE_ALL_FILES = \ moc_qsvgrenderer.cpp \ moc_qsvgwidget.cpp \ moc_qgraphicssvgitem.cpp # source files generated from existing source files ('%.moc: %.cpp' rule in import-qt5.inc) # extracted from 'compiler_moc_source_make_all' rule COMPILER_MOC_SOURCE_MAKE_ALL_FILES = \ QT_DEFINES += -DQT_VIRTUALKEYBOARD_DEFAULT_STYLE=\"default\" -DQT_VIRTUALKEYBOARD_DESKTOP -DQT_VIRTUALKEYBOARD_HAVE_XCB -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_PLUGIN -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NO_QML_DEBUGGER -DQT_NETWORK_LIB -DQT_CORE_LIB QT_INCPATH += \ qtvirtualkeyboard/src/virtualkeyboard \ qtdeclarative/include \ qtdeclarative/include/QtQuick \ qtbase/include/QtGui/5.8.0 \ qtbase/include/QtGui/5.8.0/QtGui \ qtbase/include \ qtbase/include/QtGui \ qtdeclarative/include/QtQml \ qtbase/include/QtNetwork \ qtbase/include/QtCore/5.8.0 \ qtbase/include/QtCore/5.8.0/QtCore \ qtbase/include/QtCore \ qtbase/mkspecs/genode-g++ QT_SOURCES += \ platforminputcontext.cpp \ inputcontext.cpp \ abstractinputmethod.cpp \ plaininputmethod.cpp \ inputengine.cpp \ shifthandler.cpp \ plugin.cpp \ inputmethod.cpp \ selectionlistmodel.cpp \ defaultinputmethod.cpp \ abstractinputpanel.cpp \ enterkeyaction.cpp \ enterkeyactionattachedtype.cpp \ settings.cpp \ virtualkeyboardsettings.cpp \ trace.cpp \ desktopinputpanel.cpp \ inputview.cpp \ appinputpanel.cpp \ qrc_default_style.cpp \ qrc_retro_style.cpp \ qrc_content.cpp \ qrc_layouts.cpp \ moc_platforminputcontext.cpp \ moc_inputcontext.cpp \ moc_abstractinputmethod.cpp \ moc_plaininputmethod.cpp \ moc_inputengine.cpp \
Re: Genode 17.05 dde_rump ISO filesystem
On 7/26/17 1:58 AM, Norman Feske wrote: > > thank you very much for reporting the issue. We indeed missed to adjust > the run script to the changes of the routing of the environment sessions > introduced earlier this year. I just fixed the problem with commit [1] > on the staging branch. May you try cherry-picking this commit? > > [1] > https://github.com/genodelabs/genode/commit/89642795a00a1ed3f404cb4a2e75a1ecfec93e90 Thanks for the quick (and instructive) patch -- tested and showing full success here. // Steve signature.asc Description: OpenPGP digital signature -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot___ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Re: Networking Support in VirtualBox
I have pulled the latest commit and have a new build created (still giving the same condition with no video on either VM window but GUI still works). The serial log output is below. Several items stand out that I can see. Assertion failed from [init -> vbox1] EMT,[init -> vbox2] EMT, and NAT driver is missing. This would stand to reason why the vboxes are failing if the NAT has no driver. The virtualbox run recipe has the nic_bridge enabled (because use_net and use_gui are both enabled) so for some reason there appears to be a missing component where it comes to the NAT driver. NOVA Microhypervisor v7-2006635 (x86_64): Jul 25 2017 11:23:13 [gcc 6.3.0] [MBI] [ 0] TSC:340 kHz BUS:0 kHz DL [ 0] CORE:0:0:0 6:9e:9:1 [48] Intel(R) Core(TM) i5-7500 CPU @ 3.40GHz [ 3] CORE:0:3:0 6:9e:9:1 [48] Intel(R) Core(TM) i5-7500 CPU @ 3.40GHz [ 2] CORE:0:2:0 6:9e:9:1 [48] Intel(R) Core(TM) i5-7500 CPU @ 3.40GHz [ 1] CORE:0:1:0 6:9e:9:1 [48] Intel(R) Core(TM) i5-7500 CPU @ 3.40GHz [ 0] disabling super pages for DMAR Hypervisor features VMX Hypervisor reports 4x1 CPUs CPU ID (genode->kernel:package:core:thread) remapping remap (0->0:0:0:0) boot cpu remap (1->1:0:1:0) remap (2->2:0:2:0) remap (3->3:0:3:0) Hypervisor info page contains 26 memory descriptors: core image [0010,02682000) binaries region [00226000,02682000) free for reuse detected physical memory: 0x - size: 0x0008ec00 use physical memory: 0x - size: 0x0008e000 detected physical memory: 0x0010 - size: 0xb2bfb000 use physical memory: 0x0010 - size: 0xb2bfb000 detected physical memory: 0xb3aff000 - size: 0x1000 use physical memory: 0xb3aff000 - size: 0x1000 detected physical memory: 0x0001 - size: 0x00013f80 use physical memory: 0x0001 - size: 0x00013f80 :virt_alloc: Allocator 0x1e76f0 dump: Block: [2000,3000) size=4K avail=0 max_avail=0 Block: [3000,4000) size=4K avail=0 max_avail=0 Block: [4000,5000) size=4K avail=0 max_avail=0 Block: [5000,6000) size=4K avail=0 max_avail=0 Block: [6000,7000) size=4K avail=0 max_avail=0 Block: [7000,8000) size=4K avail=0 max_avail=0 Block: [8000,9000) size=4K avail=0 max_avail=0 Block: [9000,a000) size=4K avail=0 max_avail=0 Block: [a000,b000) size=4K avail=0 max_avail=0 Block: [b000,c000) size=4K avail=0 max_avail=0 Block: [c000,d000) size=4K avail=0 max_avail=0 Block: [d000,e000) size=4K avail=0 max_avail=0 Block: [e000,f000) size=4K avail=0 max_avail=0 Block: [f000,0001) size=4K avail=0 max_avail=0 Block: [0001,00011000) size=4K avail=0 max_avail=0 Block: [00011000,00012000) size=4K avail=0 max_avail=0 Block: [00012000,00013000) size=4K avail=0 max_avail=0 Block: [00013000,00014000) size=4K avail=0 max_avail=137434760164K Block: [00014000,00015000) size=4K avail=0 max_avail=0 Block: [00015000,00016000) size=4K avail=0 max_avail=0 Block: [00016000,00017000) size=4K avail=0 max_avail=0 Block: [00017000,00018000) size=4K avail=0 max_avail=0 Block: [00018000,00019000) size=4K avail=0 max_avail=0 Block: [00019000,0001a000) size=4K avail=0 max_avail=908K Block: [0001a000,0001b000) size=4K avail=0 max_avail=0 Block: [0001b000,0001c000) size=4K avail=0 max_avail=908K Block: [0001c000,0001d000) size=4K avail=0 max_avail=0 Block: [0001d000,0010) size=908K avail=908K max_avail=908K Block: [00226000,00227000) size=4K avail=0 max_avail=0 Block: [00227000,00228000) size=4K avail=0 max_avail=137434760164K Block: [00228000,00229000) size=4K avail=0 max_avail=0 Block: [00229000,a000) size=2619228K avail=2619228K max_avail=2619228K Block: [b000,bfeff000) size=261116K avail=261116K max_avail=137434760164K Block: [bff04000,7fffbfffd000) size=137434760164K avail=137434760164K max_avail=137434760164K => mem_size=140736144932864 (134216446 MB) / mem_avail=140736144809984 (134216446 MB) :phys_alloc: Allocator 0x1e6620 dump: Block: [1000,2000) size=4K avail=0 max_avail=0 Block: [2000,3000) size=4K avail=0 max_avail=0 Block: [3000,4000) size=4K avail=0 max_avail=0 Block: [4000,5000) size=4K avail=0 max_avail=0 Block:
Qt Virtualkeyboard example
Hi, I tried to build the Qt Virtualkeyboard example. I adapted the target.mk of the calculatorform example to point to the correct project file. Make fails at the project file at line 6 with missing separator. This part contains the following: static { QT += svg QTPLUGIN += qtvirtualkeyboardplugin } Is there an additional flag required? Manually running qmake && make works fine. Regards, JK -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Re: Blocking wait for interrupt
Hi Sebastian, thanks for your answer. I tried to implement the relevant parts with Lx::Tasks. It seems to me that those Tasks are designed to run some kind of endless control flow. Beside this, I wasn't able to get an interrupt while blocking inside the task.Yet I'm not sure if I used the tasks correctly. Maybe I should try to explain how the driver is intended to work. It consists of two parts, a touch driver that is written natively for Genode and uses I2C to communicate with its controller. And a I2C driver for the controller that I try to port from Linux (drivers/i2c/busses/i2c-designware-core.(c|h)). The send method of the Linux driver is implemented as I described it in my first mail. This behaviour is only triggered if the send method is called and returns after the message is sent or the controller timed out. The return causes an unexpected return error in the task. Beside that the interrupt never occurs while the task is inside the Linux code. I'm not sure what I miss or how the Lx::Task should be used exactly in this case. Regards, JK Am 25.07.2017 um 12:52 schrieb Sebastian Sumpf: > Hi Johannes, > > On 07/25/2017 08:54 AM, Johannes Kliemann wrote: >> Hi, >> >> I'm currently writing a dde_linux driver that requires to wait for an >> interrupt to be handled. >> It basically initializes the hardware and then waits for an event to >> occur. This event is usually triggered by the interrupt (respectively >> its handler) which occurs after hardware initialization. >> My problem is that this interrupt doesn't appear while the function >> triggering it didn't return. So when this function blocks to wait for >> the interrupt, a deadlock is created. Besides using the timer I tried to >> block the execution with a semaphore creating the same problem. >> Creating an async version is no option due to the architecture of the >> Linux driver. >> >> How are interrupts handled in this case? What causes them to block and >> how can I work around this? >> > > If I gather your description correctly, you are executing Linux code > from the entrypoint context. If this code somehow blocks, lets say by > calling 'wait_event_interruptible' or something else, the EP cannot > receive signals, and therefore no interrupts. The solution to this > problem are 'Lx::Task'(s). All Linux code should be executed by these > tasks, which are able to block and can be unblocked by the EP upon > signal reception. A small example can be found under > 'dde_linux/src/drivers/framebuffer/intel/main.cc', there the Linux code > is executed by a task in 'run_linux', which is woken up by the > 'Policy_agent' signal handler. > > Regards, > > Sebastian > > P.S. I hope you are porting a driver and not writing one from scratch ;) > > > signature.asc Description: OpenPGP digital signature -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot___ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Re: Using Genode 17.05 with Fiasco.OC
Hi Jörg, unfortunately, I am unable to diagnose the vserver issue. > Ok. May I ask the recommended kernel for the following embedded board > Rpi/pandaboard/wand quad ? It looks like there is only Fiasco.OC, > because Fiasco.OC has ARM support, or? these boards are supported also by the so-called "base-hw" kernel, which is a custom kernel that is especially designed for Genode. It is described in detail in Section 7.7 of the "Genode Foundations" book [1]. [1] http://genode.org/documentation/genode-foundations-17-05.pdf There is also work in progress (planned for the upcoming release 17.08) to use the seL4 kernel on a wider variety of platforms including x86_64 and ARM. > This means, master is always stable ? I was expected that the tagged > version is a stable release version. The master branch is considered stable. It is updated from the staging branch not before staging passes our regular QA including a large suite of automated tests. A release is a snapshot of the master branch accompanied with documentation [2] that describes the rationale of the development during the release cycle. To learn more about the flow of development, please refer to Section 5.5 of the book mentioned above. [2] http://genode.org/documentation/release-notes/index Cheers Norman -- Dr.-Ing. Norman Feske Genode Labs http://www.genode-labs.com · http://genode.org Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Re: Genode 17.05 dde_rump ISO filesystem
Hi Steve, On 26.07.2017 02:24, Steven Harp wrote: > The ISO file system however left me a puzzle (trace below; default > caps line added to run file.) The same results appear under builds > x86_{32,64} x KERNEL={linux,nova}. > > Any ideas regarding what might be going wrong? The prepared test > image fs.iso appears to have the intended file "test.txt" on it. thank you very much for reporting the issue. We indeed missed to adjust the run script to the changes of the routing of the environment sessions introduced earlier this year. I just fixed the problem with commit [1] on the staging branch. May you try cherry-picking this commit? [1] https://github.com/genodelabs/genode/commit/89642795a00a1ed3f404cb4a2e75a1ecfec93e90 Cheers Norman -- Dr.-Ing. Norman Feske Genode Labs http://www.genode-labs.com · http://genode.org Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main