新闻  |   论坛  |   博客  |   在线研讨会
迅为iTOP-STM32MP157开发板编译Linux内核
魔法城堡 | 2022-03-10 10:40:20    阅读:109   发布文章

1 内核源码的编译
kernel 的源码路径为“iTOP-STM32MP157 开发板光盘资料\04_TF-A、uboot 和内核源码\kernel”,如下图所示(日期可能会有变化,使用最新日期即可):

kernel 源码的编译器和编译 uboot 与 TF-A 的编译器相同,都为 gcc-arm-10.3-2021.07-x86_64-arm-nonelinux-gnueabihf。
将“ ”源码拷贝源码到“/home/topeet”目录下,使用如下命令
tar -vxf linux-5.4.31_20210817.tar.gz
解压源码压缩包,得到“linux-5.4.31”文件夹,使用如下命令
cd linux-5.4.31/
进入该文件夹,如下图所示。

使用命令”./create.sh”来进行编译,编译过程如下图示所示:

编译完成如下图所示:

如下图所示,在“output”目录下,编译生成了“uImage”kernel 镜像。

如下图所示,在“output/dts/”目录下生成设备树文件“****.dtb”。

如上图所示,这七个设备树文件是我们所需要的,分别对应七个不同的屏幕。编译完成以后,我们需要制作对应的镜像,这样才能使用 STM32CubeProgrammer 工具烧写进开发板。
而我们通过烧写软件烧写的镜像为 bootfs.ext4,存放路径为“output”目录下,如下图所示

bootfs.ext4 镜像之中存放的就是我们 uImage 和 dtb 设备树文件,大家可以自行挂载来进行查看。
至此我们的内核设备树镜就制作完成了,然后只需要将我们制作的 bootfs.ext4 替代 image 烧写目录下的 bootfs.ext4 文件然后进行烧写即可。
2 驱动模块的使用
由于一些驱动的依赖特性,一些驱动并不能直接编译进内核,或者编译进内核之后并不能挂载成功。所以就需要我们进行手动挂载,以下为不能是在内核中不能成功挂载的模块:

我们都存放在了“output/ko”路径下,每个模块的原始路径如下图所示:

迅为iTOP-STM32MP157开发板:

核心板参数
尺寸:        46mm*58mm
CPU:        STM32MP157A
主频:        650M
内存::        1G
存储        8G
工作电压:        直流5V供电
系统支持:        流畅运行最小Linux系统、Buildroot、QT5.12.10、ubuntu_base_20.04、Debian系统
引角扩展:        引出脚多达240个,满足用户各类扩展需求
底板参数
尺寸:        190mm*125mm
POWER:        电直流电源输入接口,12V/3A+电源输入
SWITCH:        电源开关
DIP:        SWITCH 4位拨码开关
ADC电位器:        1路
SDIO接口:        1个
JTAG:        1个
CAMERA接口:        1个
CAN接口:        1路CAN
User Key:        5个功能按键
MIC:        支持MIC输入
PHONE:        支持耳机输出
串口:        3路
USB Host:        2路 USB Host,支持USB2.0协议
TF Card:        1个标准TF卡接口
网口:        1路千兆以太网口
LED:        3个(1个电源指示灯,2个可控LED)
HDMI接口:        1路
LCD接口:        1路LVDS9(HDMI口输出LVDS信号),1路RGB
USB OTG:        2路 USB OTG2.0
RTC:        1个
RS485接口:        1路
WIFI/蓝牙芯片:        1路
4G模组选配:        1个
六轴传感器:        1个
蜂鸣器:        1个
红外传感器:        1个
光环境传感器:        1个
温湿度传感器:        1个
SPDIF接口:        SPDIF输入、SPDIF输出

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客