- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在运行 Linux 内核 3.8.13-rt16,它处于 headless 状态(无显示器/键盘)。我能够通过 ssh 进入盒子并成功运行命令。 (我的 3.8.0-35-generic 内核在显示器和键盘上运行得很好)。
是否可以在 rt 内核上启用外围设备以便我可以直接在这台机器上工作?如果是这样,这是我需要在源代码中更改并重新编译的东西,还是可以通过配置文件更改?
我不熟悉使用不同的内核(尤其是实时内核),所以任何帮助/建议或文档链接也将不胜感激。
最佳答案
简短回答:尝试将它们插入。尤其是 USB 设备可以开箱即用。
长答案:
由于所有硬件(内部或外部)都需要某些内核模块的支持,因此您首先需要确定您的内核是否支持相关外围设备。
例如,要连接键盘,您需要 PS/2 或 USB 支持。对于显示器,必须支持您的图形芯片。
如果您的硬件完全受支持,您如何找出要加载的模块以及如何加载?
首先,您需要了解实际存在的硬件。这是通过 lspci
完成的。寻找“VGA Controller ”和“USB Controller ”行。
查看哪些内核模块支持您的硬件的一种非常简单的方法是 device driver database ,它获取您的 PCI ID (lspci -n
) 并告诉您可以使用哪些模块。
现在,下一步是确定这些模块是否已经在内核中,或者它们是否可以作为模块使用。
它可能已经在内核中了。要检查这一点,您可以 grep 通过配置¹:
zcat /proc/config.gz | grep MODULE_NAME # uppercase, dashes --> underscores
如果您看到类似CONFIG_MODULE_NAME=y
的内容,那么它在内核中。如果您看到 CONFIG_MODULE_NAME=m
,则它已构建为可加载模块。
如果您在配置中没有看到该模块,或者显示该选项未设置,您仍然可以检查系统上实际可用的模块。要检查某个模块是否可用,请运行
find /lib/modules/`uname -r` | grep module_name # lowercase, dashes --> underscores
如果您找到了您的模块,您可以使用 modprobe module_name
加载它。 lsmod
应该会显示它是否已加载。
如果找不到模块,可能需要重新编译内核并构建模型。我不会在这里介绍,这远远超出了我们的范围。
如前所述,连接键盘应该非常简单。
预计您的图形芯片会遇到更多困难。当然,简单的 VESA 输出应该始终有效,但为了获得适当的支持,您可能需要稍微调整一下。这也是我在这里无法涵盖的内容;这本身就是一个主题(KMS、专有与 OSS 驱动程序等)。
希望对初学者有所帮助。如果您需要更多支持,请提供有关您的硬件的更多信息 (lspci -n),并可能将您的内核配置发布到某个 pastebin。
¹ 内核可能是在没有/proc/config.gz
支持的情况下构建的。在这种情况下,配置也可以存储在文件系统中,例如在 /boot/
目录中。
关于linux - 在 Linux 内核 3.8.13-rt16 中启用外设,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25534224/
是否可以编写一个控制台 EXE 应用程序,如“hello, world!”用于 Surface RT? 我以为编译ARM就可以了,但是好像没有这样的编译选项。 我安装了 Office 2013 RT
是否可以编写一个控制台 EXE 应用程序,如“hello, world!”用于 Surface RT? 我以为编译ARM就可以了,但是好像没有这样的编译选项。 我安装了 Office 2013 RT
我尝试在 Clojure 中尽可能快地进行复数数组的乘法运算。 选择的数据结构是两个元素的映射,:re 和 :im,每个元素都是原始 double 的 Java native 数组,用于低内存开销。
目录 1. Ubuntu Pro简介 2. Real-time Ubuntu 3. 订阅Ubuntu Pro 4.
我已经实现了流转换器。请注意,这只是一个练习(为了学习 Dart)。此转换器将整数转换为字符串。我给出下面的代码,你也可以在GitHub上找到它. // Conceptually, a transfo
我正在考虑在使用 RT-PREEMPT(使其实时)修补的 Linux 内核上将 ZeroMQ 设置为消息代理。 基本上我想发布/订阅使用谷歌 Protocol Buffer 序列化的短事件。 1. E
alt-rt.jar中的HashMap有什么区别和 rt.jar。我想我看到了相当大的加速在我的一个应用程序中,解释是什么? 最好的问候 P.S.: 我发现了两个不同的 *.jar在 JDK 1.6.
我知道Surface RT版本只能运行Windows Store应用程序。那么,我可以将自己的 Windows 应用商店应用部署到 Surface RT 并通过 Visual Studio 2012
在我将 Android Studio 更新到 3.0 并按照此 instruction 迁移了我的项目之后 我得到这样的错误: * What went wrong: Execution failed
当 jaxws-rt.jar 已经可用时,我不明白在 rt.jar 中使用 jax-ws 包的“内部”实现。为什么 Sun/Oracle 会做出这样的决定,将 jax-ws 集成到 jdk 中....
介绍 RT-Thread Studio是官方出品的一款专门针对RT-Thread嵌入式开发、部署、调试、测试的集成开发环境,它基于Eclipse开源项目开发,极大的提高了嵌入式开发者的开发效率,目前
在 .NET Web 应用程序的负载测试期间监视性能计数器时,一个名为“RT 检查时间百分比”的计数器不断超过默认临界阈值 10。 为什么花费大量时间进行运行时检查是不好的? 这对我们的应用程序有何影
我正在寻找支持 UML-RT 的建模工具,但我找不到。 我已经拥有 MS Visio (2010)、Power Designer (2008) 和 Rational Rose,但似乎它们都不包含 UM
rt linux 中的客户端和服务器通信。客户端发送数据,服务器接收数据。客户端和服务器之间使用UDP进行通信。当服务器(rt linux)从客户端接收到数据时,内核应该停止正在做的事情并开始执行新到
rt linux 中的客户端和服务器通信。客户端发送数据,服务器接收数据。客户端和服务器之间使用UDP进行通信。当服务器(rt linux)从客户端接收到数据时,内核应该停止正在做的事情并开始执行新到
我正在尝试在我的应用程序中对某些帧进行双重缓冲。但是,双缓冲要求我根据我试图保留额外数据 block 的区域更改 Texture2D 大小。 为双缓冲区的每个区域请求一个新的 CreateTextur
我正在学习如何使用 RT 计时器创建周期性事件。我尝试使用这个基于 timer_create 文档示例的示例。 预期的行为是每 5 秒产生一个周期性事件,同时主执行休眠 30 秒,但我得到以下行为。
一、基本信息 MCU:STM32F103ZET6 RT-Thread:5.0.2 LVGL:8.3.11 LCD:ST7735s 编译环境:RTThread studio
我向 rt 索引添加了新字段,如何重建它?如果我做截断 rtindex 新字段不添加。我是从desc rtindex看到的。我应该停止 sphinx 服务并取消链接所有索引文件然后重新索引吗? 最佳答
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 2年前关闭。 Improve this questi
我是一名优秀的程序员,十分优秀!