Check-in [25d95f5859]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Genode 24.05 support: Adapt to changes in Genode: * we mainly need the -fconcepts GCC flag, now that Genode uses c++20 through and through, but that flag was already added in a recent commit ; Fixup regressions: * fix vnc_server support to make it work also in USE_DRV_MANAGER builds ; * fix platform_drv in static drivers builds ; -- TESTS -- * ran several tests, including vnc_server, all look good ; * will also attempt testing the new record_play_mixer again soon ;
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk | new-genode-rev
Files: files | file ages | folders
SHA1: 25d95f5859254ea1839b5b18a939b6e605de1a0f
User & Date: user 2024-06-25 19:20:46.634
Context
2024-06-28
11:27
(release: 24.2) Fixup adapting to Genode 24.05: * tweak grub config for 'novga' etc (was forgotten in the previous commit) ; Prepare record_play_mixer switch: * make note that record_play_mixer does work now (probably since we started using the -fconcepts Gcc flag ?), so the migration path from legacy mixer seems to re-open ; Tweak static quotas: * dial down nic_drv RAM quota some more ; -- TESTS -- * no regression observed, in nic_drv or otherwise, on M73 ; check-in: 5b46fdc23e user: user tags: release, trunk
2024-06-25
19:20
Genode 24.05 support: Adapt to changes in Genode: * we mainly need the -fconcepts GCC flag, now that Genode uses c++20 through and through, but that flag was already added in a recent commit ; Fixup regressions: * fix vnc_server support to make it work also in USE_DRV_MANAGER builds ; * fix platform_drv in static drivers builds ; -- TESTS -- * ran several tests, including vnc_server, all look good ; * will also attempt testing the new record_play_mixer again soon ; check-in: 25d95f5859 user: user tags: new-genode-rev, trunk
16:03
-- Try to enable BHttpRequest etc classes in Layer 9, for AC's benefit -- Enable newly added net-kit code: * add new files to kits/network/libnetapi/Jamfile ; * add new file to kits/shared Jamfile ; * add new files to kits/support Jamfile (needs a zlib ref in jamrules-pkg-versions) ; * restore full scope of HttpRequest.h ; -- ERRATA -- * File kits/network/libnetapi/NetworkRequest.cpp was *not* added verbatim, it already contained an #ifdef patch for sigaction() -- oh well... ; -- TESTS -- * the new net-kit code is not enough for retrieving https (SSL) NOAA files, in my testing of AC ; * on redirect to https we get B_SERVER_NOT_FOUND from BHttpRequest::_ProtocolLoop ; * didn't test retrieval of plain http files yet ; * we get new find_thread() warnings for some reason, now ; check-in: cf43ca291c user: user tags: trunk
Changes
Unified Diff Ignore Whitespace Patch
Changes to genode-haiku/ge-services/repos-gems-sculpt-drivers/pc.
35
36
37
38
39
40
41




42
43
44
45
46
47
48
		<default-policy> <child name="usb_drv"/> </default-policy> </service>

	<service name="Platform">
		<default-policy> <child name="platform_drv"/> </default-policy> </service>

	<service name="Gpu">
		<default-policy> <child name="dynamic"/> </default-policy> </service>





	<start name="report_rom">
		<resource name="RAM" quantum="2M"/>
		<provides> <service name="Report"/> <service name="ROM"/> </provides>
		<config verbose="no">
			<policy label="pci_decode -> system"            report="acpi_drv -> acpi"/>
			<policy label="platform_drv -> acpi"            report="acpi_drv -> acpi"/>







>
>
>
>







35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
		<default-policy> <child name="usb_drv"/> </default-policy> </service>

	<service name="Platform">
		<default-policy> <child name="platform_drv"/> </default-policy> </service>

	<service name="Gpu">
		<default-policy> <child name="dynamic"/> </default-policy> </service>

