Linux에서 커널 이식이란 프로그램 코드를 한 하드웨어 플랫폼에서 다른 하드웨어 플랫폼으로 전송하여 실행하는 것을 의미합니다. 이식은 사용자가 선택한 하드웨어 플랫폼에 따라 해당 하드웨어를 지원하도록 커널을 다시 컴파일하여 실행할 수 있도록 하는 것입니다. 이 하드웨어 플랫폼에서 실행할 때 해당 하드웨어 드라이버나 다른 커널 모듈이 누락된 경우 직접 개발하고 커널에 추가하여 함께 컴파일하여 최종적으로 하드웨어 지원을 얻을 수 있습니다.
이 튜토리얼의 운영 환경: linux7.3 시스템, Dell G3 컴퓨터.
리눅스 커널 이식이란
소위 이식이란 프로그램 코드를 한 운영 환경에서 다른 운영 환경으로 전송하는 것입니다. 커널 이식의 경우 주로 한 하드웨어 플랫폼에서 다른 하드웨어 플랫폼에서 실행되도록 이동하는 작업이 포함됩니다.
커널 이식은 선택한 하드웨어 플랫폼에 따라 해당 하드웨어를 지원하도록 커널을 다시 컴파일하여 해당 하드웨어 플랫폼에서 실행될 수 있도록 하는 것입니다. 해당 하드웨어 드라이버나 다른 커널 모듈이 누락된 경우 개발하여 추가할 수 있습니다. 최종적으로 하드웨어 지원을 얻으려면 커널로 함께 컴파일하십시오.
커널의 기원
linux는 오픈 소스 컴퓨터 운영 체제 커널입니다. 주로 C 언어로 작성되어 있기 때문에 개발과 유지 관리에 참여하는 사람이 많을 텐데요, 리눅스가 이렇게 빨리 발전한 이유는 오픈 소스이기 때문입니다. 사용하기 어렵다고 판단되면 누군가 최적화해 놓을 것입니다. Linux 커널의 주요 모듈(또는 구성 요소)은 스토리지 관리, CPU 및 프로세스 관리, 파일 시스템, 장치 관리 및 드라이버, 네트워크 통신, 시스템 초기화(부팅), 시스템 호출 등의 부분으로 나뉩니다. .
Linux는 핀란드의 Linus Torvalds가 처음 설계했습니다. 당시 UNIX의 상용화로 인해 Andrew Tannebaum 교수는 AT&T 라이센스 계약에 얽매이지 않도록 Minix 운영체제를 개발하여 교육 및 연구용 운영체제를 제공하였다. 그것은 인터넷에 공개되어 전 세계 학생들에게 무료로 제공되었습니다. 더 이상 고민하지 않고 곧바로 주제로 넘어가겠습니다.
커널 이식 방법
1. 버전 및 다운로드
리눅스는 1991년에 시작해서 현재에 이르기까지 버전이 어떻게 되었나요? 모두가 알고 싶어할 거라 생각하는데, 어디서 시청하고 어디서 다운로드해야 할까요? 편집자는 모든 사람을 위한 커널 다운로드 URL을 준비했습니다: https://www.kernel.org/ 인터페이스는 다음과 같습니다:
이제 안정 버전이 5.16.12 버전이 되었습니다. 안정 버전을 다운로드할 수 있지만 최신 버전은 불안정하고 경험이 확실히 좋지 않기 때문에 다운로드하지 않는 것이 좋습니다. 버전 간의 차이는 그리 크지 않습니다. 아마도 새 버전에 새로운 플랫폼이나 새로운 외부 드라이버가 추가될 수도 있습니다.
2. 커널 이식
소스 코드를 컴파일하기 전에 lzop 라이브러리를 설치하십시오. 그렇지 않으면 컴파일이 실패합니다.
sudo apt-get install lzop
다운로드한 커널 소스 코드의 압축을 풀면 명령은 다음과 같습니다.
tar jxvf linux-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2
다음 파일을 얻습니다.
셸 스크립트를 만들고 다음 컴파일 명령을 입력하세요.
给予脚本权限,直至脚本变绿,如下:
./mx6ull_nand.sh编译程序,出现图形界面可以先不去配置,直接exit退出,继续等待编译完成(内核编译需要的时间较长,建议大家准备好瓜子)。编译完成以后就会在 arch/arm/boot 这个目录下生成一个叫做 zImage 的文件,zImage 就是我们要用的 Linux 镜像文件。另外也会在 arch/arm/boot/dts 下生成很多.dtb 文件,这些.dtb 就是设备树文件。后面做驱动开发的时候会经常跟这些.dts文件打交道的,编译之后的文件如下:
3、内核的使用
先设置交叉编译工具变量,进入顶层Makefile中设置如下:
使用如下命令编译Linux:
make xxx_defconfig //使用默认配置文件配置 Linux make menuconfig //启动图形化配置界面 make -j2 //编译 Linux
至此,Linux内核部分就给大家分享到这里了,动手操作起来吧。
相关推荐:《Linux视频教程》
위 내용은 리눅스 커널 포팅이란 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!