使用的uboot版本是1.1.6,是打过u-boot-1.1.6_jz2440.patch的;

kernel使用的版本是3.4.2, 也是打过linux-3.4.2_camera_jz2440.patch的;

u-boot-1.1.6编译步骤如下(开发环境ubuntu16.04):

1. 添加环境变量

vim /etc/profile
export PATH=/usr/local/gcc-3.4.5-glibc-2.3.6/bin:$PATH

这里需要注意的是u-boot-1.1.6版本使用gcc-3.4.5版本去编译,如果用gcc-4.3版本去编译的话会报错。

2.使环境变量生效

source /etc/profil

3.编译

make 100ask24x0_config
make  

编译完成后生成u-boot.bin。

kernel-3.4.2编译步骤如下(开发环境ubuntu16.04):

1.添加环境变量

这里需要注意的是上面编译u-boot时把交叉编译工具链设为了gcc-3.4.5,kernel-3.4.2版本编译需要用gcc-4.3.2,需要修改环境变量

vim /etc/profile
export PATH=/usr/local/usr/local/arm/4.3.2/bin:$PATH

2.使环境变量生效

source /etc/profile

3.编译

make uImage

编译完成后uImage生成在arch/arm/boot/目录下。

内核启动报错:Verifying Checksum ... Bad Data CRC

Reading data from 0x25f800 --  % complete.reading NAND page at offset 0x260000 failed
Could not read entire image due to bad blocks
bytes read: ERROR
## Booting image at 30007fc0 ...
Image Name: Linux-3.4.
Created: -- :: UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: Bytes = 2.3 MB
Load Address:
Entry Point:
Verifying Checksum ... Bad Data CRC

修改u-boot

查看u-boot-1.1.6/include/configs/100ask24x0.h,第59行:

  #define MTDIDS_DEFAULT "nand0=nandflash0"
#define MTDPARTS_DEFAULT "mtdparts=nandflash0:256k@0(bootloader)," \
"128k(params)," \
"2m(kernel)," \
"-(root)"

kernel-3.4.2编译生成的uImage是2.3M, 而u-boot-1.1.6里面设置的是2m,明显分配小了。需要把第59行的2m修改为4m,再次编译u-boot。

修改kernel

查看linux-3.4.2/arch/arm/mach-s3c24xx/common-smdk.c第125行,

     [] = {
.name = "kernel",
.offset = MTDPART_OFS_APPEND,
.size = SZ_2M,
},

kernel分配的空间也是2M,太小了,修改成4M,即:

.size   = SZ_4M,

再次编译kernel。

把u-boot.bin和uImage再次烧录到开发板,在uboot里输入b,成功启动。如下:

NAND read: device  offset 0x60000, size 0x400000

Reading data from 0x45f800 -- % complete.
bytes read: OK
## Booting image at 30007fc0 ...
Image Name: Linux-3.4.
Created: -- :: UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: Bytes = 2.3 MB
Load Address:
Entry Point:
Verifying Checksum ... OK
XIP Kernel Image ... OK Starting kernel ...

kernel启动时串口输出乱码的解决方法

输出乱码的原因可能是串口的波特率实际是38400,并没有设置成115200。

在uboot里设置启动参数:

set bootargs noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0,

然后再输入b启动,这时串口输出就正常了。

