(2) 컴파일 코어

3088 단어

커널 컴파일 및 다운로드


1. CD 안의 핵 파일을 linux 가상 머신(내 것은 서버 위에 직접 놓는 것)에 넣고 핵 압축을 풀기: tar -jxvf linux-xxx.tar.bz2 또는 tar -zxvf linux-xxxx.tar.gz2. 기존 구성 파일을 지웁니다:make distclean3. 다른 업체의 프로필 복사cp ok210p_linux_config .config4. Makefile 수정 및 확인
ARCH=arm
COSS_COMPILE=arm-linux-

반드시 세 가지 검사make menuconfig 시스템 type-> 1.현재 ARM 아키텍처 지원 여부 확인 2.현재 프로세서(S5PV210) 지원 여부 확인3.현재 개발판 지원 여부 확인(OK210, smdkv210...)
5. 마지막 컴파일make zImage make uImage에 문제가 발생하면
  • 시계
  • 직렬의 초기화는 반드시 답을 주목해야 한다. 플랫폼 코드(arch/arm/mach-s5pv210/mach-smdkv210.c)(꼭 많이 보세요!)

  • 생성된 파일은/arch/arm/boot 폴더 아래에 있습니다.자주 발생하는 오류:
  • Makefile에 커널 플랫폼이 지정되어 있지 않음: ARCH=arm
  • mkimage가 없는 도구: uboot의 도구 폴더에서 tools 폴더 아래에서 mkimage를 찾아 가상 기기 Linux의 bin 디렉터리로 복사합니다.명령:cp mkimage/bin/
  • 마지막으로 우리는 이전 절에서 배운 명령으로 커널을 다운로드하여 Flash에 태우고 Flash에서 커널을 읽고 커널을 시작합니다.
    tftp C0008000 uImage
    nand erase 0x100000 0x500000
    nand write C0008000 100000 500000
    nand read  C0008000 100000 500000
    bootm c0008000
    

    일반적으로 공식 컴파일된 커널에 따라 아무런 문제가 없고 시작 정보를 볼 수 있습니다.
    SMDKV210 # tftp c0008000 uImage
    dm9000 i/o: 0x88000300, id: 0x90000a46
    MAC: 00:22:12:34:56:90
    operating at 100M full duplex mode
    TFTP from server 192.168.1.2; our IP address is 192.168.1.20
    Filename 'uImage'.
    Load address: 0xc0008000
    Loading: #################################################################
             #################################################################
             #################################################################
             #################################################################
             ######################
    done
    Bytes transferred = 4129476 (0x3f02c4)
    SMDKV210 # mtd
    Unknown command 'mtd' - try 'help'
    SMDKV210 # nand erase 0x100000 0x500000
    
    NAND erase: device 0 offset 0x100000, size 0x500000
    Erasing at 0x580000 -- 100% complete.
    OK
    SMDKV210 # nand write C0008000 100000 500000
    
    NAND write: device 0 offset 0x100000, size 0x500000
    Main area write (10 blocks):
     5242880 bytes written: OK
    SMDKV210 # nand read  C0008000 100000 500000
    
    NAND read: device 0 offset 0x100000, size 0x500000
    Main area read (10 blocks):
     5242880 bytes read: OK
    SMDKV210 # bootm c0008000
    get_format
    -------- 1 --------
    ## Booting kernel from Legacy Image at c0008000 ...
       Image Name:   Linux-2.6.35.7
       Created:      2018-01-08  12:50:51 UTC
       Image Type:   ARM Linux Kernel Image (uncompressed)
       Data Size:    4129412 Bytes =  3.9 MB
       Load Address: 20008000
       Entry Point:  20008000
       Verifying Checksum ... OK
    get_format
    -------- 1 --------
       Loading Kernel Image ... OK
    OK
    
    Starting kernel ...
    
    Uncompressing Linux... done, booting the kernel.
    [    0.000000] Initializing cgroup subsys cpu
    [    0.000000] Linux version 2.6.35.7 (allison@chdsz-server) (gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67) ) #2 PREEMPT Mon Jan 8 07:50:41 EST 2018
    [    0.000000] CPU: ARMv7 Processor [412fc082] revision 2 (ARMv7), cr=10c53c7f
    ......
    

    좋은 웹페이지 즐겨찾기