<!-- Inbound requests for 'Event': in HoG we also allow accessing event_filter (required by run_depot/vnc_server) -->
	<service name="Event">
		<default-policy> <child name="event_filter"/> </default-policy> </service>

	<start name="report_rom">
		<resource name="RAM" quantum="2M"/>
		<provides> <service name="Report"/> <service name="ROM"/> </provides>
		<config verbose="no">
			<policy label="pci_decode -> system"            report="acpi_drv -> acpi"/>
			<policy label="platform_drv -> acpi"            report="acpi_drv -> acpi"/>
Changes to genode-haiku/hai-src/apps/deskbar/_geDepotDaemon.inc.
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
	\		<service name=\"File_system\">	<child name=\"$(routing_server_for_depot)\"/> </service>
	\		<service name=\"Gui\">			<child name=\"wm\"/> <child name=\"nitpicker\"/>  </service>
	\		<service name=\"Audio_out\">	<child name=\"mixer\"/> </service>
	\		<service name=\"Play\">			<child name=\"mixer\"/> </service>
										#///later-2: audio-in support for Falkon etc (video-conferencing?):
	\		<service name=\"Audio_in\">		<child name=\"black_hole\"/> </service>
	\		<service name=\"Record\">		<child name=\"black_hole\"/> </service>
	\		<service name=\"Event\"> <child name=\"event_filter\" label=\"vnc\"/> </service>
	\		<service name=\"Report\" label=\"dynamic -> state\"> <child name=\"dynit_report_rom\"/> </service>
	\		<service name=\"Report\" label=\"depot_deploy -> state\"> <child name=\"dynit_report_rom\"/> </service>
		#///
	\		<service name=\"LOG\">  <child name=\"udp_log\"/> <child name=\"term_app_log\"/> <parent/>  </service>
	\		<service name=\"ROM\" label=\"depotdeploy.config\"> <child name=\"dynit_report_rom\" /> </service>
	\		<any-service> <parent/> <any-child/> </any-service>
	\	</route>







|







186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
	\		<service name=\"File_system\">	<child name=\"$(routing_server_for_depot)\"/> </service>
	\		<service name=\"Gui\">			<child name=\"wm\"/> <child name=\"nitpicker\"/>  </service>
	\		<service name=\"Audio_out\">	<child name=\"mixer\"/> </service>
	\		<service name=\"Play\">			<child name=\"mixer\"/> </service>
										#///later-2: audio-in support for Falkon etc (video-conferencing?):
	\		<service name=\"Audio_in\">		<child name=\"black_hole\"/> </service>
	\		<service name=\"Record\">		<child name=\"black_hole\"/> </service>
	\		<service name=\"Event\"> <child name=\"drivers_init\" label=\"vnc\"/> <child name=\"event_filter\" label=\"vnc\"/> </service>
	\		<service name=\"Report\" label=\"dynamic -> state\"> <child name=\"dynit_report_rom\"/> </service>
	\		<service name=\"Report\" label=\"depot_deploy -> state\"> <child name=\"dynit_report_rom\"/> </service>
		#///
	\		<service name=\"LOG\">  <child name=\"udp_log\"/> <child name=\"term_app_log\"/> <parent/>  </service>
	\		<service name=\"ROM\" label=\"depotdeploy.config\"> <child name=\"dynit_report_rom\" /> </service>
	\		<any-service> <parent/> <any-child/> </any-service>
	\	</route>
Changes to genode-haiku/hai-src/servers/registrar/_Ge_InitPilot.cpp.
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
}


BString hog::DeployPilot::genOneChildConf( const BStringList & arg_list )
{
	BString s;
	
	int priority = -1; ///ToDo-2: priority -2 for CPU-bound demos ?
	BString stripped_arg0;
	stripped_arg0 = arg_list.StringAt( 0 );  // e.g. "/boot/depot/genodelabs/pkg/nano3d/2023-11-24/runtime"
	
	if( stripped_arg0.StartsWith("/boot/depot/") )
		stripped_arg0.RemoveFirst( "/boot/depot/" );  // e.g. "genodelabs/pkg/nano3d/2023-11-24/runtime"
	else
		printf( "*** warning: deploypilot.genOneChildConf(): argv does not start with /boot/depot prefix: <%s>\n", stripped_arg0.String() );







|







398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
}


