1、需求MLO、u-boot.img、uImage、Systemfile

  1. 获取MLO、u-boot.img下载U-boot源码,解压获得源码,进入源码目录

    cd /home/zyr/Source_code/
    tar zxvf u-boot-2016.03.tar.gz
    cd u-boot-2016.03
    make arch=arm CROSS_COMPILE=arm-linux-gnueabihf- O=am335x-boneblack am335x_evm_defconfig all 

    获取uImage,下载kernel源码(链接: https://pan.baidu.com/s/1cqBd0q 密码: 7nzp),解压源码,进入源码目录

    进入源码目录
    运行脚本文件kernel.sh

    #! /bin/bash
    echo "Configure the kernel"
    until
    echo "1.make the omap2plus.defconfig"
    echo "2.make the menuconfig( Boot options -> Kernel command line type (root=/dev/mmcblk0p2 rootwait console=ttyO0,115200) )"
    echo "3.make the dtb"
    echo "4.make the zImage"
    echo "5.make the uImage"
    echo "6.make the distclean"
    echo "7.make the modules"
    echo "8.quit"
    read input
    test $input = 8
    do
    case $input in
    1)make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- omap2plus_defconfig;;
    2)make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig;;
    3)make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zyr-am335x-evmsk.dtb;;
    4)make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage;;
    5)make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LOADADDR=0x80008000 uImage;;
    6)make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean;;
    7)make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j8 modules;;
    8)echo"quit";;
    esac
    done

     

    第三项make dtb文件修改为am335x-boneblack.dtb

