历史上的今天
返回首页

历史上的今天

今天是:2024年12月20日(星期五)

正在发生

2021年12月20日 | tiny4412学习(一)之从零搭建linux系统

2021-12-20 来源:eefocus

  • 硬件平台:tiny4412

  • 系统:linux-3.5-20151029

  • 文件系统:busybox-1.22.1.tar.bz2

  • 编译器: arm-linux-gcc-4.5.1

 

目的:

使用uboot引导Linux系统,并挂接根文件系统,搭建起linux开发环境。

 

由于友善支臂提供的minitools不是开源,使用起来很不舒服。本文将记录从零使用uboot在tiny4412上搭建linux系统的。由于之前只是学了2440,完成这个流程也遇到各种,现在总结如下。其中参考了多篇博客才得以实现,具体涉及的时候会给出链接。

http://www.arm9home.net/read.php?tid-80810.html。也可以使用这篇博客体提供的uboot:http://blog.csdn.Net/lizuobin2/article/details/52825033

下载后配置,编译即可产生uboot。

本人使用的uboot下载链接:http://download.csdn.net/detail/fengyuwuzu0519/9886366

 

  1. tar xzf uboot_tiny4412-20130729.tgz  

  2. cd uboot_tiny4412  

  3. make tiny4412_config  

  4. make  

 

编译 用于生成bl2 的工具

  1. cd sd_fuse;  

  2. make  

 

假设SD卡已被PC Linux识别为/dev/sdc, 以root用户运行以下命令即可:

  1. cd sd_fuse/tiny4412  

  2. ./sd_fusing.sh  /dev/sdc  

 

到此我们准备好了

(1) 内核

(2) 文件系统

(3) Uboot

接下来就是如何下载,并启动内核,挂接文件系统了。

http://blog.sina.com.cn/s/blog_69dd1a09010196bf.html

http://blog.csdn.net/u011452544/article/details/39393857

http://blog.csdn.net/morixinguan/article/details/70478650

1.首先解压缩文件:
# tar xvf dnw_for_linux.tar.gz
另:在Ubuntu下右键解压也很方便

目录如下:
dnw_linux/
dnw_linux/secbulk/
dnw_linux/secbulk/Makefile
dnw_linux/secbulk/secbulk.c
dnw_linux/dnw/
dnw_linux/dnw/dnw.c
其中secbulk.c是PC端USB驱动, dnw.c是写入工具

2 编译并加载secbulk.c内核模块

$cd secbulk
$make -C /lib/modules/`uname -r`/build M=`pwd` modules
编译成功后在当前目录下可以看到secbulk.ko

3.编译完成后,会生成secbulk.ko文件:
# ls
Makefile       Module.symvers  secbulk.ko     secbulk.mod.o
modules.order  secbulk.c       secbulk.mod.c  secbulk.o

4.加载模块到Linux内核:
# sudo insmod ./secbulk.ko        (注意要在root权限下)
# dmesg        (查看是否加载成功)
secbulk:secbulk loaded

usbcore:registered new interface driversecbulk        (看到这样两行就说明成功了)

开机的时候不会自动加载.ko文件,这样每次都要先加载才可以使用,此时将其加入开机脚本,
使其得到自动加载,编辑/etc/init.d/rc.local 在最后加上 insmod /所在路径/secbulk.ko。

5.下面开始编译dnw工具
# cd ../dnw
# gcc -o dnw dnw.c

(编译完成,会看到dnw可执行文件)

6.将文件copy到/usr/local/bin目录
# sudo cp dnw /usr/local/bin
这样就可以在shell下面直接使用dnw命令了

但是问题出现了,当我使用这个dnw下载bl2.bin的时候,会出现校验错误。但是下载其他文件均没有问题,于是网上各种寻找DNW工具,看安装,最后通过和另一个版本的DNW结合,解决了这个问题,uboot也完整的下载到了emmc中。下载链接:http://download.csdn.net/detail/fengyuwuzu0519/9886362。

(6)DNW下载好了,我们可以把uboot下载到emmc了。

#uboot:emmc open 1
提示:eMMC OPEN Success.!!

