Foundation model should be run as root with --network=bridged
--network=bridge will create bridge ARM0 on PC (or you can use --network-bridge=xxx to choose your bridge name)
Remember to build your host kernel with bridge, TUN/TAP device support
After host booting on Foundation model,
run ifconfig eth0 10.10.10.11 on host,
run ifconfig ARM0 10.10.10.10 on PC
At this moment, your host on Foundation model can ping PC and vice versa.
For booting guest, use --network "trans=mmio,mode=tap" as and --params "earlyprintk=smh ip=10.10.10.13::10.10.10.11:255.255.255.0::eth0:off console=hvc0 root=/dev/vda rw init=/bin/sh" as parameter of kvmtool.
mode=tap will create a tap named tap0 on host, trans=mmio means use mmio for ARM system.
After guest booting, the eth0 on guest should be 10.10.10.13.
This time, host must have a tap0 device, then execute follow command on host:
brctl addbr virbr0
brctl setfd virbr0 0
brctl addif virbr0 eth0
ifconfig eth0 0.0.0.0
ifconfig virbr0 10.10.10.11
route add default gw 10.10.10.10
brctl addif virbr0 tap0
ifconfig tap0 0.0.0.0
After all, you should able to ping between PC, host, guest with each others.
The following picture is the network topology I think. But I almost know nothing about network so I'm pretty sure that the linking line have some error hahaXD. Just a good picture for me to memorize.
ARMv8 host on Foundation model network setup and guest booted by kvmtool network setup
Related Posts:
Describing Physical MemoryReference: http://www.chudov.com/tmp/LinuxVM/html/understand/node16.html NUMA(non-uniform memory access)架構下,memory被分成很多的bank(又稱為node),而每個bank被CPU access的cost不同 Linux用struct pg_data_t來代表bank(or node) 而PC是一UMA的架構,所以只有一個p… Read More
Booting ARM system from bootloader to linux kernel有空來讀一下 會以u-boot code當作bootloader base 開到start_kernel之前的組語部分可以參考 http://gicl.cs.drexel.edu/people/sevy/linux/ARM_Linux_boot_sequence.html… Read More
Memory zoneReference : Understaning the Linux Kernel Chap.8 Ideal computer architecture上,任意page frame都是可以被access的 但實際上的電腦架構在硬體上會有些限制住page frame被使用 Linux kernel must deal with two hardware constraints of the 80 × 86 architecture: • The D… Read More
Linux memory layout每一個user process看到的vitrual memory共有4G(32 bit machine) 其中通常切成3G:1G 0x00000000-0xbfffffff: user process(3GB) 0xc0000000-0xffffffff: kernel space (1GB) 而user process(3G)是每支user process不同的,甚至每支user thread也是不同 &… Read More
Kernel Space MemoryReference : http://www.chudov.com/tmp/LinuxVM/html/understand/node28.html Kernel的virtual memory適用linear mapping,physical address 0對應到kernel virtual memory的PAGE_OFFSET(通常是0xC000_0000) 也就是說kernel virtual address - PAGE_OFFSET就… Read More
0 意見:
張貼留言