免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 826 | 回复: 0
打印 上一主题 下一主题

linux初学-内核编译以及文件系统1 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-07-19 12:45 |只看该作者 |倒序浏览

最近正在对ATmel AT9200 的K9s开发板进行熟悉,想移植Linux操作系统到开发板上。学习在linux下的编程技能。涉及到了u-Boot的移植以及编译以及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 进行补丁安装;
修改根目录的Makefile文件,只需修改ARCH和CROSS_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,则生成zImage,vmlinux,system.map。
zImage和uImage对应的u-boot处理的方式也不相同。
上面就是我编译内核的过程,可能有很多错误,过程也不尽详细。后续对linux了解更深后,会继续对其修改以及增加内容。




本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/40405/showart_342801.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP