linux最新内核5.80版本移植详细过程

上一节 uboot移植 uboot
1.首先进入官网下载下载源码 https://mirrors.edge.kernel.org/pub/linux/kernel/
下载最新5.8的版本
在这里插入图片描述

2.安装编译器,解压压缩包 ,配置makefile
这里的编译器下载需要linaro官网下载编译器 如果不会下载可以私信我

gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz//下载最新版本,也可以用其他的

然后配置编译环境

tar xvf linux-5.8.tar.gz

在这里插入图片描述

修改makefile 添加编译器信息
3.使用自带的配置,生成.config

		make exynos_defconfig

接着配置芯片类型 进入

make menuconfig

在这里插入图片描述
这里我们选择4412类型。
然后进入第一级目录,在这里插入图片描述然后进入选中Kernel low-level debugging functions (read help!) 最后选择串口二
接着返回原来目录
在这里插入图片描述
然后选择在这里插入图片描述

最后make
因为要生成uImage
所有用这个指令

 make uImage LOADADDR=0X40007000 -j4

最后arch/arm/boot/目录下就会生成内核映像文件
这里我们是用的讯为的板子 选择板级设备树 itop或者origen都可以 他们俩差不多的
修改板级文件
1.去掉这个启动方式

	/*firmware@203f000 {
		compatible = "samsung,secure-firmware";
		reg = <0x0203F000 0x1000>;
	};*/

将events改成event

&bus_dmc {
	devfreq-events = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>;
	vdd-supply = <&buck1_reg>;
	status = "okay";
};

4.编译设备树文件

make dtbs

生成设备树
最后烧写进去发现卡在
在这里插入图片描述
此时不要慌,打开调试信息
在这里插入图片描述
最后发现还是卡住了 卡在
在这里插入图片描述
进过几天查找定位 找到了问题 修改exynos4412.dfsi.增加这个status = “disabled”; 将其失能

sysmmu_fimc_isp: sysmmu@12260000 {
			compatible = "samsung,exynos-sysmmu";
			reg = <0x12260000 0x1000>;
			interrupt-parent = <&combiner>;
			interrupts = <16 2>;
			power-domains = <&pd_isp>;
			clock-names = "sysmmu";
			clocks = <&isp_clock CLK_ISP_SMMU_ISP>;
			status = "disabled";  
			#iommu-cells = <0>;
		};

		sysmmu_fimc_drc: sysmmu@12270000 {
			compatible = "samsung,exynos-sysmmu";
			reg = <0x12270000 0x1000>;
			interrupt-parent = <&combiner>;
			interrupts = <16 3>;
			power-domains = <&pd_isp>;
			clock-names = "sysmmu";
			clocks = <&isp_clock CLK_ISP_SMMU_DRC>;
			status = "disabled"; 
			#iommu-cells = <0>;
		};

		sysmmu_fimc_fd: sysmmu@122a0000 {
			compatible = "samsung,exynos-sysmmu";
			reg = <0x122A0000 0x1000>;
			interrupt-parent = <&combiner>;
			interrupts = <16 4>;
			power-domains = <&pd_isp>;
			clock-names = "sysmmu";
			clocks = <&isp_clock CLK_ISP_SMMU_FD>;
			status = "disabled"; 
			#iommu-cells = <0>;
		};

		sysmmu_fimc_mcuctl: sysmmu@122b0000 {
			compatible = "samsung,exynos-sysmmu";
			reg = <0x122B0000 0x1000>;
			interrupt-parent = <&combiner>;
			interrupts = <16 5>;
			power-domains = <&pd_isp>;
			clock-names = "sysmmu";
			clocks = <&isp_clock CLK_ISP_SMMU_ISPCX>;
			status = "disabled"; 
			#iommu-cells = <0>;
		};

		sysmmu_fimc_lite0: sysmmu@123b0000 {
			compatible = "samsung,exynos-sysmmu";
			reg = <0x123B0000 0x1000>;
			interrupt-parent = <&combiner>;
			interrupts = <16 0>;
			power-domains = <&pd_isp>;
			clock-names = "sysmmu", "master";
			clocks = <&isp_clock CLK_ISP_SMMU_LITE0>,
				 <&isp_clock CLK_ISP_FIMC_LITE0>;
				 status = "disabled"; 
			#iommu-cells = <0>;
		};

		sysmmu_fimc_lite1: sysmmu@123c0000 {
			compatible = "samsung,exynos-sysmmu";
			reg = <0x123C0000 0x1000>;
			interrupt-parent = <&combiner>;
			interrupts = <16 1>;
			power-domains = <&pd_isp>;
			clock-names = "sysmmu", "master";
			clocks = <&isp_clock CLK_ISP_SMMU_LITE1>,
				 <&isp_clock CLK_ISP_FIMC_LITE1>;
				 status = "disabled"; 
			#iommu-cells = <0>;
		};

最后烧写进去,就可以启动起来了
结果图:
在这里插入图片描述最后还有一些自己既可以完善了 ,上面那个bug与camera有关。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值