Tiny4412 小试牛刀

  Tiny4412 企鹅群:531915497 ,欢迎一起交流~  

  最近搞了一块友善之臂的 Tiny4412 开发板,打算后期拿它来学习 Android ,但是在此之前呢,还是先用它来加深一下对 Linux 的学习。Tiny4412 开发板硬件与之前接触的 s3c2440 各个系列的开发板有很大的不同,cpu 4核,采用 1G DDR3 ,4G emmc .网卡是 usb 接口的 9261 。光盘里的带的文件系统貌似也不再是我们之前在 nandflash 上使用的 yaffs2 jffs2 等。还有它可以使用 fastboot 来进行快速烧写。

  友善提供的 Bootloader 是 superboot4412 ,这是友善自己的东西,并不开源,它支持 minitools 烧写,也可以使用 sd 卡进行系统的烧写。但是,由于它是闭源,而且都是傻瓜式操作,并不利于我们的学习,因此,我决定还是先尝试移植 uboot 来了解 4412 的板级硬件。

  上来直接移植肯定是不靠谱的,先来尝试一下别人搞好的 uboot ,感受一下这块牛叉开发板的魅力。

  友善光盘里提供了一个移植 ok 的 uboot ,uboot_tiny4412-20130729.tgz ,据说是网友移植好提供给友善的,友善并不对这个 uboot 提供技术支持,更坏的消息是,这个 uboot 适用于 4412 的第一个版本 tiny4412-1306 ,在它之后的 tiny4412-1412 tiny4412-1506 在硬件上有些改动,直接导致 uboot 不能直接使用的改动是友善将 1306 上的 4 块 DDR3 改成了 2 块DDR3 ,那么对 DDR3 的初始化部分肯定是需要修改才能使用的。

  拆下 LCD ,可有看到我们板子的版本,我的是:Tiny4412/super4412sdk 1506 

  直接按照光盘里的说明进行编译出来的 uboot 跑起来只能打印一个 ok !由于现在我对 ddr3 并不了解,只能借助强大的搜索引擎了,站在前人的肩膀上总是事半功倍。

  针对 DDR3 的问题参考:http://www.cnblogs.com/kevinhwang/p/5617629.html 进行简单的修改即可。修改完成之后编译就能看见正常的 uboot 信息了。

  目前,我选择的是 sd 卡启动,接下来的工作是把 uboot kernel rootfs 烧写到 emmc 中。在之前 2440 学习时,最常用的烧写方式应该是 tftp 下载到内存,然后用 uboot 进行烧写,dnw 也可以,由于我是 win10 ,dnw 驱动有些问题一直没有使用过。现在有一个问题就是,tiny4412 使用的是 usb 接口的网卡,目前的 uboot 根本就不支持这个网卡,所以网络下载没戏了,只能使用 dnw 了,windows 下驱动不行,那就 linux 下吧。

  Linux下的dnw安装参考: http://blog.sina.com.cn/s/blog_69dd1a09010196bf.html 

  比较悲剧的是,我的驱动 insmod 到虚拟机之后,并没有 secbulk0 这个设备,原因是我下载的 dnw_for_linux 里边的 driver 它的 id_table 里并不支持我这款 usb ,因此就不会创建 secbulk0 这个设备了,把我们 usb 的信息添加到它的 id_table 里不就 OK 了。

  这个问题参考:http://blog.csdn.net/u011452544/article/details/39393857

  烧写 uboot 到 emmc 参考:http://www.cnblogs.com/pengdonglin137/p/4161084.html

  烧写完成之后,开关拨到 emmc 启动,就可以看到 uboot 的打印信息了。

  接下来是内核和文件系统的烧写,这个网上的资料都是采用 fastboot 来烧写,都是一笔带过的。这里我简单啰嗦一下。由于我是在虚拟机上使用 dnw ,串口 crt 是在 windows 上,我在 crt uboot 中执行 fastboot 时,dnw 的 usb 是默认在 windows 上的,切换到 linux 上仍有些问题,不知为何。索性直接串口工具换 Minicom ,在 linux / minicom 上执行 fastboot ,板子的 usb 设备就直接跑到虚拟机上来了,就可以使用 fastboot 了。我的虚拟机没有 fastboot ,执行一下 fastboot 系统会提示你如何安装的,很简单。

  首先编译内核,我用的是光盘里的 linux-3.5-20151029.tgz 生成的zImage 在 arc/arm/boot 目录下

  minicom/u-boot 输入:

    fastboot

  虚拟机另一个终端:

    fastboot flash kernel zImage

    fastboot flash ramdisk ramdisk-u.img

    fastboot flash fat rootfs_qtopia_qt4.img 

    fastboot reboot 

  至于为什么文件系统烧写到 fat ,这个我是蒙的。根据分区大小来猜的,谁让咱现在对这个 fastboot 也不懂呢。

  我的 bootargs:bootargs=root=/dev/mmcblk0p1 rootfstype=ext4 console=ttySAC0,115200 init=/linuxrc ctp=2 skipcali=y loglevel=7

  我的 boorcms:bootcmd=movi read kernel 0 40008000;movi read rootfs 0 41000000 100000;bootm 40008000 41000000

  一切烧写完毕之后,一个悲剧的问题来了 卡死在:Uncompressing Linux... done, booting the kernel.

  根据以往的经验,有可能是 bootargs 传递参数不对,比如没有指明波特率,又或者 uboot 默认传递给内核的机器 ID 不是 tiny4412 的(0x1200),经过我的验证排除这俩问题。难不成友善提供的内核有问题?经过百度:

  make menuconfig
  进入 System Type
  去掉配置项 Support TrustZone-enabled Trusted Execution Environment 再重新编译内核即可!

  这个东西貌似是给 superboot4412 是用的,我们的 uboot 并不支持。

  从晚上8、9点搞到凌晨两点半,总算是跑起来了,但是有太多太多的疑问,相信,在后边的学习过程中,这些问题都会有答案。

  补丁文件:http://download.csdn.net/detail/lizuobin2/9713618

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值