原文链接:.html
本文只是记录一些注意事项以及笔记
操作系统的完全体:bootloader、内核镜像、内核模块、rootfs、启动文件、设备树
export
;ti-linux-kernel-dev/
.
fdisk
、<4;mount
;sync
,umount
要为一个 ARM 架构开发板烧写系统,首先 mkdir beagleBuild
,然后在该目录下准备如下工作:
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.
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}
git clone .git
cd ti-linux-kernel-dev/
git checkout origin/ti-linux-4.9.y -b tmp
./build_kernel.sh # 这个脚本会编译kernel、modules、设备树文件,然后复制到目标文件夹
debian 9 用户名:debian 密码:temppwd
根用户:root 密码:root
wget -c .
tar xf debian-9.
建议先进行 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小时内删除。
留言与评论(共有 0 条评论) |