我需要帮助弄清楚编译 Linux 内核如何导致 Ubuntu 冻结。
我正在尝试交叉编译 ZedBoard 的 Linux 内核。它是一种 Zynq-7000 ARM 架构。当我编译时,它会变成一个journal.o
文件,整个系统会冻结,我必须重新启动。Xilinx/ZedBoard 不知道,所以也许其他人知道。请告诉我您还需要什么其他信息。
答案1
我在为 zynq 编译内核时遇到了同样的问题。我使用了以下方法:make -j ARCH=arm UIMAGE_LOADADDR=0x8000 uImage
现在我把它改成:make ARCH=arm
它会在 \arch\arm\boot\ 中编译并创建 Image 和 zImage。
祝你好运
答案2
如果您查看 make with 的手册页$ man make
,其中会解释得更详细一些。-j
如果该标志后面跟一个数字,则将同时运行的进程数限制为您输入的任何值。但是,如果-j
后面没有数字,则线程数不受限制。我认为,由于它同时执行了这么多线程,所以它把事情搞砸了。当我使用 时make ARCH=arm UIMAGE_LOADADDR=0x8000 CROSS_COMPILE=arm-xilinx-linux-gnueabi- uImage
,一切都正常了;诚然,它很慢,但它确实有效。也许您可以添加-j 10
或某些东西来让事情运行得更快一些,而不会使操作系统过载。