上面提示emmc开启成功,注意说明,emmc一旦打开,需要连续烧录,烧录完成后可以关闭emmc

#uboot:dnw
提示:OTG cable Connected!

Now, Waiting forDNW to transmit data(等待DNW下载)

打开虚拟机,进入uboot所在目录

cd /work/uboot_tiny4412

dnw  sd_fuse/tiny4412/E4412_N.bl1.bin

此时u-boot中断会提示传送校验完成,此时已经把bl1.bin通过USB传送到了memeory的0xc0000000起始地址,大小8KB.

接下来我们烧录bl1.bin到eMMC中,u-boot下继续输入:
#uboot:mmc write 1 0xc0000000 0 0x10
会提示写入信息,说明已经写入成功。这个是把刚才从PC端通过dnw下载下来的bl1.bin固件下载到emmc中,起始0, 16个block, 一个block是512B, 16*512=8*1024=8KB. 这个是bl1.bin的存放位置。
以此类推,烧录bl2.bin. u-boot.bin, tzsw.bin

#uboot:dnw

#虚拟机:dnw sd_fuse/tiny4412/bl2.bin

#uboot:mmc write 1 0xc0000000 0x10 0x1C

#uboot:dnw

#虚拟机:dnw u-boot.bin

#uboot:mmc write 1 0xc0000000 0x30 0x21D

#uboot:dnw

#虚拟机:dnw sd_fuse/tiny4412/E4412_tzsw.bin

#uboot:mmc write 1 0xc0000000 0x2c0 0xB8

启动分区到此全部写入完成,注意一定要关闭emmc
u-boot下继续输入:
#uboot:emmc close 1
提示:eMMC CLOSE Success.!!

现在uboot已经完整的烧入到emmc,我们可以将开关波动到NAND一侧,从emmc启动,发现uboot输出已经变成了:

 

http://blog.csdn.net/lizuobin2/article/details/52825033

内核下载我们采用fastboot下载,uboot已经支持了fastboot。

安装windows下fastboot工具

如果你已经安装了Android Studio,那么你已经有fastboot工具,在目录

F:AndroidSDKplatform-tools下有fastboot.exe AdbWinApi.dll

我也提供一下fastboot下载链接:http://download.csdn.net/detail/fengyuwuzu0519/9886552

下载我们进入uboot,执行fastboot,并将单板的usb接到PC。提示如下:


 

windows下cmd进入fastboot.exe所在目录

fastboot flashkernel zImage(正常下载)

fastboot flashramdisk ramdisk-u.img(正常下载)

fastboot flash fatrootfs_qtopia_qt4.img (下载始终出错,于是放弃光盘的文件系统,使用自制的文件系统)

fastboot reboot 

此时,我们已经将uboot、内核下载到单板中。

参考:http://blog.csdn.net/lizuobin2/article/details/52825033

2.3、设置uboot启动参数,启动内核,并挂接网络文件系统

uboot启动参数:
set gatewayip  192.168.1.1
set ipaddr     192.168.1.125   //板子的IP
set serverip   192.168.1.123   //PC机IP

set bootargs "root=/dev/nfsnfsroot=192.168.1.123:/work/nfs/filesystem ip=192.168.1.125console=ttySAC0,115200 lcd=S70 ctp=2"

save

set bootcmd moviread kernel 0 40008000;movi read rootfs 0 41000000 100000;bootm 4000800041000000

reset  

内核启动信息:

 


推荐阅读

史海拾趣

Genisco Electronics公司的发展小趣事
如电压传感器、频率检测器等,用于实时监测电网电源和自备发电电源的状态。
亿佰特(EBYTE)公司的发展小趣事

亿佰特在发展过程中,荣获了多项荣誉和奖项。公司成功入选2022年度四川省“专精特新”中小企业名单,这是对公司在细分市场专业化、企业管理精细化、产品或服务特色化、科技成果新颖化等方面的认可。同时,亿佰特还积极履行社会责任,关注环保和公益事业,展现了企业的良好形象和责任感。

以上五个故事方向涵盖了亿佰特在电子行业中的发展过程中的重要方面,希望能够帮助您了解该公司的成长历程。

Emerging Display Technolgies公司的发展小趣事

