zoukankan      html  css  js  c++  java
  • 让Barebox正确引导Tiny6410的linux内核

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


            上节各位搞得如何~这次怎么修改barebox的一些小细节,并且配置一下内核,使得barebox可以顺利boot通内核~


            在barebox的arch/arm/boards/friendlyarm-tiny6410/env这个文件夹里面放的就是barebox的起来的之后的环境变量了~比如上节设置的网卡eth0的ip,netmask,gateway······设置成环境变量之后就可以不用手动在barebox的命令行敲这些设置~


            修改/env/config这个文件。原始的网络部分是这样子的~

            


            按照上节和我自己用的配置,修改成这样~但是如果你设的ip有是别的话要更改自己用的ip

            

            Serverip是上位机的ip,下面4个是板子的相关的设置,注意啦,同一网段啊亲~


            然后,原始的config文件啰啰嗦嗦的写了一大堆,我们最好的解决办法就是直接删掉~除了配好的网卡部分全部删掉,改成这样的形式

            


            因为后面我打算用的是linux+nfs文件系统的形式,所以

            kernel_loc=tftp

            rootfs_loc=net


            这里不要问为什么,现在做这些步骤你只要记住两点,不求甚解和没有技术含量就行,以后把最基本的linux kernel和文件系统boot通之后我们回去慢慢的来搞细节,现在最重要的是什么?大环境~

            rootfs_type和 rootfsimage现在用不上,照抄或者删掉都可


            往下~

            kernelimage_type=zimage

            Kernelimage=zImage

            nfsroot=”xxxxxx”

            这三项

            因为编译linux内核的时候默认生成的是zimage镜像,所以这里kernelimage_type我选择barebox加载内核的时候是zimage镜像~ok

            在编译linux内核的时候默认会生成名为zImage的zimage镜像,所以为了方面Kernelimage我选择zImage的名字,这个名称可以修改成你编译内核是生成镜像的名字~

            nfsroot这个是填进去你上位机的nfs目录,比如说我要barebox启动内核的时候以nfs作为根目录文件系统,还是上一节的配置,那这里我nfs的绝对路径就是:

            192.168.1.100:/home/workspace/rootfs


            修改的文件是以参数试的定义填进nfs目录的,现在假定我内核使用的nfs根目录的文件系统是rootfs,但是这时候上位机这个目录是空的,因为现在我们还没有文件系统~


            然后,自启动时间设成3s,bootargs保持默认即可~最后因为现在barebox没有nandflash的驱动~所以最后三行注释掉


       在arch/arm/boards/friendlyarm-tiny6410/env目录下再新建一个bin文件夹,新建一个文件update,内容如下:

            

            就把上次从tftp中加载文件的过程写成shell形式,例如我启动barebox之后我不想每次重新编译barebox之后都用minitool去烧写,直接如果barebox起来之后我从tftp加载barebox的话,可以达到方便开发barebox的功能~

            切到barebox的目录下make menuconfig

            commands --->barebox-update选上

            



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

            


            记住,不要问我为什么,现在是不求甚解~

            然后,找到arch/arm/tools中的mach-type文件,上节如果有朋友试过boot内核的就会发现这个加载完启动就会提示机器码不对的情况,这里,找到tiny6410的机器码~修改成mini6410一样的机器码,这样后面我们配linux内核的时候就可以省去很多麻烦~

            


            好,保存所有修改过的文件,make

            make完之后用minitool烧写进tiny6410的内存~

            这时候,如果你超过barebox的autoboot时间,碰巧你的tftp共享目录下有我们在修改环境变量是名为zImage的文件的话,barebox会自动加载这个文件到/dev/ram0中,然后boot它~

            你可以找一个友善提供编译好的6410的内核改成zImage放到tftp共享目录下面,人品足够好的话可以看到boot起linux内核~


            这里我就贴一张用友善官网下载的最新Tiny6410B-20120828的光盘B中/image/linux/zImage这个镜像从barebox启动的log

            


            到这里,运行到最后我跟你说喔,一定是挂掉的~甚至还不能挂载nfs就挂掉的~

            因为什么,你自己思考一下,认真思考一下~

            下一节我们就从linux kernel官网下官方的源码自己来学习配一个最简单的内核~

  • 相关阅读:
    [c/c++] programming之路(13)、函数
    [c/c++] programming之路(12)、循环结构
    opencv学习之路(18)、霍夫变换
    [c/c++] programming之路(11)、顺序分支
    opencv学习之路(17)、边缘检测
    opencv学习之路(16)、膨胀腐蚀应用之走迷宫
    [c/c++] programming之路(10)、格式符后续
    opencv学习之路(15)、形态学其他操作(开、闭、顶帽、黑帽、形态学梯度)
    opencv学习之路(14)、形态学之膨胀腐蚀
    [c/c++] programming之路(9)、运算优先级
  • 原文地址:https://www.cnblogs.com/fuhaots2009/p/3469110.html
Copyright © 2011-2022 走看看