2014-04-25 18 views
1

내 리눅스 커널에있는 kvm 모듈에서 일부 수정을하고 싶습니다.
apt-get source linux-image-source-$(uname-r) 리눅스 커널에서 kvm 모듈을 수정하는 방법은 무엇입니까?

  • 파일 emulate.c의 기능을 수정 - 일부 변수를 변경하고 printk 문을 추가 :
    1. 은 커널 소스를 획득 :이를 위해, 나는 다음과 같은했다. 건물의 결과로서 생성
      fakeroot debian/rules clean
      fakeroot debian/rules binary-headers binary generic
    2. 설치된 패키지 :
      sudo dpkg -i linux*(version)*.deb
    3. 시스템을 다시 부팅
    4. 커널을 내장.
    5. 실행 QEMUkvm이 활성화되었습니다.

    내가 변경 한 내용은 QEMU에서 테스트 할 때 반영되지 않은 것 같습니다. dmesg으로 체크했을 때 printk 문장도 실행되지 않았습니다.

    누구나 내가 잘못된 부분을 지적 할 수 있습니까?

  • +1

    변경 하시겠습니까? 'emulate.c '는 특정한 특별한 상황에서만 사용된다는 것을 명심하십시오; 대부분의 명령어는 CPU에 의해 직접 실행됩니다. – duskwuff

    +0

    QEMU VM에 대한 RDTSC 명령의 구현을 변경하려고합니다.QEMU를 통해 설치된 게스트 OS를 통해 왜 테스트하고 있는지. – hardcoder

    답변

    1

    새 커널을 설치해도 부팅되지 않으면 부트 로더의 기본값을 변경해야 할 수 있습니다. 이 예상되지 않는 경우

    cat /proc/version 
    

    는, 당신은 당신의 삼류을 조정할 필요가있다 : 당신은 당신이 단지 컴파일과 설치 커널은 사용으로 부팅 내용과 같은지 여부를 확인할 수

    (예 : GRUB) config 및/또는 재부팅하고 올바른 커널을 수동으로 선택하십시오.

    올바른 커널을 설립하는 데, 당신은 메시지 (dmesg를 통해) 커널에 의해보고되는 수준

    이것은 커널 proc 파일에 의해 제어를 변경해야 할 수도 있습니다. < 4 (즉, 0, 1, 2 또는 3)입니다 심각도 메시지 -

    4 4 1 7 
    

    첫 번째 인수 :

    cat /proc/sys/kernel/printk 
    

    예 출력 :이 파일을 인쇄하여 현재 값이 무엇인지 볼 수 있습니다 기록했다. 두 번째 인수 - 심각도가 지정되지 않은 메시지는 기본적으로 4로 설정되어 위의 예에서 시스템에서 볼 수 없습니다. 모든 커널 메시지를 볼 수 있습니다 있도록

    그래서 다음과 같은 로그를 변경합니다 :

    echo 8 > /proc/sys/kernel/printk 
    

    참조 (예를 들어) http://www.makelinux.net/books/lkd2/ch18lev1sec3을 자세한 내용은.