Linux 커널을 2.6.32에서 3.0.7로 업그레이드할 수 있나요?

Linux 커널을 2.6.32에서 3.0.7로 업그레이드할 수 있나요?

저는 현재 BeagleBoard-xM(ARM 아키텍처)에서 Angstrom Linux 2.6.32를 실행하고 있습니다. Linux 커널을 2.6.32에서 3.0.7로 업그레이드할 수 있나요? 업그레이드가 가능한 경우 난이도는 어떻게 되나요?

편집#1:

BB-xM이 실행되는 이미지는 다음에서 만들어졌습니다.수선화부트로더 파일 사용(x-로드/u-부팅/스크립트). 최근에 kernel.org에서 커널 소스 2.6.32.61을 다운로드하여 /usr/srcBB-xM에 복사했습니다 . 구성( )을 한 후 BB-xM에 직접 커널을 make menuconfig빌드( make)하고 설치( )합니다.make install(네이티브 툴체인).

편집#2:

나는 새 커널을 부팅하기 위해 수동으로 구성해야 하는 경우 부트로더에도 주의를 기울여야 한다는 것을 알고 있습니다. 초기 Angstrom 이미지의 boot디렉터리에는 다음이 포함되었습니다.

  • u-boot-scripts
  • MLO-beagleboard-1.5.0+r24+gitr04b1732220078d47c18a84cbafc52e45db71f13d-r24
  • u-boot-beagleboard-2011.02+r75+gitrc7977858dcf1f656cbe91ea0dc3cb9139c6a8cc8-r75
  • uImage-2.6.32

커널 2.6.32.61을 구성하고 설치한 후 boot디렉터리에는 다음이 포함됩니다.

root@beagleboard:/boot# ls
MLO
MLO-beagleboard-1.5.0+r24+gitr04b1732220078d47c18a84cbafc52e45db71f13d-r24
Module.symvers-2.6.32
System.map-2.6.32
System.map-2.6.32.61
System.map-2.6.32.61.old
config-2.6.32
u-boot-beagleboard-2011.02+r75+gitrc7977858dcf1f656cbe91ea0dc3cb9139c6a8cc8-r75.bin
u-boot-scripts
u-boot.bin
uImage
uImage-2.6.32
vmlinux-2.6.32.61
vmlinux-2.6.32.61.old

부트로더를 구성하지 않았는데 BB-xM이 새로 구성된 커널을 부팅합니다.

답변1

저는 비글 보드 사용자가 아니므로 가장 먼저 하고 싶은 일은 적절한 커널 소스가 있는지 확인하는 것입니다. 바닐라 소스는 "OMAP3 BeagleBoard"를 포함한 다양한 Cortex-A8(ARMv7) 칩을 지원하지만 추가 패치 없이는 이것이 충분한지 확실하게 말할 수 없습니다.

3.x 커널은 2.6 지향 사용자 영역과 역호환되어야 하므로 Angstrom이 자체 패치로 구현된 기능에 중요한 방식으로 의존하지 않는 한(이 경우 해당 패치를 적용해야 함) 아무런 문제가 없어야 합니다. 이것은 주류 배포판에서는 문제가 되지 않습니다. 비록 그들이 커널을 사용자 정의 패치하고 패치된 소스를 사용하도록 권장하지만 저는 바닐라 트리를 사용하는 데 문제가 발생한 적이 없습니다. 그러나 Angstrom은 다소 전문적이라고 생각합니다. Angstrom에 이미 3.0.7 소스가 있으면 모든 준비가 완료된 것입니다. 그렇지 않은 경우 Vanilla kernel.org 소스를 사용해 보는 것도 나쁘지 않을 것입니다(만약 부팅이 괜찮다면 거기서부터 문제가 없을 것입니다).

나는 당신이 이미 BeagleBoard에서 작동하는 크로스 컴파일러 툴체인을 가지고 있다고 가정합니다. 그렇지 않은 경우에는 BeagleBoard에서 직접 몇 시간이 걸리고(라즈베리 파이에서는 5시간 이상이 소요됨) 시행착오가 있을 수 있으므로 하나가 필요합니다(이에 대한 몇 가지 팁도 제공할 수 있습니다). 그러나 최신 멀티 코어 멀티 Ghz 시스템에서는 10분 이상 걸리지 않으므로 매번 구성에 대해 스트레스를 받을 필요가 없습니다. 커널 크로스 컴파일은 아직 툴체인의 일부가 아닌 빌드 종속성이 없기 때문에 상대적으로 간단합니다.

커널 구성 및 컴파일에 대한 구체적인 내용은 다음을 참조하세요.여기를 보아라. 5단계에서 사용하지 않는 방법에 대한 팁을 따르고 make install(즉, BeagleBoard에 커널을 적절하게 설치하십시오. 일반 부트로더 등을 사용하는지 모르겠습니다) INSTALL_MOD_PATH실행하기 전에 크로스 툴체인의 sysroot로 설정하십시오 make modules_install. 예를 들어

export INSTALL_MOD_PATH=/x-tool/sysroot
make modules_install

/x-tool/sysroot/lib/modules그러면 BeagleBoard의 디렉토리에 직접 복사할 수 있는 적절한 모듈 디렉토리가 남게 됩니다 /lib/modules.

관련 정보