>source

구성된 커널을 작성하려고합니다. 그래서 동료들은 말씀을 입력하라고 말했습니다.

​​만들기

다음에

​​모듈 만들기

나는 Google을 시도했지만 가장 가까운 결과는 이것하지만 아래로 스크롤 할 때 표시됩니다우사 마, 아니다만들다...에

귀하의 질문은 Ubuntu와 아무 관련이 없습니다. Google 검색에서 실수 한 곳입니다. 대신 여기에서 시작하십시오.

Ray2021-09-15 04:24:11

특정 문제를 명확히하거나 필요한 것을 정확히 강조하기 위해 추가 세부 정보를 제공하십시오. 현재 작성된 것처럼, 당신이 묻는 것을 정확히 말하기가 어렵습니다.

Community2021-09-15 04:24:11
  • 답변 # 1

    나는 실제 질문에 답하기 위해 주변에 도착할 것입니다. 그러나 나는 당신이 더 나은 맥락을 가지고 있도록하기 위해서는 원형 교차로를 취할 것입니다.

    TLDR : 필요한 패키지는만들다또는빌드에 필수...에 Linux 소스 code와 동일한 디렉토리에 있어야하며 .config 파일 (이미 수행하는 것처럼 들리는 것처럼 보이는). 그런 다음 해당 명령을 실행하십시오. 도움이 될 수있는 Google 키워드는 "Linux 커널 컴파일"입니다.

    만들다빌드 시스템입니다. 이를 통해 디렉토리 구조를 통해 일련의 컴파일 명령 (또는 실제로 모든 명령)을 다시 실행할 수 있습니다. 변경된 프로그램 만 컴파일하기 위해 간단한 시스템을 사용합니다.

    "대상"의 선언을 허용합니다. 전통적으로 대상은 파일 이름이며, 그것이 의존하는 파일이 뒤 따른다.

    간단한 예는 다음과 같습니다.

    helloworld: helloworld.c helloworld.h
        gcc helloworld.c -o helloworld
    

    파일 호출에 저장됩니다.메이크르 필그리고 그것은 HelloWorld 파일 (컴파일 된 바이너리)을 빌드하기 위해 다음을 수행합니다.gcc helloworld.c -o helloworld.HelloWorld가 이미 존재하면 HelloWorld.c 또는 HelloWorld 파일보다 최신 상태 인 HelloWorld.c 또는 helloworld.h가 변경되지 않는 한 아무 것도하지 않습니다.

    이것이 makefile의 유일한 규칙 인 경우 실행중인 경우만들다이 규칙을 호출하고 (첫 번째 규칙이므로) 빌드하려고 시도합니다.helloworld.그러나 실행에 의해 명시 적으로 호출 될 수도 있습니다helloworld 를 만드십시오

    makefiles는 대개 훨씬 더 복잡하며 이것을 더 많이 보일 수 있습니다 (이것은 무겁게 인식 한 예이며 makefile이 거의 이처로 보이지 않는다는 것을 깨닫지 만 설명하기에 좋습니다).

    hello: hello.o libhello.o
        gcc hello.o libhello.o -o hello
    hello.o: hello.c hello.h
        gcc -c hello.c -o hello.o
    libhello.o: libhello.c libhello.h
        gcc -c libhello.c -o libhello.o
    

    를 실행하십시오만들다또는안녕하세요이 파일로 인해 hello.o와 libhello.o를 확인하십시오. 처음에는. 이렇게하면 한 번에 레벨에 의존성을 지정하고 모든 것을 컴파일하기 위해 모든 것을 컴파일하는 순서를 알리게 할 수 있습니다 (라이브러리 중 하나가 변경되지 않은 경우 컴파일 시간을 절약 할 수 있으므로 해당 개체를 다시 컴파일 할 필요가 없습니다. 짐마자

    종속성없이 대상을 지정할 수 있습니다.이 경우 대상 파일이 없으면 만 실행됩니다. 또한 대상이 해당 규칙에 의해 생성 된 파일 일 필요는 없습니다. 예를 들어:

    clean:
       rm hello *.o
    

    이렇게하면 실행할 수 있습니다깨끗하게해라컴파일 된 바이너리 및 객체 파일을 삭제합니다. 실제로 파일을 생성하지 않으므로깨끗한, 당신이 실행될 때마다깨끗하게해라이 규칙은 실행되고 작업 디렉토리를 정리합니다. 이것은 가짜 표적이라고 불리고 자주 사용됩니다.설치하십시오당신이 만든 프로그램을 자주 설치하는 것이 자주 볼 수있는 것입니다.

    원래 질문

    그래서, Linux 커널은 만들기 위해 make를 사용합니다. Linux 소스의 루트에있는 경우 가짜 대상이 무리가 있습니다.도움이된다당신에게 목표물을 보여주기 위해서. 일반적으로 프로그램을 빌드하는 데 도움이되는 프로그램을 시작하는 대상 중 하나를 시작합니다..config파일. 이것들은 될 것입니다구성 만들기,menuconfig를 만드십시오,xconfig를 만드십시오, 여러 명의 다른 것들.

    make

    .config 파일에 지정된 옵션을 사용하여 커널을 컴파일하는 기본 대상을 실행합니다.

    make modules

    모듈로 표시된 비트 만 컴파일됩니다.

    .config

    그러나 더 많은 유용한 정보를 검색 할 수있는 상황을 충분히 제공 해드리며, "컴파일 리눅스 커널"을 검색하는 경우 모든 수준의 복잡성에서 절반의 리소스가 추가되어야합니다. 공식 지침은 다음과 같습니다 linux.org.그러나 그것은 잡초에 아주 빨리 들어가고 처음이라면 도움이되지 않습니다.

    우분투 (그리고 대부분의 배포판)에서,만들다패키지, 그래서 그것은 함께 설치됩니다sudo apt install make.그러나 커널을 구축하려면 다른 프로그램이 필요하므로 일반적으로 빌드 툴체인 및 액세서리를 설치하고 싶습니다.sudo apt 빌드에 필수적인 설치이는 make를 포함합니다.

    바로 가슴에. 매우 감사합니다!

    Tan Nguyen2021-09-14 19:54:10
  • 이전 gnome : Tor 브라우저는 SCALLED 디스플레이 설정으로 자체를 조정하지 않습니다.
  • 다음 drivers : 우분투에 낮은 fps