打印

Fedora 9编译Linux-0.11内核

[复制链接]
197|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
丑帅丑帅的|  楼主 | 2018-10-4 14:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、 到 http://oldlinux.org/Linux.old/bochs/ 下载 linux-0.11-rh9-041130.tar.gz(linux-0.11-rh9-041130.zip),解压如下:

2、根目录执行make命令,提示错误;这是由于缺少rpm包,无法识别as86命令,下载地址:http://oldlinux.org/Linux.old/study/tools/dev86-0.16.3-8.i386.rpm

3、执行make clean,再执行make,提示错误;这是由于函数声明不一致造成,打开include/unistd.h,在所示函数声明前加上static关键字

4、执行make clean,再执行make,提示错误;这个错误比较隐蔽,打开fs/exec.c,找到if (!(pag = (char *) page[p/PAGE_SIZE]) && !(pag = (char *)page[p/PAGE_SIZE] = (unsigned long *) get_free_page())) 给它添括号变成 if (!(pag = (char *) page[p/PAGE_SIZE]) && !(pag = (char *) (page[p/PAGE_SIZE] = (unsigned long *) get_free_page()))),记得还有一处类似错误,自己找一下,这是由于编译器的原因造成

5、执行make clean,再执行make,提示错误;打开include/string.h,extern inline char * strcpy(char * dest,const char *src)把extern关键字换成static

6、执行make clean,再执行make,提示错误;这个问题比较棘手,花费了我比较长的时间,打开tools/build.c,注释掉头文件#include <linux/fs.h>,把那两个宏直接拷贝过来

7、执行make clean,再执行make,成功!

8、总结,Linux-0.11内核非常古老,编译起来漏洞百出,加以耐心,肯定会有解决方案

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

741

主题

742

帖子

0

粉丝