Thanks for the quick reply, I was unaware that I have to ssh into the USB Armory in order to access it. I was expecting it to communicate back to me via COM interface as other OS’s I’ve had previously installed on the USB Armory. However, there are few more questions I have, and I’ll be very grateful if you can answer them or provide me with any information. So I was able to run Genode on USB Armory, and ssh into it, and it appears to me that I’m interacting with Linux Virtual Machine. If it is a Virtual Machine, then are there any tools available within that VM that I can use to talk to the outside of the Linux VM, or at least somehow prove/demonstrate that the Linux VM I’m currently in is running atop of Genode?
The other question is about the Kernel. It appears as ARM Linux Kernel during boot. Is it a standard Linux Kernel or especially customized one to support Genode? I just need to verify this.
Can you provide any tips on how to bring up any other microkernels fully supported by Genode that I can run on USB Armory? If there are no other options available besides using the default Linux kernel that comes with the tz_vmm, then is there any other board that you can recommend me to use to run Genode with fully supported microkernels, as preparation for seL4?
Am I missing something?it freezes after "Debian GNU/Linux 7 usbarmory console"Hi, after going through tz_vmm tutorial I was able to create uImage and put it on MicroSD card. However, when I try to boot it on Armory, Genode freezes all the way at the end.Below is what appears on the console after executing
=> ext2load mmc 0:1 0x74000000 /uImage
=> bootm 0x74000000
Starting kernel ...
kernel initialized
Genode 16.02
int main(): --- create local services ---
int main(): --- start init ---
int main(): transferred 246 MB to init
int main(): --- init created, waiting for exit condition ---
[init] Could not open ROM session for module "ld.lib.so"
[init] parent provides
[init] service "ROM"
[init] service "RAM"
[init] service "IRQ"
[init] service "IO_MEM"
[init] service "IO_PORT"
[init] service "CAP"
[init] service "PD"
[init] service "RM"
[init] service "CPU"
[init] service "LOG"
[init] service "SIGNAL"
[init] service "VM"
[init] child "gpio_drv"
[init] RAM quota: 2863104
[init] ELF binary: gpio_drv
[init] priority: 0
[init] provides service Gpio
[init] child "timer"
[init] RAM quota: 2863104
[init] ELF binary: timer
[init] priority: 0
[init] provides service Timer
[init] child "platform_drv"
[init] RAM quota: 2863104
[init] ELF binary: platform_drv
[init] priority: 0
[init] provides service Regulator
[init] provides service Platform
[init] child "sd_card_drv"
[init] RAM quota: 2863104
[init] ELF binary: sd_card_drv
[init] priority: 0
[init] provides service Block
[init] child "part_blk"
[init] RAM quota: 10203136
[init] ELF binary: part_blk
[init] priority: 0
[init] provides service Block
[init] child "tz_vmm"
[init] RAM quota: 10203136
[init] ELF binary: tz_vmm
[init] priority: 0
[init -> platform_drv] --- i.MX53 platform driver ---
[init] child "platform_drv" announces service "Platform"
[init -> sd_card_drv] --- Imx53 SD card driver ---
[init] child "sd_card_drv" announces service "Block"
[init] child "timer" announces service "Timer"
[init -> tz_vmm] Start virtual machine ...
[init -> gpio_drv] --- i.MX53 gpio driver ---
[init -> gpio_drv] No GPIO config
[init] child "gpio_drv" announces service "Gpio"
[init -> sd_card_drv] CID: 0x28424548 0x32353738 0x00000006 0x8a00b600
[init -> sd_card_drv] RCA: 0xb368
[init -> sd_card_drv] SD card detected
[init -> sd_card_drv] capacity: 3823 MiB
Quota exceeded! amount=12288, size=12288, consumed=12288
[init -> part_blk] Partition 1: LBA 20480 (194560 blocks) type: 83
[init -> part_blk] Partition 2: LBA 215040 (3896289 blocks) type: 83
[init] child "part_blk" announces service "Block"
[init -> tz_vmm] [vm] Booting Linux on physical CPU 0x0
[init -> tz_vmm] [vm] Linux version 4.2.3-00002-gfd57dbf-dirty (lypo@...207...) (gcc version 4.9.3 20150113 (prerelease) (Linaro GCC 4.9-2015.01-3) ) #4 PREEMPT Thu Nov 12 15:18:30 CET 2015
[init -> tz_vmm] [vm] CPU: ARMv7 Processor [412fc085] revision 5 (ARMv7), cr=10c5387d
[init -> tz_vmm] [vm] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[init -> tz_vmm] [vm] Machine model: Inverse Path USB armory
[init -> tz_vmm] [vm] Memory policy: Data cache writeback
[init -> tz_vmm] [vm] CPU: All CPU(s) started in SVC mode.
[init -> tz_vmm] [vm] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 65024
[init -> tz_vmm] [vm] Kernel command line: console=ttyS0 root=/dev/sda1 rootwait rw init=/sbin/init clk_ignore_unused
[init -> tz_vmm] [vm] PID hash table entries: 1024 (order: 0, 4096 bytes)
[init -> tz_vmm] [vm] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[init -> tz_vmm] [vm] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[init -> tz_vmm] [vm] Memory: 255160K/262144K available (3174K kernel code, 119K rwdata, 1060K rodata, 140K init, 93K bss, 6984K reserved, 0K cma-reserved)
[init -> tz_vmm] [vm] Virtual kernel memory layout:
[init -> tz_vmm] [vm] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[init -> tz_vmm] [vm] fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
[init -> tz_vmm] [vm] vmalloc : 0x90800000 - 0xff000000 (1768 MB)
[init -> tz_vmm] [vm] lowmem : 0x80000000 - 0x90000000 ( 256 MB)
[init -> tz_vmm] [vm] modules : 0x7f000000 - 0x80000000 ( 16 MB)
[init -> tz_vmm] [vm] .text : 0x80008000 - 0x8042abfc (4235 kB)
[init -> tz_vmm] [vm] .init : 0x8042b000 - 0x8044e000 ( 140 kB)
[init -> tz_vmm] [vm] .data : 0x8044e000 - 0x8046bc60 ( 120 kB)
[init -> tz_vmm] [vm] .bss : 0x8046bc60 - 0x804833ac ( 94 kB)
[init -> tz_vmm] [vm] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[init -> tz_vmm] [vm] Preemptible hierarchical RCU implementation.
[init -> tz_vmm] [vm] Build-time adjustment of leaf fanout to 32.
[init -> tz_vmm] [vm] NR_IRQS:16 nr_irqs:16 16
[init -> tz_vmm] [vm] TrustZone Interrupt Controller (TZIC) initialized
[init -> tz_vmm] [vm] CPU identified as i.MX53, unknown revision
[init -> tz_vmm] [vm] Switching to timer-based delay loop, resolution 29ns
[init -> tz_vmm] [vm] sched_clock: 32 bits at 33MHz, resolution 29ns, wraps every 64424507889ns
[init -> tz_vmm] [vm] clocksource: mxc_timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 57337812242 ns
[init -> tz_vmm] [vm] Console: colour dummy device 80x30
[init -> tz_vmm] [vm] console [ttyS0] enabled
[init -> tz_vmm] [vm] Calibrating delay loop (skipped), value calculated using timer frequency.. 66.66 BogoMIPS (lpj=333333)
[init -> tz_vmm] [vm] pid_max: default: 32768 minimum: 301
[init -> tz_vmm] [vm] Security Framework initialized
[init -> tz_vmm] [vm] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[init -> tz_vmm] [vm] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[init -> tz_vmm] [vm] Initializing cgroup subsys net_cls
[init -> tz_vmm] [vm] CPU: Testing write buffer coherency: ok
[init -> tz_vmm] [vm] Setting up static identity map for 0x80008200 - 0x80008258
[init -> tz_vmm] [vm] devtmpfs: initialized
[init -> tz_vmm] [vm] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 2
[init -> tz_vmm] [vm] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[init -> tz_vmm] [vm] pinctrl core: initialized pinctrl subsystem
[init -> tz_vmm] [vm] NET: Registered protocol family 16
[init -> tz_vmm] [vm] DMA: preallocated 256 KiB pool for atomic coherent allocations
[init -> tz_vmm] [vm] cpuidle: using governor ladder
[init -> tz_vmm] [vm] cpuidle: using governor menu
[init -> tz_vmm] [vm] imx53-pinctrl 53fa8000.iomuxc: initialized IMX pinctrl driver
[init -> tz_vmm] [vm] 50000000.aips:usbphy@...361... supply vcc not found, using dummy regulator
[init -> tz_vmm] [vm] 50000000.aips:usbphy@...23... supply vcc not found, using dummy regulator
[init -> tz_vmm] [vm] pps_core: LinuxPPS API ver. 1 registered
[init -> tz_vmm] [vm] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@...292...>
[init -> tz_vmm] [vm] clocksource: Switched to clocksource mxc_timer1
[init -> tz_vmm] [vm] NET: Registered protocol family 2
[init -> tz_vmm] [vm] TCP established hash table entries: 2048 (order: 1, 8192 bytes)
[init -> tz_vmm] [vm] TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
[init -> tz_vmm] [vm] TCP: Hash tables configured (established 2048 bind 2048)
[init -> tz_vmm] [vm] UDP hash table entries: 256 (order: 0, 4096 bytes)
[init -> tz_vmm] [vm] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[init -> tz_vmm] [vm] NET: Registered protocol family 1
[init -> tz_vmm] [vm] futex hash table entries: 256 (order: -1, 3072 bytes)
[init -> tz_vmm] [vm] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[init -> tz_vmm] [vm] io scheduler noop registered (default)
[init -> tz_vmm] [vm] imx-sdma 63fb0000.sdma: failed to get firmware from device tree
[init -> tz_vmm] [vm] imx-sdma 63fb0000.sdma: initialized
[init -> tz_vmm] [vm] ttyS0 at MMIO 0x1 (irq = 0, base_baud = 230400) is a IMX
[init -> tz_vmm] [vm] loop: module loaded
[init -> part_blk] session opened at partition 2 for 'tz_vmm -> sda1'
[init -> tz_vmm] [vm] genblk: drive 0
[init -> tz_vmm] [vm] block count 3896289
[init -> tz_vmm] [vm] block size 512
[init -> tz_vmm] [vm] writeable 1
[init -> tz_vmm] [vm] queue size 5226480
[init -> tz_vmm] [vm] pirq 92
[init -> tz_vmm] [vm] virq 108
[init -> tz_vmm] [vm] major number 254
[init -> tz_vmm] [vm] name "sda1"
[init -> tz_vmm] [vm] device-mapper: ioctl: 4.33.0-ioctl (2015-8-18) initialised: dm-devel@...315...
[init -> tz_vmm] [vm] sahara 63ff8000.crypto: SAHARA version 4 initialized
[init -> tz_vmm] [vm] NET: Registered protocol family 17
[init -> tz_vmm] [vm] GENODE_TZ_VMM: skip mx5_cpu_lp_set
[init -> tz_vmm] [vm] imx5_pm_common_init: No DDR LPM support with suspend -22!
[init -> tz_vmm] [vm] hctosys: unable to open rtc device (rtc0)
[init -> tz_vmm] [vm] clk: Not disabling unused clocks
[init -> tz_vmm] [vm] EXT4-fs (sda1): couldn't mount as ext3 due to feature incompatibilities
[init -> tz_vmm] [vm] EXT4-fs (sda1): couldn't mount as ext2 due to feature incompatibilities
[init -> tz_vmm] [vm] EXT4-fs (sda1): recovery complete
[init -> tz_vmm] [vm] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)
[init -> tz_vmm] [vm] VFS: Mounted root (ext4 filesystem) on device 254:0.
[init -> tz_vmm] [vm] devtmpfs: mounted
[init -> tz_vmm] [vm] Freeing unused kernel memory: 140K (8042b000 - 8044e000)
[init -> tz_vmm] [vm] random: nonblocking pool is initialized
INIT: version 2.88 booting
[init -> tz_vmm] [vm] [info] Using makefile-style concurrent boot in runlevel S.
[init -> tz_vmm] [vm] [....] Starting the hotplug events dispatcher: udevdudevd[150]: starting version 175
[ ok -> tz_vmm] [vm] .
[ ok -> tz_vmm] [vm] [....] Synthesizing the initial hotplug events...done.
[init -> tz_vmm] [vm] [....] Waiting for /dev to be fully populated...imx2-wdt 53f98000.wdog: timeout 60 sec (nowayout=0)
[init -> tz_vmm] [vm] usbcore: registered new interface driver usbfs
[init -> tz_vmm] [vm] usbcore: registered new interface driver hub
[init -> tz_vmm] [vm] usbcore: registered new device driver usb
[init -> tz_vmm] [vm] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ ok -> tz_vmm] [vm] done.
[ ok -> tz_vmm] [vm] [....] Activating swap...done.
[init -> tz_vmm] [vm] EXT4-fs (sda1): re-mounted. Opts: (null)
[ ok -> tz_vmm] [vm] [....] Cleaning up temporary files... /tmp.
[init -> tz_vmm] [vm] [info] Loading kernel module ledtrig_heartbeat.
[init -> tz_vmm] [vm] FATAL: Module ledtrig_heartbeat not found.
[init -> tz_vmm] [vm] [info] Loading kernel module g_ether.
[init -> tz_vmm] [vm] using random self ethernet address
[init -> tz_vmm] [vm] using random host ethernet address
[init -> tz_vmm] [vm] using self ethernet address: 1a:55:89:a2:69:41
[init -> tz_vmm] [vm] usb0: HOST MAC 2a:cd:e3:c7:c8:0a
[init -> tz_vmm] [vm] usb0: MAC 1a:55:89:a2:69:41
[init -> tz_vmm] [vm] using random self ethernet address
[init -> tz_vmm] [vm] using random host ethernet address
[init -> tz_vmm] [vm] g_ether gadget: Ethernet Gadget, version: Memorial Day 2008
[init -> tz_vmm] [vm] g_ether gadget: g_ether ready
[init -> tz_vmm] [vm] g_ether gadget: high-speed config #1: CDC Ethernet (ECM)
[ ok -> tz_vmm] [vm] [....] Activating lvm and md swap...done.
[init -> tz_vmm] [vm] [....] Checking file systems...fsck from util-linux 2.20.1
[ ok -> tz_vmm] [vm] done.
[ ok -> tz_vmm] [vm] [....] Mounting local filesystems...done.
[ ok -> tz_vmm] [vm] [....] Activating swapfile swap...done.
[ ok -> tz_vmm] [vm] [....] Cleaning up temporary files....
[ ok -> tz_vmm] [vm] [....] Setting kernel variables ...done.
[init -> tz_vmm] [vm] [....] Configuring network interfaces...ifup: interface usb0 already configured
[ ok -> tz_vmm] [vm] done.
[ ok -> tz_vmm] [vm] [....] Cleaning up temporary files....
[init -> tz_vmm] [vm] NET: Registered protocol family 10
INIT: Entering runlevel: 2
[init -> tz_vmm] [vm] [info] Using makefile-style concurrent boot in runlevel 2.
[ ok -> tz_vmm] [vm] [....] Starting enhanced syslogd: rsyslogd.
[ ok -> tz_vmm] [vm] [....] Starting periodic command scheduler: cron.
[ ok -> tz_vmm] [vm] [....] Starting OpenBSD Secure Shell server: sshd.
[init -> tz_vmm] [vm]
[init -> tz_vmm] [vm] Debian GNU/Linux 7 usbarmory console
[init -> tz_vmm] [vm]