作为一大硬件开源组织中的一员,Beagle X15以他的强悍的性能在工业界有着广泛的应用,最近在做一个项目中

要用到它,就做了一些这方便的研究,发现里面还有不少坑要踩的,梳理一下踩到的坑,为后续做个积累吧。

  基本链接:

  • Running a recent release of Debian, Fedora or Ubuntu; without OS Virtualization Software.
  • ARM Cross Compiler – Linaro: http://www.linaro.org
    • Linaro Toolchain Binaries: http://www.linaro.org/downloads/
  • Bootloader
    • Das U-Boot – the Universal Boot Loader: http://www.denx.de/wiki/U-Boot
    • Source: http://git.denx.de/?p=u-boot.git;a=summary
  • Linux Kernel
    • Linus's Mainline tree: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git
  • ARM based rootfs
    • Debian: https://www.debian.org
    • Ubuntu: http://www.ubuntu.com

  ARM交叉编译器的安装:

  这里是个64bit的linux平台上安装的预编译版本,具体步骤如下所示:

wget -c https://releases.linaro.org/components/toolchain/binaries/6.4-2017.11/arm-linux-gnueabihf/gcc-linaro-6.4.1-2017.11-x86_64_arm-linux-gnueabihf.tar.xz
tar xf gcc-linaro-6.4.1-2017.11-x86_64_arm-linux-gnueabihf.tar.xz
export CC=`pwd`/gcc-linaro-6.4.1-2017.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-

  测试交叉编译器:

${CC}gcc --version
arm-linux-gnueabihf-gcc (Linaro GCC 6.4-2017.11) 6.4.1 20171012
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

  BootLoader U-Boot下载和安装:

Das U-Boot – the Universal Boot Loader: http://www.denx.de/wiki/U-Boot
  eewiki.net patch archive: https://github.com/eewiki/u-boot-patches
下载路径:
git clone https://github.com/u-boot/u-boot
cd u-boot/
git checkout v2017.01 -b tmp

  打patch:

git pull --no-edit git://git.ti.com/ti-u-boot/ti-u-boot.git ti-u-boot-2017.01
git checkout 590c7d7fe15d06a4d708403d3234bcd01cd039e1wget -c https://rcn-ee.com/repos/git/u-boot-patches/ti-2017.01/0001-beagle_x15-uEnv.txt-bootz-n-fixes.patch

patch -p1 < 0001-beagle_x15-uEnv.txt-bootz-n-fixes.patch

  配置和编译:

make ARCH=arm CROSS_COMPILE=${CC} distclean
make ARCH=arm CROSS_COMPILE=${CC} am57xx_evm_defconfig
make ARCH=arm CROSS_COMPILE=${CC}

  编辑和下载kernel:

  作这个脚本来编译内核,模块和设备数并把他们拷贝到delay目录:

~/
git clone https://github.com/RobertCNelson/ti-linux-kernel-dev.git
cd ti-linux-kernel-dev/
For TI v4.9.x:~/ti-linux-kernel-dev/
git checkout origin/ti-linux-4.9.y -b tmp
~/ti-linux-kernel-dev/
./build_kernel.sh

  根文件系统

  debian 9 用户名:debian 密码:temppwd

  根用户:root 密码:root

  下载:

wget -c https://rcn-ee.com/rootfs/eewiki/minfs/debian-9.3-minimal-armhf-2017-12-09.tar.xz

  校验:

sha256sum debian-9.3-minimal-armhf-2017-12-09.tar.xz
5120fcfb8ff8af013737fae52dc0a7ecc2f52563a9aa8f5aa288aff0f3943d61  debian-9.3-minimal-armhf-2017-12-09.tar.xz

  解压缩:

tar xf debian-9.3-minimal-armhf-2017-12-09.tar.xz

 

  设置SD并安装驱动:

  这里假设sd卡的盘符是/dev/sdb 可以使用export = /dev/sdb 这个每个设备都不一样,可以通过lsblk来查找。

export DISK=/dev/sdb

  擦除SD卡的符号表:

sudo dd if=/dev/zero of=${DISK} bs=1M count=10

  安装bootloader

  

sudo dd if=./u-boot/MLO of=${DISK} count=2 seek=1 bs=128k
sudo dd if=./u-boot/u-boot.img of=${DISK} count=4 seek=1 bs=384k

  创建分区布局:

sudo sfdisk ${DISK} <<-__EOF__
4M,,L,*
__EOF__

  格式化盘符:

sudo mkfs.ext4 -L rootfs ${DISK}1

  mount系统:

sudo mkdir -p /media/rootfs/for: DISK=/dev/sdX
sudo mount ${DISK}1 /media/rootfs/

  

  安装kernel和root file system:

  这里首先要导出内核版本号,可以通过在前面编译好的ti-linux-kernel-dev/deploy目录下查看内核版本号,我的

是:4.9.83-ti-r104 导出内核符号表:

  

export kernel_version=4.9.83-ti-r104

  拷贝根目录:

sudo tar xfvp ./*-*-*-armhf-*/armhf-rootfs-*.tar -C /media/rootfs/
sync
sudo chown root:root /media/rootfs/
sudo chmod 755 /media/rootfs/

  设置名字和启动项在 /boot/uEnv.txt中:

sudo sh -c "echo 'uname_r=${kernel_version}' >> /media/rootfs/boot/uEnv.txt"

sudo sh -c "echo 'fdtfile=am57xx-beagle-x15.dtb' > /media/rootfs/boot/uEnv.txt"

  启用systemd:

sudo sh -c "echo 'cmdline=quiet init=/lib/systemd/systemd' >> /media/rootfs/boot/uEnv.txt"

  复制内核文件:

