交叉编译linux驱动程序
来源:互联网 发布:西南大学网络与继续教育学院 编辑:程序博客网 时间:2024/05/29 05:55
1,获取源码odroid开发板内核源码(已经打了preempt_rt-3.14.79-rt84实时补丁),并编译内核和驱动模块,并安装驱动模块:
$cd ~/odroid_c2
$git clone https://github.com/moonlinux/linux.git -b odroidc2-3.14.y-rt
$cd ./linux
$make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- Image -j4
$make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- modules -j4
$make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- modules_install INSTALL_MOD_PATH=~/odroid_c2/modules
(编译器下载地址:https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/aarch64-linux-gnu/gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu.tar.xz)
2,编译驱动:
$make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j4
3,源码
驱动源码:
/* simple kernel module:hello.c
** Copyright (C) 2014 Barry Song (baohua@kernel.org)
*
* Licensed under GPLv2 or later.
*/
#include <linux/init.h>
#include <linux/module.h>
static int __init hello_init(void)
{
printk(KERN_INFO "Hello World enter\n");
return 0;
}
module_init(hello_init);
static void __exit hello_exit(void)
{
printk(KERN_INFO "Hello World exit\n");
}
module_exit(hello_exit);
MODULE_AUTHOR("Barry Song <21cnbao@gmail.com>");
MODULE_LICENSE("GPL v2");
MODULE_DESCRIPTION("A simple Hello World Module");
MODULE_ALIAS("a simplest module");
-----------------------
Makefile文件:
#for Amlogic S905-build commond line :#or: make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j4
obj-m := hello.o
KDIR := /home/bruce/odroid_c2/modules/lib/modules/3.14.79-rt84+/build
KBUILD_CFLAGS += -march=armv8-a -mtune=cortex-a53
MAKE := make
build: kernel_modules
kernel_modules:
${MAKE} -C $(KDIR) M=$(PWD) modules
.PHONY: clean
clean:
${MAKE} -C $(KDIR) M=$(PWD) clean
- 交叉编译linux驱动程序
- 编译Linux驱动程序
- Linux kernel交叉编译
- LINUX交叉编译
- 交叉编译linux内核
- Linux 交叉编译
- Linux交叉编译总结
- Linux 交叉编译环境
- linux 模块交叉编译
- Linux交叉编译工具
- linux交叉编译环境
- 交叉编译Linux内核
- Linux中的交叉编译
- linux交叉编译
- ARM Linux 交叉编译
- arm-Linux交叉编译
- 交叉编译 util-linux
- linux交叉编译问题
- 程序员日志(1)
- 有关KITTI数据集
- 关于系统架构的自问自答
- 算法——分治法 练习
- 校园网用户改host登录Google,Wikipedia等的步骤:
- 交叉编译linux驱动程序
- Matlab 穷举法应用 切割问题 (笔记)
- 升级你的APP,让你的旗舰设备支持更高的长高比
- python实现min()函数
- android 获取蓝牙各种连接状态
- 栈的学习(1)
- Android Studio Could not find method android() for arguments 错误解决
- 站在巨人的肩膀上实现安卓增量更新
- vs2008 + WinDDK(7600.16385.1)编译错误的问题