让Barebox在Tiny6410上跑起来

2024-04-19 14:38
文章标签 起来 tiny6410 barebox

本文主要是介绍让Barebox在Tiny6410上跑起来,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        本文专属tiny6410吐槽系列~如有得罪,请多包涵~在此也留个联系方式~291222536@qq.com,欢迎大家一起交流吐槽心得~



        今天来吐槽一下barebox这个BL,最近机缘巧合之前手头多了块tiny6410友善的板子,又是嵌入式,既然非技术类的东西就算不吐槽了,今天的话题吧——barebox~

        原来在openrisc平台上得知这个BL,但是技术水平和时间问题没在O的平台搞通,惭愧啊~但是现在既然多了6410的板子,现在就可以稍微搞一下了~

        去官网把http://barebox.org/把源码下下来,然后顺便看看一下官方的介绍。


          Barebox (formerly known as u-boot-v2) is a bootloader that inherits the best of U-Boot and the Linux kernel: The size and look-and-feel of u-boot, with driver model and lots of design concepts from the kernel.


        按官方的解释的话,如果像我们这些做linux的来说是不是从barebox过渡到linux driver会有迹可寻?我猜的而已,还没认真分析过实质的代码~

        选择barebox的原因是什么,这里先声明一下,喜欢研发的人都喜欢捣鼓,绝对不是说什么炫耀技术很屌这样,纯粹的,这系列的博文只是工作记录,可以说这里面记录的只是步骤而已,完全没有技术含量的,因为我发现在我什么一起工作的小伙伴们真的很少有人会去写类似于工作记录这些东西,其实包括我也是这样子的,很烦做这些事,不想吐槽负能量了~

        正题吧,截止到我写下这些文字的时刻,2013-12-02下午15:23分,barebox官网的master主分支发布到2013.11.0,所以我只能选择这个最新的作为这次的实验材料了~

        有点要说明的就是,其实6410的各家开发板的厂家提供的BL已经够使用开发的了,说实在,完全是没有必要去重新搞barebox这个不完善的BL的,纯粹的,技术上而已,我们在学。

        首先啊,这个移植到barebox的只有很基本的功能,芯片底层初始化,ddr控制器可以工作,网卡工作可以工作,仅此而已,官方的master版本没有针对s3c6410的芯片提供flash的驱动,但是瞄了一下210的a8的芯片和2416的芯片就有,果断还是有需求就有市场。

        能找到和6410平台有关的就在http://git.pengutronix.de/这个git server上有,在


        

        在jbe/barebox.git的分支上,里面有Juergen Beisert这位牛牛写过6410的分支代码,后来我自己git下来了,编译不过去,所以亲们哪位高手有空研究一下吧~

        后来在google上search的结果有网友给barebox支持友善的210和6410平台,patch我大概都看了一下,不是很难,难得的是发现博客园这个网站上来lknlfy这位博主打了nandflash的驱动patch,后来我一直在google上面search都没有发现这个patch从哪里来的,包括patch里面nandflash驱动的作者Juergen Beisert,也就是barebox的一个git server的分支作者的git tree也没有发现,但是那些patch我都没有试过,后面真的要增强barebox这个BL的时候再去考虑吧~

        大家可以用google搜下一下”Barebox for Tiny6410”这个关键字即可。

        再说明一遍,这次在tiny6410上跑起barebox,按照习惯使用u-boot的朋友来说,就是,我能从服务器端通过tftp加载内核并boot起内核,但是不能用barebox实现自烧写存储介质,包括flash和SD卡,也就是不能固化代码。

        现在barebox的master分支的代码在手了,至于还有什么交叉编译环境搭建这些我就不说了,我自用的环境是这样的:

        系统:xubuntu-12.04

        交叉编译器:arm-linux-gcc-4.5.1-v6-vfp-20101103

        串口工具:c-kermit

        Barebox:barebox-2013.11.0.tar.bz2

        吐槽一下ubuntu和基于ubuntu的linux mint,装了ubuntu之后,感觉用了unity之后虽然是很华丽,但是感觉无爱了,我不知道大家感觉是怎么样的,在我身边的小伙伴们我还没发现有谁真正完全只用linux系统的,平时我选择linux的原因仅仅只是工作需求而已,所以unity不是我的需求,你装就卡死我电脑,你妹的~

        再有linux mint,尼玛的桌面操作系统之王,我N个朋友装了都说不咋地,结果我不信邪,非要自己装了一遍,然后还是换回熟悉的xubuntu的LTS吧,稳定和习惯才是王道。

        直接的,解压barebox的源码包之后,修改一下makefile的compile部分

        

        然后cp arch\arm\configs\friendlyarm_tiny6410_defconfig到barebox的根目录成.config,跟编译linux的类似

        然后不做任何barebox的内核配置,直接make,先体验一下barebox

        

        用友善的板子的朋友都知道友善提供的minitool这个工具,步骤不讲了~我这里是2G的SD卡+友善的superboot从开发板启动,并用usb连上minitool,再次,因为原版的barebox不能从flash和SD卡启动,所以先直接下载到DDR里面跑,选择minitool的User Bin选项,把内存地址稍微改后一点点,这里我选择0x50200000,选择编译出来的barebox.bin

        


        然后,开一个terminal连上开发板的串口,我用的是c-kermit,用法不讲了,然后切到minitool里面点download,然后串口的信息就有log出来

        


        原版的barebox不用修改什么,uart和ethernet就可以正常工作,也因为这样,接下来修改barebox的内核,让barebox支持tftp服务,就可以直接从上位机load内核

        但是你一定要保证在你的linux中启动了tftp服务,怎么样装tftp服务,参考其他的blog吧,码字其实是很辛苦的,各位原谅哈~

        接下来,在barebox跑起来的情况下,我们手动mount上位机的tftp共享文件夹到barebox中,uboot有没有这种功能,我还真没试过,以前接触过一段时间uboot都是用很简单的功能而已。

        到barebox官网看看怎么用命令,其实barebox的命令基本和linux的类似,所以大家习惯了linux就习惯了barebox,这里只针对mount命令了

        


        然后官网还给了两个例子,来看一看:

        

        挺好的,原来挂在上位机的tftp之后可以直接boomt内核~是不是看到曙光了~

        那就来吧,比如说我搭建好的tftp共享目录是:

        /home/workspace/chanfai/tftpboot

        上位机的IP我设成静态的IP:192.168.1.100

        那根据mount的用法我就是这样的结果:

        mount 192.168.1.100:/home/workspace/chanfai/tftpboot tftp /mnt/tftp

        回到tiny6410跑起的barebox来,在mnt目录下mkdir出tftp文件夹,然后输入上面的mount命令,然后你切换到tftp目录里面,然后ls一下,你就会惊奇的发现,一个文件也没有,对的,你没看错,ls的结果是一个文件也没有,不要问我为什么会这样子,因为我也不知道,但是,重点来了,在你保证你上位机的tftp服务开启之后,在barebox的挂载就可以成功,不信,你试试直接cp在你上位机tftp共享文件夹里面的文件,比如说我在上位机的tftpboot中放了linux内核的镜像zImage,我在barebox中cp挂载之后的/mnt/tftp中到~/目录的过程是这样的:

        mkdir dev/

        cd dev/

        mkdir tftp  

        mount 192.168.1.100:/home/workspace/chanfai/tftpboot tftp /mnt/tftp

        cp mnt/tftp/zImage ~/

        ls

        

    

        清楚看到,挂载之后是看不到tftp目录下的文件的,但是,你cp出来是有结果的

        

        有木有和linux很相似,尼玛啊真的很像,相见恨晚啊卧槽

        然后在这里你把上面的步骤先做了~

        码字我码累了,抽根烟去先~

        Zzzzzzz......

        于是乎,过了很久~

        想必某些朋友真的会挺住,然后真的把上面的步骤先做了~

        这是可能的~

        这真是有可能的~

        这真心绝对有可能的~

        于是乎Zzzzzzz......

        那么我要恭喜你~到这里有可能是做不通的~原因是什么,因为barebox的内核我没有说明怎么去配置tftp服务,哇哈哈~

