Hi,
It seems that Bash in the latest release and Noux are only for x86, but I want to run them on QEMU ARM(pbxa9). So, I modified ports/mk/noux.mk, ports/run/noux.run and ports/run/noux_bash.run as below. ports/mk/noux.mk commented out #43: #REQUIRES += x86 ports/run/noux.run, noux_bash.run commented out first four lines which inquire if the target system is x86_32. Then, I've managed to run Bash, but wasn't able to execute any bash command successfully. I can see my keyboard inputs on the bash console, but the enter key doesn't work. It just shows an error, "unsupported ioctl (request=0x802c7415 " Could you tell me what's wrong? Also, where to put my own program to execute through the bash? Plus, what's required to run bash_vim on QEMU ARM?
Thanks.
Here's what's displayed on terminal when I executed 'make run/noux_bash'. ---------------------------------------------------------------- [omitted first few lines..] checking library dependencies for lib/libc_noux... checking library dependencies for drivers/framebuffer... Skip target drivers/framebuffer/fiasco_ux because it requires fiasco x86 Skip target drivers/framebuffer/sdl because it requires linux sdl Skip target drivers/framebuffer/vesa because it requires vesa Skip target drivers/framebuffer/pl11x/vpb926 because it requires platform_vpb926 Skip target drivers/framebuffer/pl11x/vea9x4 because it requires platform_vea9x4 checking library dependencies for drivers/pci... Skip target drivers/pci/x86 because it requires x86 checking library dependencies for drivers/input... Skip target drivers/input/fiasco_ux because it requires fiasco x86 Skip target drivers/input/ps2/x86 because it requires x86 checking library dependencies for server/terminal... checking library dependencies for noux-pkg/bash... checking library dependencies for noux-pkg/coreutils... checking library dependencies for test/libports/ncurses... Library platform Library slab Library syscalls Library console Library avl_tree Library thread Library elf Library lock Library libc-locale Library libc-stdlib Library libc-string Library libc-inet Library libc-gdtoa Library libc-stdtime Library libc-regex Library libc-stdio Library libc-compat Library ldso-startup Library ldso_crt0 Library alarm Library raw_signal Library pager Library raw_server Library libc-gen Library log_console Library ipc Library allocator_avl Library server Library signal Library process Library ldso-arch Library timed_semaphore Library cxx Library heap Library core_printf Library startup Program drivers/framebuffer/pl11x/ Library env Program init/init Program noux/noux Program drivers/timer/foc/timer Program drivers/framebuffer/pl11x/pbxa9/pl11x_drv Library ld Program drivers/input/ps2/pl050/ps2_drv Program server/terminal/terminal Program drivers/input/dummy/dummy_input_drv Program core/arm/core Library libc Library libc_noux Program lib/libc_noux/libc_noux Library libm Library ncurses Program noux-pkg/coreutils/coreutils Program noux-pkg/bash/bash Program test/libports/ncurses/test-ncurses make[1]: Leaving directory `/home/me/genode-12.02/build.foc' genode build completed building targets: kernel sigma0 bootstrap spawn make kernel sigma0 bootstrap make[1]: Entering directory `/home/me/genode-12.02/build.foc' checking library dependencies for kernel... Skip target kernel/vea9x4 because it requires platform_vea9x4 Skip target kernel/x86_32 because it requires x86 Skip target kernel/x86_64 because it requires x86 64bit checking library dependencies for sigma0... checking library dependencies for bootstrap... Library platform Program kernel/pbxa9/fiasco.oc Library l4re_support Program bootstrap/bootstrap Program sigma0/l4f/sigma0 make srcdir=/home/me/genode-12.02/base-foc/contrib/kernel/fiasco/src objbase=/home/me/genode-12.02/build.foc/kernel/fiasco.oc -f /home/me/genode-12.02/base-foc/contrib/kernel/fiasco/src/Makefile.sub1 Checking compiler config... unchanged. make srcdir=/home/me/genode-12.02/base-foc/contrib/kernel/fiasco/src objbase=/home/me/genode-12.02/build.foc/kernel/fiasco.oc -f /home/me/genode-12.02/base-foc/contrib/kernel/fiasco/src/Makefile.sub2 all ... Generating version information ... Making kip.o ... Making kip-debug.o ... Making kip-arm.o ==> Archiving into libabi.a make[6]: Nothing to be done for `all'. ==> Linking fiasco.image ==> Linking fiasco chmod 755 fiasco /usr/local/genode-gcc/bin/genode-arm-nm fiasco.image | c++filt | sort > Symbols.new mv Symbols.new Symbols chmod 755 Symbols --> Build-Nr: 18 make[1]: Leaving directory `/home/me/genode-12.02/build.foc' genode build completed spawn sh -c cd /home/me/genode-12.02/build.foc/l4/source/pkg/bootstrap/server/src && make O=/home/me/genode-12.02/build.foc/l4 ENTRY=genode BOOTSTRAP_DO_UIMAGE= BOOTSTRAP_DO_RAW_IMAGE= BOOTSTRAP_MODULES_LIST=/home/me/genode-12.02/build.foc/var/run/noux_bash/modules.list BOOTSTRAP_SEARCH_PATH=/home/me/genode-12.02/build.foc/var/run/noux_bash:/home/me/genode-12.02/build.foc/kernel/fiasco.oc:/home/me/genode-12.02/build.foc/l4 SYSTEM_TARGET=/usr/local/genode-gcc/bin/genode-arm- make[1]: Entering directory `/home/me/genode-12.02/base-foc/contrib/l4/pkg/bootstrap/server/src' Building entry "genode". Merging image /home/me/genode-12.02/build.foc/kernel/fiasco.oc/fiasco to mod00 Merging image /home/me/genode-12.02/build.foc/l4/bin/arm_armv7a/l4f/sigma0 to mod01 Merging image /home/me/genode-12.02/build.foc/var/run/noux_bash/genode/core to mod02 Merging image /home/me/genode-12.02/build.foc/var/run/noux_bash/genode/config to mod03 Merging image /home/me/genode-12.02/build.foc/var/run/noux_bash/genode/init to mod04 Merging image /home/me/genode-12.02/build.foc/var/run/noux_bash/genode/timer to mod05 Merging image /home/me/genode-12.02/build.foc/var/run/noux_bash/genode/ld.lib.so to mod06 Merging image /home/me/genode-12.02/build.foc/var/run/noux_bash/genode/noux to mod07 Merging image /home/me/genode-12.02/build.foc/var/run/noux_bash/genode/terminal to mod08 Merging image /home/me/genode-12.02/build.foc/var/run/noux_bash/genode/libc.lib.so to mod09 Merging image /home/me/genode-12.02/build.foc/var/run/noux_bash/genode/libm.lib.so to mod10 Merging image /home/me/genode-12.02/build.foc/var/run/noux_bash/genode/libc_noux.lib.so to mod11 Merging image /home/me/genode-12.02/build.foc/var/run/noux_bash/genode/ncurses.lib.so to mod12 Merging image /home/me/genode-12.02/build.foc/var/run/noux_bash/genode/bash.tar to mod13 Merging image /home/me/genode-12.02/build.foc/var/run/noux_bash/genode/ps2_drv to mod14 Merging image /home/me/genode-12.02/build.foc/var/run/noux_bash/genode/pl11x_drv to mod15 make[2]: Entering directory `/home/me/genode-12.02/build.foc/l4/pkg/bootstrap/server/src/OBJ-arm_armv7a' ... Generating bootstrap.ld ... Compiling startup.o ==> Linking bootstrap.elf ==> Stripping bootstrap.elf ==> "bootstrap.elf" built ==> Installing bootstrap.elf in image directory ==> Installing bootstrap_genode in image directory ==> Installing bootstrap_genode.elf in image directory Image size(s) in bytes: bootstrap_genode.elf: 20488568 Start address: 0x1000000 --> Build-Nr: 17 ==> Installing bootstrap.elf to local build-tree ==> Installing bootstrap_genode to local build-tree ==> Installing bootstrap_genode.elf to local build-tree make[2]: Leaving directory `/home/me/genode-12.02/build.foc/l4/pkg/bootstrap/server/src/OBJ-arm_armv7a' make[1]: Leaving directory `/home/me/genode-12.02/base-foc/contrib/l4/pkg/bootstrap/server/src' spawn qemu-system-arm -serial mon:stdio -M realview-pbx-a9 -m 256 -kernel var/run/noux_bash/image.elf
L4 Bootstrapper Build: #17 2012. 02. 29. (수) 15:47:59 KST, 4.6.1 Scanning up to 256 MB RAM Memory size is 256MB (00000000 - 10000000) RAM: 0000000000000000 - 000000000fffffff: 262144kB Total RAM: 256MB mod15: 02354000-0238134c: genode/pl11x_drv mod14: 02324000-02353908: genode/ps2_drv mod13: 012e4000-02324000: genode/bash.tar mod12: 012a7000-012e30a4: genode/ncurses.lib.so mod11: 0129d000-012a6ccc: genode/libc_noux.lib.so mod10: 01277000-0129c6bc: genode/libm.lib.so mod09: 011f4000-01276478: genode/libc.lib.so mod08: 011b6000-011f3a78: genode/terminal mod07: 01175000-011b59f4: genode/noux mod06: 0112f000-0117436c: genode/ld.lib.so mod05: 01104000-0112e05c: genode/timer mod04: 010d0000-0110304c: genode/init mod03: 010cf000-010cf4d1: genode/config mod02: 0107d000-010ce624: genode/core mod01: 01073000-0107c368: sigma0 mod00: 01014000-01072500: /home/me/genode-12.02/build.foc/kernel/fiasco.oc/fiasco Moving 16 modules to 1100000 with offset ec000 moving module 16 { 2354000-238134c } -> { 2440000-246d34c } moving module 15 { 2324000-2353908 } -> { 2410000-243f908 } moving module 14 { 12e4000-2324000 } -> { 13d0000-2410000 } moving module 13 { 12a7000-12e30a4 } -> { 1393000-13cf0a4 } moving module 12 { 129d000-12a6ccc } -> { 1389000-1392ccc } moving module 11 { 1277000-129c6bc } -> { 1363000-13886bc } moving module 10 { 11f4000-1276478 } -> { 12e0000-1362478 } moving module 09 { 11b6000-11f3a78 } -> { 12a2000-12dfa78 } moving module 08 { 1175000-11b59f4 } -> { 1261000-12a19f4 } moving module 07 { 112f000-117436c } -> { 121b000-126036c } moving module 06 { 1104000-112e05c } -> { 11f0000-121a05c } moving module 05 { 10d0000-110304c } -> { 11bc000-11ef04c } moving module 04 { 10cf000-10cf4d1 } -> { 11bb000-11bb4d1 } moving module 03 { 107d000-10ce624 } -> { 1169000-11ba624 } moving module 02 { 1073000-107c368 } -> { 115f000-1168368 } moving module 01 { 1014000-1072500 } -> { 1100000-115e500 } Scanning /home/me/genode-12.02/build.foc/kernel/fiasco.oc/fiasco -serial_esc Scanning sigma0 Scanning genode/core Relocated mbi to [0x100e000-0x100e294] Loading /genode-12.02/build.foc/kernel/fiasco.oc/fiasco Loading sigma0 Loading genode/core find kernel info page... found kernel info page at 0x2000 Regions of list regions [ 1000, 1b3f] { b40} Kern /genode-12.02/build.foc/kernel/fiasco.oc/fiasco [ 2000, 6cfff] { 6b000} Kern /genode-12.02/build.foc/kernel/fiasco.oc/fiasco [ 90000, 96a83] { 6a84} Sigma0 sigma0 [ 98000, 9e17b] { 617c} Sigma0 sigma0 [ 140000, 218813] { d8814} Root genode/core [ 1000000, 10133eb] { 133ec} Boot bootstrap [ 100e000, 100e391] { 392} Root Multiboot info [ 11bb000, 246d34b] { 12b234c} Root Modules Memory API Version: (87) experimental Sigma0 config ip:000900e0 sp:01012704 Roottask config ip:0017b920 sp:00000000 Starting kernel /genode-12.02/build.foc/kernel/fiasco.oc/fiasco at 00001000 Realview System ID: Rev=0 HBI=178 Build=0 Arch=5 FPGA=00 L2: ID=00000000 Type=00000000 Aux=00000000 L2: Type L2C-Unknown Size = 0kB Hello from Startup::stage2 Initialize page table Number of IRQs available at this GIC: 96 Vmem_alloc::init() Cache config: ON ID_PFR0: 00001031 ID_PFR1: 00000011 ID_DFR0: 00000000 ID_AFR0: 00000000 ID_MMFR0: 00100103 ID_MMFR1: 20000000 ID_MMFR2: 01230000 ID_MMFR3: 00002111 FPU0: Arch: VFPv3(3), Part: Unkn(40), r: 0, v: 0, i: 41, t: hard, p: dbl/sngl SERIAL ESC: allocated IRQ 44 for serial uart Not using serial hack in slow timer handler. Welcome to Fiasco.OC (arm)! L4/Fiasco.OC arm microkernel (C) 1998-2011 TU Dresden Rev: r38 compiled with gcc 4.6.1 for Realview [] Build: #18 2012. 02. 29. (수) 15:47:56 KST
Calibrating timer loop... done. SIGMA0: Hello! KIP @ 2000 allocated 4KB for maintenance structures SIGMA0: Dump of all resource maps RAM:------------------------ [0:0;fff] [0:6d000;8ffff] [0:97000;97fff] [0:9f000;13ffff] [4:140000;218fff] [0:219000;100dfff] [4:100e000;100efff] [0:100f000;11bafff] [4:11bb000;246dfff] [0:246e000;effffff] IOMEM:---------------------- [0:10000000;ffffffff]
KIP @ 2000 magic: 4be6344c version: 87004444 sigma0 esp: 01012704 eip: 000900e0 sigma1 esp: 00000000 eip: 00000000 root esp: 00000000 eip: 0017b920 MBI @ 100e000 mod[3] [11bb000,11bb4d1) config mod[4] [11bc000,11ef04c) init mod[5] [11f0000,121a05c) timer mod[6] [121b000,126036c) ld.lib.so mod[7] [1261000,12a19f4) noux mod[8] [12a2000,12dfa78) terminal mod[9] [12e0000,1362478) libc.lib.so mod[10] [1363000,13886bc) libm.lib.so mod[11] [1389000,1392ccc) libc_noux.lib.so mod[12] [1393000,13cf0a4) ncurses.lib.so mod[13] [13d0000,2410000) bash.tar mod[14] [2410000,243f908) ps2_drv mod[15] [2440000,246d34c) pl11x_drv :ram_alloc: Allocator 201f08 dump: Block: [0006d000,00090000) size=00023000 avail=00023000 max_avail=00023000 Block: [00097000,0009701c) size=0000001c avail=00000000 max_avail=00023000 Block: [0009701c,00097038) size=0000001c avail=00000000 max_avail=00000000 Block: [00097038,00097054) size=0000001c avail=00000000 max_avail=00023000 Block: [00097054,00097070) size=0000001c avail=00000000 max_avail=00000000 Block: [00097070,0009708c) size=0000001c avail=00000000 max_avail=00000000 Block: [0009708c,000970a8) size=0000001c avail=00000000 max_avail=00000000 Block: [000970a8,000970c4) size=0000001c avail=00000000 max_avail=00023000 Block: [000970c4,000970e0) size=0000001c avail=00000000 max_avail=00000000 Block: [000970e0,000970fc) size=0000001c avail=00000000 max_avail=00000ecc Block: [000970fc,00097118) size=0000001c avail=00000000 max_avail=00000000 Block: [00097118,00097134) size=0000001c avail=00000000 max_avail=00000ecc Block: [00097134,00098000) size=00000ecc avail=00000ecc max_avail=00000ecc Block: [0009f000,0009f01c) size=0000001c avail=00000000 max_avail=0cb92000 Block: [0009f01c,0009f038) size=0000001c avail=00000000 max_avail=00000000 Block: [0009f038,00140000) size=000a0fc8 avail=000a0fc8 max_avail=000a0fc8 Block: [00219000,0021901c) size=0000001c avail=00000000 max_avail=0cb92000 Block: [0021901c,0100e000) size=00df4fe4 avail=00df4fe4 max_avail=00df4fe4 Block: [0100f000,011bb000) size=001ac000 avail=001ac000 max_avail=0cb92000 Block: [0246e000,0f000000) size=0cb92000 avail=0cb92000 max_avail=0cb92000 => mem_size=230653952 (219 MB) / mem_avail=230653560 (219 MB) :region_alloc: Allocator 203078 dump: Block: [00001000,00002000) size=00001000 avail=00001000 max_avail=00001000 Block: [00003000,0006d000) size=0006a000 avail=0006a000 max_avail=0006a000 Block: [00090000,00097000) size=00007000 avail=00007000 max_avail=00007000 Block: [00098000,0009f000) size=00007000 avail=00007000 max_avail=6fff0000 Block: [0f000000,40000000) size=31000000 avail=31000000 max_avail=31000000 Block: [50000000,bfff0000) size=6fff0000 avail=6fff0000 max_avail=6fff0000 Block: [bfff1000,c0000000) size=0000f000 avail=0000f000 max_avail=0000f000 => mem_size=2701623296 (2576 MB) / mem_avail=2701623296 (2576 MB) :io_mem: Allocator 202364 dump: Block: [00000000,00002000) size=00002000 avail=00002000 max_avail=00002000 Block: [00003000,0006d000) size=0006a000 avail=0006a000 max_avail=0006a000 Block: [00090000,00097000) size=00007000 avail=00007000 max_avail=00007000 Block: [00098000,0009f000) size=00007000 avail=00007000 max_avail=f0ffffff Block: [0f000000,ffffffff) size=f0ffffff avail=f0ffffff max_avail=f0ffffff => mem_size=4043808767 (3856 MB) / mem_avail=4043808767 (3856 MB) :io_port: Allocator 2027c0 dump: :irq: Allocator 202c1c dump: Block: [00000000,00000100) size=00000100 avail=00000100 max_avail=00000100 => mem_size=256 (0 MB) / mem_avail=256 (0 MB) :rom_fs: Rom_fs 2034bc dump: Rom: [01363000,013886bc) libm.lib.so Rom: [0121b000,0126036c) ld.lib.so Rom: [011bc000,011ef04c) init Rom: [011bb000,011bb4d1) config Rom: [013d0000,02410000) bash.tar Rom: [00002000,00003000) l4v2_kip Rom: [00002000,00003000) kip Rom: [012e0000,01362478) libc.lib.so Rom: [01389000,01392ccc) libc_noux.lib.so Rom: [02410000,0243f908) ps2_drv Rom: [01261000,012a19f4) noux Rom: [01393000,013cf0a4) ncurses.lib.so Rom: [02440000,0246d34c) pl11x_drv Rom: [012a2000,012dfa78) terminal Rom: [011f0000,0121a05c) timer :core ranges: Allocator 205920 dump: Block: [0006d000,00090000) size=00023000 avail=00023000 max_avail=00023000 Block: [00097000,00098000) size=00001000 avail=00001000 max_avail=00023000 Block: [0009f000,0100e000) size=00f6f000 avail=00f6f000 max_avail=0dff1000 Block: [0100f000,0f000000) size=0dff1000 avail=0dff1000 max_avail=0dff1000 => mem_size=251150336 (239 MB) / mem_avail=251150336 (239 MB) int main(): --- create local services --- int main(): --- start init --- int main(): transferred 219 MB to init int main(): --- init created, waiting for exit condition --- [init] parent provides [init] service "ROM" [init] service "LOG" [init] service "CAP" [init] service "RAM" [init] service "RM" [init] service "CPU" [init] service "PD" [init] service "IRQ" [init] service "IO_PORT" [init] service "IO_MEM" [init] service "SIGNAL" [init] child "timer" [init] RAM quota: 360448 [init] ELF binary: timer [init] priority: 0 [init] provides service Timer [init] child "pl11x_drv" [init] RAM quota: 1933312 [init] ELF binary: pl11x_drv [init] priority: 0 [init] provides service Framebuffer [init] child "ps2_drv" [init] RAM quota: 884736 [init] ELF binary: ps2_drv [init] priority: 0 [init] provides service Input [init] child "terminal" [init] RAM quota: 1933312 [init] ELF binary: terminal [init] priority: 0 [init] provides service Terminal [init] Warning: Specified quota exceeds available quota. [init] Proceeding with a quota of 224178924 bytes. [init] child "noux" [init] RAM quota: 224015084 [init] ELF binary: noux [init] priority: 0 [init -> ps2_drv] Detected ExPS/2 mouse - activating scroll-wheel and 5-button support. [init -> ps2_drv] Using keyboard with scan code set 1 (xlate). [init -> terminal] int main(int, char**): --- terminal service started --- [init -> pl11x_drv] --- pl11x framebuffer driver --- [init -> noux] --- noux started --- [init] child "timer" announces service "Timer" [init -> noux] created tar file system at "" [init -> noux] tar archive 'bash.tar' local at 1070000, size is 17039360 [init] child "ps2_drv" announces service "Input" [init] child "pl11x_drv" announces service "Framebuffer" [init] child "terminal" announces service "Terminal" [init -> noux] created main thread [init -> noux] arg(0): "/bin/bash" [init -> terminal] create terminal session [init -> terminal] new terminal session: [init -> terminal] framebuffer has 640x480 pixels [init -> terminal] character size is 8x16 pixels [init -> terminal] terminal size is 80x30 characters [init -> noux -> /bin/bash] Starting ldso ... [init -> noux -> /bin/bash] Starting application ... environ: 96f68 [init -> noux] open pwd=/ path=/dev/tty [init -> noux] virtual Noux::Vfs_handle* Noux::Tar_file_system::open(Noux::Sysio*, const char*): open /dev/tty [init -> noux] no file system for "/dev/tty" [init -> noux -> /bin/bash] syscall OPEN failed [init -> noux -> /bin/bash] plugin()->open("/dev/tty") failed [init -> noux -> /bin/bash] virtual int {anonymous}::Plugin::ioctl(Libc::File_descriptor*, int, char*): TIOCGETA - argp=0x10b1f68 [init -> noux -> /bin/bash] unsupported ioctl (request=0x80086678 [init -> noux -> /bin/bash] DUMMY sbrk(): sbrk called, not implemented [init -> noux -> /bin/bash] DUMMY getuid(): getuid called, not implemented [init -> noux -> /bin/bash] DUMMY getgid(): getgid called, not implemented [init -> noux -> /bin/bash] DUMMY geteuid(): geteuid called, not implemented [init -> noux -> /bin/bash] DUMMY getegid(): getegid called, not implemented [init -> noux -> /bin/bash] int clock_gettime(clockid_t, timespec*): clock_gettime called - not implemented [init -> noux -> /bin/bash] virtual int {anonymous}::Plugin::ioctl(Libc::File_descriptor*, int, char*): TIOCGETA - argp=0x10b1f98 [init -> noux -> /bin/bash] virtual int {anonymous}::Plugin::ioctl(Libc::File_descriptor*, int, char*): TIOCGETA - argp=0x10b1f98 [init -> noux -> /bin/bash] DUMMY _nsdispatch(): _nsdispatch called, not implemented [init -> noux -> /bin/bash] DUMMY _nsdispatch(): _nsdispatch called, not implemented [init -> noux -> /bin/bash] DUMMY getppid(): getppid called, not implemented [init -> noux -> /bin/bash] int gettimeofday(timeval*, timezone*): gettimeofdaye called - not implemented [init -> noux -> /bin/bash] virtual int {anonymous}::Plugin::ioctl(Libc::File_descriptor*, int, char*): TIOCGETA - argp=0x10a0d44 [init -> noux] open pwd=/ path=//.bashrc [init -> noux] virtual Noux::Vfs_handle* Noux::Tar_file_system::open(Noux::Sysio*, const char*): open //.bashrc [init -> noux] no file system for "//.bashrc" [init -> noux -> /bin/bash] syscall OPEN failed [init -> noux -> /bin/bash] plugin()->open("//.bashrc") failed [init -> noux -> /bin/bash] fcntl: F_GETFL for libc_fd=0 [init -> noux -> /bin/bash] syscall FCNTL failed [init -> noux -> /bin/bash] fcntl failed (libc_fd= 0, cmd=3) [init -> noux -> /bin/bash] int clock_gettime(clockid_t, timespec*): clock_gettime called - not implemented [init -> noux] open pwd=/ path=//.bash_history [init -> noux] virtual Noux::Vfs_handle* Noux::Tar_file_system::open(Noux::Sysio*, const char*): open //.bash_history [init -> noux] no file system for "//.bash_history" [init -> noux -> /bin/bash] syscall OPEN failed [init -> noux -> /bin/bash] plugin()->open("//.bash_history") failed [init -> noux -> /bin/bash] syscall STAT failed [init -> noux -> /bin/bash] stat syscall failed for path "//.bash_history" [init -> noux -> /bin/bash] virtual int {anonymous}::Plugin::ioctl(Libc::File_descriptor*, int, char*): TIOCGETA - argp=0x10a0d44 [init -> noux -> /bin/bash] int clock_gettime(clockid_t, timespec*): clock_gettime called - not implemented [init -> noux] open pwd=/ path=/etc/termcap [init -> noux] virtual Noux::Vfs_handle* Noux::Tar_file_system::open(Noux::Sysio*, const char*): open /etc/termcap [init -> noux] no file system for "/etc/termcap" [init -> noux -> /bin/bash] syscall OPEN failed [init -> noux -> /bin/bash] plugin()->open("/etc/termcap") failed [init -> noux] virtual bool Noux::Terminal_io_channel::ioctl(Noux::Sysio*): OP_TIOCGWINSZ requested [init -> noux] virtual bool Noux::Terminal_io_channel::ioctl(Noux::Sysio*): OP_TIOCGWINSZ requested [init -> noux -> /bin/bash] unsupported ioctl (request=0x80087467 [init -> noux -> /bin/bash] virtual int {anonymous}::Plugin::ioctl(Libc::File_descriptor*, int, char*): TIOCGETA - argp=0x10b1630 [init -> noux -> /bin/bash] syscall STAT failed [init -> noux -> /bin/bash] stat syscall failed for path "//.inputrc" [init -> noux -> /bin/bash] syscall STAT failed [init -> noux -> /bin/bash] stat syscall failed for path "/etc/inputrc" [init -> noux] virtual bool Noux::Terminal_io_channel::ioctl(Noux::Sysio*): OP_TIOCGWINSZ requested [init -> noux -> /bin/bash] unsupported ioctl (request=0x80087467 [init -> noux -> /bin/bash] virtual int {anonymous}::Plugin::ioctl(Libc::File_descriptor*, int, char*): TIOCGETA - argp=0x10b1630 [init -> noux -> /bin/bash] unsupported ioctl (request=0x802c7415
Hello,
It seems that Bash in the latest release and Noux are only for x86, but I want to run them on QEMU ARM(pbxa9). So, I modified ports/mk/noux.mk, ports/run/noux.run and ports/run/noux_bash.run as below. ports/mk/noux.mk commented out #43: #REQUIRES += x86 ports/run/noux.run, noux_bash.run commented out first four lines which inquire if the target system is x86_32.
it's pretty cool that you are venturesome enough to remove those precautions. The reason Noux is limited to x86_32 so far is plain and simply that I wanted to keep the problem space at a reasonable level. If you want to explore running Noux on ARM, that's great. But you are walking into unknown territory here. .-)
BTW, please note that there is further x86-specific stuff slumbering in the 'noux.mk' file.
Then, I've managed to run Bash, but wasn't able to execute any bash command successfully. I can see my keyboard inputs on the bash console, but the enter key doesn't work. It just shows an error, "unsupported ioctl (request=0x802c7415 "
I don't know the reason from the top of my head and would need to debug the problem as well: Finding out what Bash is trying to do, and why it fails. Maybe, demystifying the ioctl opcode 0x802c7415 will help you to pinpoint the problem?
Could you tell me what's wrong? Also, where to put my own program to execute through the bash?
At the current stage, we simply supply a tar archive to the Noux environment, which is then used as file system. The 'noux_bash.run' script includes the commands for generating the tar archive right after the build stage (look for the "exec tar ..." commands). To customize the file system visible to Noux, simply add your stuff to the tar archive by customizing the run script.
However, please consider the intended use of Noux: It is not meant to spawn normal Genode programs. Noux processes are limited to the classical command-line based Unix userland. That is by intention.
Plus, what's required to run bash_vim on QEMU ARM?
The funny thing is: I just gave the 'noux_vim.run' script a try on 'foc_pbxa9' (removing the check for x86_32 at the begin of the run script) and it works! That's quite unexpected. .-)
I'm afraid that putting VIM into the noux_bash.run script doesn't make too much sense at the moment. Currently, the Unix environment variables are not inherited by processes created via fork/execve. So the TERM variable is not supplied to VIM. But the correct TERM value is essential for running ncurses-based programs such as VIM. Proper passing of the Unix environment and current working directory are the actually the next todo items for Noux.
Cheers Norman