BString hog::DeployPilot::genOneChildConf( const BStringList & arg_list )
{
	BString s;
	
	int priority = -2;  // We need at least -1 (-2 is better) : think e.g. CPU-hungry GL-Gears in DeployPilot, versus AC in InitPilot...
	BString stripped_arg0;
	stripped_arg0 = arg_list.StringAt( 0 );  // e.g. "/boot/depot/genodelabs/pkg/nano3d/2023-11-24/runtime"
	
	if( stripped_arg0.StartsWith("/boot/depot/") )
		stripped_arg0.RemoveFirst( "/boot/depot/" );  // e.g. "genodelabs/pkg/nano3d/2023-11-24/runtime"
	else
		printf( "*** warning: deploypilot.genOneChildConf(): argv does not start with /boot/depot prefix: <%s>\n", stripped_arg0.String() );
Changes to genode-haiku/jam/jamrules-qemu.
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
	MakeLocate $(tmp_aliased_name) : /tmp/genode_mirrored_staticfiles ;
	SoftLink   $(tmp_aliased_name) : $(source_file) ;
}

# call these here so as to be called *once* (if we were calling this from within another rule, we'd be wasting time copying several times)
CopyStaticFile  drivers.config		: $(HoG_TOP)/ge-services/repos-gems-sculpt-drivers/pc ;  # was formerly found over at $(GenodeRepos)/gems/sculpt/drivers/pc
CopyStaticFile  event_filter.config	: $(GenodeRepos)/os/recipes/raw/drivers_interactive-pc/event_filter.config ;



#pragma mark - kinda-front-end -


rule AddMinimumComponents  runfile
{







|







518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
	MakeLocate $(tmp_aliased_name) : /tmp/genode_mirrored_staticfiles ;
	SoftLink   $(tmp_aliased_name) : $(source_file) ;
}

# call these here so as to be called *once* (if we were calling this from within another rule, we'd be wasting time copying several times)
CopyStaticFile  drivers.config		: $(HoG_TOP)/ge-services/repos-gems-sculpt-drivers/pc ;  # was formerly found over at $(GenodeRepos)/gems/sculpt/drivers/pc
CopyStaticFile  event_filter.config	: $(GenodeRepos)/os/recipes/raw/drivers_interactive-pc/event_filter.config ;
#///FIXME: vnc_server in USE_DRV_MANAGER mode: applied a field-expedient "patch" in the Genode(!) repo's "event_filter.config" file ; import that Genode file in HoG repo ? Or is it possible to "amend" the event_filter config at runtime?


#pragma mark - kinda-front-end -


