1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 从Tiny-4412开箱到启动Linux内核

从Tiny-4412开箱到启动Linux内核

时间:2022-11-16 13:17:39

相关推荐

从Tiny-4412开箱到启动Linux内核

Tiny-4412这款开发板相信大家都挺熟悉的,尤其是学习安卓驱动开发也是挺多人会使用这款开发板的,但是随开发板所赠送的映像文件资料真的是不忍直视,臃肿的资料且实用性欠佳,论坛上发帖求助也是没人理睬(此处手动哭泣脸 | _ |)。

嵌入式交通第三区提醒您:

学习嵌入式千万条 方便实惠第一条

资料不规范 学者两行泪

正片开始,本文主要从以下几个方面入手:

1.嵌入式开发环境的搭建;

主要是交叉编译链的安装;

2.u-boot的烧写;

3.linux内核的烧写;

4.挂载文件系统(网络文件系统)。

本文所用到的资源如下:

交叉编译链:arm-linux-gcc-4.5.1-v6-vfp-0301

uboot版本: uboot-tiny4412-1506

Linux内核版本:linux-3.5-1029

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.zipcd uboot-tiny4412-1506unzip uboot_tiny4412-master.zipcd uboot_tiny4412-mastermake tiny4412_configmake

编译成功之后执行以下操作

cd sd_fusemake

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内存进行分区

格式化EMMCfdisk -c 1 320 2057 520格式化相关分区 1: 2: 3: 4fatformat mmc 1:1 //将分区1格式化为Fat文件格式ext3format mmc 1:2 //将分区2、3、4格式化为ext3格式ext3format mmc 1:3ext3format 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-1506sudo 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.binuboot终端:mmc write 1 0xc0000000 0x30 0x21Duboot终端:dnw虚拟机终端:sudo dnw sd_fuse/tiny4412/E4412_tzsw.binuboot终端: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-1029.tgzcd linux-3.5cp tiny4412_linux_deconfig .configmake 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.5dnw arch/arm/boot/zImage

3)引导启动内核

bootm 0x4008000

4)烧写内核至emmc

dnw 0x40008000cd /1702/exynos/linux-3.5dnw arch/arm/boot/zImagemovi 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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。