98DX3236内核编译过程小结
2017-10-11 20:18
991 查看
0.条件
(1)Marvell技术支持提供的压缩文件:GNU EABI:
arm-mv5sft-linux-gnueabi_SW3.2.tar.bz2.tar.bz2
armebv7-marvell-linux-gnueabi-softfp_i686_201201.tar.bz2
CPSS代码:
Cpss-PP-DxCh-4.2_012.zip
Linux内核文件:
lsp-4.2_012.zip
LSP-Unified.zip
LuaCLI:
luaCli-4.2_012.zip
LuaSuite-4.2_012.zip
其它:
EnablerSuite-4.2_012.zip
ExtUtils-4.2_012.zip
GaltisSuite-4.2_012.zip
ReferenceCode-4.2_012.zip
Simulation-4.2_012.zip
UT-4.2_012.zip
(2)Busybox压缩包:
busybox-1.01.tar.bz2
busybox-1.25.0.tar.bz2
(3)工作站操作系统:Ubuntu14.10,32位
(4)编译时工作目录:~/work
1.安装交叉编译环境
(1)复制GNU压缩包arm-mv5sft-linux-gnueabi_SW3.2.tar.bz2.tar.bz2和armebv7-marvell-linux-gnueabi-softfp_i686_201201.tar.bz2到~/work目录下;
(2)解压缩:
# tar -xjf arm-mv5sft-linux-gnueabi_SW3.2.tar.bz2.tar.bz2
# tar -xjf armebv7-marvell-linux-gnueabi-softfp_i686_201201.tar.bz2
(3)确认系统已经安装了以下程序:
make
bc
mtd-utils
(4)添加交叉编译工具链的路径
# gedit ~/.bashrc
在文档末尾插入以下内容,最后保存并退出:
PATH=$PATH:/home/user/work/Marvell_toolchain_201201/armv7-marvell-linux-gnueabi-softfp_i686/bin
PATH=$PATH:/home/user/work/arm-mv5sft-linux-gnueabi_SW3.2/bin
(注意:user为开发者名称,需要修改为自己的用户名!)
2.编译内核
(1)在终端中以user(普通用户)的身份登录;(2)跳转到~/work目录下
# cd ~/work
(3)创建linux子目录,并修改work目录权限
# mkdir linux
# sudo chown -R user ~/work
(4)解压缩CPSS代码
# cd ~/work
# unzip Cpss-PP-DxCh-4.2_012.zip
# chmod +x build_cpss.sh
(5)打开调试信息开关
# export DEBUG_INFO=D_ON
(6)复制以下文件到work目录下:
lsp-4.2_012.zip
LSP-Unified.zip
luaCli-4.2_012.zip
LuaSuite-4.2_012.zip
EnablerSuite-4.2_012.zip
ExtUtils-4.2_012.zip
GaltisSuite-4.2_012.zip
ReferenceCode-4.2_012.zip
Simulation-4.2_012.zip
UT-4.2_012.zip
(7)复制两个busybox压缩文件到~/work/linux目录下
(8)编译内核文件
# cd ~/work
# ./build_cpss.sh MSYS DX_ALL UNZIP
注意:第一次使用build_cpss.sh脚本程序时,要使用UNZIP参数,之后UNZIP需要改为CUST!
命令中,MSYS为CPU型号,DX_ALL为包处理器型号。
主要问题:
1)CPU型号
解决思路:
98DX3236为XCAT3系列CPU,当使用命令“./build_cpss.sh XCAT DX_ALL UNZIP”编译时,终端会报错并提示需要在linux目录下放置对应版本的内核文件。通过尝试发现,当CPU型号使用MSYS时,不会出现类似报错信息。
2)提示缺少文件“simulation/_Makefile”
解决思路:解压缩Simulation-4.2_012.zip,并将simulation文件夹剪切至~/work/cpss目录下。
3)busybox1.25.0设置问题
克服以上问题后,会出现以下报错提示:
coreutils/lib.a(sync.o): In function `sync_main': sync.c:(.text.sync_main+0x7c): undefined reference to `syncfs' collect2: ld returned 1 exit status Note: if build needs additional libraries, put them in CONFIG_EXTRA_LDLIBS. Example: CONFIG_EXTRA_LDLIBS="pthread dl tirpc audit pam" Makefile:717: recipe for target 'busybox_unstripped' failed make: *** [busybox_unstripped] Error 1
解决思路是:
首先将终端目录切换至busybox-1.25.0:
# cd ~/work/linux/MSYS/msys_lsp_3_4/linux-3.4.69/rootfs/busybox-1.25.0
接着配置一下busybox:
# make menuconfig
在弹出的对话框中去掉Coreutils--->sync的选项,接着保存退出,
再将~/work/linux目录下的busybox1.25.0.tar.bz2剪切至其它子目录中,最后执行下方命令:
# ./build_cpss.sh MSYS DX_ALL UNZIP
(再次编译内核时,请使用# ./build_cpss.sh MSYS DX_ALL
CUST)
3.烧写内核
编译成功后,在目录~/work/compilation_root下会生成内核文件:ubifs_arm_256eb_nand_v2_5.image和ubifs_arm_512eb_nand.image,
98DX3236开发板对应的内核文件是ubifs_arm_512eb_nand.image。
相关文章推荐
- arm-linux内核编译过程小结
- arm-linux内核编译过程小结
- arm-linux内核编译过程小结
- Ubuntu 10.04 内核2.6.34编译过程记录
- ubuntu11.10下为android模拟器编译内核到为android开发内核模块(.ko文件)全过程纪实
- 在VMware5.0环境下编译内核(kernel2.6.13)全过程
- android内核编译过程
- XenServer内核模块编译过程详解
- PowerPC的工具链制作过程及内核编译
- Linux内核编译的过程
- Linux 2.6内核编译过程
- 【转】Linux内核2.6.5编译过程
- 菜鸟浅谈Linux内核编译过程
- Hadoop 2.0 编译过程中的问题小结
- Ubuntu内核编译和CPU Hot-Plug特性配置全过程及遇到问题记录
- Linux内核编译过程详解
- 【分享】分析内核的配置与编译过程
- Ubuntu内核编译简单过程
- Linux-2.6.25内核编译简单过程笔记
- Linux 内核3.19.3编译过程