关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭7年前。Improvethisquestion我喜欢Linux,对它的内核开发很感兴趣。但是我对这个过程有一些困惑。最大的困惑是我是否需要下载最新的内核源代码(例如linux-next树或staging树)并使其在我的目标机器上运行?我担心的是,如果这样做,很可能由于代码不成熟而使我的目标机器死机。这样做并不容易,对吧?但如果不这样做,我怎么能找到最新源代码的错误呢?或者如何进一步发展?我的目标机器是基于ARM的,例如BeagleBoard或电话。谢
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。这个问题似乎不是关于aspecificprogrammingproblem,asoftwarealgorithm,orsoftwaretoolsprimarilyusedbyprogrammers的.如果您认为这个问题是关于anotherStackExchangesite的主题,您可以发表评论,说明问题可能在哪里得到解答。关闭8年前。Improvethisquestion当我尝试使用命令make-kpkg在Debian7.4上编译内核3.14时:/usr/bin/fakeroot:line178:ma
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。这个问题似乎不是关于aspecificprogrammingproblem,asoftwarealgorithm,orsoftwaretoolsprimarilyusedbyprogrammers的.如果您认为这个问题是关于anotherStackExchangesite的主题,您可以发表评论,说明问题可能在哪里得到解答。关闭8年前。Improvethisquestion当我尝试使用命令make-kpkg在Debian7.4上编译内核3.14时:/usr/bin/fakeroot:line178:ma
当内核空间发生事件时,如何通知用户空间应用程序?当数据到达某个GPIO时,硬件会产生一个中断。此数据被复制到内核缓冲区。此时,我希望驱动程序通知应用程序它可以调用read函数将数据从内核缓冲区复制到用户空间缓冲区。我想到了使用epoll方法,但是epoll表示设备是否准备好被读取。我想要的是,epoll指示何时内核缓冲区已满。还有,有没有办法修改驱动程序中poll_wait()函数的行为? 最佳答案 (已在聊天session中回复,但似乎这应该在答案中,所以将其更详细地放在这里。)poll_wait所做的是将您的驱动程序添加到用户空
当内核空间发生事件时,如何通知用户空间应用程序?当数据到达某个GPIO时,硬件会产生一个中断。此数据被复制到内核缓冲区。此时,我希望驱动程序通知应用程序它可以调用read函数将数据从内核缓冲区复制到用户空间缓冲区。我想到了使用epoll方法,但是epoll表示设备是否准备好被读取。我想要的是,epoll指示何时内核缓冲区已满。还有,有没有办法修改驱动程序中poll_wait()函数的行为? 最佳答案 (已在聊天session中回复,但似乎这应该在答案中,所以将其更详细地放在这里。)poll_wait所做的是将您的驱动程序添加到用户空
我刚拿到RobertLove的《Linux内核开发》一书。它有很多地方需要您修改和构建内核。那么我该如何处理呢。是使用VM更好,还是我应该以某种方式为它获得合适的测试机器,因为我不想弄乱我的系统和数据。 最佳答案 VM具有提供快照的优势。这些允许您保存机器的状态-如果内核构建不起作用,您只需恢复快照,并且您可以拍摄尽可能多的快照,因为您有足够的磁盘空间来存储它们。您还可以克隆和重新部署VM镜像,因此您可以在许多相同的系统上进行测试。在物理机上进行相同的实验需要付出更多的努力(重影/克隆磁盘、重新安装操作系统等)。VirtualBox
我刚拿到RobertLove的《Linux内核开发》一书。它有很多地方需要您修改和构建内核。那么我该如何处理呢。是使用VM更好,还是我应该以某种方式为它获得合适的测试机器,因为我不想弄乱我的系统和数据。 最佳答案 VM具有提供快照的优势。这些允许您保存机器的状态-如果内核构建不起作用,您只需恢复快照,并且您可以拍摄尽可能多的快照,因为您有足够的磁盘空间来存储它们。您还可以克隆和重新部署VM镜像,因此您可以在许多相同的系统上进行测试。在物理机上进行相同的实验需要付出更多的努力(重影/克隆磁盘、重新安装操作系统等)。VirtualBox
我想构建一个只运行一个二进制程序的专用Linux系统。该程序通过OpenGL驱动程序控制屏幕并显示图案。还需要键盘输入来配置模式。由于运行这个程序将是机器的唯一目的,我不需要任何GUI、网络等。此外,我可能不需要在内核中进行任何进程调度,因为只会运行一个进程。是否可以用我自己的二进制文件替换/sbin/init来实现这一点?内核加载后,它会立即执行我自己的二进制文件,并且会在机器开启的整个过程中运行。基本上,我想模拟微Controller的工作方式,但好处是能够将x86CPU与不同的硬件设备和驱动程序一起使用。 最佳答案 最小的in
我想构建一个只运行一个二进制程序的专用Linux系统。该程序通过OpenGL驱动程序控制屏幕并显示图案。还需要键盘输入来配置模式。由于运行这个程序将是机器的唯一目的,我不需要任何GUI、网络等。此外,我可能不需要在内核中进行任何进程调度,因为只会运行一个进程。是否可以用我自己的二进制文件替换/sbin/init来实现这一点?内核加载后,它会立即执行我自己的二进制文件,并且会在机器开启的整个过程中运行。基本上,我想模拟微Controller的工作方式,但好处是能够将x86CPU与不同的硬件设备和驱动程序一起使用。 最佳答案 最小的in
在Linux内核源代码中,我找到以下代码:h++;pending>>=1;它是__do_softirq(void)的一部分。但是“>>=”是什么意思呢?为什么不是我内存中的“>>”?谢谢! 最佳答案 就是这样pending=pending>>1;简而言之,它将unsignedint除以2。这与+=、/=等结构相同这不仅仅是您记得的pending>>1,因为它不会将移位操作的结果存储在变量中。 关于c-Linux内核源码中的">>="是什么意思?,我们在StackOverflow上找到一个