Linux第49步_移植ST公司的linux内核第1步_获取linux源码

已知ST公司的linux源码路径:

/home/zgq/linux/atk-mp1/stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24/sources/arm-ostl-linux-gnueabi/linux-stm32mp-5.4.31-r0

1、创建“my_linux”目录

打开第1个终端

输入“ls回车

输入“cd linux/回车”,切换到“linux”目录

输入“ls回车”,列出“linux”目录下的文件和文件夹

输入“cd atk-mp1/回车”,切换到“atk-mp1”目录

输入“ls回车”,列出“atk-mp1”目录下的文件和文件夹

输入“cd linux/回车”,切换到“linux”目录

输入“ls回车”,列出“linux”目录下的文件和文件夹

输入“mkdir my_linux/回车”,创建my_linux”目录

输入“ls回车”,列出“linux”目录下的文件和文件夹

Linux第49步_移植ST公司的linux内核第1步_获取linux源码_第1张图片

2、获取到linux源码

1)、打开第2个终端

输入“ls回车

输入“cd linux/回车”,切换到“linux”目录

输入“ls回车”,列出“linux”目录下的文件和文件夹

输入“cd atk-mp1/回车”,切换到“atk-mp1”目录

输入“ls回车”,列出“atk-mp1”目录下的文件和文件夹

输入“cd stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24/回车”,切换到“stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24”目录

输入“ls回车”,列出“stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24”目录下的文件和文件夹

输入“cd sources/回车”,切换到“sources”目录

输入“ls回车”,列出“sources”目录下的文件和文件夹

输入“cd arm-ostl-linux-gnueabi/回车”,切换到“arm-ostl-linux-gnueabi”目录

输入“ls回车”,列出“arm-ostl-linux-gnueabi”目录下的文件和文件夹

输入“cd linux-stm32mp-5.4.31-r0/回车”,切换到“linux-stm32mp-5.4.31-r0”目录

输入“ls回车”,列出“linux-stm32mp-5.4.31-r0”目录下的文件和文件夹

Linux第49步_移植ST公司的linux内核第1步_获取linux源码_第2张图片

2)、输入“tar -vxf linux-5.4.31.tar.xz回车”,解压

Linux第49步_移植ST公司的linux内核第1步_获取linux源码_第3张图片

解压后得到“linux-5.4.31”源码文件,见下图:

Linux第49步_移植ST公司的linux内核第1步_获取linux源码_第4张图片

3)、输入“cd linux-5.4.31/回车

输入“ls回车”,列出“linux-5.4.31”目录下的文件和文件夹

Linux第49步_移植ST公司的linux内核第1步_获取linux源码_第5张图片

4)、输入“for p in `ls -1 ../*.patch`; do patch -p1 < $p; done回车”,打补丁

Linux第49步_移植ST公司的linux内核第1步_获取linux源码_第6张图片

5)、输入“ls回车”,列出“linux-5.4.31”目录下的文件和文件夹

输入“make ARCH=arm multi_v7_defconfig "fragment*.config"回车”,生成默认配置文件

Linux第49步_移植ST公司的linux内核第1步_获取linux源码_第7张图片

6)、输入“ls回车”,列出“linux-5.4.31”目录下的文件和文件夹

输入“ls -a回车”,列出“linux-5.4.31”目录下的文件和文件夹

Linux第49步_移植ST公司的linux内核第1步_获取linux源码_第8张图片

发现生成了“.config”文件。

7)、在.confg文件里面,最终编译Linux内核的时候需要读取.confg里面的配置项。此时,我们只是生成了.config,还并没有将fagment config补丁文件打进去。因此,执行下面两条命令打补丁,如下:

输入“for f in `ls -1 ../fragment*.config`; do scripts/kconfig/merge_config.sh -m -r .config $f; done回车

Linux第49步_移植ST公司的linux内核第1步_获取linux源码_第9张图片

8)、输入“yes '' | make ARCH=arm oldconfig回车

Linux第49步_移植ST公司的linux内核第1步_获取linux源码_第10张图片

9)、输入“ls回车”,列出“linux-5.4.31”目录下的文件和文件夹

输入“ls -a回车”,列出“linux-5.4.31”目录下的文件和文件夹

Linux第49步_移植ST公司的linux内核第1步_获取linux源码_第11张图片

至此,Linux源码根目录下的.confg 文件就已经保存了所有的配置项。

10)、输入“cp .config  ./arch/arm/configs/stm32mp1_atk_defconfig回车”,将“.config”文件保存到“./arch/arm/configs/stm32mp1_atk_defconfig

输入“cd  ./arch/arm/configs/回车”,进入“./arch/arm/configs/”目录

输入“ls stm32*回车”,列出“linux-5.4.31”目录下的stm32开头的文件和文件夹

Linux第49步_移植ST公司的linux内核第1步_获取linux源码_第12张图片

11)、12、输入“cd ..回车”,退回到“arm”目录

输入“cd ..回车”,退回到“arch”目录

输入“cd ..回车”,退回到“linux-5.4.31”目录

输入“cd ..回车”,退回到“linux-stm32mp-5.4.31-r0”目录

输入“ls回车”,列出“linux-stm32mp-5.4.31-r0”目录下的文件和文件夹

Linux第49步_移植ST公司的linux内核第1步_获取linux源码_第13张图片

12)、输入“cp linux-5.4.31  /home/zgq/linux/atk-mp1/linux/my_linux/ -rf回车”,将“linux-5.4.31”目录下的所有文件和文件夹拷贝到“/home/zgq/linux/atk-mp1/linux/my_linux/”中

Linux第49步_移植ST公司的linux内核第1步_获取linux源码_第14张图片

13)、进入第1次打开的终端

输入“cd my_linux/回车”,切换到“my_linux”目录

输入“ls回车”,列出“my_linux”目录下的文件和文件夹

输入“cd linux-5.4.31/回车”,切换到“linux-5.4.31”目录

输入“ls回车”,列出“linux-5.4.31”目录下的文件和文件夹

Linux第49步_移植ST公司的linux内核第1步_获取linux源码_第15张图片

至此,我们获取到linux-5.4.31源码

3、使用VSCode创建工程

1)、打开VSCode,点击“文件”,点击“打开文件夹(F)”,见下图:

Linux第49步_移植ST公司的linux内核第1步_获取linux源码_第16张图片

2)、点击“linux”,点击“my_linux”,点击“linux-5.4.31”,见下图:

Linux第49步_移植ST公司的linux内核第1步_获取linux源码_第17张图片

3)、点击“确定”,点击“文件”,点击“将工作区另存为...”

Linux第49步_移植ST公司的linux内核第1步_获取linux源码_第18张图片

4)、在“名称”右边的文本框中输入“linux-5.4.31”,点击“保存”,得到“linux-5.4.31.code-workspace

Linux第49步_移植ST公司的linux内核第1步_获取linux源码_第19张图片

至此,linux源码保存到“my_linux/linux-5.4.31”目录下,获取linux源码的任务完成了。

你可能感兴趣的:(产品研发,linux,服务器,STM32MP157,经验分享,学习)