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

时间:2009-01-29 20:11:24

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

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

我在我的Eee上这样做,因为如果我能在课堂上使用它并在课堂项目中使用它,我会在课堂上获得额外的学分。

我关注的教程位于:http://www.linuxjournal.com/article/7353,此处:http://www.linuxjournal.com/article/4786

2 个答案:

答案 0 :(得分:5)

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

您可能 NOT 需要重建内核!最有可能的是,您只需要当前内核的kernel-headers包来编译USB驱动程序。假设您将其构建为内核模块,则可以使用modprobe或insmod加载它。 (lsmod& rmmod也很有用。)

如果你确实需要重建内核,那很容易。 (So easy, I use kernel builds to test my hardware.)网上有很多Kernel Building HOWTO's。你想要找出你想要的模块,你想要编译的内容以及你想要离开的内容,这会很有趣你可以让内核变小,但你可能会错过一些内容。



修改后补充:

  
    

我记得做过“sudo apt-get install linux-headers-eeepc”,我还需要更多吗?如果没有,那么这些标题在哪里,因为我的测试代码包含“linux / module.h”无法编译

  

linux-headers-eeepc包中有should be a way to list all the files。我来自RedHat / RPM世界。但我会猜到像dpkg --contents linux-headers-eeepcdpkg --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 $'

或者

查找/ -path'* / linux / module.h'

find 可能需要一段时间才能完成......)

答案 1 :(得分:2)

从这里开始:Ubuntu Kernel/Compile 开始: sudo apt-get install linux-kernel-devel fakeroot build-essential makedumpfile

可能只读了link

More in depth details here