linux初学-内核编译以及文件系统1

 

linux初学-内核编译以及文件系统1

 

 

 

最近正在对ATmel AT9200 K9s开发板进行熟悉,想移植Linux操作系统到开发板上。学习在linux下的编程技能。涉及到了uBoot的移植以及编译以及Linux内核的编译。下面就对我近期的操作简要阐述如下:(由于刚刚接触Linux,有错误的地方希望大家指出)。

 

  1。到ftp站点下载交叉编译工具链:ftp.arm.linux.org.uk  上面有2.95.3版本以及3.x版本。(注意 Linux 2.4.xx及其以下的内核源码用2.95.3的交叉编译器来编译就可以了;而2.6.xx的内核源码一般要用到cross-3.x以上的版本来编译)

 

  2. 读取Readme文件,了解安装路径;一般是/usr/local/arm/

 

           命令如下:

 

           #mkdir /usr/local/arm

 

           #cd /usr/local/arm

 

           #tar jxvf cross-2.95.3.tar.bz2

 

           然后添加路径(设置环境变量):

 

           $cd

 

           $ls -a

 

           $vi .bash_profile

 

           # .bash_profile

 

           # Get the aliases and functions

 

           if [ -f ~/.bashrc ]; then

 

                  . ~/.bashrc

 

            fi

 

           # User specific environment and startup programs

 

            export TARGET=arm-linux

 

            export PRJROOT=/home/armlinux

 

            export PREFIX=${PRJROOT}/tools

 

            export TARGET_PREFIX=${PREFIX}/${TARGET}

 

            export            

 

   PATH=$PATH:$HOME/bin:$PREFIX/bin:/usr/local/arm/2.95.3/bin:/sbin:/usr/sbin:/usr/local/sbin

 

            unset USERNAME

 

 (环境变量的设置涉及到linux下用户的管理,以及shell的编程,由于刚刚接触,对其不甚了解,后面将继续介绍,大家可以参考一下shell的知识,环境变量的设置主要涉及到.bash_profile .bashrc两个文件。)

 

 3.交叉编译的工具链建立后,我们就可以去下载linux的内核了。内核可以到www.kernel.org上下载。注意这样下载下来的是标准内核版本,而我们需要的是ARM平台的linux内核。这是通过安装armlinux的内核补丁来完成的。所以我们还必须到ftp.arm.linux.org.uk下载相关的内核补丁。注意版本的一致性! 针对9200,我下载的是 2.4.27 版本,补丁是patch-2.4.27-vrs1.bz2 原来下载的2.4.18版本,但是该版本的arch/arm/def-config中没有at9200开发板的配置文件。所以采用27版本。

 

将内核 2.4.27 版本在/usr/local/arm解压(tar jxvf linux-2.4.27.tar.bz2);

 

patch- 2.4.27 -vrs1.bz2进行解压(bunzip2 patch-2.4.27-vrs1.bz2),将解压出来的文件拷贝

 

2.4.27 的解压目录内,用目录patch -p1 < patch-2.4.27-vrs1.bz2进行补丁安装;

 

修改根目录的Makefile文件,只需修改ARCHCROSS_COMPILE即可。

 

ARCH :=arm

 

CROSS_COMPILE=/usr/local/arm/ 3.3.2 /bin/arm-linux-

 

make at91rm9200dk_config进行开发板的配置;

 

make menuconfig   对内核进行配置,在里面可以看到9200的选项,这就是上面一步添加的。

 

 #make clean dep  建立文件依赖关系

 

 make Image 或者 make zImage。这要看你后面使用什么方式的内核映象。如果是make  Image,则生成vmlinux,需要arm-linux-objcopy进行处理,生成uImage影响文件。如果是make zImage,则生成zImagevmlinuxsystem.map

 

zImageuImage对应的uboot处理的方式也不相同。

 

上面就是我编译内核的过程,可能有很多错误,过程也不尽详细。后续对linux了解更深后,会继续对其修改以及增加内容。

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值