SD卡分区
将SD卡分区,通过fdisk命令分区为2个区,100M的boot区,剩下的rootfs区,boot区
boot区格式化为fat格式,rootfs格式化为ext4
将boot挂在到/mnt/boot位置
1 | sudo mkfs.vfat /dev/sdb1 |
准备树莓派Boot文件
1 | git clone https://github.com/raspberrypi/firmware.git |
树莓派boot文件介绍
bootcode.bin
这是引导加载程序,由SoC在引导时加载,它执行一些非常基本的设置,然后加载其中一个start*.elf
文件。bootcode.bin
在Raspberry Pi 4上未使用,因为它已由板载EEPROM中的启动代码替换
start*.elf和fixup*.elf
1 | start4.elf,start4x.elf,start4cd.elf,start4db.elf |
start*.elf
是基本固件,start*x.elf
包括相机驱动程序和编解码器,start*db.elf
是固件的调试版本,start*cd.elf
是简化版本,不支持编解码器和3D之类的硬件块,并且在gpu_mem=16
中指定时使用config.txt
fixup* .dat
这些是链接器文件,并且与start*.elf
上一节中列出的文件配对
cmdline.txt
引导时,内核命令行会传递到内核。
config.txt
包含许多用于设置Pi的配置参数
GCC交叉编译
1 | https://mirrors.tuna.tsinghua.edu.cn/armbian-releases/_toolchain/ |
1 | export ARCH_HOME=/{PATH}/gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu |
编译U-boot
1 | git clone https://github.com/u-boot/u-boot.git |
make distclean
清理编译配置和编译产物
1 | sudo cp u-boot.bin /mnt/boot/kernel8.img |
u-boot.bin
584.5k 大小
USB串口调试
1 | sudo apt-get install minicom |
在控制台下通过组合键Ctrl+A Z
可以进入minicom 菜单。
组合键的用法是:先按Ctrl+A
组合键,然后松开这两个键,再按Z键。另外还有一些常用的组合键。
S键
:发送文件到目标系统中;W键
:自动卷屏。当显示的内容超过一行之后,自动将后面的内容换行。这个功能在查看内核的启动信息时很有用。C键
:清除屏幕的显示内容;B键
:浏览minicom的历史显示;X键
:退出mInicom,会提示确认退出。