嵌入式ARM全志H3 Linux内核编译及调试方法

739 阅读2分钟

0 依赖安装

安装交叉编译器:
apt-get install gcc-arm-linux-gnueabihf
recipe for target 'scripts/basic/fixdep' failed
apt-get install

Python.h: No such file or directory
sudo apt-get install python3-dev

1 U-boot

1.1 编译U-boot

image.png

1.2 U-boot烧入和启动测试

image.png

  • 插入香橙派,接上debug串口也就是UART0,打开串口软件,我这里用的是Putty,不建议使用杂牌串口软件,那些用于STM32是没问题的,用在ARM-debug上会有乱码的可能。设置波特率为115200,先打开串口再上电,接着会出现。 image.png

2 主线内核编译

2.1 主线Linux内核编译

image.png

mkdir output 
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=/home/mainline/mainline_kernel/output modules_install
在output文件夹下得到一系列模块文件

2.2 内核处理和烧入

  • 0x46000000会占用前面0x6000000的空间,浪费了我们宝贵的且有限的内存空间,所以后期我们需要自己根据实际情况进行修改,现阶段只需测试启动内核。 image.png

2.3 分区设置

image.png image.png

2.4 U-boot环境配置

  • 至此U-boot设置完成,U-boot的主要作用是将重要信息传给内核并且启动,现在U-boot能正常引导内核,我们的重点应放在文件系统和内核配置上,我们下一步是建立根文件系统和配置内核。
setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait panic=10
setenv bootcmd 'load mmc 0:1 0x43000000 sun8i-h3-orangepi-pc-plus.dtb; load mmc 0:1 0x42000000 uImage; bootm 0x42000000 - 0x43000000'
saveenv

2.5 Debian根文件系统的建立

  • 在x86 Linux主机上使用qemu模拟器设置下载好的debian根系统
  • 添加用户,修改root密码
  • 配置/etc/fstab 完成挂载的配置
  • 修改 /etc/network/interfaces 完成对ETH0网卡的设置
  • 拷贝之前编译好的内核外部模块到 /lib/modules/下
  • 拷贝做好的根文件系统到TF卡的分区2

3 参考资料