嵌入式linux系统教你重新制作x86或ARM平台的linux系统

步骤:

1、首先从http:\\www.kernel.org下载自己想要的linux内核源代码,这里面我以最新的linux-3.10.2版本的内核为例。

2、将刚下载的内核源代码拷贝到linux系统的任意一个目录下,解压,tar xvf linux-3.10.2;

我这里选择/home下,至于windows与linux之间如何共享,这里告诉大家我最长用的两种方法,一种是使用Vmwaretools工具安装使VM->Options->Shared Folders 自己添加所共享的目录即可。另一种是使用samba服务器,具体步骤见我的linux建立samba服务器的步骤。

3、解压好了进入linux-3.10.2的当前目录,开始内核的配置:

A、首先要对内核产生的文件,进行清除;

  make clean  删除内核产生的文件但是不删除配置文件

  make mrproper 删除内核产生的文件也删除配置文件

  make distclean 删除内核产生的文件也删除配置文件同时也删除编辑文件产生的backup文件

B、编译内核;

  make config  实现配置的时候人与机器互动

  make menuconfig 传统的内核配置单,菜单栏,把同种类型放到一起,供程序员配置

  make oldconfig、make xconfig 这两种前者,如果你之前有配置过的选项,他会自动默认不在让你配置,让你配置NEW选项;后者是在图像化界面配置的。

注:其实很多时候我们开发实际项目的时候,往往不会重新来配置的,我们会在linux-3.10.2/arch/目录里面找我们想要的平台的配置文件。比如这里面我是做一个x86平台的内核。我就在arch/x86/configs里面找32位的配置文件。将配置文件拷贝到linux-3.10.2内核的当前目录下并修改名称为.config。下面如果使用特定的功能可以make menuconfig 进行配置。

在make menuconfig 里面有些技巧,比如Y 代表*、N代表 空格、 M代表m;

C、制作Image镜像;

  make zImage  这个命令是编译成小于512KB的镜像;http://www.cnblogs.com/Sorial-DJM/admin/EditPosts.aspx?opt=1

  make bzImage 这个命令是编译大于512KB的镜像,当然小于512也可以编译;

D、make modules 安装模块,make modules_install安装模块。此时会在/lib/modules下产生3.10.2的内核模块。如果没有就将其拷贝到/lib/modules下;

E、制作init ramdisk 文件,使用mkinitrd initrd-¥version ¥version ;

注:¥version 这个版本就是你的内核版本,后面一个的¥version在/lib/moudles里面可以看到。

将之前编译好的bzImage拷贝到/boot下改名称为vmlinuz-3.10.2

cp arch/x86/boot/bzImage /boot/vmlinuz-3.10.2;

F、在上面五个步骤中,将所需要的两个文件得到了。bzImage 可initrd-3.10.2 下面将其添加到/etc/grub.conf或者/etc/lilo.conf里面如下:

GRUB(统一引导装入器)是基本的Linux引导装入器。

其功能如下: 

  1.选择操作系统(如果计算机上安装了多个操作系统)。

    2.表示相应引导文件所在的分区。

    3.找到内核。

    4.运行初始内存盘,设置内核与相关模块。

 

使用vim打开/etc/grub.conf,我们只要关注这些就可以了:

title linux-3.10.2

  root (hd0,0)

  kerenl /vmlinuz-3.10.2 ro root=/dev/mapper/vg_embedclub-lv_root rd_LVM_LV=vg_embedclub/lv_root rd_LVM_LV=vg_embedclub/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=zh_CN.UTF-8 KEYTABLE=us rhgb quiet

  initrd /initrd-3.10.2

保存退出即可,在重启linux系统在开机选择那一瞬间你会看到你所添加的内核系统。希望对你有帮助。

 

 

转载于:https://www.cnblogs.com/Sorial-DJM/p/3207991.html

你可能感兴趣的:(嵌入式linux系统教你重新制作x86或ARM平台的linux系统)