基于imx6ull的linux内核版本的替换,同时利用别人设备树去配置基础(基于正点原子板子imx6ull)

目录

前言

找到对应的内核源码

modprobe g_zero的启用

无法装载模块


前言

我一开始不想换他内核的,可是我有次准备用modprobe g_zero(内核自带的一个驱动)时候,他一直给我说没有,然后我去网上找,然后网上说配置make menuconfig,然后去找对应的模块,将其设置为M(后面发现设置成y也一样的,版本问题),然后我配置好了,可是在.config(内核文件下的)中,这个配置都没有,我直接推倒重连。

找到对应的内核源码

 我一开始去linux官网去下的,后面才发现是要求nxp官网上下载(麻了),他那个官网,不知道为啥,我一直找不到源码在哪里,后面机缘巧合才发现可以去githup中去下载。Freescale/linux-fslc: Linux kernel source tree (github.com)

点击这个区选择对应的版本

点进去后你会发现,咋和linux内核源码不一样呢,别人都是4.9.88之类的,你的咋是4.1指令的,这就要说一下了,这里看不了正真的内核版本,你要去里面看Makefile中内核版本,通是可以通过更新时间,确定你所需要的内核版本,当然,这里面有可能没有你想要的版本,那你就找个最近的版本就行。

查看具体版本,可以看到这个版本是4.19.164

我们再回到最初的界面,然后下载下来,然后传送到你的ubuntu中,然后解压

后面的操作就是按照正点原子的内核移植来的,i.MX6ULL Linux阿尔法开发板 — 正点原子资料下载中心 1.0.0 文档

这个其实只要去下载他的文档教程,然后打开驱动开发指南,因为后面我要用系统自带的g_zero来测试是不是移植成功了,然后配置的工具链,uboot,还用根文件都是不需要动的。基本操作指令差不多,当然等下改下Makefile,就按照正点原子的工具链你肯定已经配置好了的,先make clean ,然后需要配置配置文件,这个基础配置你可以直接把被热的复制到arch/arm/configs/中去,然后直接make 别人的_defconfig,这里其实就是配置make menuconfig中的东西,当然你按照正点原子的也是可以的make imx_v7_mfg_defconfig,同时把它改名然后按照正点原子的手册去改

我因为要开g_zero就把别人的拿过来了,都一样的,然后make all -j4或者j12都行,然后按照正点原子的操作把imx6ull重命名一下,然后去设备树种添加,然后添加网络配置之类的都是一样的操作,最后把zImage和.dtb复制到tftpboot中去就行

modprobe g_zero的启用

把别人的配置文件拿过来的好处就是不用去make menuconfig中去配置g_zero,当然你make 修改后的imx_ imx_v7_mfg_defconfig,然后再去make menuconfig中配置一样的

配置了make menuconfig后去看下.config中CONFIG_USB_GADGET和CONFIG_USB_ZERO 或类似条目有没有配置为是,同时你需要将Makefile中改回最初的转态

然后去vi ~/.bashrc到其最后面加上

export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin

记得路径修改,然后source ~/.bashrc保存配置,将其设置为全局配置

然后再make all -j4或者-j12,再将zImage和.dtb复制过去,当然这样还不行还不能运行modprobe g_zero,我们需要将模块复制到根文件系统下去

按照正点原子的根文件来,去你的ubuntu中的编译好的内核源码,make ARCH=arm INSTALL_MOD_PATH=~ modules_install

这里会生成一个lib,会存放再你主目录下,然后cd ~ 前往你的主目录,然后将lib中的文件复制到你的开发板目录中就行了,正点原子的是sudo cp lib/* ~/nfs_rootfs/rootfs/lib/* -rf,然后打开你的开发板就可以运行modprobe g_zero了,注意这个是需要将usb_otg接到ubuntu运行才会有效果。

无法装载模块

使用modprobe xxx.ko的时候, 显示module 'xxx.ko' not found,使用modprobe xxx的时候显示 disagrees about version of symbol module_layout,这是因为你没有修改 

需要把Makefile和.vscode中c_cpp_properties.json的路径修改成你新的内核源码路径,然后重新make,当然,好像转载得使用modprobe xxx,需要去掉ko,你也可以两个都试一下

  • 12
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值