查看: 1141|回复: 0

udoo neo 开发板,sd 启动卡制作

[复制链接]
  • TA的每日心情
    开心
    2024-11-20 21:23
  • 签到天数: 597 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2018-1-19 14:02:50 | 显示全部楼层 |阅读模式
    分享到:
    前段时间烧录 sd 卡,把读卡器烧坏了,没办法折腾半个月没发贴,又买了个新的读卡器接着来。
    接着上次的写 sd 启动卡制作,需要要用到下面 5 个文件:
    1,spl:是uboot的一部分
    2,uboot:是uboot主体,初始化板子启动 linux 系统
    3,kernel:linux 的内核,核心
    4,modules:模块,驱动
    5,dts:device tree,设备树
    6,rootfs:根文件系统,就是“  /  ”这个目录里面的东西
    把以上文件放到 sd 卡固定位置就可以,nxp 官方有个 mfgtools 工具,是个自动工具包,只需要你把上面这些东西放到一个目录里,工具会去给卡分区、各个文件怎么去烧录等,自己研究的话可以手动自己烧录,对 sd 启动卡了解的更多一点。这一篇就自己烧录启动卡,不用他那个工具,按以下顺序烧写:
    1,spl+uboot:自己编译的,spl 可以启动,但是没有去加载 uboot,还没有调试出来,所以先用官方的镜像,用他的 spl+uboot
    2,dts:现用现编译
    3,kernel:用自己编译的,没问题。
    4,rootfs:这个先用编译好的,稍后令开一贴单独写rootfs 制作
    5,modules:现用现编译
    开始动手:1,如果用自己spl+uboot的话,先给 sd 卡分区,完了把uboot 编译出来的 SPL  u-boot.img 烧录都 sd 卡就可以。
    我自己编译的没有调试出来,用官方镜像系统的 SPL 和 uboot,直接把官方镜像烧录到 sd 卡:
    命令:dd if=udoobuntu-udoo-neo-desktop_2.2.0.img of=/dev/sdc bs=1M conv=fsync

    结束了,sd 卡有两个分区,分别是 boot  root  分区,我们只保留 spl + uboot,把两个分区的所有东西都删掉:

    mount 分区:
    mount /dev/sdc1  /mnt/c1
    mount /dev/sdc2  /mnt/c2
    我试用的root账户,其他账户的话,需要sudo mount :

    删文件:rm /mnt/c1/*  /mnt/c2/*  -rf,删完了,删空了,

    2,kernel:复制自己编译的内核到 boot 分区,就是 /dev/sdc1 也是 /mnt/c1:

    3,dts:编译dts ,复制到 boot 分区:
    编译:ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make dtbs
    创建dts 目录:mkdir /mnt/c1/dts
    复制:cp dts /*.dts  /mnt/c1/dts


    全部都复制过来了,其实只要这几个就够了:

    4,rootfs:现有的是个压缩包,解压到 root 分区,也就是 /dev/sdc2  也是 /mnt/c2:
    tar xvf armhf-rootfs-debian-stretch.tar -C /mnt/c2

    5,modules:编译:ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make modules


    编译过程有一些warning ,不管他,没事。编译时候可以加个 -j4  参数,多线程编的快,有N个核就写 -jN

    完了,安装modules:ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make firmware_install modules_install INSTALL_MOD_PATH=/mnt/c2


    全部装完了,检查一下,看看哪里有错误没有,推出卡,查到 udoo neo 板子上,准备启动。

    启动时候一些信息输出到串口,所以先连个串口模块打开个putty,一会启动了能看到启动信息:
    串口位置:

    硬件连接:串口模块 TX 连接板子RX,串口模块RX----板子TX,io 电平 3.3v,两根线就可以,输出不稳定的话,共地接一下三根线

    串口参数设置:
    UART serial port
    Baudrate: 115200
    Data: 8 bit
    Parity: none
    Stop: 1 bit
    Flow control: none
    Kernel device name: /dev/ttymxc0
    putty 打开这个样子,就可以给板子上电卡机:

    上电后,有信息输出,官方的spl,uboot

    自己编译的 kernel,上次是 2017.12.27 那天发帖编译的:

    systemd,welcome debian,进来了:


    进来了,root 用户登录的,看到根下面这么多东西。完了,整篇结束了。
    自己编译的 spl + uboot,开机停在这个地方,我用的官方源码,也没改,spl 启动正常,uboot 没启动,貌似没有加载:

    稍后 spl + uboot 调试出来了看是怎么回事,单写一帖,还有 rootfs 制作也单写。
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /5 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-12-20 22:38 , Processed in 0.120230 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.