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?
On Thu, May 12, 2016 at 7:00 AM, Yevgeny Lavrov <ylavrov13@...9...> wrote:
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
it freezes after "Debian GNU/Linux 7 usbarmory console"
Am I missing something?
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@...252...07...) (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]