| Thank you very much Adam! I pressed entered but no matter what I do it just hang there without loading the Linux kernel. It is the same situation on both QEMU and VMware. I think it might be somehow related to the virtual environment (QEMU or VMware). After I tried that I decided to test on a real board, then it works (even though it shows some weird problems). I think it might be helpful to post here, in case there are newbies like me who is also confused (I’m sure lots of people in this community knew this already). My test board is a BeagleBone Black (BBB). 1. I first compiled the fiasco kernel: (Architecture -> ARM processor family, Platform -> TI OMAP, CPU -> ARM Cortex-A8 CPU) # make B=build-armx335 # cd build-arm335 # make config CROSS_COMPILE=arm-linux-gnueabi- 2. Compiled L4re: (Target Architecture -> ARM, CPU variant -> ARMv7A type CPU, Platform Selection -> TI OMAP AM33x) # make O=builddir config CROSS_COMPILE=arm-linux-gnueabi- 3. Compiled L4Linux: (setup L4Linux Configuration path, Target architecture -> ARM architecture, System type -> Build type -> Use ARMv7) # make O=build-arm arm_defconfig # make O=build-arm menuconfig 4. build uboot-able image copy all modules (fiasco + vmlinuz + cfg + modules.list + ramdisk-arm.rd + arm-rv.io, etc.) to ${L4re/buildDir/bin/arm_armv7a} # make uimage O=build-arm MODULE_SEARCH_PATH=${L4re/buildDir/bin/arm_armv7a} CROSS_COMPILE=arm-linux-gnueabi- 5. make a new FAT32 SD card, then copy the new built bootstrap_L4Linux-basic.uimage into the SD card (BBB already has a built-in uboot-SPL in ROM). 6. boot the BBB and press enter to interrupt the uboot default procedure (initially I was using uboot go command, that does not work). # fathead mmc 0 ${loadaddr} bootstrap_L4Linux-basic.uimage # bootm ${loadaddr} Finally I see the L4Linux gets boot (attached log). But I’m not sure if I did anything wrong or because the hardware issue. After the L4Linux boot, in 5 seconds the terminal print out the following and reboot into the onboard Linux (see the attached log file): # _fat_os: error reading image args, err - -1 # reading u-boot.img # reading u-boot.img Have anyone see this issue? Any further advice would be much appreciated! Other Questions: 1. Assume I got the L4Linux how can i further build a full fledge Linux environment with Libraries and drivers, I assume those things will need to somehow get into the RAMDISK, is that right? (Sorry I’m a newbie I’m not familiar with this) 2. I want to create a native app on Fiasco+L4re and communicate with the L4Linux Ethernet driver, is there any references for constructing communication between the VM and native apps? Thanks -Dan |
U-Boot 2014.04-00014-g47880f5 (Apr 22 2014 - 13:23:54) I2C: ready DRAM: 512 MiB NAND: 0 MiB MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1 *** Warning - readenv() failed, using default environment
Net: <ethaddr> not set. Validating first E-fuse MAC
cpsw, usb_ether
Hit any key to stop autoboot: 0
U-Boot#
U-Boot# fatload mmc 0 0x80001000 bootstrap_L4Linux-basic.uimage
reading bootstrap_L4Linux-basic.uimage
8536128 bytes read in 467 ms (17.4 MiB/s)
U-Boot# bootm 0x80001000
## Booting kernel from Legacy Image at 80001000 ...
Image Name: L4 Image #7
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 8536064 Bytes = 8.1 MiB
Load Address: 81000000
Entry Point: 81000000
Verifying Checksum ... OK
Loading Kernel Image ... OK
Starting kernel ...
L4 Bootstrapper
Build: #7 Thu Jun 22 18:21:44 EDT 2017, 4.7.3
Scanning up to 256 MB RAM, starting at offset 32MB
Memory size is 256MB (80000000 - 8fffffff)
RAM: 0000000080000000 - 000000008fffffff: 262144kB
Total RAM: 256MB
Scanning fiasco
Scanning sigma0
Scanning moe
Moving up to 8 modules behind 81100000
moving module 02 { 817f2000-8182349f } -> { 818e2000-8191349f } [201888]
moving module 01 { 817e0000-817f133b } -> { 818d0000-818e133b } [70460]
moving module 00 { 8175f000-817dff97 } -> { 8184f000-818cff97 } [528280]
moving module 07 { 8145f000-8175efff } -> { 8154f000-8184efff } [3145728]
moving module 06 { 8108d000-8145e47b } -> { 8117d000-8154e47b } [4002940]
moving module 05 { 8102b000-8108c6ab } -> { 8111b000-8117c6ab } [399020]
moving module 04 { 81011000-8102a463 } -> { 81101000-8111a463 } [103524]
moving module 03 { 81010000-8101012c } -> { 81100000-8110012c } [301]
Loading fiasco
Loading sigma0
Loading moe
find kernel info page...
found kernel info page (via ELF) at 80002000
Regions of list 'regions'
[ 80000000, 80000137] { 138} Root mbi_rt
[ 80001000, 80001b7f] { b80} Kern fiasco
[ 80002000, 8008efff] { 8d000} Kern fiasco
[ 800c0000, 800c9fbb] { 9fbc} Sigma0 sigma0
[ 800d0000, 800d6177] { 6178} Sigma0 sigma0
[ 80140000, 80169717] { 29718} Root moe
[ 80170000, 80176ff3] { 6ff4} Root moe
[ 81000000, 8100f553] { f554} Boot bootstrap
[ 81100000, 8184efff] { 74f000} Root Module
found kernel options (via ELF) at 80003000
API Version: (87) experimental
Sigma0 config ip:800c0100 sp:00000000
Roottask config ip:80140260 sp:00000000
Starting kernel fiasco at 80001350
Hello from Startup::stage2
FPU: Initialize
FPU0: Subarch: 3, Part: 30, Rev: 3, Var: c, Impl: 41
SERIAL ESC: allocated IRQ 72 for serial uart
Not using serial hack in slow timer handler.
Welcome to L4/Fiasco.OC!
L4/Fiasco.OC microkernel on arm
Rev: unknown compiled with gcc 4.7.3 for AM33xx []
Build: #1 Thu Jun 22 17:24:39 EDT 2017
Calibrating timer loop... done.
MDB: use page size: 20
MDB: use page size: 12
SIGMA0: Hello!
KIP @ 80002000
allocated 4KB for maintenance structures
SIGMA0: Dump of all resource maps
RAM:------------------------
[4:80000000;80000fff]
[0:8008f000;800bffff]
[0:800ca000;800cffff]
[0:800d7000;8013ffff]
[4:80140000;80169fff]
[0:8016a000;8016ffff]
[4:80170000;80176fff]
[0:80177000;810fffff]
[4:81100000;8184efff]
[0:8184f000;8effffff]
IOMEM:----------------------
[0:0;7fffffff]
[0:90000000;ffffffff]
MOE: Hello world
MOE: found 237440 KByte free memory
MOE: found RAM from 80000000 to 8f000000
MOE: allocated 240 KByte for the page array @0x800d7000
MOE: virtual user address space [0-bfffffff]
MOE: rom name space cap -> [C:103000]
BOOTFS: [81100000-8110012d] [C:105000] l4lx.cfg
BOOTFS: [81101000-8111a464] [C:107000] l4re
BOOTFS: [8111b000-8117c6ac] [C:109000] ned
BOOTFS: [8117d000-8154e47c] [C:10b000] vmlinuz
BOOTFS: [8154f000-8184f000] [C:10d000] ramdisk-arm.rd
MOE: cmdline: moe rom/l4lx.cfg
MOE: Starting: rom/ned rom/l4lx.cfg
MOE: loading 'rom/ned'
Ned says: Hi World!
Ned: loading file: 'rom/l4lx.cfg'
libio: Warning: Query of 'vbus' failed!
PH 0 offs=00008000 flags=rwx PH-type=0x1
virt=02000000 evirt=0243d43c
phys=02000000 ephys=0243d43c
f_sz=003b43d5 memsz=0043d43c
PH 1 offs=0036dfe8 flags=r-x PH-type=0x4
virt=02365fe8 evirt=0236600c
phys=02365fe8 ephys=0236600c
f_sz=00000024 memsz=00000024
PH 2 offs=00000000 flags=rwx PH-type=0x6474e551
virt=00000000 evirt=00000000
phys=00000000 ephys=00000000
f_sz=00000000 memsz=00000000
Starting binary at 0x2000310, argc=6 argv=0xafff4f8c *argv=0xb1007ff4
argv0=rom/vmlinuz
External resolver is at 0xa8000818
======> L4Linux starting... <========
Linux version 4.7.0-l4 (daniel@daniel-ubuntu14) (gcc version 4.7.3
(Ubuntu/Linaro 4.7.3-12ubuntu1) ) #2 Thu Jun 22 17:51:07 EDT 2017
Binary name: rom/vmlinuz
This is an AEABI build.
Linux kernel command line (5 args): mem=64M console=ttyLv0
l4x_rd=rom/ramdisk-arm.rd root=1:0 ramdisk_size=4000
CPU mapping (l:p)[1]: 0:0
Image: 02000000 - 02600000 [6144 KiB].
Areas: Text: 02000000 - 0236600c [3480kB]
RO-Data: 02291000 - 0234e000 [756kB]
Data: 0238c000 - 023af040 [140kB]
Init: 02367000 - 0238c000 [148kB]
BSS: 023b43d5 - 0243d43c [548kB]
Device scan:
Device scan done.
l4lx_thread_create: Created thread 41a (cpu0) (u:b3000e00, v:b3000c00,
sp:0238dfa4)
main thread will be 41a
L4x: section-with-init(-data): Virt: 0x2000000 to 0x243dfff [4344 KiB]
L4x: section-with-init-text: Virt: 0x2000000 to 0x243dfff [4344 KiB]
L4x: Main thread running, waiting...
L4x: Memory size: 64MB
L4x: Setting superpages for main memory
L4x: Adjusted memory start: 02000000
L4x: Main memory: Virt: 0x2600000 to 0x65fffff [65536 KiB]
l4x: vmalloc area: 06600000 - 0e600000
L4x: text: Virt: 0x2000000 to 0x243dfff [4344 KiB]
Loading: rom/ramdisk-arm.rd
INITRD: Size of RAMdisk is 3072KiB
RAMdisk from 00002000 to 00302000 [3072KiB]
l4lx_thread_create: Created thread 41f (timer0) (u:b3000a00, v:00000000,
sp:023d5fa0)
Booting Linux on physical CPU 0x0
Linux version 4.7.0-l4 (daniel@daniel-ubuntu14) (gcc version 4.7.3
(Ubuntu/Linaro 4.7.3-12ubuntu1) ) #2 Thu Jun 22 17:51:07 EDT 2017
CPU: Fiasco [413fc082] revision 2 (ARMv7), cr=00400000
CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: L4
Ignoring unrecognised tag 0x00000000
Memory policy: Data cache writealloc
CPU: All CPU(s) started in SVC mode.
INITRD: 00002000 - 00302000
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 17717
Kernel command line: mem=64M console=ttyLv0 l4x_rd=rom/ramdisk-arm.rd root=1:0
ramdisk_size=4000
PID hash table entries: 512 (order: -1, 2048 bytes)
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 64772K/71684K available (2724K kernel code, 140K rwdata, 756K rodata,
148K init, 548K bss, 6912K reserved, 0K cma-reserved)
Virtual kernel memory layout:
vector : 0xbffff000 - 0xc0000000 ( 4 kB)
fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
vmalloc : 0x06600000 - 0x0e600000 ( 128 MB)
lowmem : 0x00000000 - 0x06600000 ( 102 MB)
modules : 0x01010000 - 0x02000000 ( 15 MB)
.text : 0x02000000 - 0x0236600c (3481 kB)
.init : 0x02367000 - 0x0238c000 ( 148 kB)
.data : 0x0238c000 - 0x023af040 ( 141 kB)
.bss : 0x023b43d5 - 0x0243d43c ( 549 kB)
NR_IRQS:282
l4x: Cannot query L4ICU: -2004
clocksource: l4kipclk: mask: 0xffffffffffffffff max_cycles: 0x1d854df40,
max_idle_ns: 3526361616960 ns
l4timer: Using IRQ210
sched_clock: 64 bits at 1000kHz, resolution 1000ns, wraps every 2199023255500ns
Console: colour dummy device 80x30
console [ttyLv0] enabled
Calibrating delay loop... 990.41 BogoMIPS (lpj=4952064)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
CPU: Testing write buffer coherency: ok
Setting up static identity map for 0x2000000 - 0x2000000
VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns:
19112604462750000 ns
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations
Failed to create "l4x" debugfs directory: 1
clocksource: Switched to clocksource l4kipclk
NET: Registered protocol family 2
TCP established hash table entries: 1024 (order: 0, 4096 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
Trying to unpack rootfs image as initramfs...
rootfs image is not initramfs (junk in compressed archive); looks like an initrd
INITRD: Freeing memory.
l4x: Checks passed.
NetWinder Floating Point Emulator V0.97 (double precision)
futex hash table entries: 256 (order: -1, 3072 bytes)
workingset: timestamp_bits=29 max_order=14 bucket_order=0
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
L4 serial driver
serial-ttyLv.0: ttyLv0 at MMIO 0x1 (irq = 211, base_baud = 230400) is a L4-vcon
l4ser_shm: L4 shared mem serial driver
l4cdds: No name given, not starting.
brd: module loaded
l4bdds: No name given, not starting.
mousedev: PS/2 mouse device common for all mice
NET: Registered protocol family 17
L4IRQ: set irq type of 211 to 1
RAMDISK: ext2 filesystem found at block 0
RAMDISK: Loading 3072KiB [1 disk] into ram disk... done.
EXT4-fs (ram0): couldn't mount as ext3 due to feature incompatibilities
EXT4-fs (ram0): mounting ext2 file system using the ext4 subsystem
EXT4-fs (ram0): mounted filesystem without journal. Opts: (null)
VFS: Mounted root (ext2 filesystem) readonly on device 1:0.
Freeing unused kernel memory: 148K (02367000 - 0238c000)
This architecture does not have kernel memory protection.
Please press Enter to activate this console.
/ # ls
bin etc lost+found sbin tmp
dev linuxrc proc sys usr
/ # uname -a
Linux l4box 4.7.0-l4 #2 Thu Jun 22 17:51:07 EDT 2017 armv7l GNU/Linux
/ #
/ #
/ #
_fat_os: error reading image args, err - -1
reading u-boot.img
reading u-boot.img
|
_______________________________________________ l4-hackers mailing list [email protected] http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
