【Beagle】Beagle X15 烧写系统笔记

阅读: 评论:0

【Beagle】Beagle X15 烧写系统笔记

【Beagle】Beagle X15 烧写系统笔记

原文链接:.html
本文只是记录一些注意事项以及笔记

操作系统的完全体:bootloader、内核镜像、内核模块、rootfs、启动文件、设备树

  • 交叉编译工具链,export
  • bootloader,可能需要打补丁;
  • kernel:ti-linux-kernel-dev/
  • rootfs:.
  • SD格式化、烧录
    • fdisk、<4;
    • mount
    • 拷贝 bootloader
    • 拷贝内核镜像
    • 拷贝内核模块(目录);
    • 拷贝 rootfs(目录),设置 rootfs 权限;
    • 设置 /boot 目录下的启动项
    • 拷贝设备树文件(目录);
    • syncumount

要为一个 ARM 架构开发板烧写系统,首先 mkdir beagleBuild,然后在该目录下准备如下工作:

1. ARM Cross Compiler

  • 下载地址: Linaro
wget .pdf -P /tmp/ # 指定下载目录,否则当前目录
wget -c .pdf # 断点续传。当文件特别大或者网络特别慢的时候,往往一个文件还没有下载完,连接就已经被切断,此时就需要断点续传。
export CC=`pwd`/gcc-linaro-6.4.1-2017.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- # 在一个终端用export设置环境变量后再其他终端不可见,父进程可以将自己的环境变量写入到子进程的空间中,但是子进程无法将自己空间的数据写入到父进程中。

测试交叉编译器:

jiaming@ubuntu:~/beagleBuild$ ${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.

2. Bootloader

  • 源码下载地址:u-boot
  • u-boot-patches 下载
git clone 
cd u-boot/
git checkout v2017.01 -b tmp # 创建并切换到新分支,取远程分支并分化一个新分支
git pull --no-edit git://git.ti/ti-u-boot/ti-u-boot.git ti-u-boot-2017.01 # git pull 命令用于从远程获取代码并合并本地的版本 git pull <远程主机名> <远程分支名>:<本地分支名>
git checkout 590c7d7fe15d06a4d708403d3234bcd01cd039e1
wget -c .01/-bootz-n-fixes.patch
patch -p1 < -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}

3. Linux kernel

git clone .git
cd ti-linux-kernel-dev/
git checkout origin/ti-linux-4.9.y -b tmp
./build_kernel.sh # 这个脚本会编译kernel、modules、设备树文件,然后复制到目标文件夹

4. ARM based rootfs

debian 9 用户名:debian 密码:temppwd
根用户:root 密码:root

wget -c .
tar xf debian-9.

5. SD 卡设置

建议先进行 SD 卡低级格式化。

/dev/null,你可以向它输出任何数据。
/dev/zero,是一个输入设备,你可你用它来初始化文件。该设备无穷尽地提供0。
Linux sfdisk命令是硬盘分区工具程序:
export DISK=/dev/sdb
sudo dd if=/dev/zero of=${DISK} bs=1M count=10 # 读入10M 内容?擦除SD卡符号表,count=blocks:仅拷贝blocks个块,seek:从输出文件开头跳过blocks个块后再开始复制,bs=bytes:同时设置读入/输出的块大小为bytes个字节
# 安装 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__
# 格式化
4 -L rootfs ${DISK}1
# mount
sudo mkdir -p /media/rootfs/
sudo mount ${DISK}1 /media/rootfs/export kernel_version=4.9.83-ti-r104 # ti-linux-kernel-dev/deploy目录下查看内核版本号
# 安装rootfs
sudo tar xfvp ./*-*-*-armhf-*/armhf-rootfs-*.tar -C /media/rootfs/ # 只需要把下载完毕的rootfs烧写即可
sync
sudo chown root:root /media/rootfs/
sudo chmod 755 /media/rootfs/
# 设置名字和启动项
sudo sh -c "echo 'uname_r=${kernel_version}' >> /media/rootfs/"
sudo sh -c "echo 'fdtfile=am57xx-beagle-x15.dtb' > /media/rootfs/"
# 启动 systemd
sudo sh -c "echo 'cmdline=quiet init=/lib/systemd/systemd' >> /media/rootfs/"
# 复制内核文件
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}- -C /media/rootfs/boot/dtbs/${kernel_version}/
# 拷贝内核模块
sudo tar xfv ./ti-linux-kernel-dev/deploy/${kernel_version}- -C /media/rootfs/ # -C 指定目录
# 设置自动挂载文件系统
sudo sh -c "echo '/dev/sdb1  /  auto  errors=remount-ro  0  1' >> /media/rootfs/etc/fstab"
# 收尾
sync
sudo umount /media/rootfs

本文发布于:2024-01-30 21:28:03,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170662128322963.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:笔记   系统   Beagle
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23