Linux - 2.6.28 커 널 이식 및 Yaffs 파일 시스템 제작 for FL 2440 (1)
교차 컴 파일 도구: arm - linux - gcc - 3.3.2
컴 파일 플랫폼: rhel - server - 6.0
Linux 커 널: linux - 2.6.28.7
busybox-1.1.3
파일 시스템: Yaffs 2
파일 시스템 제작 도구:http://arm9download.cncncn.com/linux/mkyaffs2image.tgz
내 핵 제작
1. 커 널 에 패 치 를 쳐 서 커 널 이 Yffs 2 파일 시스템 을 지원 합 니 다.
최신 드라이버 다운로드http://www.aleph1.co.uk/cgi-bin/viewcvs.cgi/yaffs2.tar.gz?view=tar
Yffs 2 와 linux - 2.6.28.7 을 같은 디 렉 터 리 에 두 고 실행:
tar zxvfyaffs2.tar.gz
cd yaffs2
./patch-ker.sh c ../linux-2.6.28.7
성공 후 인쇄 정보:
Updating /file/fl/linux-2.6.28.7/fs/Kconfig
Updating /file/fl/linux-2.6.28.7/fs/Makefile
2. 기계 코드 수정.커 널 디 렉 터 리 에 들 어가 서 기계 코드 를 수정 하 는 것 은 bootloader 의 기계 코드 와 일치 합 니 다 (FL 2440 은 193)
[root@ localhost linux-2.6.28.7]#vi arch/arm/tools/mach-types
우선 다음 줄 을 삭제 합 니 다:
s3c2410 ARCH_S3C2410 S3C2410 182
그리고 다음 줄 을:
s3c2440 ARCH_S3C2440 S3C2440 362
다음으로 변경:
s3c2440 ARCH_S3C2440 S3C2440 193
3. 타 겟 보드 machine, 컴 파일 러, 컴 파일 러 경 로 를 지정 합 니 다.Makefile 파일 수정, CROSS시스템 의 교차 컴 파일 러 주소 에 대응 하 는 COMPILE
[root@ localhost linux-2.6.28.7]# vi Makefile
두 줄:
ARCH ?= $(SUBARCH)
CROSS_COMPILE ?=
다음 두 줄 로 변경:
ARCH ?= arm
CROSS_COMPILE ?=/usr/local/arm/3.3.2/bin/arm-linux-
4. devfs 파일 관리자 의 지원 을 추가 합 니 다.
[root@ localhost linux-2.6.28.7]#vi fs/Kconfig
다음 줄 찾기:
menu "Pseudo filesystems"
이 줄 뒤에 다음 내용 을 추가 합 니 다:
config DEVFS_FS
bool "/dev file system support(OBSOLETE)"
default y
config DEVFS_MOUNT
bool "Automatically mount atboot"
default y
depends on DEVFS_FS
5. 전진 주파 수 를 수정 합 니 다.파일 arch / arm / mach - s3c 2440 / mach - smdk2440. c 수정
[root@ localhost linux-2.6.28.7]#vi arch/arm/mach-s3c2440/mach-smdk2440.c
다음 줄 처럼:
s3c24xx_init_clocks(16934400);
다음으로 변경:
s3c24xx_init_clocks(12000000);
6. MTD 구역 을 수정 합 니 다.파일 arch / arm / plat - s3c24xx / common - smdk. c 를 엽 니 다. 두 곳 을 주의 하 십시오.
1. bootloader 파 티 션 과 같 아야 합 니 다.
2. 파일 시스템 fsyaffs 는 색인 번호 가 3 인 네 번 째 구역 에 있어 야 합 니 다.
다른 일부 파 티 션 정 보 는 받 지 않 아 도 됩 니 다. 다음 과 같 습 니 다.
[root@ localhost linux-2.6.28.7]#vi arch/arm/plat-s3c24xx/common-smdk.c
static struct mtd 찾기partitionsmdk_default_nand_part [] 의 구조 체, 내용 을 다음 과 같이 수정 합 니 다.
[0] = {
.name = "boot",
.size = 0x00020000,
.offset = 0
},
[1]= {
.name = "bootParam",
.size = 0x00060000,
.offset = 0x00020000,
},
[2] = {
.name = "Kernel",
.size = 0x00300000,
.offset = 0x00500000,
},
[3] = {
.name = "fs_yaffs",
.size = 0x03c00000,
.offset = 0x00800000,
},
[4] = {
.name = "eboot",
.size = 0x00080000,
.offset = 0x04400000,
},
[5] = {
.name = "WINCE",
.size = 0x03b80000,
.offset = 0x04480000,
}
7. ECC 검 사 를 닫 습 니 다.파일 드라이버 / mtd / nand / s3c2410. c 수정
[root@ localhost linux-2.6.28.7]#vi drivers/mtd/nand/s3c2410.c
다음 줄:
chip->ecc.mode = NAND_ECC_SOFT;
다음으로 변경:
chip->ecc.mode = NAND_ECC_NONE;
8. nandflash 드라이브 를 수정 하고 K9F1G 08 의 nandflash 를 지원 합 니 다.파일: drivers / mtd / nand / nandbbt.c
[root@ localhost linux-2.6.28.7]#vi drivers/mtd/nand/nand_bbt.c
아래 두 부분 을 수정 하 다.
static struct nand_bbt_descrlargepage_memorybased = {
.options = 0,
.offs = 0,
.len = 1, / / 원시 값 2, 1 로 변경
.pattern = scan_ff_pattern
};
static struct nand_bbt_descrlargepage_flashbased = {
.options = NAND_BBT_SCAN2NDPAGE,
.offs = 0,
.len = 2, / / 원시 값 2, 1 로 변경
.pattern = scan_ff_pattern
};
9. s3c 2410 의 기본 설정 을 config 파일 에 기록 합 니 다.
/ linux - 2.6.28.7 / arch / arm / configs 디 렉 터 리 에서 s3c 2410 찾기defconfig 파일 을 / linux - 2.6.28.7 개의 디 렉 터 리 에 두 고 명령 을 실행 합 니 다: make s3c 2410defconfig
[root@ localhost linux-2.6.28.7]#make s3c2410_defconfig
HOSTCC scripts/basic/fixdep
HOSTCC scripts/basic/docproc
HOSTCC scripts/basic/hash
HOSTCC scripts/kconfig/conf.o
HOSTCC scripts/kconfig/kxgettext.o
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/lex.zconf.c
SHIPPED scripts/kconfig/zconf.hash.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
fs/yaffs2/Kconfig:179: unknownoption "boot"
make [1]: * * [s3c2410 defconfig] 오류 1
make: * * [s3c2410 defconfig] 오류 2
이상 오류 가 발생 했 습 니 다. 주로 패 치 로 인해 fs / yaffs 2 / Kconfig 의 179 줄 을 수정 하고 boot 를 bool 로 변경 합 니 다. 즉, 다음 과 같이 변경 합 니 다.
bool "Disable yaffs2 blockrefreshing"
[root@ localhost linux-2.6.28.7]#make s3c2410_defconfig
#
# configuration written to .config
#
10. 커 널 설정, System Type 중 S3C 2440 에서 다음 내용 만 선택 하면 됩 니 다.
[root@ localhost linux-2.6.28.7]#make menuconfig
CPU 설정 (S3C 2440 Machines 와 같은 등급 의 다른 항목 과 하위 항목 은 선택 하지 않 음 을 기억 합 니 다)
System Type --->
S3C2440Machines --->
[*] SMDK2440
[*] SMDK2440 with S3C2440 CPU module
yaffs 2 설정
File systems --->
[*]Miscellaneous filesystems --->
<*> YAFFS2 file system support
-*- 512 byte / page devices
-*- 2048 byte (or larger) / page devices
[*] Autoselect yaffs2 format
[*] Cache short names in RAM
11. 마지막 으로 커 널 을 만든다.
[root@WEB188 linux-2.6.33]#make zImage
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bring application to foreground with a keypressFrom Forum Nokia Wiki Inorder to capture the keys while you application under background you've to override CCoeAppUi::H...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.