面对全球对环保和可持续发展的关注,一家新兴显示技术公司致力于研发绿色环保的显示技术。他们通过优化生产工艺、采用环保材料等方式,成功降低了显示屏生产过程中的能耗和废弃物排放。同时,他们还研发出了可回收、可降解的显示屏材料,为电子行业的可持续发展做出了积极贡献。

艾迈斯(AMASS)公司的发展小趣事

在产品研发和技术创新的同时,艾迈斯(AMASS)公司也注重品牌建设和市场推广。公司积极参加各种行业展会和交流活动,与业界同行建立了广泛的合作关系。同时,艾迈斯还通过广告宣传、媒体报道等多种方式提升品牌知名度和影响力。这些努力使得艾迈斯在电子行业中的地位逐渐提升,成为了业内颇具影响力的品牌之一。

Epistar Corp公司的发展小趣事

近年来,随着OLED(有机发光二极管)技术的兴起,LED行业面临着巨大的挑战。Epistar敏锐地意识到了这一点,开始积极调整战略方向,加大在OLED技术领域的研发力度。同时,公司还通过优化产品结构、提高生产效率等措施降低成本、提升竞争力。这些努力使Epistar在OLED技术浪潮中保持了稳健的发展态势。

General Electronic Devices公司的发展小趣事
负责产生控制信号,驱动开关元件按一定频率和占空比工作。

问答坊 | AI 解惑

基于VHDL的I2C总线从模式控制核设计 论文

本帖最后由 paulhyde 于 2014-9-15 09:20 编辑 好的论文,里面写得还不错!大家看看  …

查看全部问答>

请问wince中怎么实现mid播放?

请问wince中怎么实现mid播放??那里有软解码器??…

查看全部问答>

keil自带的s3c2440.s

我在keil uv4下生成了一个工程,用了自带的s3c2440.h 我写的main函数如下: #include \"s3c2440.h\" #define LED1        1…

查看全部问答>

智能手持PDA

我现在要一款pda 要求win ce 系统 ,支持wifi功能,请大家介绍几家国内的厂家…

查看全部问答>

LED路灯应用中存在的三大问题

1、价格偏高   目前LED路灯的成本还远高于高压钠灯,一款LED路灯价格在3000~5000元,甚至更高,而一套进口品牌的高压钠灯(含灯具、成套电器光源)价格不超过1500元。就现状而言,LED路灯明显太贵,价格是高压钠灯的2~5倍。因此即使LED路灯的耗 ...…

查看全部问答>

USB相关

谁能给我讲下StellarisWare的usb_dev_serial这个程序,刚接触,什么都不懂,看的头大了都~拜托了~再讲下usb,cdc,uart和FIFO的知识吧~谢谢了哈…

查看全部问答>

此帖 用以总结怎么解决AD603 自激 欢迎大家踊跃发言

本帖最后由 paulhyde 于 2014-9-15 09:26 编辑 当年我们组在设计这电路的时候就着重考虑ad603需要稳定的电源和基准电压, 所以一次自激都没出现过。 所以看到你们这么多自激 很奇怪 。 正好有几个人问我,胡乱提了几个建议 帮忙解决一个自激 ,和 ...…

查看全部问答>

学习Hercules TMS570LS硬件设计入门

一、硬件系统 原理图以TMS570LS31x Hercules USB Stick Development Kit 参考 PCB 以TMS570LS31x_USB_STICK_Gerber参考…

查看全部问答>

菜鸟求助STM32ADC多通道连续转换模式问题

我用PA0,PA1,PB0三路作为ADC的三个通道,每个通道用单通道模式测试转换都是正确的,但是ADC和DMA参数改成多通道模式时结果不正确,为乱码。 /*-------------------------------ADC private variables-----------------------------*/ #define A ...…

查看全部问答>

有关MOSFET的选型指导

MOSFET的选型指导 MOSFET 的应用选择须综合各方面的限制及要求。下面主要从应用的安全可靠性方面 阐述选型的基本原则。 建议初选之基本步骤: 资源中心下载:有关MOSFET的选型指导 直接下载:有关MOSFET的选型指导 [ 本帖最后由 qwqwqw2 ...…

查看全部问答>