rule AddMinimumComponents  runfile
{
590
591
592
593
594
595
596

597
598
599
600
601
602
603
		\		<resource name=\"RAM\"     quantum=\"230M\"   />
		\		<binary name=\"init\" />
		\		<provides>
		\			<service name=\"Block\"/>
		\			<service name=\"Platform\"/>  <!-- For acpica, nic_drv... -->
	#	\			<service name=\"Gpu\"/>
	#	\			<service name=\"Usb\"/>

		\		</provides>
			"
				# -- split string to dodge Jam crash --
			"
		\		<route>
		\			<service name=\"ROM\" label=\"config\"> <parent label=\"drivers.config\"/> </service>
		\			<service name=\"ROM\" label_last=\"managed/event_filter\">







>







590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
		\		<resource name=\"RAM\"     quantum=\"230M\"   />
		\		<binary name=\"init\" />
		\		<provides>
		\			<service name=\"Block\"/>
		\			<service name=\"Platform\"/>  <!-- For acpica, nic_drv... -->
	#	\			<service name=\"Gpu\"/>
	#	\			<service name=\"Usb\"/>
		\			<service name=\"Event\"/>  <!-- In HoG we also allow accessing event_filter (required by vnc_server, in 'run_depot' sibling) -->
		\		</provides>
			"
				# -- split string to dodge Jam crash --
			"
		\		<route>
		\			<service name=\"ROM\" label=\"config\"> <parent label=\"drivers.config\"/> </service>
		\			<service name=\"ROM\" label_last=\"managed/event_filter\">
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
	\		<binary name=\"pc_platform_drv\"/>
	\		<resource name=\"RAM\" quantum=\"6M\"/>
	\		<provides>
	\			<service name=\"Platform\"/>
	\		</provides>
	\		<route>
	\ 			<service name=\"LOG\"> $(LogOutput_Terminal_or_Serial) </service>
	\			<service name=\"ROM\" label=\"system\">	<child name=\"report_rom\"/> </service>
	\				<!-- feed a dummy 'sleep_states' here in static paradigm, it's only in USE_DRV_MANAGER mode that we'll (attempt to) support S3 suspend: -->
	\			<service name=\"ROM\" label=\"sleep_states\"> <child name=\"rom_filter\" label=\"sleep_states\"/> </service>
	\			<service name=\"ROM\" label=\"acpi\">	<child name=\"report_rom\"/> </service>  <!-- for pc_platform_drv to get 'acpi reset via such and such port' info -->
	\				<!-- careful with 'devices' ROM, if not present and set to 'report_rom', ahci_drv SILENTLY gets stuck -->
					# if I use rom_filter, PS/2 works but AHCI fails
					# if I use report_rom, AHCI works but PS/2 fails
					# Fixed! Was missing a "policy" in report_rom... (via rom_filter, which I now use):







|







779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
	\		<binary name=\"pc_platform_drv\"/>
	\		<resource name=\"RAM\" quantum=\"6M\"/>
	\		<provides>
	\			<service name=\"Platform\"/>
	\		</provides>
	\		<route>
	\ 			<service name=\"LOG\"> $(LogOutput_Terminal_or_Serial) </service>
	\			<service name=\"ROM\" label=\"system\">	<child name=\"platform_report_rom\"/> </service>
	\				<!-- feed a dummy 'sleep_states' here in static paradigm, it's only in USE_DRV_MANAGER mode that we'll (attempt to) support S3 suspend: -->
	\			<service name=\"ROM\" label=\"sleep_states\"> <child name=\"rom_filter\" label=\"sleep_states\"/> </service>
	\			<service name=\"ROM\" label=\"acpi\">	<child name=\"report_rom\"/> </service>  <!-- for pc_platform_drv to get 'acpi reset via such and such port' info -->
	\				<!-- careful with 'devices' ROM, if not present and set to 'report_rom', ahci_drv SILENTLY gets stuck -->
					# if I use rom_filter, PS/2 works but AHCI fails
					# if I use report_rom, AHCI works but PS/2 fails
					# Fixed! Was missing a "policy" in report_rom... (via rom_filter, which I now use):
Changes to genode-haiku/jam/jamrules-qemu-hog.
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
#			<service name="ROM" label="scrlock">  <child name="dynamic_rom"/> </service>



	AddBootModule $(runfile) : en_us.chargen ;
	AddBootModule $(runfile) : special.chargen ;
	SEARCH_SOURCE +=  $(GenodeRepos)/os/src/server/event_filter ;
#///ToDo-2: event_filter and VNC: when in $USE_DRV_MANAGER (driver_manager) mode we use its event_filter, which does *not* configure vnc_server input (regression)
if ! $(USE_DRV_MANAGER)
{
	AddComponentAsStart $(runfile) : 2M
		: event_filter : "name=\"event_filter\" caps=\"90\" priority=\"0\"" : "
	\		<provides> <service name=\"Event\"/> </provides>
	\		<config>
	\			<output>







<







178
179
180
181
182
183
184

185
186
187
188
189
190
191
#			<service name="ROM" label="scrlock">  <child name="dynamic_rom"/> </service>



	AddBootModule $(runfile) : en_us.chargen ;
	AddBootModule $(runfile) : special.chargen ;
	SEARCH_SOURCE +=  $(GenodeRepos)/os/src/server/event_filter ;

if ! $(USE_DRV_MANAGER)
{
	AddComponentAsStart $(runfile) : 2M
		: event_filter : "name=\"event_filter\" caps=\"90\" priority=\"0\"" : "
	\		<provides> <service name=\"Event\"/> </provides>
	\		<config>
	\			<output>