[tiny4412][NFS + ko]第二篇:led driver编译成ko, android通过nfs快速加载卸载该ko

本文主要是介绍[tiny4412][NFS + ko]第二篇:led driver编译成ko, android通过nfs快速加载卸载该ko,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

# 问题

修改了led drvier, 如何快速将修改在开发板上生效?

a. 编译出zImage, 然后烧写到开发板

费时费力,劳民伤财。

b. 将driver编译成ko文件,然后使得Android 内核支持NFS 挂载,通过NFS 快速获取到新的ko.

good idea!

省时省力,前面种树,后面乘凉。

此乃一劳永逸之计也。

开搞。

# 使得Android内核支持NFS

a. 生成.config

linux-3.0.86$ cp -f tiny4412_android_defconfig .config

b.使用make menuconfig 来增加NFS

linux-3.0.86$ make menuconfig

好了,内核的图形化配置界面出来了,所见即所得,没有任何美颜效果,内核配置也变成了一道如此靓丽的风景线。

注意如下 标 * 的选项,那就是我们的choice

 * 表示编译进内核,与内核有情人终成眷属。

M 表示编译成模块,与内核若即若离,秋波明送。

好了,保存我们的修改:

c. 执行make -j6

-j 6的意思是我的电脑有6个cpu, 让6个cpu同时给我打工,当boss就是这么任性。

这是权力的魅力。

编译出zImage后,用厂家提供的工具,烧写到EMMC。

继续,走起!

# driver编译为ko

对于linux 驱动开发人员,这就是 a piece of cake.

book@book-virtual-machine:/work/github/androidapp/DRV_0001_LEDS$ cat Makefile
KERN_DIR = /work/linux-3.0.86

all:
        make -C $(KERN_DIR) M=`pwd` modules

clean:
        make -C $(KERN_DIR) M=`pwd` modules clean
        rm -rf modules.order

obj-m   += leds_4412.o
book@book-virtual-machine:/work/github/androidapp/DRV_0001_LEDS$
 

KERN_DIR // 注意改成自己实际的内核路径,记住,适合自己的才是最好的,强扭的瓜不甜。

修改好driver后,直接make, 一眨眼的功夫ko文件就生成了,可真是一眼万年。


book@book-virtual-machine:/work/github/androidapp/DRV_0001_LEDS$ make
make -C /work/linux-3.0.86 M=`pwd` modules
make[1]: Entering directory `/work/linux-3.0.86'
  CC [M]  /work/github/androidapp/DRV_0001_LEDS/leds_4412.o
/work/github/androidapp/DRV_0001_LEDS/leds_4412.c: In function 'ledCtrl':
/work/github/androidapp/DRV_0001_LEDS/leds_4412.c:52:2: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int'
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /work/github/androidapp/DRV_0001_LEDS/leds_4412.mod.o
  LD [M]  /work/github/androidapp/DRV_0001_LEDS/leds_4412.ko
make[1]: Leaving directory `/work/linux-3.0.86'
book@book-virtual-machine:/work/github/androidapp/DRV_0001_LEDS$
 

# 当Android内核NFS 遇到ko, 金风玉露一相逢,便胜却人间无数。


shell@tiny4412:/ # history
3       busybox mount -t nfs -o nolock 192.168.1.110:/work /data/mymnt/
4       insmod /data/mymnt/github/androidapp/DRV_0001_LEDS/leds_4412.ko
shell@tiny4412:/ #
 

命令3, 开发板的Android内核的,NFS连接到虚拟机92.168.1.110:/work

命令4, 直接挂载虚拟机上编译出的ko

shell@tiny4412:/ # cat /proc/modules | grep led
leds_4412 1587 0 - Live 0x00000000
shell@tiny4412:/ #
 

good!

ko已经被挂载到开发板的内核上了!

这就是中国速度!深圳速度!

NFS + ko : 完美!

这篇关于[tiny4412][NFS + ko]第二篇:led driver编译成ko, android通过nfs快速加载卸载该ko的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/273537

相关文章

Mac系统下卸载JAVA和JDK的步骤

《Mac系统下卸载JAVA和JDK的步骤》JDK是Java语言的软件开发工具包,它提供了开发和运行Java应用程序所需的工具、库和资源,:本文主要介绍Mac系统下卸载JAVA和JDK的相关资料,需... 目录1. 卸载系统自带的 Java 版本检查当前 Java 版本通过命令卸载系统 Java2. 卸载自定

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

springboot加载不到nacos配置中心的配置问题处理

《springboot加载不到nacos配置中心的配置问题处理》:本文主要介绍springboot加载不到nacos配置中心的配置问题处理,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录springboot加载不到nacos配置中心的配置两种可能Spring Boot 版本Nacos

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

使用Python获取JS加载的数据的多种实现方法

《使用Python获取JS加载的数据的多种实现方法》在当今的互联网时代,网页数据的动态加载已经成为一种常见的技术手段,许多现代网站通过JavaScript(JS)动态加载内容,这使得传统的静态网页爬取... 目录引言一、动态 网页与js加载数据的原理二、python爬取JS加载数据的方法(一)分析网络请求1

MybatisX快速生成增删改查的方法示例

《MybatisX快速生成增删改查的方法示例》MybatisX是基于IDEA的MyBatis/MyBatis-Plus开发插件,本文主要介绍了MybatisX快速生成增删改查的方法示例,文中通过示例代... 目录1 安装2 基本功能2.1 XML跳转2.2 代码生成2.2.1 生成.xml中的sql语句头2

IDEA下"File is read-only"可能原因分析及"找不到或无法加载主类"的问题

《IDEA下Fileisread-only可能原因分析及找不到或无法加载主类的问题》:本文主要介绍IDEA下Fileisread-only可能原因分析及找不到或无法加载主类的问题,具有很好的参... 目录1.File is read-only”可能原因2.“找不到或无法加载主类”问题的解决总结1.File

8种快速易用的Python Matplotlib数据可视化方法汇总(附源码)

《8种快速易用的PythonMatplotlib数据可视化方法汇总(附源码)》你是否曾经面对一堆复杂的数据,却不知道如何让它们变得直观易懂?别慌,Python的Matplotlib库是你数据可视化的... 目录引言1. 折线图(Line Plot)——趋势分析2. 柱状图(Bar Chart)——对比分析3

一文教你Java如何快速构建项目骨架

《一文教你Java如何快速构建项目骨架》在Java项目开发过程中,构建项目骨架是一项繁琐但又基础重要的工作,Java领域有许多代码生成工具可以帮助我们快速完成这一任务,下面就跟随小编一起来了解下... 目录一、代码生成工具概述常用 Java 代码生成工具简介代码生成工具的优势二、使用 MyBATis Gen