从Tiny-4412开箱到启动Linux内核
Tiny-4412这款开发板相信大家都挺熟悉的,尤其是学习安卓驱动开发也是挺多人会使用这款开发板的,但是随开发板所赠送的映像文件资料真的是不忍直视,臃肿的资料且实用性欠佳,论坛上发帖求助也是没人理睬(此处手动哭泣脸 | _ |)。
嵌入式交通第三区提醒您:
学习嵌入式千万条 方便实惠第一条
资料不规范 学者两行泪
正片开始,本文主要从以下几个方面入手:
1.嵌入式开发环境的搭建;
主要是交叉编译链的安装;
2.u-boot的烧写;
3.linux内核的烧写;
4.挂载文件系统(网络文件系统)。
本文所用到的资源如下:
交叉编译链:arm-linux-gcc-4.5.1-v6-vfp-20120301
uboot版本: uboot-tiny4412-1506
Linux内核版本:linux-3.5-20151029
1.嵌入式开发环境的搭建
关于开发环境的配置之前写过相关的帖子,此处就不再赘述了,献上链接
基于Ubuntu 18.04打造嵌入式arm开发环境
此外还需要讲讲的就是DNW工具的安装,之后的相关文件烧写到开发板需要借助该工具。
相关依赖的库的安装:
sudo apt-get install libelf-dev
编译dnw-linux工具包
编译成功后生成dnw可执行文件,以及相关设备驱动:
将生成的可执行文件复制到用户可执行程序目录,并加载设备驱动。
sudo cp dnw /usr/local/bin/
sudo insmod secbulk.ko
2.u-boot的烧写
2.1编译uboot
解压文件并编译
unzip uboot-tiny4412-1506.zip
cd uboot-tiny4412-1506
unzip uboot_tiny4412-master.zip
cd uboot_tiny4412-master
make tiny4412_config
make
编译成功之后执行以下操作
cd sd_fuse
make
2.2首先借助SD卡,进行u-boot映像文件的烧写
在2.1操作的uboot的路径下
cd tiny4412/
sudo ./sd_fusing.sh /dev/sdb
之后一张SD的启动卡就制作完成了。
2.3将SD卡插入开发板,并将启动开关拨向SD卡启动一侧,上电开机!
2.4弃用SD卡,将uboot烧写进EMMC内存中去。
2.4.1首先对Tiny4412的EMMC内存进行分区
格式化EMMC
fdisk -c 1 320 2057 520
格式化相关分区 1: 2: 3: 4
fatformat mmc 1:1 //将分区1格式化为Fat文件格式
ext3format mmc 1:2 //将分区2、3、4格式化为ext3格式
ext3format mmc 1:3
ext3format mmc 1:4
2.4.2烧写uboot到EMMC
(注:需要先完成DNW工具的安装)
1)上电开启开发板,在uboot加载倒计时结束前,按任意键进入uboot管理终端。
emmc open 1
emmc开启成功,在emmc开启之后需要进行连续的烧录,烧写完成之后就可以关闭emmc。
2)使用dnw工具,在uboot终端输入dnw命令。
dnw
此时uboot终端提醒OTG cable Connected ,设备连接成功,可以进行DNW下载。
3)在Ubuntu虚拟机端,进入uboot所在的目录
cd /1702/exynos/uboot_tiny4412-1506
sudo dnw sd_fuse/tiny4412/E4412_N.bl1.bin
此时uboot终端打印相关提示信息,下载完成!
接下来就可以进行第一步的烧录E4412_N.bl1.bin到emmc,在uboot终端输入以下命令。
mmc write 1 0xc0000000 0 0x10
烧录成功!
烧录bl2.bin文件,烧录步骤同上。
dnw
在Ubuntu虚拟机输入:
sudo dnw sd_fuse/tiny4412/bl2.bin
在uboot终端输入以下命令进行烧录
mmc write 1 0xc0000000 0x10 0x1C
接下来还需要对u-boot.bin、tzsw.bin文件进行烧写,就不再一一赘述。
uboot终端:dnw
虚拟机终端:sudo dnw u-boot.bin
uboot终端:mmc write 1 0xc0000000 0x30 0x21D
uboot终端:dnw
虚拟机终端:sudo dnw sd_fuse/tiny4412/E4412_tzsw.bin
uboot终端:mmc write 1 0xc0000000 0x2c0 0xB8
将上述文件都烧录完成之后,需要将emmc关闭。(记住一定要关闭emmc)
在ubo终端输入:
emmc close 1
好的,至此uboot已经烧写到emmc内存成功,可以取出SD卡,将Tiny4412的启动开关拨向另一侧,重新上电启动!
3.制作内核镜像并烧写
3.1配置linux内核
tar xzf linux-3.5-20151029.tgz
cd linux-3.5
cp tiny4412_linux_deconfig .config
make menuconfig
Tiny4412所使用的uboot不支持trustzone,内核必须禁止trustzone后编译才能启动;如果是superboot,此日期前的应该能启动,此日期后的则必须是启用trustzone后编译的内核才能启动。
禁止trustzone
配置成功
编译内核:
make zImage -j4
3.2烧写内核镜像进emmc内存
1)Ubuntu中的minicom
dnw 0x4008000
2)虚拟机
cd /1702/exynos/linux-3.5
dnw arch/arm/boot/zImage
3)引导启动内核
bootm 0x4008000
4)烧写内核至emmc
dnw 0x40008000
cd /1702/exynos/linux-3.5
dnw arch/arm/boot/zImage
movi write kernel 0 0x40008000**设置uboot启动参数**
set bootcmd "movi read kernel 0 0x40008000;bootm 0x40008000"
save
4.挂载网络文件系统
(注:网络文件系统的制作以及NFS服务的使用后续的帖子会补上)
设置uboot启动参数:
set bootargs console=ttySAC0,115200 root=/dev/nfs nfsroot=192.168.2.201:/works/nfs_root/fs_mini_tiny4412 ip=192.168.2.123:192.168.2.201:192.168.2.1:255.255.255.0::eth0:off
从Tiny-4412开箱到启动Linux内核相关推荐
- linux内核启动配置,启动linux内核配置
启动linux内核配置 发布时间:2005-09-22 20:04:48来源:红联作者:ccs LILO 入门 现在是最后来重新配置 LILO 的时候了,它将负责载入新的内核.LILO 是最流行的 L ...
- uefi启动linux内核,uefi下如何启动linux?
1. 有两种方式 1.1 直接从uefi shell启动linux内核 1.2 从uefi shell启动grub,然后再从grub启动linux内核 2. 需要哪些东西? 2.1 linux内核 2 ...
- 【树莓派学习笔记】树莓派4B上运行uboot并从网络启动linux内核(上)
[树莓派学习笔记]树莓派4B上运行uboot并从网络启动linux内核(上) 文章目录 [树莓派学习笔记]树莓派4B上运行uboot并从网络启动linux内核(上) 前言 1. 硬件需求与软件版本汇总 ...
- uboot启动Linux内核(一):uboot启动流程
1. uboot介绍: uboot是bootloader的一种,是Linux内核的引导启动程序.会初始化嵌入式平台上的一些外设(比如:ddr等),把Linux内核镜像从flash中加载到内存,在 ...
- uboot启动linux内核流程分析(三)
uboot bootz命令流程图 Uboot启动linux内核是使用bootz命令,bootz是如何启动linux内核?uboot的生命周期是怎么终止的?linux是如何启动? 启动linux内核的时 ...
- 指定init启动Linux内核,初看linux内核启动过程
本周的博客依旧依托于一个实验来展开,即跟踪调试linux内核启动的过程,着重分析一下从start_kernel函数开始到init进程开始执行的过程.如有理解不到位地方,望批评指正. 实验环境依旧采用实 ...
- IMX6ULL学习笔记(9)——通过SD卡启动Linux内核
一.搭建环境 通过以下方式烧写一个镜像: IMX6ULL学习笔记(2)--通过SD卡烧录镜像 二.设置为SD卡启动模式 开发板插入烧录好U-Boot的SD卡. 根据以下BOOT拨码开关启动配置表,调整 ...
- linux内核剪裁 4412,itop4412开发板-Linux内核的编译
本篇文章基于itop4412开发板 5.3.2.1源码目录 Linux 内核源码在光盘"06_源码_uboot 和 kernel"目录下,如下图所示. 5.3.2.2 编译器 内核 ...
- 手把手教你在友善之臂tiny4412上用uboot启动Linux内核
要想用uboot启动内核,我推荐一种方法,用dnw下载内核到开发板上,然后用uboot命令启动: 首先我在网上随便下了一个dnw工具,经过移植修改后,代码如下: /* YYX--->for ti ...
- ipxe u盘启动linux内核,[转载]笔记: SYSLINUX PXE gPXE iPXE PXELINUX D
本文是笔记,不保证100%正确,提醒自己用而已,如有错误欢迎指正.谢谢. QQ: 89175244 PXE/gPXE/iPXE/DHCP/PXELINUX/SYSLINUX等的概念和其作用一定要清晰, ...
最新文章
- 项目开发管理工具---GitHub(一)
- 登录表单 参考新浪微博
- .NET高性能编程 - C#如何安全、高效地玩转任何种类的内存之Span的本质(一)。
- 一致性hash算法_一致性 Hash 算法的实际应用
- jpype测试报错,找不到类raise _RUNTIMEEXCEPTION.PYEXC(Class %s not found % name)
- 有了这款神器,什么吃灰文件都统统现形~极速搜索工具Everthing
- 马铃薯淀粉生产线的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- 8080被占用,localhost:8080不能访问/local host:8080/hello不能访问
- 培训python的学校
- 训练误差与泛化误差的说明
- 百度指数爬虫城市对应代码
- prepay id为空php,微信公众号支付踩坑笔记
- 什么是软件产品----老吴说产品
- 无人驾驶 | 自动驾驶技术和机器人技术的对比
- 芦荟天然植物提取物的作用是什么
- vue 实现Excel 导出
- Ubuntu下安装myeclipse10.7.1
- 新手做电商,怎么找到合适的快递合作方
- Entity、PO、VO、BO、DTO用法
- Kubernetes(K8S)集群部署搭建图文教程(最全)
热门文章
- 和画意思相近的字_画字五行属什么,画字在名字里的含义,画字起名的寓意_卜易居起名字典...
- 租房管理系统计算机课程设计,基于WEB的房屋出租管理系统的设计与实现
- OneNote2016 解决 OneNoteGem 插件 选项卡消失的问题
- 王牌英雄怎么服务器维护了,王牌英雄steam版无法运行问题解决方法_3DM单机
- 宗成庆《文本数据挖掘》学习笔记:第二章 数据预处理和标注
- 计算机EV录屏培训体会,停课不停学19|好用的EV录屏软件助力线上教学
- Linux学习笔记(更新中)
- VISSIM二次开发(Python)大作业总结1
- Adobe 字体显示不清楚----解决方案
- Lady Gaga 发起“云演唱会”,美高校推“云毕业典礼”!云直播迎来又一风口?...