首页 > 技术知识 > 正文

海思应用篇】-(9)创建swap分区

默认关闭

Swap的total是0,所以hi3516dv300默认是没有swap分区;

~ # free

total used free shared buff/cache available

Mem: 509720 153812 251776 276 104132 333928

Swap: 0 0 0

3.27.1 开启目的

为什么要开启swap分区呢?如果我们板子本身的内存较小,因为成本控制或者是集成式内存,硬件上无法扩大内存,那么我们可以开启swap分区。这样我们的程序如果感觉到有些卡(ui上能明显反应)就可以解决了。

3.27.2 开启准备

你的flash够大,且最好是spi-nand或者emmc;其次可以是sdcard;

3.27.3 TF卡分区规划

本章拿sdcard测试的

1 sdcard划分为2个区,第一个主分区为正常存储区(vfat),第二个主分区为swap区

2 swap区大小我划分为256MB大小;因为我的linux内存分配是128M,所以swap分配为2倍大小;可以更大或更小。

创建swap步骤

3.27.3.1 sdcard分区

cd /

# 如果已挂载,取消挂载

umount /dev/mmcblk0p1

# 如果已有分区,且分配为整个卡的大小,先要删除分区

fdisk -l

fdisk /dev/mmcblk0

Command (m for help): d1

No partition is defined yet!

# 创建第一个主分区(vfat)

Command (m for help): n

Command action

e extended

p primary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-19277, default 1): Using default value 1

Last cylinder or +size or +sizeM or +sizeK (1-19277, default 19277): 10000

Command (m for help): t

Selected partition 1

Hex code (type L to list codes): b

Changed system type of partition 1 to b (Win95 FAT32)

# 创建第二个主分区(swap)

Command (m for help): n

Command action

e extended

p primary partition (1-4)

p

Partition number (1-4): 2

First cylinder (10001-19277, default 10001): Using default value 10001

Last cylinder or +size or +sizeM or +sizeK (10001-19277, default 19277): +256M

Command (m for help): t

Partition number (1-4): 2

Hex code (type L to list codes): 82

Changed system type of partition 2 to 82 (Linux swap)

Command (m for help): w

The partition table has been altered.

Calling ioctl() to re-read partition table

mmcblk0: p1 p2

<

3.27.3.2 制作swap文件系统

# 制作swap文件系统

~ # mkswap /dev/mmcblk0p2

Setting up swapspace version 1, size = 256452608 bytes

UUID=2676daed-8fc5-47dd-a498-5f2757132690

3.27.3.3 开启swap

# 开启swap

~ # swapon /dev/mmcblk0p2

Adding 250440k swap on /dev/mmcblk0p2. Priority:-1 extents:1 across:250440k SS

3.27.3.4 查看swap

~ # cat /proc/swaps

Filename Type Size Used Priority

/dev/mmcblk0p2 partition 250440 0 -1

~ # free -m

total used free shared buffers cached

Mem: 119 9 109 0 0 1

-/+ buffers/cache: 8 111

Swap: 244 0 244

swap创建及开启成功!!!

3.27.4 问题

~ # swapon /dev/mmcblk0p2

swapon: /dev/mmcblk0p2: Function not implemented

这是因为hi3516dv300默认不支持swap,我们要去内核中开启:

General setup —>

[*] Support for paging of anonymous memory (swap)

猜你喜欢