本帖最后由 翠花儿 于 2021-7-31 12:04 编辑
迅为的 4412 开发板已经得到官方(www.kernel.org)的默认支持,但这并不意味这下载完以后可以直接使用,仍需要一些基本的配置和编译,以下给出步骤供大家参考: 1 从官网下载linux 内核从 Linux 官网下载内核,因为在 4.10 以后的内核版本中 Linux 官方增加了对迅为 itop 开发板的支持。所以我们要下载这个版本之后的。 Linux 官方网站是“https://www.kernel.org/ 如下图所示: 我们进入 linux 官网,为了和之前的教程统一,这里我们选择 4.14.2 的内核版本。下载完成后,我们放在 ubuntu 里面备用,如下图所示: 2 安装编译器编译器版本:gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12.tar.gz ubuntu 版本:ubuntu12.04我们把编译器在/usr/local/arm/下解压,得到 gcc-4.6.2-glibc-2.13-linaro- multilib-2011.12 的目录。如下图所示: 接着我们修改环境变量,在.bashrc 文件底行添加环境变量,注意这里,大家要屏蔽掉其他的编译器,如下图所示: 更新环境变量,我们使用命令 source .bashrc 更新环境变量,然后重启 ubuntu,如下图所示: 3 配置内核 1)在 ubuntu 上解压我们下载的 linux 源码,然后进入到解压的文件,打开顶层Makefile,如下图所示: 2)在顶层 Makefile 里面找到 251 和 252 行,修改平台和编译器,修改完成后, 如下图所示: 3)生成.config,我们直接使用官方的默认配置即可,直接输入命令 make exynos_defconfig,如下图所示。 4)配置平台和调试串口。在内核源码下输入命令 make menuconfig 打开menuconfig,如下图所示: 5)选择芯片类型,我们进入下面的路径, System Type ---> Samsung EXYNOS ---> 把这个路径的选项配置成下图所示: 6)配置调试串口,我们返回到 menuconfig 第一级目录,从第一级目录进入到以下路径: Kernel hacking ---> 选中 Kernel low-level debugging functions (read help!), 如下图所示: 然后选择 Kernel low-level debugging port (Use Samsung S3C UART 0 for low- level debug) 选项,把串口设置成串口 2,如下图所示: 返回到 menuconfig 第一级目录,从第一级目录进入到以下路径: Device Drivers ---> Character devices ---> Serial drivers---> 选中 Samsung SoC serial debug (NEW) 和 Support for console on SamsungSoC serial port 如下图所示: 返回到 menuconfig 第一级目录,从第一级目录进入到以下路径: Device Drivers ---> 去掉 DMA 支持,如下图所示: 设置完成后,保存并退出。 4 编译内核我们输入以下命令: make uImage ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- LOADADDR=0x40007000 -j4 其中 LOADADDR=0X40007000 表示指定内核的加载地址,如下图所示: file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml4924\wps15.jpg 编译完成如下图所示: 5 修改dts文件第一处:注释我们进到内核 arch/arm/boot/dts/下,里面默认有 itop 的设备树文件,如下图所示: 我们打开 exynos4412-itop-scp-core.dtsi 文件,修改设备树文件。 注释掉掉 29 到 32 行的代码,如下图所示 第二处:因为没有 events 这个属性,所以我们要把 71 行的 events 修改成 event,如下图所示: 第三处:配置核心板电源芯片,这部分大家可以对照下 scp 的核心板原理图,把下面的代码修改成如下图所示: 第四处,我们打开exynos4.dtsi 这个文件,如下图所示, 然后找到第 473 行代码,注释掉pdma0 18,如下图所示: 编译设备树,我们输入以下命令,如下图所示: make dtbs ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- 6 烧写镜像我们把编译生成的uImage 和dtb 文件拷贝fastboot 工具,uboot 使用我们移植好的uboot_2015.04 即可,具体烧写方法大家可以看设备树视频烧写章节。 后记:这章我们给出了从官网下载原生内核,然后通过各种配置运行到开发板的步骤。由于开发板上的接口非常多,接下来大家如果有兴趣,可以对各个不同的外设移植驱动了,大家可以尝试从移植和研究当中学习Linux 的开发技巧。
|