JZ2440 linux-3.4.2内核启动报错:Verifying Checksum ... Bad Data CRC的更多相关文章

  1. Linux下Tomcat项目启动报错

    Linux下Tomcat项目启动报错 org.springframework.beans.factory.CannotLoadBeanClassException: Error loading cla ...

  2. Linux安装ElasticSearch启动报错的解决方法

    Linux安装ElasticSearch后,ElasticSearch是不能用root用户启动的,以root用户启动会报错Refer to the log for complete error det ...

  3. linux安装tomcat后启动报错Cannot find ./catalina.sh的解决方法

    linux安装tomcat后启动报错: Cannot find ./catalina.shThe file is absent or does not have execute permissionT ...

  4. Linux下使用JDK11部署Nacos启动报错:Could not find or load main class

    Linux下使用JDK11部署Nacos 错误日志 /nacos/jdk-11.0.12/bin/java -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize ...

  5. linux查看与修改交换内存配置(解决zabbix-agent启动报错)

    问题 zabbix-agent在一台centos6.5上启动报错: cannot allocate shared memory of size 949056: [28] No space left o ...

  6. Oracle启动报错ORA-03113解决

    环境:RHEL6.4 + Oracle 11.2.0.4 步骤摘要:1.启动报错ORA-031132.查看alert日志查找原因3.根据实际情况采取合理的措施,这里我们先增加闪回区大小,把库启动起来4 ...

  7. Oracle启动报错ORA-27102解决

    环境:RHEL5.5 + Oracle 10.2.0.4 此错误一般是因为数据库的初始化参数文件的内存设置不当导致.本例是因为操作系统参数设置问题导致. 当前现象:Oracle启动报错ORA-2710 ...

  8. weblogic启动报错

    重启了一次linux服务器后,weblogic启动莫名报错,查看日志发现说部署的项目有个bean类无法加载, 1.然后手动删除 已经部署的项目,先在 domais/servers/AdminServe ...

  9. zookeeper启动报错(数据目录权限不对)

    zookeeper启动报错日志: 2016-11-16 11:19:43,880 [myid:3] - INFO [WorkerReceiver[myid=3]:FastLeaderElection@ ...

随机推荐

  1. Linux/CentOS7搭建Anaconda运行环境

    1. 安装miniconda 下载并安装miniconda到$HOME/.miniconda/ #从官网下载 wget -c "https://repo.anaconda.com/minic ...

  2. SpringCloud入门(九): Zuul 上传&回退&异常处理&跨域

    Zuul的上传 1.构建一个上传类 import org.springframework.web.bind.annotation.PostMapping; import org.springframe ...

  3. [一起读源码]走进C#并发队列ConcurrentQueue的内部世界

    决定从这篇文章开始,开一个读源码系列,不限制平台语言或工具,任何自己感兴趣的都会写.前几天碰到一个小问题又读了一遍ConcurrentQueue的源码,那就拿C#中比较常用的并发队列Concurren ...

  4. Linux yum 源配置

    CentOS 7 使用 163 的 yum 源,配置步骤如下: 下载镜像源文件 http://mirrors.163.com/.help/centos.html 备份原配置文件,将下载的文件的名字改成 ...

  5. C语言:const关键字用法

    参考博客:https://www.cnblogs.com/bianchengzhuji/p/10335837.html const是constant的简写,是不变的意思.但并不是说它修饰常量,而是说它 ...

  6. pycharm文件名颜色代表的含义

    在使用pycharm过程中,文件名有不一样的颜色. 绿色:已经加入版本控制暂未提交 红色:未加入版本控制 蓝色:加入版本控制,已提交,有改动 白色:加入版本控制,已提交,无改动 灰色:版本控制已忽略文 ...

  7. Fiddler插件---将Mapi请求自动转为HTTPRunner测试用例(YAML格式)

    背景 继之前鼓捣出了Mapi解密插件之后,在团队内已经使用了三年之久,一跃成为团队最爱欢迎的测试工具之一(加个之一,低调谦虚一点). 随着团队推行HttpRunner搞接口自动化:编写和维护Case带 ...

  8. HTML、PHP、CSS、JS之间的关系

    23:02:06 2019-08-05 自己要搭建网站 虽然可以下载大佬的界面 但至少要懂一点web开发的知识 我现在感觉像个憨憨 啥都不明白 转载自:知乎 https://www.zhihu.com ...

  9. 荐书在精不在多,推荐一份夯实Java基础的必备书单!

    文/黄小斜 转载请注明出处 head first Java 推荐指数:⭐️⭐️⭐️⭐️⭐️ 推荐理由: 说实话,这本书和其他的我Java类型书籍真的大不相同,它不会一本正经地去说技术概念和原理,而是通 ...

  10. go 错误处理与测试

    Go 没有像 Java 和 .NET 那样的 try/catch 异常机制:不能执行抛异常操作.但是有一套 defer-panic-and-recover 机制(参见 13.2-13.3 节). Go ...