linux-4.4.tar.gz
2、配置 1)配置开发板类型及指定交叉编译链 diff --git a/arch/arm/boot/dts/exynos4412-tiny4412.dts b/arch/arm/boot/dts/exynoindex 4840bbd..048ae67 100644--- a/arch/arm/boot/dts/exynos4412-tiny4412.dts+++ b/arch/arm/boot/dts/exynos4412-tiny4412.dts@@ -21,6 +21,7 @@ ESCODindex 70dea02..42b0d63 100644--- a/Makefile+++ b/Makefile@@ -248,8 +248,11 @@ SUbarCH := $(shell uname -m | sed -e s/i.86/x86/ -e s/x86_6 # "make" in the configured kernel build directory always uses that. # Default value for CROSS_COMPILE is not to prefix executables # Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile-ARCH ?= $(SUbarCH)-CROSS_COMPILE ?= $(CONfig_CROSS_COMPILE:"%"=%)+#ARCH ?= $(SUbarCH)+#CROSS_COMPILE ?= $(CONfig_CROSS_COMPILE:"%"=%)++ARCH ?= arm+CROSS_COMPILE ?= /usr/local/ARM-toolchian/gcc-linaro-6.1.1-2016.08-i686_arm-linux-gnueabi/bin/arm-linux-gnueabi- # Architecture as present in compile.h UTS_MACHINE := $(ARCH)
2)修改设备树
diff --git a/arch/arm/boot/dts/exynos4412-tiny4412.dts b/arch/arm/boot/dts/exynoindex 4840bbd..048ae67 100644--- a/arch/arm/boot/dts/exynos4412-tiny4412.dts+++ b/arch/arm/boot/dts/exynos4412-tiny4412.dts@@ -21,6 +21,7 @@ chosen { stdout-path = &serial_0;+ bootargs="root=/dev/ram0 rw rootfstype=ext4 console=ttySAC0,115200 init=/linuxrc earlyprintk";
}; memory {@@ -78,7 +79,8 @@ bus-wIDth = <4>; pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>; pinctrl-names = "default";- status = "okay";+ /* status = "okay";*/+ status = "Disabled"; }; &serial_0 {3,配置内核支持Ramdisk
make menuconfig
file systems --->;
<*> Second extended fs support
Device Drivers
SCSI device support --->;
<*> SCSI disk support
Block devices --->;
<*>RAM block device support
(16)Default number of RAM disks
(8192) Default RAM disk size (kbytes) (修改为8M)
General setup --->;
[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
这个exynos的默认配置就已经支持了。
4.配置内核支持Tmpfs$ make menuconfig
file systems --->;
Pseudo filesystems --->
[*] Virtual memory file system support (former shm fs)
[*] Tmpfs POSIX Access Control Lists5.编译内核
这个exynos的默认配置也已经支持了。
[email protected]:/home/arm/linux-4.4# cat build.sh #!/bin/bashecho "---------------"echo "rm ./ uImage and dtb"rm uImage exynos4412-tiny4412.dtbecho "make"make uImage LOADADDR=0x40007000 -j4echo "make dtb"make dtbsecho "backup config"cp .config tiny4412_defconfigecho "copy uImage"cp arch/arm/boot/uImage ./echo "copy dtb"cp arch/arm/boot/dts/exynos4412-tiny4412.dtb ./echo "over"
编写脚本。执行,烧写
即可初步启动kernel
---------------------------------------------------------------------------------------------------------------------------------------------------------------
问题:启动后如果显示文件太多会出现
dma-pl330 12680000.pdma: reset Channel-1 CS-20000f FTC-20000
[ 1573.447654] dma-pl330 12680000.pdma: reset Channel-1 CS-20000f FTC-20000
参考:https://blog.csdn.net/sinat_20006769/article/details/79060779
说是DMA驱动的问题,按照介绍取消dma-pl330后,kernel无法启动
参考:https://blog.csdn.net/hyyoxhk/article/details/83305367
修改arch/arm/boot/dts/exynos4412-tiny4412.dts中,serial_0的dmas导致卡死,serial_2的dmas无效果
参考:https://blog.csdn.net/qq_25370227/article/details/84891632
是uboot中TrustZone造成,目前未尝试
--------------------------------------------------------------------------------------------------------------------------------------------------------------
整体参考:
https://www.cnblogs.com/pengdonglin137/p/5143516.HTML
https://blog.csdn.net/sinat_20006769/column/info/19139
总结以上是内存溢出为你收集整理的linux-kernel-4.4 移植 (1)启动全部内容,希望文章能够帮你解决linux-kernel-4.4 移植 (1)启动所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)