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

需要的所有文件  --------------------- 链接: https://pan.baidu.com/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://blog.csdn.net/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 FORCE

2在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 dev

zion@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 1

zion@lbw:~/gcc_jz2440/busybox-1.7.0/first_file_systeam/dev$ sudo mknod null c 1 3
zion@lbw:~/gcc_jz2440/busybox-1.7.0/first_file_systeam/dev$ ls -l
total 0
crw-r--r-- 1 root root 5, 1 Feb 24 21:10 console
crw-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/lib
zion@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$ make
zion@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内核 +根文件系统 至此在开发板上搭建完成。。。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
u-boot-2016.11.tar.bz2是一个开源软件项目的压缩文件。该压缩文件是u-boot引导加载程序的源代码和相关文件的打包形式。u-boot(Universal Bootloader)是一款用于嵌入式系统的开源引导加载程序,用于初始化硬件并启动操作系统。 u-boot-2016.11.tar.bz2文件的扩展名.tar.bz2表示它是使用tar和bzip2两种工具进行压缩的。.tar是一个常用的文件打包工具,它可以将多个文件和目录打包成一个文件。.bz2是一个压缩工具,可以将文件进行高效压缩。 要使用u-boot-2016.11.tar.bz2文件,首先需要将其解压缩。可以使用tar命令进行解压缩,命令为tar -xjf u-boot-2016.11.tar.bz2。这将解压缩文件,并将源代码和其他相关文件提取到当前目录下。 解压缩后,可以在提取出的文件中找到u-boot引导加载程序的源代码和相关文件。可以据需要进行定制和编译,生成适合特定硬件平台的引导加载程序。u-boot支持多种处理器架构和开发板,可以据需要进行配置u-boot-2016.11.tar.bz2文件的版本号来看,它是2016年11月发布的版本。这意味着该版本已经存在一段时间,并可能具有稳定性和经过验证的特性。对于需要使用u-boot的开发者和嵌入式系统制造商,这个版本可以作为一个可靠的基础进行开发和定制。 总之,u-boot-2016.11.tar.bz2是u-boot引导加载程序的源代码和相关文件的压缩包。解压缩后,可以通过定制和编译源代码,生成适合特定硬件平台的引导加载程序。这个版本已经存在一段时间,并可能具有可靠的特性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值