但是你们做之前有没有想过这其实是不可能通的呢,因为你都没确定你的bootloader支不支持tftp,或者对应的tftp服务开启没有,你就开始搞了~

所以,尽信博客还不如没博客~所以你们看我这么文字的时候要小心,我不知道什么时候心血来潮留个bug在里面让你们搞到蛋疼去~

        不说了,等会说多又都是泪了~进去barebox文件目录make menuconfig

        Filesystem support --->tftp support选上

        

        然后,commands -->file commands --->tftp选上

        


        再来,保存之后make,make完之后再用minitool工具download到板子内存里面跑~

        然后,我们要设置一下板子的ip,netmask,gateway,网卡的地址

        比如我的这样设置,在barebox起来之后,命令行输入:

        eth0.ipaddr=192.168.1.101

        eth0.ethaddr=12:34:56:78:90:ab

        eth0.gateway=192.168.1.254

        eth0.netmask=255.255.255.0

        保证板子ip和pc机在同一个网段上面~

        再然后,这时候你可以做上面的步骤了,这次可以保证你得到想要的结果了~

        然后我再跟你悄悄讲啊,其实呢,比如在tiny6410中,barebox把它的DDR内存虚拟成/dev目录下的ram0设备了,那也就说说,如果我们cp到的是/dev/ram0这个文件的话,就是把文件复制到内存里面了,哎呀卧槽,那这样不就可以从ram0里面跑起内核了么?答案是:这是必须的~

        然后接下来这样试

        cp /mnt/tftp/barebox.bin /dev/ram0

        go /dev/ram0

        到这里为止的实验留给尊贵的您做实验吧~


        这个部分开始是barebox启动linux内核的Log:

        

        

        

        至于load内核的部分,您可以尝试继续先做吧~要不你就先不看下面的想一下,会出现什么样的结果的~


        其实你们就不用多想了~linux的内核我重新自己配过了~而且,现在barebox这个BL还是有些小问题卡这你们的,放心,你照着做下去是不会得到上面的结果的,按照这些步骤必须得不到,会报机器码不识别的错误,到现在为止先体验一下barebox吧~

        下节我们来修改这个barebox的env环境变量和继续配置barebox的内核,然后在修改里面的某些小细节,然后达到boot通内核的结果~

        不过这里想一想,如果你们随便找个linux的镜像boot会产生什么结果~结果应该会很多的,至少我之前的摸索的时候碰到了好多问题~

        这里我不想抛出这些问题给你们,有问题,学着自己怎么了结它,我这里只是毫无技术含量的贴出成功的步骤~

