300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > jz2440:开发板的u-boot + 内核 + 根文件系统搭建(2)

jz2440:开发板的u-boot + 内核 + 根文件系统搭建(2)

时间:2023-01-27 19:45:39

相关推荐

jz2440:开发板的u-boot + 内核 + 根文件系统搭建(2)

需要的所有文件 --------------------- 链接: /s/1hMTAppeF_DdCsnVEEJEDPw 密码: vel1

首先要在开发板上搭建一个Linux系统,需要完成以下几个步骤

1.BootLoader-----打补丁、编译 u-boot---执行以下步骤----最终目的:启动内核

$ tar xjf u-boot-1.1.6.tar.bz2 //解压 u-boot-1.1.6.tar.bz2 压缩包$ cd u-boot-1.1.6 //进入 u-boot-1.1.6 目录$ patch -p1 < ../u-boot-1.1.6_jz2440.patch //对 u-boot-1.1.6 打 patch 补丁$ make 100ask24x0_config //配置$ make //编译 u-boot.bin

然后将文件通过oflash将最终生成的u-boot.bin下载到开发板的NORFLASH(具体步骤参考ttps:///m0_37844072/article/details/113729680的第二点)。然后在开发板上插入USB线,然后掉电重启开发板,在串口看到打印信息代表U-boot烧录成功。。。

u-boot从Flash读出内核放到SDRAM,然后即可启动内核。。(所以u-boot需要包含实现的功能:读写Flash,初始化SDRAM(初始化时钟,初始化串口),启动内核。。)

但是编译报错:解决Ubuntu 64bit下使用交叉编译链提示error while loading shared libraries: libz.so.1

然后百度了一下:解决办法如下.... sudo apt-get install lib32z1 lib32z1-dev

2.打补丁、编译内核---为了启动根文件上的应用程序

$ tar xjf linux-2.6.22.6.tar.bz2 //解压 linux-2.6.22.6.tar.bz2

修改Linux-2.6.22.6的交叉编译工具链---(安装交叉编译工具链可看第三项为安装教程注意:PATH为PATH=/home/zion/linux/gcc_jz2440/arm-linux-gcc-3.4.5-glibc-2.3.6/bin:$PATH)---然后根据自己的交叉编译工具链的位置做如下修改。。。并且ARCH改为arm修改内核文件的Makefile

$ cd linux-2.6.22.6 //进入 linux-2.6.22.6 目录$ patch -p1 < linux-2.6.22.6_jz2440.patch //将linux-2.6.22.6_jz2440.patch拷贝到linux-2.6.22.6目录下,,给 linux-2.6.22.6 打 patch 补丁$ cp config_ok .config //拷贝开发板配置文件$ make uImage //编译内核生成 uImage 镜像

Linux3.4.2编译 问题语句:Install ncurses(ncurses-devel) and try again。

打开一个终端输入下面这条语句按回车进行安装即可。

apt-get install libncurses5-dev

Linux3.4.2编译 问题语句:Can't use 'defined(@array)' (Maybe you should just omit the defined()?)at kernel/timeconst.pl line 287.

解决方法:今天编译内核遇到的问题,根据error出错目录,找到timeconst.pl文件,进入找到defined(@array)这句,根据括号内提示,忽略defined,将:

if (!defined(@val)) {

改为:

if (!(@val)) {

Linux3.4.2编译 问题语句:mkimage command not found – U-Boot images will not be built

解决办法:sudo apt-get update sudo apt-get install u-boot-tools

编译成功后,在内核 arch/arm/boot 目录即生成 uImage。。

此时需要连接开发板上的USB口到电脑上,然后重启板子可在串口上看到打印的信息,按下空格,根据提示选择K,下载Linux Kernel Image文件。。

然后通过dnw下载生成好的uImage到开发板 。。下载成功即代表把Linux内核加载到开发板上了。。。。。

3.Busybox制作部分根文件系统

1.解压并进入busybox-1.7.0文件夹

2.在/busybox-1.7.0目录下make menuconfig

报错:Makefile:405: *** mixed implicit and normal rules: deprecated syntax

Makefile:1242: *** mixed implicit and normal rules: deprecated syntax

make: *** No rule to make target 'menuconfig'. Stop.

解决:由于make的版本过高,需要修改Makefile,如下操作。。。

1在makefile中将405行代码config %config: scripts_basic outputmakefile FORCE改为%config: scripts_basic outputmakefile FORCE2在makefile中将1242行代码/ %/: prepare scripts FORCE改为%/: prepare scripts FORCE

2.在Makefile配置交叉编译工具链:如下图所示

3.安装到busybox文件下

4.将根文件系统制作成yaffs2映像文件

zion@lbw:~/gcc_jz2440/busybox-1.7.0/first_file_systeam$ mkdir devzion@lbw:~/gcc_jz2440/busybox-1.7.0/first_file_systeam$ cd dev/zion@lbw:~/gcc_jz2440/busybox-1.7.0/first_file_systeam/dev$ sudo mknod console c 5 1zion@lbw:~/gcc_jz2440/busybox-1.7.0/first_file_systeam/dev$ sudo mknod null c 1 3zion@lbw:~/gcc_jz2440/busybox-1.7.0/first_file_systeam/dev$ ls -ltotal 0crw-r--r-- 1 root root 5, 1 Feb 24 21:10 consolecrw-r--r-- 1 root root 1, 3 Feb 24 21:11 null

拷贝交叉编译工具链的lib文件夹下的.so文件到busybox的文件系统的lib目录下

zion@lbw:~/gcc_jz2440$ cd arm-linux-gcc-3.4.5-glibc-2.3.6/arm-linux/libzion@lbw:~/gcc_jz2440/arm-linux-gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp *.so* ~/gcc_jz2440/busybox-1.7.0/first_file_systeam/lib -d

将根文件系统制作成yaffs2映像

zion@lbw:~/gcc_jz2440/Download/JZ2440V3/systems/Development_util_ok$ cd yaffs2/utils/zion@lbw:~/gcc_jz2440/Download/JZ2440V3/systems/Development_util_ok/yaffs2/utils$ makezion@lbw:~/gcc_jz2440/Download/JZ2440V3/systems/Development_util_ok/yaffs2/utils$ sudo cp mkyaffs2image /usr/local/bin/zion@lbw:~/gcc_jz2440/Download/JZ2440V3/systems/Development_util_ok/yaffs2/utils$ sudo chmod +X /usr/local/bin/mkyaffs2image zion@lbw:~/gcc_jz2440/busybox-1.7.0$ mkyaffs2image first_file_systeam first_file_systeam.yaffs2 //在first_file_systeam文件下生成first_file_systeam.yaffs2文件

烧录文件系统

至此,我们可在开发板上输入命令。。。。 u-boot + linux内核 +根文件系统 至此在开发板上搭建完成。。。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。