assert_spec platform_arndale # # Build # set build_components { app/cli_monitor app/gdb_monitor app/launchpad app/scout core drivers/ahci drivers/framebuffer drivers/platform drivers/sd_card drivers/timer drivers/uart drivers/usb init l4linux lib/libc_noux noux server/ffat_fs server/fs_rom server/nic_bridge server/liquid_framebuffer server/nitpicker server/part_blk server/tar_fs server/terminal server/terminal_crosslink server/terminal_log server/terminal_mux test/affinity test/block test/gdb_monitor test/input test/lwip/http_srv test/nitpicker } lappend build_components noux-pkg/vim lappend build_components noux-pkg/gdb_arm build $build_components create_boot_directory exec tar cfv bin/vim.tar -h -C bin/vim . # # Config # set config { } append config { } install_config $config set gdb_config_fd [open "bin/gdb_command_config" w] puts $gdb_config_fd { } close $gdb_config_fd set gdb_binaries { test-gdb_monitor testnit scout libc.lib.so ld.lib.so libc_log.lib.so } set gdb_stripped_binaries { expat.lib.so gdb_monitor init launchpad libc_lock_pipe.lib.so libc_noux.lib.so libc_terminal.lib.so libm.lib.so liquid_fb ncurses.lib.so noux terminal terminal_crosslink } exec sh -c "find bin/gdb_arm/ -type f | (xargs [cross_dev_prefix]strip || true) 2>/dev/null" exec mkdir -p bin/gdb/src foreach binary ${gdb_binaries} { set source_files [ exec [cross_dev_prefix]objdump -dl bin/${binary} | grep "^/.*:.*" | sed -e "s/:.*//" | uniq ] foreach source_file ${source_files} { # resolve '..' to avoid problems with 'tar' with parts like '/a/b/../' # where '/a' exists, but '/a/b' does not set source_file [file normalize ${source_file}] if [file exists ${source_file}] { set dirname [ exec dirname ${source_file}] exec mkdir -p bin/gdb/src${dirname} exec ln -sf ${source_file} bin/gdb/src${source_file} } } } foreach binary ${gdb_stripped_binaries} { exec sh -c "cp bin/${binary} bin/gdb/${binary}" exec sh -c "[cross_dev_prefix]strip bin/gdb/${binary}" } foreach binary ${gdb_binaries} { exec ln -s ../${binary} bin/gdb/${binary} } exec ln -s ../gdb_command_config bin/gdb/gdb_command_config exec tar cfh bin/gdb.tar -C bin gdb exec tar ufh bin/gdb.tar -C bin/gdb_arm bin exec rm -rf bin/gdb # # Boot modules # set boot_modules { ahci cli_monitor core fb_drv ffat_fs fs_rom init initrd.gz kdb_uart_drv l4linux ld.lib.so libc.lib.so libc_log.lib.so libc_noux.lib.so libc_terminal.lib.so libm.lib.so lwip.lib.so ncurses.lib.so nic_bridge liquid_fb nitpicker noux part_blk platform_drv sd_card_drv tar_fs terminal terminal_log terminal_mux test-affinity test-block timer usb_drv vim.tar gdb.tar } set uri "http://genode.org/files/l4linux/initrd-arm-mdev.gz" if {![file exists bin/initrd.gz]} { puts "Download initramfs ..." exec >& /dev/null wget -c -O bin/initrd.gz $uri } exec >& /dev/null wget -O bin/initrd.gz.md5 $uri.md5 cd bin exec md5sum -c initrd.gz.md5 cd .. set fiasco_serial_esc_arg "" build_boot_image [join $boot_modules " "] run_genode_until forever