linux驱动开发环境搭建

这篇具有很好参考价值的文章主要介绍了linux驱动开发环境搭建。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用的是parallel 创建的ubuntu 16.04 ubuntu20.04虚拟机

源码准备

# 先查看本机版本
$ uname -r
5.15.0-86-generic

# 搜索相关源码
$ sudo apt-cache search linux-source
[sudo] password for showme:
linux-source - Linux kernel source with Ubuntu patches
linux-source-5.4.0 - Linux kernel source for version 5.4.0 with Ubuntu patches
linux-gkeop-source-5.4.0 - Linux kernel source for version 5.4.0 with Ubuntu patches
linux-hwe-5.11-source-5.11.0 - Linux kernel source for version 5.11.0 with Ubuntu patches
linux-hwe-5.13-source-5.13.0 - Linux kernel source for version 5.13.0 with Ubuntu patches
linux-hwe-5.15-source-5.15.0 - Linux kernel source for version 5.15.0 with Ubuntu patches
linux-hwe-5.8-source-5.8.0 - Linux kernel source for version 5.8.0 with Ubuntu patches
linux-intel-5.13-source-5.13.0 - Linux kernel source for version 5.13.0 with Ubuntu patches

# 下载源码,源码会下载到/usr/src目录下
$ sudo apt install linux-source-5.4.0

showme@showme:/usr/src/linux-source-5.4.0$ ls -l
total 131816
drwxr-xr-x 15 root root      4096 1031 03:28 debian
drwxr-xr-x  9 root root      4096 1031 03:28 debian.master
-rw-r--r--  1 root root 134966876 103 02:13 linux-source-5.4.0.tar.bz2

# 复制linux-source-5.4.0.tar.bz2,编译两份,一份用于内核安装,一份用于clion驱动开发代码提示
# 用于内核安装的,会编译很多驱动,用clion打开会很卡,需要大概16G内存,才能不卡
# 用于开发环境的,编译会很快,用clion打开也会很快,代码提示时,也不会卡

安装编译依赖

# 安装所需要依赖的库
sudo apt-get install libncurses5-dev gcc make bc g++ vim git bc flex bison libssl-dev dwarves libelf-dev automake autoconf cvs subversion ruby
# 安装 bear 用于clion打开内核源码
sudo apt install bear
# 下载kernel-grok用于clion打开内核源码
git clone https://github.com/habemus-papadum/kernel-grok

编译内核

在编译的时候把虚拟机分配8核,8G内存,开发的时候2核,4G内存就够了

编译用于clion打开的内核

# 解压linux-source-5.4.0.tar.bz2源码,进入到linux-source-5.4.0目录
# 配置
make menuconfig

# 修改配置文件 .config
# 搜索debian关键字,如果存在如下内容
CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem"
CONFIG_SYSTEM_REVOCATION_KEYS="debian/canonical-revoked-certs.pem"
# 将其清空
CONFIG_SYSTEM_TRUSTED_KEYS=""
CONFIG_SYSTEM_REVOCATION_KEYS=""

# 使用bear编译内核,只生成bzImage和vmlinux编译很快
bear make bzImage vmlinux -j16

# 生成内核源码的 CMakeLists.txt,需要进入内核源码目录下,执行
~/kernel-grok/generate_cmake

# clion打开 CMakeLists.txt ,并添加如下内容
cmake_minimum_required(VERSION 2.8.8)
project(kernel)

set(SYSROOT sysroot)
SET(CMAKE_C_COMPILER "gcc")
set(CMAKE_C_STANDARD 90)
set(CMAKE_C_FLAGS  ${CMAKE_C_FLAGS} " --sysroot=${SYSROOT}" )

include_directories("include")
include_directories("include/uapi")
include_directories("include/generated")
include_directories("arch/x86/include")
include_directories("arch/x86/include/uapi")
include_directories("arch/x86/include/generated")
include_directories("arch/x86/include/generated/uapi")

add_definitions(-D__KERNEL__)

编译用于安装的内核

# 解压linux-source-5.4.0.tar.bz2源码,进入到linux-source-5.4.0目录
sudo make oldconfig #按原有kernel配置配置kernel
sudo make #编译内核,时间较长,可能会长达1小时及以上,如5.4.0用时约3-5个小时
sudo make modules_install #安装内核模块
sudo make install # 安装内核

linux驱动开发环境搭建,pwn_cve_kernel,linux,驱动开发

参考

https://blog.csdn.net/inf4inf/article/details/110272531
https://blog.csdn.net/yaoxinJJJ/article/details/115433638
https://zhuanlan.zhihu.com/p/409007775?utm_id=0文章来源地址https://www.toymoban.com/news/detail-741615.html

