编译内核使slackware13.37支持大内存
来源:互联网 发布:淘宝达人怎么到1w粉丝 编辑:程序博客网 时间:2024/05/16 04:44
忙了一个月终于完成了项目,当然也赚了一笔小钱。想着换一台笔记本,毕竟是吃饭的家伙,要买个好一点的。
本来觉得Thinkpad T420不错,但是去了一趟店里发现这台机器挺难看的。转来转去看到华硕的一台15.6英寸笔记本,相当喜欢就买了。新笔记本4个GB的内存,还有一个插槽可供扩展。现在内存这么便宜,索性又买了一根4GB组成双通道共8GB内存。
之前一直使用32位的slackware13.37来做开发。不用64位是考虑到许多交叉编译工具在64位下使用非常蛋疼,且开发板也只支持32位的系统,我必须尽量保持PC端与开发板系统版本一致,以避免许多不必要的麻烦。
问题是32位的slackware13.37最大只支持2.7GB左右的用户内存,剩余4、5个GB都白白浪费了,真可惜。本者”生命不止,折腾不息“的程序员原则,我到处寻找解决方法。资料说32位的系统最大可支持64GB内存,我仔细查了下这个PAE技术。原来32位的系统可以通过模拟36位地址线来支持最大64GB的内存。
slackware13.37内核版本是2.6.37,默认开启的最大内存支持为4GB,我们可以通过重新编译内核将最大内存支持改为64GB。由于我们只是想让系统支持64GB内存,所以仍旧使用原来的内核源代码。slackware在安装的时候会询问是否安装内核源代码包,如果没有安装源代码,则需要手动将源代码从光盘拷入/usr/src,并解压。
slackware下编译内核的步骤非常简单。首先进入源代码目录:
cd /usr/src/linux-2.6.37
然后读取当前所使用内核的配置:
make oldconfig
这时就可以配置内核了:
make menuconfig
在Processor Type and features路径下,找到HIgh Memory Support的选项,原本为4GB,我们将其改为64GB。
然后保存配置并退出,开始编译内核:
make
经过一个多小时的编译,内核及模块已经编译成功了。安装模块:
make modules_install
然后安装内核:
make install
完成。
重启后,遇到一个大麻烦,在启动的过程中出现错误:
unable to mount root fs on 08:03
再继续找资料,发现问题可能是内核没找到分区。为什么会这样呢?我用slackware的光盘启动电脑,进入光盘里的Linux控制台,并用chroot命令改变当前主目录为硬盘中的主目录。然后重新编译内核,在执行make menuconfig后配置内核时,我仔细在选项中寻找,终于发现原来没有在File System将ext4文件系统编译到内核中去,我的Linux分区使用的是ext4,而新编译的内核却不支持ext4格式,内核当然找不到我的启动分区啦。于是重新修改配置,在File Systems 中把ext4的文件系统The Extended 4 File System编译到内核中去,并且将ext2、ext3等不需要的文件系统去掉以加快内核的启动速度。然后把Reiserfs support也编译到内核中。
然后重新make,并make modules_install,make install。完成后,重启电脑。
终于,再也没有提示错误,顺利进入系统,悬着的一颗心也落了下来。还没结束呢,还得查看是否已经开启了大内存支持。在命令行下输入命令:
top
看到Mem 一行显示:
Mem: 8083356k total
成功了,好激动!
对初学者来说编译内核具有较高难度,我们可以在Linux中再安装一个VirtualBox虚拟机软件,将同版本的Linux装在虚拟机中。然后将想要进行的内核编译等危险操作在虚拟机中先演练一遍,确保没问题后再在Host机上进行操作,这样可保证不出其它问题。如果Host启动不了,最彻底的方法就是重新安装一遍系统(我刚学Linux时就是这么干的,哈哈)。重装系统需要近一个小时,时间上很不划算,更不提配置开发环境等。所以能不重装系统,就不要重装系统了。Linux系统设计地非常巧妙,各个部分独立性比较强。我们可以使用LiveCD或者slackware光盘启动电脑,然后在光盘中的命令行下进行Host机的系统修复。
- 编译内核使slackware13.37支持大内存
- 让内核支持大内存-hugemem核心
- Win2003 企业版支持大内存
- 内核大内存管理关闭
- 关闭内核大内存管理
- WINDOWS 2003 大内存支持的问题
- 32位windows 支持大内存。
- Windows如何提供大内存支持(转)
- linux32位操作系统支持大内存
- Java的大内存分页支持
- 透明大内存页Hugepage支持
- 关闭内核中的大内存管理
- 编译多核大内存openwrt版本
- 如何使32bit Linux主机支持4GB以上的大内存
- WinCE定制中的大内存支持与永久保存注册表
- windows 2003 server 企业版 是否支持大内存
- Windows Server 2003 和 Windows 2000 提供大内存支持
- WinCE定制中的大内存支持与永久保存注册表
- Android实战技巧之四:语音识别
- QueryInterface IID_IDispatch
- 4_9_天天一记
- ubuntu安装eclipse、jre、cdt配置C++开发环境
- 通过flashback_transaction_query查询DML历史
- 编译内核使slackware13.37支持大内存
- SESSIONS.ser 的问题
- 4_10_天天一记
- java处理url中的特殊字符(如&,%...)
- 黑马程序员 C#程序 求你活了多少天
- C++程序设计实验报告(五十七)---第九周任务1
- Java虚拟机类加载顺序研究
- Jquery UI 插件的探索
- 4_11_天天一记