【海思篇】【Hi3516DV300】十七、创建swap分区

目的:创建swap分区

默认关闭

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

~ # free
             total       used       free     shared    buffers     cached
Mem:        122040       9536     112504          4          0       1460
-/+ buffers/cache:       8076     113964
Swap:            0          0          0

开启目的

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

开启准备

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

TF卡分区规划

本章拿sdcard测试的
1 sdcard划分为2个区,第一个主分区为正常存储区(vfat),第二个主分区为swap区
2 swap区大小我划分为256MB大小;因为我的linux内存分配是128M,所以swap分配为2倍大小;可以更大或更小。

创建swap步骤

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

## 制作swap文件系统

# 制作swap文件系统
~ # mkswap /dev/mmcblk0p2
Setting up swapspace version 1, size = 256452608 bytes
UUID=2676daed-8fc5-47dd-a498-5f2757132690

开启swap

# 开启swap
~ # swapon /dev/mmcblk0p2
Adding 250440k swap on /dev/mmcblk0p2.  Priority:-1 extents:1 across:250440k SS

查看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创建及开启成功!!!

中途遇见的问题

~ # swapon /dev/mmcblk0p2
swapon: /dev/mmcblk0p2: Function not implemented

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

General setup —>

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

你可能感兴趣的:(海思,Hi3516DV300,linux,arm)