玩转mini2440开发板之【linux内核的编译和下载】
今天首先来玩一玩linux内核的编译和下载。
1、背景交代
- 开发环境:64位的Ubuntu 14.04;
- 编译工具:arm-linux-gcc 4.4.3;
- 下载工具:SuperViVi USB Transfer Utility;
- 调试工具:SecureCRT 7.2.6;
- 开发板材:友善之臂mini2440(64M版本);
- 内核版本:linux-2.6.32.2-20150709;
2、编译步骤
首先按照友善之臂官方手册(mini2440用户手册-20140103)的介绍,将linux 2.6.32.2的源码解压出来,我本人是解压到/opt/FriendlyARM/mini2440/linux-2.6.32.2-20150709目录下。
然后进入该目录,拷贝对应的config文件,具体可参考用户手册上的介绍。我本人的开发板配备的LCD显示屏的NEC 3.5寸的版本,因此我的命令是:
cp config_mini2440_n35 .config
注意:n35后面有个空格,然后有个“.”的 开头的 config。
输入make menuconfig命令,启动图形化配置窗口。这里有可能会出错,提示“’make menuconfig’ requires the ncurses libraries.”,此时可参见我的另外一篇博客(如何解决Ubuntu 14.04编译make menuconfig时缺少’ncurses-devel’库)的介绍来解决这个问题。
如果一切顺利,则会出现如下的图形窗口:
此时,就可以根据你自己的要求定制linux内核了。由于我这里只是做最基本的尝试,因此不涉及具体的技术和参数,我的目的只是生成一个尽可能简单小型化的内容用来学习学习。因此,我将其中很多的部分都删除或者清空了,比如网络驱动、USB驱动等等,当然,我也做了一点小小的定制化修改,比如把开发板的名字改成了My2440,这一点在后面开发板启动之后的调试信息中可以看的出来。总之就是,大家可以根据自己的要求来进行定制。
一切调整完毕之后,将鼠标移到最下面,保存你的配置内容到.config文件中,然后再点击EXIT按钮退出,回到命令行界面,输入make zImage,开始编译内核。大约2-3分钟就可编译完毕。进入到arch/arm/boot目录下,就能找到刚刚编译出来的zImage文件了。
aaa@qq.com:/opt/FriendlyARM/mini2440/linux-2.6.32.2-20150709/arch/arm/boot$ ll
总用量 3060
drwxr-xr-x 4 leon 126 4096 8月 15 17:23 ./
drwxr-xr-x 80 leon 126 4096 10月 11 2014 ../
drwxr-xr-x 2 leon 126 4096 10月 11 2014 bootp/
drwxr-xr-x 2 leon 126 4096 8月 15 17:23 compressed/
-rwxrwxr-x 1 leon leon 2052288 8月 15 17:23 Image*
-rw-rw-r-- 1 leon leon 130 8月 15 17:23 .Image.cmd
-rw-r--r-- 1 leon 126 1274 10月 11 2014 install.sh
-rw-r--r-- 1 leon 126 3118 10月 11 2014 Makefile
-rwxrwxr-x 1 leon leon 1044188 8月 15 17:23 zImage*
-rw-rw-r-- 1 leon leon 157 8月 15 17:23 .zImage.cmd
3、下载步骤
连接开发板,启动SuperViVi USB Transfer Utility工具和SecureCRT 7.2.6工具,再给开发板上电,SuperViVi USB Transfer Utility中会提示mini2440连接成功,串口端也会给出如下信息:
##### FriendlyARM BIOS for 2440 #####
[x] bon part 0 320k 2368k
[v] Download vivi
[k] Download linux kernel
[y] Download root_yaffs image
[a] Absolute User Application
[n] Download Nboot
[l] Download WinCE boot-logo
[w] Download WinCE NK.bin
[d] Download & Run
[z] Download zImage into RAM
[g] Boot linux from RAM
[f] Format the nand flash
[b] Boot the system
[s] Set the boot parameters
[u] Backup NAND Flash to HOST through USB(upload)
[r] Restore NAND Flash from HOST through USB
[q] Goto shell of vivi
[i] Version: 1026-12
Enter your selection:
输入k,然后在SuperViVi USB Transfer Utility中点击upload按钮,将刚刚生成的zImage文件下载至开发板,重启上电,便可看到成果了。
Copy linux kernel from 0x00060000 to 0x30008000, size = 0x00500000 ... done
zImage magic = 0x016f2818
Setup linux parameters at 0x30000100
linux command line is: "noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0"
MACH_TYPE = 1999
NOW, Booting Linux......
Uncompressing Linux.................................................................. done, booting the kernel.
Linux version 2.6.32.2-My2440 (aaa@qq.com) (gcc version 4.4.3 (ctng-1.6.1) ) #2 Wed Aug 15 17:23:42 CST 2018
CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177
CPU: VIVT data cache, VIVT instruction cache
Machine: FriendlyARM Mini2440 development board
........