sudo cp -v ./ti-linux-kernel-dev/deploy/${kernel_version}.zImage /media/rootfs/boot/vmlinuz-${kernel_version}

  拷贝内核设备数:

sudo mkdir -p /media/rootfs/boot/dtbs/${kernel_version}/
sudo tar xfv ./ti-linux-kernel-dev/deploy/${kernel_version}-dtbs.tar.gz -C /media/rootfs/boot/dtbs/${kernel_version}/

  拷贝内核模块:

sudo tar xfv ./ti-linux-kernel-dev/deploy/${kernel_version}-modules.tar.gz -C /media/rootfs/

  拷贝文件系统列表:

sudo sh -c "echo '/dev/mmcblk0p1  /  auto  errors=remount-ro  0  1' >> /media/rootfs/etc/fstab"

  移除SD卡:

sync
sudo umount /media/rootfs

  把sd卡放入系统启动即可。

参考目录:

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

https://eewiki.net/display/linuxonarm/BeagleBoard-X15

http://blog.csdn.net/liangzhenliang/article/details/41947481

转载于:https://www.cnblogs.com/dylancao/p/8608138.html

Beagle X15 版本制作和烧录相关推荐

  1. 如何根据指定软件版本制作属于自己的puppet yum源

    如何根据版本制作属于自己的puppet yum源 童鞋们在使用puppetlabs yum源安装puppet的时候,会被选则最新版的puppet版本进行安装,而在我们正在的生产环境的时候,并不需要最新 ...

  2. WinImage 8.5版本制作任意容量的ima或img磁盘文件

    转载: https://blog.csdn.net/zm2714/article/details/7962794 本篇文章介绍WinImage 8.5版本制作任意容量的ima或img磁盘文件. 一.计 ...

  3. Android ROM的制作与烧录

    Android编译生成的三个镜像文件 Android源码编译后,在out/target/product/generic下生成的三个镜像文件:ramdisk.img,system.img,userdat ...

  4. linux烧录文件的格式,制作emmc 烧录文件

    量产需要统一使用烧录器烧录, 需要制作统一的 emmc 烧录文件,主要升级步骤如下: 工具: ISP tool; winhex ; checksum , mboottnize ; U盘(大于主板 EM ...

  5. 完全纯净的Windows 7 x86x64全版本制作

    我喜欢收集原版的东西,就像Windows 7的安装盘,最好最纯净的版本其实就是MSDN发布的版本,网上其它版本都是根据这个版本改的,或多或少加入了些东西,但如果要刻盘的话,推荐还是刻MSDN的版本,因 ...

  6. 格式化SD卡工具e2fsprogs嵌入式版本制作

    1. 下载源码包e2fsprogs,本人下载的版本是1.44.1: http://sourceforge.net/projects/e2fsprogs/ 2. 解压源码包到某个目录,本人的是:/roo ...

  7. IMX6ULL---SD卡制作与烧录步骤(重要)

    目录 1.imxdownload 2.制作烧录SD卡 2.1 SD卡分区 2.2  拷贝uboot到SD卡 2.3 拷贝kernel和dtbs到SD卡

  8. Unity NGUI 3.0.4版本 制作网络版斗地主

    Unity NGUI 3.0.4版本 @by 灰太龙  开发环境 Win7旗舰版 Unity 4.2.1f4 本文就写个开门篇,告诉大家怎么用NGUI,第一步导入NGUI 3.0.4版本! 1.启动U ...

  9. java在线聊天项目0.4版本 制作服务端接收连接,客户端连接功能 新增客户端窗口打开时光标指向下边文本域功能,使用WindowListener监听WindowAdapter...

    建一个服务端类ChatServer,用于设置端口接收连接 package com.swift;import java.io.IOException; import java.net.ServerSoc ...

最新文章

  1. 折腾Java设计模式之建造者模式
  2. Leetcode199二叉树右视图[C++题解]:BFS+层数
  3. ab flash player 8_ROM、RAM、DRAM、SRAM和FLASH的区别是什么?
  4. html5 canvas获取坐标系,HTML5 Canvas坐标变换
  5. Nginx的rewrite之rewrite指令
  6. mysql获取多张表中的数据_mysql 之多表查询
  7. Oracle 10g新特性
  8. 米斯特白帽培训讲义 漏洞篇 逻辑漏洞
  9. php简单的登录界面,PHP实现简单用户登录界面
  10. 从最新的ACL、NAACL和EMNLP中详解知识增强的语言预训练模型
  11. day20,日志和正则表达式
  12. 让UITableView数据处理更轻便
  13. c编程语言学习软件,用什么软件学习c语言
  14. Dynamic Memory Tensor Networks笔记
  15. Windows7 内部版本7601 此Windows副本不是正版解决办法
  16. 微分方程数值解 matlab,本学期微分方程数值解课程总结(matlab代码)
  17. 图像的二阶导数为何对噪声尤为敏感-----图像二阶导数的本质
  18. Javascript中LenB的计算(ASP)
  19. 磁条卡磁道2的等效数据
  20. 在DW中实现鼠标移入字体变色

热门文章

  1. 我的python3.0 + RIDE搭建之路 ---全是血泪史
  2. 复利单利计算的源代码
  3. 044_Unicode对照表十
  4. 在一起计时器_没想到吧?快手竟然给厕所上安装了计时器,或许职场从此再无带薪拉屎...
  5. Mac外接键盘ikbc win键无法使用问题
  6. 神经网络与深度学习(邱锡鹏)
  7. Linux网卡模块,裁剪Linux并实现网卡模块的安装(附有命令移植的脚本)
  8. 我的爱好作文玩计算机800,我的爱好作文800字
  9. iOS 自定义转场动画篇
  10. 深度学习与自然语言处理教程(4) - 句法分析与依存解析(NLP通关指南·完结)