c++ - 在 Ubuntu Eee 上编译内核需要什么?

标签 c++ linux ubuntu linux-kernel linux-device-driver

我正在尝试按照教程在 Linux 中创建自定义 USB 驱动程序,我希望使用 g++ 在我的 Eee PC 上使用 Ubuntu Eee 开发这个东西。不幸的是,为了遵循本教程,我需要 linux/module.h 头文件。据我了解,我需要编译内核才能使其正常工作。我以前从未编译过内核,我找到的所有说明都是针对桌面 Ubuntu 的。

我正在我的 Eee 上这样做,因为如果我能做到这一点并将其用于类项目,我将在类里面获得额外学分。

我正在关注的教程在这里:http://www.linuxjournal.com/article/7353在这里:http://www.linuxjournal.com/article/4786

最佳答案

大多数(全部?)主要 Linux 发行版不仅分发 Linux 内核,而且还为其应用了大量补丁。从而提高稳定性并添加许多功能。 所以你会想要使用 Ubuntu 的包系统来获取 Ubuntu 的补丁内核源代码!

您可能不需要重建内核!很可能,您只需要当前内核的内核头文件包来编译您的 USB 驱动程序。假设您将其构建为内核模块,然后您可以使用 modprobe 或 insmod 加载它。 (lsmod 和 rmmod 也很有用。)

如果您确实需要重建内核,那很简单。 ( So easy, I use kernel builds to test my hardware.) 网络上有很多 Kernel Building HOWTO's。你会发现很多乐趣,试图找出你想要的模块选项,你想要编译的东西,以及你想要遗漏的东西。你可以使内核更小,但您可能会错过其中的一些东西。



修改为:

I remember doing "sudo apt-get install linux-headers-eeepc," do I need more than that? If not then where are those headers because my test code that includes "linux/module.h" doesn't compile

should be a way to list all the files在那个 linux-headers-eeepc 包中。我来自 RedHat/RPM 世界。但我猜是 dpkg --contents linux-headers-eeepc 之类的东西或 dpkg --listfiles linux-headers-eeepc .您可能需要稍微尝试一下。

或者,通过 http://packages.ubuntu.com/ 判断,像 linux-headers-2.6.27-7 这样的包包含文件/usr/src/linux-headers-2.6.27-7/include/linux/module.h。因此,您可能只想在 /usr/src/*/include/linux/module.h 中四处看看。

或者,尝试:

% 找到 linux/module.h | grep 'linux/module.h$'

或者

% find/-path '*/linux/module.h'

(找到可能需要一段时间才能完成...)

关于c++ - 在 Ubuntu Eee 上编译内核需要什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/493194/

相关文章:

c++ - 水平/垂直/对角翻转 4x4 位网格

c++ - 为什么 cout.setf(ios::fixed) 将我的 float 更改为十六进制?

c++ - 我可以为 union 的 C++ 函数设置默认参数吗

linux - 用于 Linux 的 CLI pdf 查看器

windows - 协作式多任务处理如何工作?

PHP - Shell_exec 和 exec 在运行时返回 false

docker - 无法热重载与 Docker 集成的我的 ionic 应用程序

具有与 std::thread 不同的线程库的 C++ thread_local

Linux: 'Username' 不在 sudoers 文件中。此事件将被报告

linux - 如何修复不重新启动计算机的备份脚本