중국시가넷 - 개인 서명 - 리눅스 커널 비디오 튜토리얼 리눅스 커널 비디오 튜토리얼 전체 세트
리눅스 커널 비디오 튜토리얼 리눅스 커널 비디오 튜토리얼 전체 세트
리눅스용 새 커널을 설치하는 방법은 무엇입니까?
1. 커널 소스 코드 얻기
2. 커널 소스 코드 압축 해제
먼저 루트 계정으로 로그인한 후 /usr/를 입력합니다. src 하위 디렉터리. 사용자가 Linux를 설치할 때 커널 소스 코드를 설치하면 linux-x.y.z의 하위 디렉터리를 찾게 됩니다. 이 디렉토리는 커널 x.y.z의 소스 코드를 저장합니다. 또한 linux 디렉터리에 대한 링크도 찾을 수 있습니다. 연결을 삭제한 다음 새 커널의 소스 파일을 /usr/src 디렉터리에 복사하고 압축을 풉니다:
#tarzxvfLinux-2.3.14.tar.gz
파일 성공적으로 릴리스되었습니다. 그 후 /usr/src 디렉터리에 Linux 하위 디렉터리가 생성됩니다. 여기에는 커널 2.3.14의 모든 소스 코드가 포함되어 있습니다. /usr/include/asm, /usr/inlude/linux 및 /usr/include/scsi를 /usr/src/linux/include 디렉터리 아래의 해당 디렉터리에 연결합니다.
#cd/usr/include
#rm-Rfasmlinux
#ln-s/usr/src/linux/include/asm-i386asm
#ln-s/usr/src/linux/include/linux
#ln-s/usr/src/linux/include/scsiscsi
소스 코드 삭제 디렉토리 .o 파일 및 .
#cd/usr/src/linux
#makemrproper
3. 증분 패치
때로는 완전히 재설치할 필요가 없습니다. . 업그레이드와 유사한 증분 패치를 적용하고 커널 소스 트리의 루트 디렉터리에서 실행하세요:
patch-p1../patch-x.y.z
4. 커널 소스 트리 디렉터리:
patch-p1../patch-x.y.z
p>
arch: 각 플랫폼은 해당 디렉터리를 차지합니다. 32비트 PC 관련 코드는 i386 디렉터리에 저장되며, 더 중요한 것들은 kernel(커널의 핵심 부분), mm(메모리 관리), math-emu(부동 소수점 단위 시뮬레이션), lib(하드웨어 관련 도구)입니다. 기능), 부팅(부팅 프로그램), pci(PCI 버스) 및 전원(CPU 관련 상태).
block: 일부 블록 장치 드라이버.
crypto: 일반적으로 사용되는 암호화 및 해싱 알고리즘(예: AES, SHA 등)과 일부 압축 및 CRC 확인 알고리즘.
문서: 커널의 다양한 부분에 대한 일반적인 설명과 설명입니다.
드라이버: 장치 드라이버, 각각의 다른 드라이버는 하위 디렉토리를 차지합니다.
fs: ext, fat, ntfs 등과 같은 다양한 지원 파일 시스템.
include: 헤더 파일. 그 중 시스템 관련 헤더 파일은 리눅스 서브디렉토리에 위치한다.
init: 커널 초기화 코드(시스템 부팅 코드가 아님).
ipc: 프로세스 간 통신을 위한 코드입니다.
커널: 프로세스 스케줄링, 타이머 등을 포함한 커널의 핵심 부분입니다. 플랫폼과 관련된 일부 코드는 arch/*/kernel 디렉토리에 있습니다.
lib: 라이브러리 파일 코드입니다.
mm: 플랫폼과 관련된 코드 중 일부인 메모리 관리 코드는 arch/*/mm 디렉토리에 위치합니다.
net: 다양한 일반 네트워크 프로토콜을 구현하는 네트워크 관련 코드입니다.
스크립트: 커널 파일을 구성하는 데 사용되는 스크립트 파일입니다.
보안: 주로 SELinux 모듈입니다.
sound: 일반적으로 사용되는 오디오 장치 등의 드라이버입니다.
usr: cpio를 구현합니다.
i386 시스템에서는 시스템 부팅이 arch/i386/kernel/head.s에서 시작된 다음 init/main.c의 main() 함수로 전송되어 커널을 초기화합니다.
5. 커널 구성
#cd/usr/src/linux
커널 구성 방법에는 세 가지가 있습니다:
(1 ) 명령줄: makeconfig
(2) 메뉴 모드 구성 인터페이스: makemenuconfig
(3)Xwindow: makexconfig
Linux 커널 구성 프로그램은 일련의 기능을 제공합니다. 구성 옵션. 각 구성 옵션에 대해 사용자는 "y", "m" 또는 "n"을 선택할 수 있습니다. 그 중 "y"는 해당 기능 지원 또는 장치 드라이버를 커널로 컴파일하는 것을 의미하고, "m"은 해당 기능 지원 또는 장치 드라이버를 로드 가능한 모듈로 컴파일하는 것을 의미하며, 이는 다음과 같은 경우 시스템 또는 사용자가 커널에 추가할 수 있습니다. Go, "n"은 커널이 해당 기능이나 드라이버를 지원하지 않음을 나타냅니다. 커널에는 많은 구성 옵션이 있으므로 이 문서에서는 더 중요한 옵션 중 일부만 소개합니다.
1. 코드 성숙도 옵션(코드 성숙도 옵션)
개발 프롬프트 및/또는 완성된 코드/드라이버(CONFIG_EXPERIMENTAL) 사용자가 아직 테스트 단계에 있는 코드나 드라이버를 사용하려는 경우 선택할 수 있습니다. "예". 안정적인 커널을 컴파일하려면 "n"을 선택하십시오.
2. 프로세서 유형 및 기능(프로세서 유형 및 기능)
(1), 프로세서 제품군(386,486/Cx486,586/K5/5x86/6x86,Pentium/K6/TSC,PPro/ 6x86MX ) 프로세서 유형을 선택합니다. 기본값은 Ppro/6x86MX입니다.
(2), MaximumPhysicalMemory (1GB, 2GB) 커널이 지원하는 최대 메모리 수, 기본값은 1G입니다.
(3), 수학(CONFIG_MATH_EMULATION) 보조 프로세서 시뮬레이션, 기본값은 시뮬레이션하지 않는 것입니다.
(4), MTRR(MemoryTypeRangeRegister)support(CONFIG_MTRR)
이 옵션을 선택하면 시스템은 Xserver에서 사용할 MTRR을 관리하기 위해 /proc/mtrr 파일을 생성합니다.
(5) 대칭 다중 처리 지원(CONFIG_SMP)에 대해 "y"를 선택하면 커널이 대칭 다중 프로세서를 지원합니다.
3. Loadablemodulesupport(로드 가능한 모듈 지원)
(1) Enableloadablemodulesupport(CONFIG_MODULES)에 대해 "y"를 선택하면 커널이 모듈 로딩을 지원합니다.
(2) Kernelmoduleloader(CONFIG_KMOD)에 대해 "y"를 선택한 경우 커널은 로드 가능한 모듈을 자동으로 로드하고, 그렇지 않으면 사용자가 수동으로 로드해야 합니다.
4. Generalsetup(일반 설정)
(1) 네트워킹 지원(CONFIG_NET) 커널에서 네트워크 지원 여부를 설정하는 옵션입니다.
(2) PCIsupport(CONFIG_PCI) 이 옵션은 커널에서 PCI 지원을 제공할지 여부를 설정합니다.
(3) PCIaccessmode(BIOS, Direct, Any) 이 옵션은 Linux가 PCI 장치를 감지하는 방식을 설정합니다. "BIOS"를 선택하면 Linux는 BIOS를 사용하고, "Direct"를 선택하면 Linux는 BIOS를 통과하지 않습니다. "Any"를 선택하면 Linux는 PCI 장치를 직접 감지하여 BIOS를 사용합니다.
(4) 병렬 포트 지원(CONFIG_PARPORT)에 대해 "y"를 선택하면 커널이 병렬 포트를 지원합니다.
5. 플러그 앤 플레이 장치 지원)
(1) PlugandPlay 지원(CONFIG_PNP)에 대해 "y"를 선택하면 커널이 자동으로 플러그 앤 플레이를 구성합니다. 플레이 장치.
(2) ISAPlugandPlaysupport(CONFIG_ISAPNP)에 대해 "y"를 선택하면 커널이 ISA 버스를 기반으로 플러그 앤 플레이 장치를 자동으로 구성합니다.
6. 블록 장치(블록 장치)
(1) NormalPCfloppydisksupport(CONFIG_BLK_DEV_FD)에 대해 "y"를 선택하면 커널이 플로피 디스크에 대한 지원을 제공합니다.
(2) EnhancedIDE/MFM/RLLdisk/cdrom/tape/floppysupport(CONFIG_BLK_DEV_IDE)에 대해 "y"를 선택하면 커널이 향상된 IDE 하드 디스크, CDROM 및 테이프 드라이브에 대한 지원을 제공합니다.
7. 네트워킹 옵션(네트워크 옵션)
(1) 패킷 소켓(CONFIG_PACKET)에 대해 "y"를 선택합니다. 일부 응용 프로그램은 패킷 프로토콜을 사용하여 네트워크 장치와 직접 통신합니다. 커널에 다른 중개 프로토콜을 전달합니다.
(2) 네트워크 방화벽(CONFIG_FIREWALL)에 대해 "y"를 선택하면 커널이 방화벽을 지원합니다.
(3) TCP/IP 네트워킹(CONFIG_INET)에 대해 "y"를 선택하면 커널이 TCP/IP 프로토콜을 지원합니다.
(4) TheIPXprotocol(CONFIG_IPX)에 대해 "y"를 선택한 경우 커널은 IPX 프로토콜을 지원합니다.
(5) AppletalkDDP(CONFIG_ATALK)에 대해 "y"를 선택한 경우 커널은 AppletalkDDP 프로토콜을 지원합니다.
8. SCSI지원(SCSI 지원)
사용자가 SCSI 장치를 사용하려는 경우 해당 옵션을 구성할 수 있습니다.
9. Networkdevicesupport(네트워크 장치 지원)
Networkdevicesupport(CONFIG_NETDEVICES)에 대해 "y"를 선택하면 커널이 네트워크 드라이버에 대한 지원을 제공합니다.
10. 이더넷(10Mbit 또는 100Mbit)(10M 또는 100M 이더넷)
이 설정에서 시스템은 많은 네트워크 카드 드라이버를 제공합니다. 사용자는 자신의 네트워크 카드 드라이버만 선택하면 됩니다. 또한 사용자는 필요에 따라 FDDI, PPP, SLIP 및 무선 LAN(WirelessLAN)에 대한 지원을 커널에 추가할 수도 있습니다.
11. Characterdevices(문자 장치)
(1) 가상 터미널(CONFIG_VT)에 대해 "y"를 선택하면 커널이 가상 터미널을 지원합니다.
(2), 가상 터미널에서 콘솔 지원(CONFIG_VT_CONSOLE)
"y"를 선택하면 커널이 가상 터미널을 시스템 콘솔로 사용할 수 있습니다.
(3), Standard/generic(dumb)serialsupport(CONFIG_SERIAL)
"y"를 선택하면 커널이 직렬 포트를 지원합니다.
(4), 콘솔 직렬 포트 지원(CONFIG_SERIAL_CONSOLE)
"y"를 선택하면 커널이 직렬 포트를 시스템 콘솔로 사용할 수 있습니다.
12. 마우스(마우스)
PS/2mouse(일명 "보조 장치")support(CONFIG_PSMOUSE) 사용자가 PS/2 마우스를 사용하는 경우 이 옵션은 "y"를 선택해야 합니다. ".
13. 파일 시스템(파일 시스템)
(1) 할당량 지원(CONFIG_QUOTA)에 대해 "y"를 선택하면 커널이 디스크 할당량을 지원합니다.
(2) Kernelautomountersupport(CONFIG_AUTOFS_FS)에 대해 "y"를 선택하면 커널이 자동 마운트에 대한 지원을 제공하여 시스템이 시작 시 원격 파일 시스템을 자동으로 마운트할 수 있도록 합니다.
(3) DOSFATfssupport(CONFIG_FAT_FS)에 대해 "y"를 선택하면 커널이 DOSFAT 파일 시스템을 지원합니다.
(4), ISO9660CDROMfilesystemsupport(CONFIG_ISO9660_FS)
"y"를 선택하면 커널이 ISO9660CDROM 파일 시스템을 지원합니다.
(5), NTFSfilesystemsupport(readonly)(CONFIG_NTFS_FS)
"y"를 선택하면 사용자가 읽기 전용 모드로 NTFS 파일 시스템에 액세스할 수 있습니다.
(6), /procfilesystemsupport(CONFIG_PROC_FS)/proc는 Linux 시스템의 실행 상태를 저장하는 가상 파일 시스템입니다. 이 항목은 "y"를 선택해야 합니다.
(7), Secondextendedfssupport(CONFIG_EXT2_FS) EXT2는 Linux의 표준 파일 시스템으로, 이 항목에도 "y"를 선택해야 합니다.
14. NetworkFileSystems(네트워크 파일 시스템)
(1) NFSfilesystemsupport(CONFIG_NFS_FS)에 대해 "y"를 선택하면 커널이 NFS 파일 시스템을 지원합니다.
(2), SMBfilesystemsupport(tomountWfWsharesetc.)(CONFIG_SMB_FS)
"y"를 선택하면 커널이 SMB 파일 시스템을 지원합니다.
(3), NCPfilesystemsupport(tomountNetWarevolumes)(CONFIG_NCP_FS)
"y"를 선택하면 커널이 NCP 파일 시스템을 지원합니다.
15. PartitionTypes(파티션 유형)
이 옵션은 일반적으로 사용되지 않는 일부 파티션 유형을 지원합니다. 필요한 경우 해당 옵션에서 "y"를 선택하면 됩니다.
16. 콘솔 드라이버(콘솔 드라이버)
VGAtextconsole(CONFIG_VGA_CONSOLE)에 대해 "y"를 선택하면 사용자는 표준 VGA 디스플레이 모드에서 Linux를 사용할 수 있습니다.
17. 사운드(Sound)
Soundcardsupport(CONFIG_SOUND)에 대해 "y"를 선택하면 커널이 사운드 카드에 대한 지원을 제공할 수 있습니다.
18. 커널 해킹(커널 모니터링)
MagicSysRqkey(CONFIG_MAGIC_SYSRQ)가 "y"를 선택하면 사용자가 시스템을 부분적으로 제어할 수 있습니다. 일반적으로 "n"을 선택합니다.
6. 커널 컴파일
(1). 컴파일에 필요한 종속 파일 생성
#cd/usr/src/linux
#makedep
(2). 커널이 컴파일한 대상 파일을 지웁니다.
#makeclean
(3). p> #makezImage
커널이 성공적으로 컴파일되면 새로운 커널 이미지 파일 zImage가 /usr/src/linux/arch/i386/boot 디렉토리에 생성됩니다. 컴파일된 커널이 큰 경우 시스템은 makebzImage 명령을 사용하여 컴파일하라는 메시지를 표시합니다. 이때 컴파일러는 bzImage라는 커널 이미지 파일을 생성합니다.
(4) 로드 가능한 모듈 컴파일
사용자가 커널 구성 시 로드 가능한 모듈을 설정한 경우 나중에 insmod 명령을 사용하여 로드할 수 있도록 이러한 모듈을 컴파일해야 합니다. .
#makemodules
#makemodelus_install
컴파일에 성공하면 시스템은 /lib/modules 디렉토리에 새 모듈이 포함된 2.3.14 하위 디렉토리를 생성합니다. 커널의 모든 로드 가능한 모듈.
7. 새 커널 시작
(1) 새 커널과 System.map 파일을 /boot 디렉터리에 복사합니다.
#cp/usr/src /linux/arch/i386/boot/bzImage/boot/vmlinuz-2.3.14
#cp/usr/src/linux/System.map/boot/System.map-2.3.14
#cd/boot
#rm-fSystem.map
#ln-sSystem.map-2.3.14System.map
(2) , /etc/lilo.conf 파일을 구성하십시오. 파일에 다음 줄을 추가합니다:
default=linux-2.3.14
image=/boot/vmlinuz-2.3.14
label=linux - 2.3.14
root=/dev/hda1
읽기 전용
(3) 새 구성을 적용합니다.
# /sbin/lilo
(4) 시스템 다시 시작
#/sbin/reboot
새 커널이 정상적으로 시작할 수 없는 경우 사용자는 다음을 묻는 메시지를 표시할 수 있습니다. LILO: 다음 명령으로 이전 커널을 부팅합니다. 그런 다음 실패 원인을 찾아 새 커널을 다시 컴파일하십시오.
LinuxKernel(리눅스 커널)은 어떻게 설치하나요?
1. 새 커널 소스 코드 다운로드: 공식 웹사이트 www.kernel.org로 이동하여 최신 버전의 Linux 커널을 다운로드하고 /usr/src/kernels 디렉터리에 저장합니다. 약 54MB입니다.
2. #cd/usr/src/kernels
3. #tarjvxflinux-2.6.31.5.tar.bz2
4. 시스템의 숨겨진 파일 .config를 새 커널 디렉터리에 복사합니다.
5. cd를 사용하여 새 커널 디렉터리로 들어간 다음 #makeoldconfig를 실행합니다. 이때 모든 프롬프트에서 Enter를 누르면 옵션 프롬프트가 모두 기본값입니다.
6. #makexconfig 이때 커널 설정창이 뜨는데 다 영어로 되어있어서 이해가 안가서 그냥 창을 닫고 진행합니다.
7. #makebzImagemakemodulesmakemodules_installmakeinstall 일곱 번째 컴파일 단계는 시스템 상태에 따라 30~50분 정도 오랜 시간이 걸립니다.
8. #uname-r 위의 단계를 완료한 후 시스템을 다시 시작할 수 있습니다. 시작하는 동안 GRUB 메뉴에 나타납니다. 이 방법은 새 커널을 설치한 후에도 이전 커널을 유지합니다. 시작할 때 새 커널과 이전 커널 중에서 선택할 수 있는데, 이는 매우 실용적입니다.
Linux 커널 소스 코드를 수정하고 디버깅하는 방법은 무엇입니까?
수정된 코드를 커널 트리에 추가한 다음 makefile과 구성 파일을 수정하고 다시 컴파일하세요.