pmem仿真环境搭建


前段时间研究了下Linux内核中用内存模拟pmem,结合网上的资料和自己的整理,记录下搭建pmem仿真环境的全步骤。

1. 安装ubuntu server(16.04 LTS)

下载源http://www.ubuntu.com/download/alternative-downloads

WMware workstation pro中安装网络连接方式选择桥接模式

2. 网络配置

修改配置文件/etc/network/interfaces
root@ubuntu:~# sudo nano /etc/network/interfaces

添加以下内容:

auto eth0                  #设置自动启动eth0接口
iface eth0 inet static     #配置静态IP
address 192.168.11.88      #IP地址
netmask 255.255.255.0      #子网掩码
gateway 192.168.11.1        #默认网关

修改DNS

sudo nano /etc/resolve.conf

nameserver 127.0.0.1 #记得加上

nameserver 8.8.8.8 #当地dns服务器(ipconfig /all 查看本地dns,第一个dns是默认的,共有2dns)

重启网络,使配置生效

sudo /etc/init.d/networking restart

 

3. 安装桌面

$ sudo apt-get update

注释掉/etc/apt/sources.list文件里cdrom那一行

$ sudo apt-get install xinit

$ sudo apt-get install gdm

$ sudo apt-get install kubuntu-desktop

4. 内核编译

下载内核

linux stable kernel 4.5.2下载地址https://www.kernel.org/(大于等于4.2的内核版本将顺利的支持pmem

 

内核解包

$ cd /usr/src  #如果这里有一个存在的"linux"目录,将其改名为"linux.old" ("mv   linux   linux.old",以root权限)

$ tar –xzvf /path/to/my/kernel-x.y.z.tar.gz  #内核源代码会被释放到一个新的"linux"目录下。

 

配置问题

在编译内核前,需要配置它配置可精确控制在新内核中启用(禁止)哪些内核功能。也可控制哪些会被编译到内核的二进制映像(在启动时被载入)而哪些被编译到需要时载入的内核模块文件。

输入make menuconfigubuntu下提示fatal error: curses.h: No such file or directory解决办法:sudo apt-get install libncurses5-dev libncursesw5-dev)或者make xconfig(未测试)。如果输入make  menuconfig,将使用一个基于文本的彩色菜单系统来配置内核。如果输入make xconfig,将使用一个基于X-WindowGUI   界面来配置内核的各种选项。当使用make  menuconfig时,在左面出现一个   "<   >"   的选项能被编译成为一个模块。当选项被选中,按下空格键来循环选择选项是被选中或未选中,   ("<*>")表示将被编译成内核映像而("")表示将被编译成模块。   
配置技巧

在这里有极其多的内核选项,而且我们无法在此一一解释 所以请利用内核内置的帮助功能。基本上每个选项都至少有一些描述,而且每个通常都有一行"如果您不知道这个选项的含义,输入Y(或者N)”。这些提示在你不知道一个特定选项的含义时能帮助你。要使用帮助,选中有疑问的选项然后按"?"键。

 

使能pmem模块

$ make menuconfig

-> Device Drivers -> NVDIMM Support ->

PMEM; BLK; <*>BTT

$ make menuconfig

-> Processor type and features

<*>Support non-standard NVDIMMs and ADR protected memory

 

编译和安装内核

$ make jx   #编译内核,x代表cpu核心数目

fatal error: openssl/bio.h: No such file or directory解决办法:sudo apt-get install libssl-dev

$ make modules_install install  #安装内核

# sudo nano /etc/default/grub  #修改grub文件

memmap=nn[KMG]!ss[KMG]  #分配内存区域作为PMEMss代表起始内存地址,nn代表区域大小,如4G!12G代表12G16G的内存范围作为PMEM. [KMG]表示KB,MB,GB. grub文件中添加如下内容:

GRUB_CMDLINE_LINUX="memmap=nn[KMG]!ss[KMG]"

# sudo update-grub2  #更新grub

$ reboot  #重启机器

你可能感兴趣的:(pmem仿真环境搭建)