1.在ubuntu 製作一個64M的amge
$dd if=/dev/zero of=swap.img bs=512 count=131072
2.通過mtd卡方式加載swap.img 到qemu
qemu-system-aarch64 -machine virt -cpu cortex-a57 -machine type=virt -nographic -m 2048 -smp 2 -kernel arch/arm64/boot/Image --append "rdinit=/linuxrc console=ttyAMA0"
swapoff swapon switch_root
/ # mkswap /dev/mtdblock0
Setting up swapspace version 1, size = 134213632 bytes
random: mkswap urandom read with 17 bits of entropy available
UUID=04eaf296-2598-4058-bf9f-2c7a364a8218
/ # swapo
swapoff swapon
/ # swapon /dev/mtdblock0
Adding 131068k swap on /dev/mtdblock0. Priority:-1 extents:1 across:131068k SS
/ # free on
total used free shared buffers cached
Mem: 1988072 10828 1977244 1888 4 1888
-/+ buffers/cache: 8936 1979136
Swap: 131068 0 131068
/ #
3.這個主要用到內部mtd設備作爲swap。4.SD
qemu-system-arm -M vexpress-a9 -smp 4 -m 1024M -kernel arch/arm/boot/zImage --append "rdinit=/linuxrc console=ttyAMA0 loglevel=8" -dtb arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic -sd swap.img
/ #
/ #
/ # ls /dev/mmcblk0
/dev/mmcblk0
/ #
/ #
/ #
/ # mkswap /dev/mmcblk0
Setting up swapspace version 1, size = 67104768 bytes
UUID=ebbbc1e4-1e36-4aaf-b86a-dcea99324124
/ # swapon /dev/mmcblk0
Adding 65532k swap on /dev/mmcblk0. Priority:-1 extents:1 across:65532k SS
/ # free -m
total used free shared buffers cached
Mem: 1006 15 990 1 0 1
-/+ buffers/cache: 13 992
Swap: 63 0 63
/ #