文件名称:arm_linux移植笔记(转) .doc
文件大小:300KB
文件格式:DOC
更新时间:2023-01-07 09:57:23
linux移植
从网上一个大神那里得到的linux开发移植笔记,仅供学习参考;细节很多,知识全面,有知识链接说明。 部分内容如下: 1.用dk登录linux主机,在dk下创建一个myboard文件夹 2.解压cross3.2:解压到/usr/local/arm/文件夹下 最好在/usr/local/arm/下创建一个3.2文件夹,把解压在arm文件夹下的文件(夹)全部移到3.2下,因为后面可能还会用到3.4.1的交叉编译器。 3.解压uboot:将uboot解压到myboard文件夹下 tar xzvf u-boot-1.2.0.tar.bz2 –C /home/dk/myboard/ 4.进入uboot目录,修改Makefile cd u-boot-1.2.0 vi Makefile (1) 新建我的编译项 在1923行,即smdk2410_config编译项之后增加我的编译项 tekkaman2440_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t tekkaman2440 tekkaman s3c24x0 各项的意思如下: arm: CPU的架构(ARCH) arm920t: CPU的类型(CPU),其对应于cpu/arm920t子目录。 tekkaman2440: 开发板的型号(BOARD),对应于board/tekkaman/tekkaman2440目录。 tekkaman: 开发者/或经销商(vender)。 s3c24x0: 片上系统(SOC)。 (2) 修改交叉编译器路径,我用的cross3.2是在/usr/local/arm/ 修改128行 CROSS_COMPILE=/usr/local/arm/3.2/bin/arm-linux- 5.在/board子目录中建立自己的开发板tekkaman2440目录 由于我在上一步板子的开发者/或经销商(vender)中填了 tekkaman ,所以开发板tekkaman2440目录一定要建在/board子目录中的tekkaman目录下 ,否则编译会出错。 $cd board $mkdir tekkaman tekkaman/tekkaman2440 $cp -arf sbc2410x/* tekkaman/tekkaman2440/ $cd tekkaman/tekkaman2440 $mv sbc2410x.c tekkaman2440.c 还要记得修改自己的开发板tekkaman2440目录下的Makefile文件,不然编译时会出错: $vi Makefile COBJS := tekkaman2440.o flash.o 6.在include/configs/中建立配置头文件 $cp include/configs/sbc2410x.h include/configs/tekkaman2440.h 7.测试编译能否成功 $make tekkaman2440_config Configuring for tekkaman2440 board... (如果出现: $ make tekkaman2440_config Makefile:1927: *** 遗漏分隔符 。 停止。 请在U-boot的根目录下的Makefile的 @$(MKCONFIG) $(@:_config=) arm arm920t tekkaman2440 tekkaman) 前加上“Tab”键) $make 到这一步应该能编译成功,但是我的并没有编译成功,提示/common/cmd_bootm.c文件的464行的U_BOOT_CMD有错误,我是把其中的从#ifdef CONFIG_OF_FLAT_TREE到#endif都屏蔽掉,这样就可以编译过去了。可能还会出现类似的问题,用同样的方法可以解决。 下面修改Uboot中的文件,以匹配开发板