这篇关于让Barebox在Tiny6410上跑起来的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/917823

相关文章

MySQL数据库宕机,启动不起来,教你一招搞定!

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)公众号:老苏畅谈运维欢迎关注本人公众号,更多精彩与您分享。 MySQL数据库宕机,数据页损坏问题,启动不起来,该如何排查和解决,本文将为你说明具体的排查过程。 查看MySQL error日志 查看 MySQL error日志,排查哪个表(表空间

用Unity2D制作一个人物,实现移动、跳起、人物静止和动起来时的动画:中(人物移动、跳起、静止动作)

上回我们学到创建一个地形和一个人物,今天我们实现一下人物实现移动和跳起,依次点击,我们准备创建一个C#文件 创建好我们点击进去,就会跳转到我们的Vision Studio,然后输入这些代码 using UnityEngine;public class Move : MonoBehaviour // 定义一个名为Move的类,继承自MonoBehaviour{private Rigidbo

神经网络训练不起来怎么办(零)| General Guidance

摘要:模型性能不理想时,如何判断 Model Bias, Optimization, Overfitting 等问题,并以此着手优化模型。在这个分析过程中,我们可以对Function Set,模型弹性有直观的理解。关键词:模型性能,Model Bias, Optimization, Overfitting。 零,领域背景 如果我们的模型表现较差,那么我们往往需要根据 Training l

Java8中的Stream,让集合操作酸爽起来

简介 java8也出来好久了,接口默认方法,lambda表达式,函数式接口,Date API等特性还是有必要去了解一下。比如在项目中经常用到集合,遍历集合可以试下lambda表达式,经常还要对集合进行过滤和排序,Stream就派上用场了。用习惯了,不得不说真的很好用。 Stream作为java8的新特性,基于lambda表达式,是对集合对象功能的增强,它专注于对集合对象进行各种高效、便利的聚合

hibernate泛型Dao,让持久层简洁起来

【前言】hibernate作为持久层ORM技术,它对JDBC进行非常轻量级对象封装,使得我们可以随心所欲的使用面向对象的思想来操作数据库。同时,作为后台开发的支撑,的确扮演了一个举足轻重的角色,那么我们在项目中如何灵活应用hibernate,也会给项目维护以及项目开发带来便利,下面我将展示我们项目中是如何来对hibernate进行应用和操作。 【目录】              -

大数据只是听起来唬人?其实啥也不是。

点击上方蓝色字体,选择“设为星标” 回复”面试“获取更多惊喜 各位读者大佬们晚上好。 前两天一个读者找到我,问了一些问题。想来大家都是同龄人,虽然素不相识,但是我想起来我前几年刚毕业的时候,大概也是怀揣这样的问题,进入到了这么一个行业。 这个同学的问题大概也是很多新手同学的疑问罢。 这位同学在学校一直学习的是Java后端的工作,「然后现在做实时流平台,岗位是Java大数据,工作一年半了快,但

卷起来了,Apache Flink 1.13.6 发布!

点击上方蓝色字体,选择“设为星标” 回复"面试"获取更多惊喜 Hi,我是王知无,一个大数据领域的原创作者。  放心关注我,获取更多行业的一手消息。 Apache Flink 社区发布了 Flink 1.13 的另一个错误修复版本。 此版本包括99个错误和漏洞修复以及 Flink 1.13 的小改进,包括 Apache Log4j 的另一次升级(到 2.17.1)。您将在下面找到所有错误修复

题目:输入 5 个数(含负数、小数)将它们按由小到大的顺序排列起来。提示:需要排序的数字通过参数传递进来。

题目:输入 5 个数(含负数、小数)将它们按由小到大的顺序排列起来。 提示:需要排序的数字通过参数传递进来。 例如: 输入:-1 2.1 -3 5 7 输出: -3 -1 2.1 5 7 import java.util.Scanner;public class FuShuXiaoShuPaiXu {public static void swap(double[] arr,int a,in

IDEA 导入Web 项目并跑起来

第一步: File -----> open :  打开  web 项目文件 (idea  与eclipse 不同之处就是他 以 项目文件 为单位,没有工作空间的说法) 第二步: 配置 tomcat  如图不说!!! 第三步: 配置 project  结构  如图不说!!! 第4 步: 配置 project  如图不说!!! 第5步: 配置 Mo

好久不见,最近忙起来了

title: 好久不见,最近忙起来了 date: 2018-08-15 发个动态证明我的博客还没有挂 ::aru:cryingface:: 只不过是最近真的很忙而已,工作忙,玩游戏也忙(皮) 周一到周五,每天晚上加班到10点多,有点厌恶加班了上周三,《怪物猎人世界》PC版发售,我也是第一时间就买了 于是我,沉迷游戏,无法自拔了 ::aru:shy2:: 上一次有这种感觉,还是在大