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 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)相关推荐
- 实现开发板与ubuntu的共享--根文件系统NFS--Samba共享【sky原创】
虚拟机要选择桥接,并且禁用有线和无线网卡,开启本地连接,本地连接属性要写如下: ip地址是在连上板子后,windows cmd 下 ipconfig得出的 板子的网线最好连接交换机或者路由 ...
- 移植Linux 3.4.2内核到JZ2440开发板(超精讲)
Linux 3.4.2内核移植到JZ2440开发板 0.开发环境 虚拟机:VMware workstation 16 pro 宿主机操作系统:Ubuntu 16.04 开发板:JZ2440 移植内核版 ...
- JZ2440开发板与电脑通过网线直连,实现开发板、虚拟机、PC机三者互Ping,并成功挂接网络根文件系统
声明: 本文提及的部分图片与内容属于韦东山老师的教学视频课程内容,本文提出的解决方案是基于韦老师教学视频中提及方案的扩展. 转载内容来自: [005_ARM裸机1期加强版_第006课_第006节_一句 ...
- 关于修改jz2440开发板IP以及开发板与Windows互ping问题
一.如何修改jz2440开发板IP 开头注意:在进行以下操作前必须已经跟着u-boot内核到开发板上,此外还要移植根文件系统到开发板上. 修改开发板IP有两种方式: 1.临时修改IP 2.永久修改IP ...
- linux中使用串口(dnw)下载程序到jz2440开发板
对于大多数使用韦东山jz2440开发板的用户来说,使用OpenJTAG或EasyOpenJTAG是非常方便的,并且视频教程中也是用这两种 来教学的,对于没有OpenJTAG. EasyOpenJTAG ...
- jz2440开发板移植U-boot之修改代码支持DM9000网卡
今天我们来移植U-boot到jz2440开发板,修改代码支持DM9000网卡.查看之前写的移植记录请点击链接:点击查看之前的移植记录 现在大多数开发板都支持DM9000网卡.我们的U-boot源码里面 ...
- 移植u-boot-2012.04.01到jz2440开发板
今天我给大家分享一下如何移植一个纯净的uboot到jz2440开发大版,通过记录学习分享,与大家一起进步!!! 1.首先我们在uboot官网下载u-boot-2012.04.01.tar.bz2,建立 ...
- 讯为开发板移植linux,迅为I.MX6ULL开发板移植Linux5.4内核教程
4412上移植最新5.4内核的流程非常的简单,因为4412被Linux官方支持,那么我们来看一下怎么把官方5.4内核移植到我们的I.MX6ULL终结者开发板上. 平台:i.MX6ULL开发板 前言 本 ...
- jz2440开发板修改UBOOT支持NAND FLASH
很多天没有看嵌入式的东西了,今天来看一下,继续之前移植uboot到jz2440开发板.今天我们来实现Uboot支持NAND FLASH. 在之前的文章里(点击连接查看之前的记录),我们为了编译通过把N ...
最新文章
- 常用Linux命令总结
- 莫慌!网络推广平台更新网站SEO优化中,被K降权怎么办?
- (传送门)微信公众号推送文章(个人认为未来可能对我有用的部分)
- Android–多线程之Handler下载图片源码
- 扎心!互联网行业的神回复
- 判断DataRow中某列是否为空的方法
- bzoj1556 (DP)
- sublime 安装 Package Control(笔记)
- C语言课后习题(12)
- python matplotlib画图遇到的问题——画多个子图
- spring boot log4j2与三方依赖库log4j冲突无法初始化问题解决方法
- 将普通的数组转换为父子结构(vue,element-ui)
- PostgreSQL 修改数据库用户的密码
- 人声歌姬语音合成器+全套拓展 – Yamaha Vocaloid 4.3.0 + ALL Libraries WiN
- 硬盘测试软件得分数据怎么看,SSD硬盘测试结果分析怎么看的
- [BJTU]C语言期中考试总结
- 高德API实现地理逆编码
- 如何维持APP用户的登陆状态
- 两个瓶盖换一瓶可乐问题
- BigBrother的大数据之旅Day 15 sqoop