Hi Phi,
On 08/23/2013 08:56 AM, Phi Debian wrote:
May be I should use another receipe to build and boot a kernel instead of the the one given on the web site https://wiki.linaro.org/HowTo/BuildArm64Kernel
Does someone do this another way ?
To me the docco there is almost good sounds like a tiny bit is missing, but I can decipher myslf.
If you run `make menuconfig` in between using the defconfig and building the image and make sure you've got the following configured, does that help?
Symbol: VIRTIO_MMIO [=y] Type : tristate Prompt: Platform bus driver for memory mapped virtio devices Location: -> Device Drivers (1) -> Virtio drivers Defined at drivers/virtio/Kconfig:34 Depends on: HAS_IOMEM [=y] Selects: VIRTIO [=y]
Symbol: VIRTIO_BLK [=y] Type : tristate Prompt: Virtio block driver Location: -> Device Drivers (2) -> Block devices (BLK_DEV [=y]) Defined at drivers/block/Kconfig:498 Depends on: BLK_DEV [=y] && VIRTIO [=y]
Christopher
On Fri, Aug 23, 2013 at 2:48 PM, Phi Debian phi.debian@gmail.com wrote:
Hi Christopher,
There is no virtio in this log... (and never saw a virtio reference in the receipe)
Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Initializing cgroup subsys cpu Linux version 3.11.0-rc6+ (phi@hpfrcu82) (gcc version 4.8.2 20130624 (prerelease) (crosstool-NG linaro-1.13.1-4.8-2013.07-1 - Linaro GCC 2013.07) ) #1 SMP Wed Aug 21 19:05:06 CEST 2013 CPU: AArch64 Processor [410fd000] revision 0 Machine: Foundation-v8A PERCPU: Embedded 10 pages/cpu @ffffffc87ffaa000 s11392 r8192 d21376 u40960 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 1034240 Kernel command line: root=/dev/vda2 consolelog=9 rw console=ttyAMA0 PID hash table entries: 4096 (order: 3, 32768 bytes) Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes) Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes) software IO TLB [mem 0x8f8000000-0x8fc000000] (64MB) mapped at [ffffffc878000000-ffffffc87bffffff] Memory: 4059836K/4194304K available (2995K kernel code, 198K rwdata, 1076K rodata, 167K init, 150K bss, 134468K reserved) Virtual kernel memory layout: vmalloc : 0xffffff8000000000 - 0xffffffbbffff0000 (245759 MB) vmemmap : 0xffffffbc01c00000 - 0xffffffbc1f800000 ( 476 MB) modules : 0xffffffbffc000000 - 0xffffffc000000000 ( 64 MB) memory : 0xffffffc000000000 - 0xffffffc880000000 ( 34816 MB) .init : 0xffffffc00047b000 - 0xffffffc0004a4c80 ( 168 kB) .text : 0xffffffc000080000 - 0xffffffc00047ac30 ( 4076 kB) .data : 0xffffffc0004a8000 - 0xffffffc0004d99a0 ( 199 kB) SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 Hierarchical RCU implementation. RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4. NR_IRQS:64 nr_irqs:64 0 GIC CPU mask not found - kernel will fail to boot. GIC CPU mask not found - kernel will fail to boot. Architected local timer running at 100.00MHz (phys). Console: colour dummy device 80x25 Calibrating delay loop (skipped), value calculated using timer frequency.. 200.00 BogoMIPS (lpj=1000000) pid_max: default: 32768 minimum: 301 Mount-cache hash table entries: 256 hw perfevents: enabled with arm/armv8-pmuv3 PMU driver, 9 counters available CPU1: failed to boot: -38 CPU2: failed to boot: -38 CPU3: failed to boot: -38 Brought up 1 CPUs SMP: Total of 1 processors activated (200.00 BogoMIPS). devtmpfs: initialized atomic64 test passed NET: Registered protocol family 16 vdso: 2 pages (1 code, 1 data) at base ffffffc0004db000 hw-breakpoint: found 16 breakpoint and 16 watchpoint registers. Serial: AMBA PL011 UART driver 1c090000.uart: ttyAMA0 at MMIO 0x1c090000 (irq = 37) is a PL011 rev2 console [ttyAMA0] enabled 1c0a0000.uart: ttyAMA1 at MMIO 0x1c0a0000 (irq = 38) is a PL011 rev2 1c0b0000.uart: ttyAMA2 at MMIO 0x1c0b0000 (irq = 39) is a PL011 rev2 1c0c0000.uart: ttyAMA3 at MMIO 0x1c0c0000 (irq = 40) is a PL011 rev2 bio: create slab <bio-0> at 0 SCSI subsystem initialized Switched to clocksource arch_sys_counter NET: Registered protocol family 2 TCP established hash table entries: 32768 (order: 7, 524288 bytes) TCP bind hash table entries: 32768 (order: 7, 524288 bytes) TCP: Hash tables configured (established 32768 bind 32768) TCP: reno registered UDP hash table entries: 2048 (order: 4, 65536 bytes) UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes) NET: Registered protocol family 1 RPC: Registered named UNIX socket transport module. RPC: Registered udp transport module. RPC: Registered tcp transport module. RPC: Registered tcp NFSv4.1 backchannel transport module. fuse init (API version 7.22) msgmni has been set to 7929 io scheduler noop registered io scheduler cfq registered (default) Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled smc91x: IOADDR ffffff8000018000 doesn't match configuration (300). smc91x.c: v1.1, sep 22 2004 by Nicolas Pitre nico@fluxnic.net eth0: SMC91C11xFD (rev 1) at ffffff8000018000 IRQ 47 [nowait] eth0: Ethernet addr: 00:02:f7:ef:7e:f2 mousedev: PS/2 mouse device common for all mice TCP: cubic registered NET: Registered protocol family 17 VFS: Cannot open root device "vda2" or unknown-block(0,0): error -6 Please append a correct "root=" boot option; here are the available partitions: Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.11.0-rc6+ #1 Call trace: [<ffffffc000087098>] dump_backtrace+0x0/0x12c [<ffffffc0000871d8>] show_stack+0x14/0x1c [<ffffffc0003618b0>] dump_stack+0x70/0x90 [<ffffffc00035efc8>] panic+0xe8/0x208 [<ffffffc00047bd04>] mount_block_root+0x1d8/0x278 [<ffffffc00047bebc>] mount_root+0x118/0x134 [<ffffffc00047c018>] prepare_namespace+0x140/0x188 [<ffffffc00047b958>] kernel_init_freeable+0x1b4/0x1d4 [<ffffffc00035d8b8>] kernel_init+0x18/0x148
On Fri, Aug 23, 2013 at 2:33 PM, Christopher Covington cov@codeaurora.org wrote:
Hi Phi,
On 08/23/2013 01:52 AM, Phi Debian wrote:
Hi Christopher, I was traveling yesterday, I will resume on this hopefully today....
This rootfs.imf is a short rename of standard (downloaded) decompressed /home/phi/armv8-dl/vexpress64-openembedded_lamp-armv8_20130719-403.img.gz
Then CU82$ file rootfs.img rootfs.img: x86 boot sector; partition 1: ID=0xe, active, starthead 1, startsector 63, 106432 sectors; partition 2: ID=0x83, starthead 0, startsector 106496, 4087808 sectors, code offset 0x0
And I can indeed mount the partition #2 and change file in there if needed later. For instance adding some .ko that I would have compiled along with my freshly build kernel.
Do you have virtio block device support properly configured? What kind of virtio-related messages do you see in the kernel log?
Christopher
On Thu, Aug 22, 2013 at 5:09 PM, Christopher Covington cov@codeaurora.org wrote:
Hi Phi,
On 08/22/2013 02:22 AM, Phi Debian wrote:
Hi Christopher,
Progress!!! giving the full path for FDT_SRC give make(1) success I obtained a linux-system-foundation.axf
Note that I build linux-system-foundation.axf this way.
make CROSS_COMPILE=aarch64-linux-gnu- BOOTARGS='"root=/dev/vda2 consolelog=9 rw console=ttyAMA0"' FDT_SRC=../linux/arch/arm64/boot/dts/foundation-v8.dts IMAGE=linux-system-foundation.axf
Now booting it gives ./Foundation_v8pkg/models/Linux64_GCC-4.1/Foundation_v8 --image ./kbuild/boot-wrapper-aarch64/linux-system-foundation.axf --block-device ./rootfs.img --network=nat
Linux version 3.11.0-rc6+ (phi@hpfrcu82) (gcc version 4.8.2 20130624 (prerelease) (crosstool-NG linaro-1.13.1-4.8-2013.07-1 - Linaro GCC 2013.07) ) #1 SMP Wed Aug 21 19:05:06 CEST 2013 CPU: AArch64 Processor [410fd000] revision 0 Machine: Foundation-v8A PERCPU: Embedded 10 pages/cpu @ffffffc87ffaa000 s11392 r8192 d21376 u40960 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 1034240 Kernel command line: root=/dev/vda2 consolelog=9 rw console=ttyAMA0 PID hash table entries: 4096 (order: 3, 32768 bytes)
. . . TCP: cubic registered NET: Registered protocol family 17 VFS: Cannot open root device "vda2" or unknown-block(0,0): error -6 Please append a correct "root=" boot option; here are the available partitions: Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.11.0-rc6+ #1 Call trace: [<ffffffc000087098>] dump_backtrace+0x0/0x12c [<ffffffc0000871d8>] show_stack+0x14/0x1c [<ffffffc0003618b0>] dump_stack+0x70/0x90 [<ffffffc00035efc8>] panic+0xe8/0x208 [<ffffffc00047bd04>] mount_block_root+0x1d8/0x278 [<ffffffc00047bebc>] mount_root+0x118/0x134 [<ffffffc00047c018>] prepare_namespace+0x140/0x188 [<ffffffc00047b958>] kernel_init_freeable+0x1b4/0x1d4 [<ffffffc00035d8b8>] kernel_init+0x18/0x148
So its not an illegal instruction anymore be really a wrong FS, The rootfs.img I used in the runstring is a gunzip of vexpress64-openembedded_lamp-armv8_20130719-403.img.gz
Dunno why it can't open /dev/vda2, the --block-device ./rootfs.img seems ok The message Please append a correct "root=" boot option seems strange since the top console log gives Kernel command line: root=/dev/vda2 consolelog=9 rw console=ttyAMA0
Well looks like we are getting closer to boot a newly build OS.
When you run `file rootfs.img` does it start with something like "x86 boot sector; partition 1" or "Linux rev 0.0 ext2 filesystem data"?
If it's the latter, the image doesn't have partitions and you'll need to use "root=/dev/vda" (no partition number specified).
Regards, Christopher
-- Employee of Qualcomm Innovation Center, Inc. Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by the Linux Foundation.
-- Employee of Qualcomm Innovation Center, Inc. Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by the Linux Foundation.