一.编译和重载内核(内核版本4.19.9)
1)下载 STM32MP15-Ecosystem-v1.1.0 开发包源码到下面的目录:
$HOME/STM32MPU_workspace/STM32MP15-Ecosystem-v1.1.0/Developer-Package
2)进入目录解压
PC $> cd $HOME/STM32MPU_workspace/STM32MP15-Ecosystem-v1.1.0/Developer-Package
PC $> tar xvf en.SOURCES-kernel-stm32mp1-openstlinux-4.19-thud-mp1-19-10-09.tar.xz
会看到stm32mp1-openstlinux-4.19-thud-mp1-19-02-20文件夹
进入到此文件夹
For ecosystem release v1.1.0
PC $> cd stm32mp1-openstlinux-4.19-thud-mp1-19-02-20/sources/arm-openstlinux_weston-linux-gnueabi/linux-stm32mp-4.19-r0
PC $> tar xvf linux-4.19.9.tar.xz
3)申请ST官方补丁Apply the ST patches,先进入内核目录
PC $> cd linux-4.19.49/ /* For ecosystem release v1.1.0 */
4)打补丁
5)打补丁PC $> for p in `ls -1 ../*.patch`; do patch -p1 < $p; done
6)配置
a.PC $> make multi_v7_defconfig fragment*.config
问题1:出现/bin/sh /.bison,not found .
sudo apt-get install bison
问题2:出现/bin/sh flex,not found
sudo apt-get install flex
问题3:Can't find default configuration "arch/x86/configs/multi_v7_defconfig"!
修改源码内核文件arch = arm,即修改编译器得配置成功
b.先切换管理员模式,然后执行下面脚本:
PC $> for f in `ls -1 ../fragment*.config`; do scripts/kconfig/merge_config.sh -m -r .config $f; done
c.
PC $> yes '' | make oldconfig
7)编译内核
a)执行环境脚本
b)执行source /home/my-linux/STM32MPU_workspace/STM32MP15-Ecosystem-v1.1.0/Developer-Package/SDK/environment-setup-cortexa7t2hf-neon-vfpv4-openstlinux_weston-linux-gnueabi编译器安装脚本,因为当切换用户或者打开终端重启linux都必须要先执行安装脚本,然后再进行编译
c)执行make uImage vmlinux dtbs LOADADDR=0xC2000040进行内核编译