linux内核移植(imx6ull-飞思卡尔)
官方开发板linux内核编译
1.修改顶层makefie
2.配置并编译linux内核
- make clean //第一次编译Linux内核之前先清理一下
- make imx_v7_mfg_defconfig //配置Linux 内核
- make -j16 //编译Linux内核
- 结果会得到两个我们需要的文件一个linux编译好的镜像内核zImage和一个设备树imx6ull-14x14-evk.dtb
3.linux内核启动测试
- 修改uboot中的bootargs
console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw - 启动内核
tftp 80800000 zImage
tftp 83000000 imx6ull-14x14-evk.dtb
bootz 80800000 – 83000000
4.根文件系统缺失错误
linux启动以后是需要根文件系统的,根文件系统存在哪里是由uboot的bootargs环境变量指定的,bootargs会传递给linux内核作为命令行参数。
没有挂载根文件系统,会提示内核崩溃
在linux内核中添加自己的开发板
1.添加开发板默认配置文件
先复制一份,在改名字
cd arch/arm/configs
cp imx_v7_mfg_defconfig imx_alientek_emmc_defconfigmake imx_alientek_emmc_defconfig
2.添加开发板对应的设备树文件
- cd arch/arm/boot/dts
cp imx6ull-14x14-evk.dts imx6ull-alientek-emmc.dts - 修 改 文 件 arch/arm/boot/dts/Makefile
找 到 “ dtb-$(CONFIG_SOC_IMX6ULL)”配置项,在此配置项中加入“imx6ull-alientek-emmc.dtb”
3.编译测试
- 我们可以创建一个编译脚本,mx6ull_alientek_emmc.sh
#!/bin/sh make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx_alientek_emmc_defconfigmake ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all -j16
- 执行脚本后再启动
tftp 80800000 zImage
tftp 83000000 imx6ull-alientek-emmc.dtb
bootz 80800000 – 83000000
CPU主频和网络驱动修改
1.cpu主频修改
1、设置I.MX6U-ALPHA开发板工作在528MHz
- 查看cpu信息
cat /proc/cpuinfo - 进入到目录/sys/bus/cpu/devices/cpu0/cpufreq 中,此目录都是cpu频率信息
cpuinfo_cur_freq:当前cpu工作频率,从CPU寄存器读取到的工作频率。
cpuinfo_max_freq:处理器所能运行的最高工作频率(单位: KHz)。
cpuinfo_min_freq :处理器所能运行的最低工作频率(单位: KHz)。
cpuinfo_transition_latency:处理器切换频率所需要的时间(单位:ns)。
scaling_available_frequencies:处理器支持的主频率列表(单位: KHz)。
scaling_available_governors:当前内核中支持的所有governor(调频)类型。
scaling_cur_freq:保存着 cpufreq 模块缓存的当前 CPU 频率,不会对 CPU 硬件寄存器进
行检查。
scaling_driver:该文件保存当前CPU所使用的调频驱动。
scaling_governor:governor(调频)策略,Linux内核一共有5中调频策略,
①、Performance,最高性能,直接用最高频率,不考虑耗电。
②、Interactive,一开始直接用最高频率,然后根据CPU 负载慢慢降低。
③、Powersave,省电模式,通常以最低频率运行,系统性能会受影响,一般不会用这个!
④、Userspace,可以在用户空间手动调节频率。
⑤、Ondemand,定时检查负载,然后根据负载来调节频率。负载低的时候降低 CPU 频率,这样省电,负载高的时候提高CPU 频率,增加性能。
scaling_max_freq:governor(调频)可以调节的最高频率。
cpuinfo_min_freq:governor(调频)可以调节的最低频率。
stats 目录下给出了 CPU 各种运行频率的统计情况,比如 CPU 在各频率下的运行时间以及变频次数。
当前cpu频率
cat cpuinfo_cur_freq查看 stats 目录下的 time_in_state 文件可以看到CPU在各频率下的工作时间
cat /sys/bus/cpu/devices/cpu0/cpufreq/stats/time_in_state调节频率的两种方法
1.一种在系统里面更改模式governor(调频)策略
2.一种在编译之前更改imx_alientek_emmc_defconfig配置文件
2.使能8线EMMC驱动
Linux内核驱动里面 EMMC 默认是4 线模式的,4线模式肯定没有 8 线模式的速度快,所以本节我们将EMMC 的驱动修改为8线模式。修改方法很简单,直接修改设备树即可,
打开文件 imx6ull-alientek-emmc.dts
修改完成以后保存一下 imx6ull-alientek-emmc.dts,然后使用命令“make dtbs”重新编译一下设备树
编译完成以后使用新的设备树重启Linux系统即可。
3.修改网络驱动
uboot有网络驱动的修改,linux内核也需要修改,因为在一定程度上uboot也是一个系统,麻雀虽小,五脏俱全。
- 1、修改LAN8720的复位引脚驱动
- 2、修改LAN8720A的 PHY地址
- 3、修改fec_main.c文件
- 4、配置Linux内核,使能 LAN8720驱动
- 5、修改smsc.c文件
- 6、网络驱动测试
4.保存修改后的图形配置文件menuconfig
注意的事项
1.首先在图形界面,使能了驱动的选项
2.在.config文件中会生成CONFIG_SMSC_PHY=y
3.同样在drivers/net/phy/Makefile文件也会生成代码
===上述的2会编译3的文件(网络驱动文件)
但是我们在执行make clean 清理工程的以后,2的文件就会被删掉,从而配置文件就会被删除,
导致在编译的时候3的驱动文件就不可能会被编译
linux内核移植(imx6ull-飞思卡尔)相关推荐
- 【正点原子Linux连载】第三十七章 Linux内核移植 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0
1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...
- Linux 内核移植
内核移植 半导体厂商会从 Linux内核官网下载某个版本,将其移植到自己的 CPU上,测试成功后就会将其开放给该半导体厂商的 CPU开发者.开发者下载其提供的 Linux内核,然后将其移植到自己的产品 ...
- linux移植会话层层协议,Linux内核移植-南京林业大学毕业设计.DOC
Linux内核移植-南京林业大学毕业设计 南京林业大学 本科毕业设计(论文) 题 目:嵌入式LINUX在ARM9系统中的移植 院 (系) 信息与科学技术学院 专 业 计算机科学与技术 学 生 谢监荣 ...
- 6410 linux内核移植
linux内核移植(6410) linux内核移植一,硬件环境:友善之臂 tiny6410 开发板开发主机Linux系统:fedora 10 编译器:arm-linux-gcc-4.5.1 二,内核实 ...
- linux 内核移植和根文件系统的制作【转载】
原文地址:http://www.cnblogs.com/hnrainll/archive/2011/06/09/2076214.html 1.1 Linux内核基础知识 在动手进行Linux内核移植之 ...
- linux 内核 网卡驱动 移植,Linux内核移植步骤_添加DM9000网卡驱动(设备树).docx
Linux内核移植步骤_添加DM9000网卡驱动(设备树) Linux内核移植步骤2015年05月13日星期三上午 11:05往设备树中添加网卡驱动:1.选平台,指定交叉编译工具链:(1).在Make ...
- linux 内核 网卡驱动 移植,linux内核移植步骤添加dm9000网卡驱动(设备树).docx
linux内核移植步骤添加dm9000网卡驱动(设备树).docx LINUX内核移植步骤2015年05月13日星期三上午1105往设备树中添加网卡驱动1.选平台,指定交叉编译工具链1.在MAKEFI ...
- Linux内核移植漫谈——你不是第一个想移植Linux内核的人
Jack:在读大学的时候我想过移植Linux操作系统. 我:现在呢? Jack:我还是想移植Linux操作系统.你教我移植吧. 我:你知道什么是"Linux内核移植"吗? Jack ...
- 嵌入式linux内核移植
获取linux内核 移植linux内核首先我们需要先获内核源码,可以从linux官网下载:https://www.kernel.org,但是一般做法是 根据cpu类型从它们的半导体厂商网站获取,因为半 ...
- 支持v4l2 linux内核选项 s3c2440,linux内核移植-移植2.6.35.4内核到s3c2440
原标题:linux内核移植-移植2.6.35.4内核到s3c2440 硬件平台:FL2440 主机平台:Ubuntu 11.04 交叉编译器: - -gcc 4.3.2 原创作品,转载请标明出处htt ...
最新文章
- 网页分享插件 share.js 国外常用
- 能迂回,会绕路的开源游戏AI:解决怪物撞墙卡死角
- amesim安装失败_Win10系统安装AMEsim14的方法【图文教程】
- dataframe 众数的方法_数据分析师最常用的数据分析方法。你都掌握了吗?
- 天题系列: Candy
- linux修改mac ethtool,ethtool命令
- hive初识.docx
- mysql启动失败LSB_MySQL数据库服务启动失败
- 《C和指针》读书笔记
- spring mvc学习(54):简单异常处理
- 企业实战07:Oracle数据库_查询语句
- jvm面试2 jvm如何加载java代码? JVM知识重点:内存模型和GC
- Intel 64/x86_64/IA-32/x86处理器 - 通用指令(4) - 比特位设置指令/字节设置指令
- 快速软件开发 学习笔记 之六
- php单独输出每个单词,PHP:在特定短语/单词之后搜索文本文件并输出
- 在OL6.5_64上安装Oracle11gR2_64
- 网络安全实验室 基础题 解析
- 企业文件编号规则方法
- 实现导出excel,pdf功能
- 数学猜想验证步骤_小学数学思维之猜想验证法
热门文章
- Python爬虫工具之Selenium
- FreeLaunchBar-Windows10系统任务栏快捷方式管理者_我是亲民_新浪博客
- CAPL基础篇-----CAPL中库文件的作用
- java kafka消息的发送与接收
- 【线刷大师】一键救砖教程,救砖工具
- SQL临时表|游标|两个日期之间计算时差|临时表条件查询
- HTML+CSS+JS网页设计期末课程大作业 DW个人博客网站制作 web前端开发技术 web课程设计 网页规划与设计
- MT6753芯片资料MT6753处理器资料
- ECU扫盲篇——什么是ECU?
- 从后渗透分析应急响应的那些事儿(二)免杀初识篇