2017-08-15 13 views
0

私の目標は、CPUコアを有効/無効にするシステムコールを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ホットプラグ」機能を有効にして次のように

システムコールのコードがあります。

Kernel configuratione

しかし絵を参照してください、カーネルは、最後の段階でコンパイルに失敗し、私はこのエラーました:私が間違っているのは何

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 

を?

答えて

2
gzip: stdout: No space left on device 

この問題は、あなたのコードとは関係ありません。 /bootファイルシステムがいっぱいです。

+0

ありがとうございます。私はラズベリーpi3/ModelBでLinuxをコンパイルしています。どのように私はこの問題を解決できますか? –

+1

さらにスペースが必要です。カーネルを他のハードウェアでよりよくコンパイルするべきだと思います。 –

関連する問題