我的目标是在linux内核中实现一个启用/禁用CPU内核的系统调用。
首先,我实现了一个系统调用,在4核系统中调用CPU3。
系统调用代码如下:
#include <linux/kernel.h>
#include <linux/slab.h>
#include <asm/uaccess.h>
#include <asm/unistd.h>
#include <linux/cpumask.h>
#include <linux/smp.h>
asmlinkage long sys_new_syscall(void)
{
unsigned int cpu3;
set_cpu_online (cpu3, false) ; /* clears the CPU in the cpumask */
printk ("CPU%u is offline\n", cpu3);
return 0;
}
系统调用在内核中正确注册,我在内核配置期间启用了“cpu hotplug”功能。见图片
但是,内核在最后阶段无法编译,我收到了这个错误:
gzip: stdout: No space left on device
E: mkinitramfs failure cpio 141 gzip 1
update-initramfs: failed for /boot/initrd.img-4.6.7-rt13-v7+ with 1.
run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1
arch/arm/boot/Makefile:99: recipe for target 'install' failed
make[1]: *** [install] Error 1
arch/arm/Makefile:333: recipe for target 'install' failed
make: *** [install] Error 2
我做错了什么?
答案 0 :(得分:2)
gzip: stdout: No space left on device
此问题与您的代码无关。您的/boot
文件系统已满。