需要的所有文件  --------------------- 链接: 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 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 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内核 +根文件系统 至此在开发板上搭建完成。。。

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

  1. 实现开发板与ubuntu的共享--根文件系统NFS--Samba共享【sky原创】

    虚拟机要选择桥接,并且禁用有线和无线网卡,开启本地连接,本地连接属性要写如下:   ip地址是在连上板子后,windows   cmd  下  ipconfig得出的 板子的网线最好连接交换机或者路由 ...

  2. 移植Linux 3.4.2内核到JZ2440开发板(超精讲)

    Linux 3.4.2内核移植到JZ2440开发板 0.开发环境 虚拟机:VMware workstation 16 pro 宿主机操作系统:Ubuntu 16.04 开发板:JZ2440 移植内核版 ...

  3. JZ2440开发板与电脑通过网线直连,实现开发板、虚拟机、PC机三者互Ping,并成功挂接网络根文件系统

    声明: 本文提及的部分图片与内容属于韦东山老师的教学视频课程内容,本文提出的解决方案是基于韦老师教学视频中提及方案的扩展. 转载内容来自: [005_ARM裸机1期加强版_第006课_第006节_一句 ...

  4. 关于修改jz2440开发板IP以及开发板与Windows互ping问题

    一.如何修改jz2440开发板IP 开头注意:在进行以下操作前必须已经跟着u-boot内核到开发板上,此外还要移植根文件系统到开发板上. 修改开发板IP有两种方式: 1.临时修改IP 2.永久修改IP ...

  5. linux中使用串口(dnw)下载程序到jz2440开发板

    对于大多数使用韦东山jz2440开发板的用户来说,使用OpenJTAG或EasyOpenJTAG是非常方便的,并且视频教程中也是用这两种 来教学的,对于没有OpenJTAG. EasyOpenJTAG ...

  6. jz2440开发板移植U-boot之修改代码支持DM9000网卡

    今天我们来移植U-boot到jz2440开发板,修改代码支持DM9000网卡.查看之前写的移植记录请点击链接:点击查看之前的移植记录 现在大多数开发板都支持DM9000网卡.我们的U-boot源码里面 ...

  7. 移植u-boot-2012.04.01到jz2440开发板

    今天我给大家分享一下如何移植一个纯净的uboot到jz2440开发大版,通过记录学习分享,与大家一起进步!!! 1.首先我们在uboot官网下载u-boot-2012.04.01.tar.bz2,建立 ...

  8. 讯为开发板移植linux,迅为I.MX6ULL开发板移植Linux5.4内核教程

    4412上移植最新5.4内核的流程非常的简单,因为4412被Linux官方支持,那么我们来看一下怎么把官方5.4内核移植到我们的I.MX6ULL终结者开发板上. 平台:i.MX6ULL开发板 前言 本 ...

  9. jz2440开发板修改UBOOT支持NAND FLASH

    很多天没有看嵌入式的东西了,今天来看一下,继续之前移植uboot到jz2440开发板.今天我们来实现Uboot支持NAND FLASH. 在之前的文章里(点击连接查看之前的记录),我们为了编译通过把N ...

最新文章

  1. 常用Linux命令总结
  2. 莫慌!网络推广平台更新网站SEO优化中,被K降权怎么办?
  3. (传送门)微信公众号推送文章(个人认为未来可能对我有用的部分)
  4. Android–多线程之Handler下载图片源码
  5. 扎心!互联网行业的神回复
  6. 判断DataRow中某列是否为空的方法
  7. bzoj1556 (DP)
  8. sublime 安装 Package Control(笔记)
  9. C语言课后习题(12)
  10. python matplotlib画图遇到的问题——画多个子图
  11. spring boot log4j2与三方依赖库log4j冲突无法初始化问题解决方法
  12. 将普通的数组转换为父子结构(vue,element-ui)
  13. PostgreSQL 修改数据库用户的密码
  14. 人声歌姬语音合成器+全套拓展 – Yamaha Vocaloid 4.3.0 + ALL Libraries WiN
  15. 硬盘测试软件得分数据怎么看,SSD硬盘测试结果分析怎么看的
  16. [BJTU]C语言期中考试总结
  17. 高德API实现地理逆编码
  18. 如何维持APP用户的登陆状态
  19. 两个瓶盖换一瓶可乐问题
  20. BigBrother的大数据之旅Day 15 sqoop

热门文章

  1. 使用FlatBuffers序列化数据
  2. 如何在cad中导入谷歌地图_如何在Google地图中设置出发和到达时间
  3. html元素的overflow属性详解
  4. 基于新浪微博的男女性择偶观数据分析
  5. 2023辽宁大学新闻与传播硕士(MJC)专业考研成功经验分享
  6. Vue3:自定义指令directive
  7. 使用MSF进行提权(windows提权、linux提权、wesng使用)
  8. cgal配置以及一些资料
  9. oracle原销售订单退货,取消销售订单
  10. 颜色之ARGB与RGB、RGBA的区别与介绍