获取精简的文件系统(链接: https://pan.baidu.com/s/1o8mONgQ 密码: qq3g)

将文件系统放入指定的目录中:
例如/home/zyr/Source_code/BeagleBone/BeagleBone-crate-SDcard

2、创建制作SD启动的脚本文件(手上需要SD卡及读卡器,将SD卡与读卡器插入电脑的USB接口):

#!/bin/sh

#指定SD卡的路径(lsblk查看SD卡的路径)
DISK="/dev/sdb" #指定MLO(SPL)的路径
MLO="/home/zyr/Source_code/u-boot-2016.03/am335x-boneblack/MLO" #指定u-boot.img的路径
ubootimg="/home/zyr/Source_code/u-boot-2016.03/am335x-boneblack/u-boot.img" #指定uEnv.txt的路径
uEnvtxt="/home/zyr/Source_code/u-boot-2016.03/am335x-boneblack/uEnv.txt" #指定filesystem的路径
filesystem="/home/zyr/Source_code/BeagleBone/BeagleBone-crate-SDcard/Self-for-Boneblack-filesystem.tar.gz" #指定Blageboneblackdtb的路径
Beaglebonedtb="/home/zyr/Source_code/linux-3.14.65/arch/arm/boot/dts/am335x-boneblack.dtb" #指定uImage的路径
uImage="/home/zyr/Source_code/linux-3.14.65/arch/arm/boot/uImage" #擦除SD卡
dd if=/dev/zero of=${DISK} bs=1M count=
sync #烧写MLO,U-boot
dd if=${MLO} of=${DISK} count= seek= bs=128K
sync
dd if=${ubootimg} of=${DISK} count= seek= bs=384K
sync
#dd if=/home/zyr/MLO of=${DISK} count= seek= bs=128K
#dd if=/home/zyr/u-boot.img of=${DISK} count= seek= bs=384K #创建分区(Linux系统)
sfdisk --unit M ${DISK} <<-__EOF__
,,L,*
__EOF__ #格式化分区(格式化为ext4)
mkfs.ext4 -L rootfs ${DISK}
## Make sure posted writes are cleaned up
sync
sync
echo "Formatting done." mkdir -p /media/rootfs/
mount ${DISK} /media/rootfs mkdir -p /media/rootfs/opt/backup/uboot/
cp -v ${MLO} /media/rootfs/opt/backup/uboot/
cp -v ${ubootimg} /media/rootfs/opt/backup/uboot/
cp -v ${uEnvtxt} /media/rootfs/ tar xfvp ${filesystem} -C /media/rootfs
sync
sync
chown root:root /media/rootfs/
chmod /media/rootfs/ cp -v ${uImage} /media/rootfs/boot/
echo "This uImage is for BeagleBoneBlack kernel. What different from Am335x_evmsk is where the filesysytem run. "
echo "Am335x_evmSk's filesysytem is running in sd's part 2."
echo "BeagleBoneBlack's filesystem is running in Sd's part 1."
cp -v ${uEnvtxt} /media/rootfs/boot/
mkdir -p /media/rootfs/boot/dtbs/
cp -v ${Beaglebonedtb} /media/rootfs/boot/dtbs sh -c "echo '/dev/mmcblk0p1 / auto errors=remount-ro 0 1' >> /media/rootfs/etc/fstab" sync
sync
umount /media/rootfs

这样BelageBoneBlack(am335x)板的启动SD卡制作成功了。

说明:1、运行此脚本需要root权限:sudo sh xxxxx.sh

   2、需要linux虚拟机的ubuntu知道SD卡的位置,比如lsblk,可以看出是sdb

3、若是已经分过区的SD卡,需要多次运行此脚本(至少两次,中间需要将SD卡拔下来在插入),自己经验得出,不适用所有的人。

参考网址:

http://eewiki.net/display/linuxonarm/BeagleBone+Black

手动制作用于启动BeagleBoneBlack(am335x)的SD的更多相关文章

  1. BoneBlack am335x利用SD卡烧写板卡上的emmc

    参考ti论坛上面的一篇文章: 链接:https://pan.baidu.com/s/1SLSUbCRrIULJJf_BNI3sEQ 密码: hvem 自己稍微修改的debrick.sh 链接: htt ...

  2. MacOS下制作linux启动盘

    在Windows下,我们经常使用软碟通来制作各种系统的启动盘,那么在MacOS下,如何做到呢?MacOS跟Linux的做法基本一致.如果你只想快速地制作好启动盘,请看下面的快速版 首先,你需要以下两样 ...

  3. Ventoy制作PE启动盘

    前言 不怎么回事,只要是学计算机的都被非计算机专业的认为是会修电脑.常常抛来一个请求:咦,你不是学计算机的吗,帮我重装系统. 在日常生活中准备个有PE系统的U盘,以备不时之需. 常见的PE启动盘的制作 ...

  4. Windows 7 封装篇(一)【母盘定制】[手动制作]定制合适的系统母盘

    Windows 7 封装篇(一)[母盘定制][手动制作]定制合适的系统母盘 http://www.win10u.com/article/html/10.html Windows 7 封装篇(一)[母盘 ...

  5. AM335X的SD卡更新系统学习记录

    一般利用一张SD卡就能进行系统的更新,以前一直不知是什么原理,最近了解了下,对了解到的内容做个记录.使用的是AM335X平台,系统是Linux,文件系统是EXT3: 1.首先需要一张分好分区的SD卡( ...

  6. 手动制作Docker镜像

    手动制作 Docker 镜像 前言 a. 本文主要为 Docker的视频教程 笔记. b. 环境为 CentOS 7.0 云服务器(用来用去感觉 Windows 的 Docker 出各种问题,比如使用 ...

  7. 用U盘与移动硬盘制作WIN7启动盘(亲自实践)

    昨晚帮一个娃娃用移动硬盘里面的一个分区帮他制作成一个win7系统盘,为了以后万一换系统的时候方便.我自己有一个U盘坐的启动盘,移动硬盘没有倒腾过,看网上N多都是相互抄,制作都是WINPE系统的,相当蛋 ...

  8. 用U盘制作EXSI启动盘

    用U盘制作EXSI启动盘这是一个比较困难的事,一般的人会用UltraISO这个软件来制作.但是很遗憾,这样的方法很不好,我试了好几次都没有成功.主要是不能引导. 之后我换了一个刻录软件(rufus), ...

  9. Windows系统制作Ubuntu启动U盘(命令行)

    背景 现今Ubuntu系统的使用越来越多,考虑到日常办公还是用Windows系统,但开发的需求常常要有Linux系统.因此将Linux系统安装到U盘不失为一种好的选择.在Windows系统上制作Ubu ...

随机推荐

  1. 说说JavaScript中的事件模型

    1.javascript中为元素添加事件处理程序的方法有以下几种方式,可以为javascript元素添加事件处理程序 (1) 直接将事件处理代码写在html中(2) 定义一个函数,赋值给html元素的 ...

  2. 谁说码农不懂浪漫?js写的'老婆生日快乐'特效

    一直被老婆抱怨不懂浪漫,老婆的生日又来了,老婆指着闺蜜空间上贴的老公做的胡萝卜心形浪漫晚餐告诉我:必须送她一份用心的礼物.我绞尽脑汁想出这么一法子,还是得用我们码农的独特方式,经过一天多的努力,终于做 ...

  3. 读懂复杂C声明的黄金法则

    在网上遇见felix,他让我读 http://www.felix021.com/blog/read.php?2072,读完之后觉得收获很大,需要练习一下. 黄金法则:从声明的变量开始,先向右看,再向左 ...

  4. C# Json字符串反序列化

    using DevComponents.DotNetBar; using MyControl; using Newtonsoft.Json; using System; using System.Co ...

  5. hdu 5463 Clarke and minecraft

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5463 Clarke and minecraft Time Limit: 2000/1000 MS (J ...

  6. Ubuntu server 搭建Git server【转】

    转自:http://www.cnblogs.com/candle806/p/4064610.html Ubuntu server 搭建Git server,git相比svn,最主要就是分布式了,每个客 ...

  7. 十、springcloud之Consul注销实例

    @Autowired //com.ecwid.consul.v1.ConsulClient private ConsulClient consulClient; @PostMapping(" ...

  8. SQLAlchemy-对象关系教程ORM-一对多(外键),一对一,多对多

    一:一对多 表示一对多的关系时,在子表类中通过 foreign key (外键)引用父表类,然后,在父表类中通过 relationship() 方法来引用子表的类. 在一对多的关系中建立双向的关系,这 ...

  9. python基础--json,pickle和shelve模块

    一.JSON &pickle 用于序列化的两个模块 json,用于字符串 和 python数据类型间进行转换  字符串必须是双引号,不能是单引号 pickle,用于python特有的类型 和 ...

  10. JsRender 前端渲染模板常用API学习

    JsRender 常用API 1. $.templates() $.templates()方法是用来注册或编译模板的,使用的情况有以下几种. 把html字符串编译编译成模板 获取使用script标签声 ...