diff --git a/ports/run/noux_net_netcat.run b/ports/run/noux_net_netcat.run index 1a95cb0bb..395558707 100644 --- a/ports/run/noux_net_netcat.run +++ b/ports/run/noux_net_netcat.run @@ -5,13 +5,21 @@ if {[have_spec linux]} { set build_components { core init - drivers/timer drivers/uart drivers/nic drivers/pci + drivers/timer drivers/pci + server/tcp_terminal + server/nic_bridge noux/net lib/libc_noux noux-pkg/netcat } -lappend_if [have_spec acpi] build_components drivers/acpi -lappend_if [have_spec pci] build_components drivers/pci/device_pd +set use_usb_driver [expr [have_spec omap4] || [have_spec exynos5]] +set use_nic_driver [expr !$use_usb_driver] + +lappend_if $use_usb_driver build_components drivers/usb +lappend_if $use_nic_driver build_components drivers/nic +lappend_if [have_spec acpi] build_components drivers/acpi +lappend_if [have_spec pci] build_components drivers/pci/device_pd +lappend_if [is_qemu_available] build_components drivers/uart build $build_components @@ -54,19 +62,58 @@ append config { - + } + +append_if [is_qemu_available] config { - + + + } + +append_if [expr ![is_qemu_available]] config { + + + + + + + + + + + + + + + + + + + } + +append_if $use_nic_driver config { } +append_if $use_usb_driver config { + + + + + + + + + + } + append_if [have_spec acpi] config { @@ -96,7 +143,15 @@ append config { - + } + +append_if [expr ![is_qemu_available]] config { + + + + } + +append config { } @@ -109,25 +164,30 @@ install_config $config # generic modules set boot_modules { - core init timer uart_drv nic_drv + core init timer tcp_terminal nic_bridge ld.lib.so noux_net libc.lib.so libm.lib.so + libc_lock_pipe.lib.so libc_log.lib.so libc_resolv.lib.so libc_noux.lib.so lwip.lib.so noux_netcat.tar } # platform-specific modules -lappend_if [have_spec pci] boot_modules pci_drv -lappend_if [have_spec acpi] boot_modules acpi_drv -lappend_if [have_spec nova] boot_modules pci_device_pd +lappend_if $use_nic_driver boot_modules nic_drv +lappend_if $use_usb_driver boot_modules usb_drv +lappend_if [have_spec pci] boot_modules pci_drv +lappend_if [have_spec acpi] boot_modules acpi_drv +lappend_if [have_spec nova] boot_modules pci_device_pd +lappend_if [is_qemu_available] boot_modules uart_drv build_boot_image $boot_modules -if {![is_amt_available]} { +set noux_output_file "noux_output.log" +set serial_ip_addr "localhost" +set noux_ip_addr "localhost" + +if {[is_qemu_available]} { # # Redirect the output of Noux via the virtual serial port 1 into a file to be # dumped after the successful completion of the test. - # - set noux_output_file "noux_output.log" - append qemu_args " -nographic" append qemu_args " -serial mon:stdio" append qemu_args " -serial file:$noux_output_file" @@ -136,32 +196,31 @@ if {![is_amt_available]} { append_if [have_spec lan9118] qemu_args " -net nic,model=lan9118 " append qemu_args " -net user -redir tcp:5555::5555 " -} -run_genode_until {.*got IP address.*\n} 60 + run_genode_until {.*got IP address.*\n} 60 +} else { + run_genode_until {\[init -> tcp_terminal\] listening on port 8888\.\.\.} 60 + + regexp {\[init -> noux_net\] .{1,5}got IP address [0-9]+\.[0-9]+\.[0-9]+\.[0-9]+} $output noux_ip_addr + regexp {[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+} $noux_ip_addr noux_ip_addr + + regexp {\[init -> tcp_terminal\] .{1,5}got IP address [0-9]+\.[0-9]+\.[0-9]+\.[0-9]+} $output serial_ip_addr + regexp {[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+} $serial_ip_addr serial_ip_addr + + # connect to Genode target and reading log output via network connection + exec telnet $serial_ip_addr 8888 > $noux_output_file & +} sleep 2 -if [is_amt_available] { - set match_string "got IP address" - grep_output $match_string - unify_output {[\r\n\t]+} "" - unify_output {[\033]\[0m} "" - set pos [string first $match_string $output] - set ip_addr [string replace $output 0 [expr $pos+14]] -} else { - set ip_addr "localhost" -} +puts "--- serial '$serial_ip_addr' noux '$noux_ip_addr'" +exec echo -e "Hello Genode" | netcat $noux_ip_addr 5555 -exec echo -e "Hello Genode" | netcat $ip_addr 5555 +sleep 2 -sleep 1 - -if {![is_amt_available]} { - set output [exec cat $noux_output_file] - puts "output:\n$output\n" - exec rm $noux_output_file -} +set output [exec cat $noux_output_file] +puts "output:\n$output\n" +exec rm $noux_output_file exec rm bin/noux_netcat.tar exec rm -r bin/etc