在 linux 内核中增加程序需要完成以下三项工作:
1. 将编写的源代码复制到 Linux 内核源代码的相应目录;
2. 在目录的 Kconfig 文件中增加新源代码对应项目的编译配置选项;
3. 在目录的 Makefile 文件中增加对新源代码的编译条目。
bq27501驱动编译到内核中具体步骤如下:
1. 先将驱动代码bq27501文件夹复制到 ti-davinci/drivers/ 目录下。
确定bq27501驱动模块应在内核源代码树中处于何处。
设备驱动程序存放在内核源码树根目录 drivers/ 的子目录下,在其内部,设备驱动文件进一步按照类别,类型等有序地组织起来。
a. 字符设备存在于 drivers/char/ 目录下
b. 块设备存放在 drivers/block/ 目录下
c. USB 设备则存放在 drivers/usb/ 目录下。
没有安装源代码,编译程序时要用到各种头文件,所以要对源代码进行编译。对于初学者还是重装系统吧,安装选项选择全部安装,源代码主要是在开发选项里面。如果想学习一些知识,可以在安装光盘里面找到源代码,以linux-2.6.x-x开头的,也可以下载一个比如linux-2.6.26.6.tar.bz,下下来后,放到usr/src/下,解压tar vxjf linux-2.6.26.6.tar.bz 命令行进入解压目录,然后输入make menuconfig ,进入配置菜单,不用改,默认就可以,选择最下面的save…………,然后输入make,等个半个小时左右,再输入make modules ,然后就可以了,看看/lib/modules/下面是不是多了一个目录这个是专门用来编译模块的。
不行可以联系我。
出品|开源中国
译|罗奇奇
RedHat 桌面、图形、信息 娱乐 和 i18n 总监 Christian F.K. Schaller 在博客中分享了他对 NVIDIA 开源 Linux GPU 内核模块的一些看法,并分析了 NVidia 的开源驱动对 Linux 社区的重要性。
首先需要明确的是:NVIDIA 开源了 out of tree 源代码内核驱动程序。这些驱动程序已经过测试,它在作为数据中心的 GPU 上支持 CUDA 用例,但尚未支持图形显示。尽管也有支持图形显示的代码,但这些代码还没有写完或完全测试。
此外,开源的只是内核部分,然而现代图形驱动的很大一部分是在固件和用户空间组件中,而这些仍然是闭源的。因此,对于普通的 Linux 桌面用户来说,目前 NVIDIA 的开源驱动程序并不能带来一些显而易见的好处。
但无论如何,现在有了一个 NVidia 内核驱动,它能够使用 linux 内核中仅支持 gpl 的 API ,这就为后面的以切打下了基础。
开源驱动能取代二进制驱动程序吗?
目前还不能,该开源驱动程序只支持 NVidia 图灵芯片及更新版本的图形处理器,这意味着它对 2018 年之前的图形处理器都不起作用。另外,在 开源内核模块经过全面测试和扩展,以用于图形显示用例之前,即使你使用的是图灵或更新版本的 GPU,仍需要在系统中使用二进制驱动。
此外,正如上面所说的,现代图形驱动的很大一部分是在固件和用户空间组件中,因此,即使开源内核驱动程序有图形显示能力,二进制驱动程序仍将继续存在。
Nouveau 是一个旨在为 NVIDIA GPU 建立高质量的、自由的开源驱动项目,它最初是作为逆向工程驱动程序开发的,但近年来实得到了 NVIDIA 的积极支持。Nouveau 功能齐全,但由于无法重新计算 NVidia 显卡的时钟等功能而受到严重阻碍,这意味着它不能像二进制驱动那样提供完整的性能,此次 NVIDIA 开源的 GPU 内核模块对 Nouveau 社区和项目都大有帮助。
需要注意的是: Linux 内核不允许同一个硬件有多个驱动程序,所以要想让新的 NVidia 内核驱动程序在当前的 Linux 版本中运行,就必须退出现在的 Nouveau,或者至少被限制在一套不同的硬件上。就像二进制驱动一样,Nouveau 的很大一部分不在内核中,而是在 Mesa 和 NVidia 目前提供的 Nouveau 特定固件中发现的用户空间部分。
目前 NVIDIA 和 RadHat 等发行版讨论的计划是让 NVidia 的二进制驱动和 Mesa 共享一个内核驱动,这可能是一个全新的驱动程序,旨在同时满足 NVidia 用户空间和 Mesa 用户空间的需求。但这可能需要几年的时间来实现。这对开源社区和 NVidia 都有明显的优势。对于开源社区来说,这意味着现在将拥有一个内核驱动程序和固件,它允许更改 GPU 的时钟,以提供人们期望从 NVidia 显卡获得的显示性能,这意味着 Linux 将拥有一个可以在第一时间访问新一代 NVidia 硬件的固件和内核更新的驱动程序。
就近期而言,它不会产生重大影响。但随着时间的推移,它提供了一种从根本上简化对 NVidia 硬件支持的途径。从长远来看,用户有机会能在 NVidia 硬件上获得与 Linux 为 Intel 和 AMD 的硬件提供的的体验,即一些开箱即用的功能
开源还意味着 Linux 发行版可以第一时间支持新的 NVIDIA 芯片,一个高性能的 NVidia 开源 Mesa 驱动程序将允许 Linux 发行版签署 NVidia 驱动程序和内核的其他部分,以实现安全重启等功能。
由于第一个开源驱动版本 R515 是针对计算 GPU 的,所以可以预期这些选项也将首先为计算用户提供,然后再为显卡用户提供。
NVidia 需要继续努力完成这个新的驱动程序功能,无论是计算还是图形显示用例。而 Linux 社区和 NVIDIA 需要共同为未来的统一内核驱动程序制定一个计划,并围绕它制定一个适用于它的模型。无论是 Linux 社区还是 NVidia,都需要添加 Mesa Vulkan 驱动程序之类的东西,类似于为 AMD 提供 RADV 的方式。
我对驱动程序的了解水平有限,如有一些理解错误,欢迎大家指正批评。
原文:https://blogs.gnome.org/uraeus/2022/05/11/why-is-the-open-source-driver-release-from-nvidia-so-important-for-linux/
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)