到了这里,关于linux驱动开发环境搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • pwn调试环境搭建

    不同的pwn题有不同的环境要求,堆题要求更多,patchelf可以满足一定场景的实现,但终究不如在实际对应的环境中搭建。如何快速搭建一个高效节省资源的环境也是一个不小的问题。 高效节省资源:一个主要调试环境+多个运行环境 =主机+docker容器 gdb+pwntools+pwndbg等等,网上这

    2024年02月01日
    浏览(43)
  • 2022CTF培训(九)MIPS PWN环境搭建&MIPS PWN入门

    附件下载链接 在 ARM PWN 环境搭建 的基础上,首先安装具备MIPS交叉编译gcc与MIPS程序动态链接库: 然后就可以正常运行 将 mipsel 添加到 qqemu-binfmt,这样 linux 可以根据文件头找相应的程序运行: 栈溢出 分析汇编可知,返回值存储在 $sp + 0x3C 处,而 buf 起始位置在 $sp + 0x18 处,

    2024年02月11日
    浏览(48)
  • kernel pwn入门

    Linux Kernel 介绍 Linux 内核是 Linux操作系统的核心组件,它提供了操作系统的基本功能和服务。它是一个开源软件,由Linus Torvalds 在 1991 年开始开发,并得到了全球广泛的贡献和支持。 Linux内核的主要功能包括进程管理、内存管理、文件系统、网络通信、设备驱动程序等。它负

    2024年02月12日
    浏览(44)
  • Kernel pwn 入门 (3)

    这是一种绕过SMAP/SMEP和PXN防护的攻击方式。利用内核空间的direct mapping area(起始位置为0xFFF8880000000000)。Linux对内存的访问采用的是多级页表的方式,将某段物理内存映射到程序的虚拟内存空间中的某段地址。而在Linux内核空间中,还存在着direct mapping area这块区域,对于物理

    2024年02月06日
    浏览(45)
  • 树莓派驱动开发--搭建环境篇(保姆级)

            1.1、 虚拟机环境搭建 下载虚拟机vm,然后建立一个虚拟机,我这边用的ubantu版本是16.04,正点原子的,很稳定这个版本,推荐! 链接:https://pan.baidu.com/s/1r6NEANYDDbs7bg_lmPMeXA?pwd=hsw1  提取码:hsw1         1.2、 ssh、nfs、ftp搭建 使用命令搭建ssh 按步骤使用命令搭建nfs 

    2024年04月29日
    浏览(43)
  • (三)(Driver)驱动开发之双机调试环境搭建及内核驱动的运行

    请参考另一篇:https://blog.csdn.net/qq_41273999/article/details/133341733 请参考另一篇:https://blog.csdn.net/qq_41273999/article/details/133376458 准备好安装包,勾选将VMware Workstation控制台工具添加到系统PATH。 输入秘钥:ZF71R-DMX85-08DQY-8YMNC-PPHV8,如果失效,勾选试用30天。 下载完成后, 以管理员身份

    2024年02月06日
    浏览(38)
  • 从零开始搭建Ubuntu CTF-pwn环境

    最近因为学校考试所以没怎么看pwn,但是中间虚拟机崩掉过,问题还挺严重。前几天发现能正常打开了,但是一用gdb就会出现下面让人窒息的提醒: 怎么调都不知道是怎么回事,很奇怪的是只有在开gdb的时候才会弹出这个错误,其他都是正常的。问过师傅时候无奈只能放弃这

    2024年01月16日
    浏览(93)
  • windows驱动开发-vs2019-vs2022 WDK开发环境搭建

    QQ群: 852283276 微信: arm80x86 微信公众号: 青儿创客基地 B站:主页 https://space.bilibili.com/208826118 好久不开发Windows驱动,现在又变天了,微软的工具更新的非常快,Visual Studio和WDK都发了新版本,推荐安装新版本,但如果非想安装老版本,也可以。Visual Studio 2022不支持Windows 1

    2024年02月04日
    浏览(76)
  • Kernel-Pwn-FGKASLR保护绕过

    FGASLR(Function Granular KASLR)是KASLR的加强版,增加了更细粒度的地址随机化。因此在开启了FGASLR的内核中,即使泄露了内核的程序基地址也不能调用任意的内核函数。 在fgkaslr.c文件中存在着随机化的明细。 通过上述代码分析可知 符号节区不进行细粒度的地址随机化 第一个

    2024年02月13日
    浏览(39)
  • 【STM32开发环境搭建】 - st-link驱动安装和串口驱动安装

    下载地址:https://download.csdn.net/download/weixin_39035140/86248921 包含软件如下: 1、下载线我们使用了st-link,为了能够下载程序到开发板,需要先安装st-link驱动。打开设备管理器,可以通过热插拔法确认是哪一个设备(STM32 STLink显示感叹号就是缺少驱动),右击更新驱动,选择浏览

    2024年02月12日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包