자신에게 필요한 롬을 만드는 방법에 대해 기술하고 있다.
자우르스는 몇가지 롬이 있다. 그중에 대표적인 것이 Sharp 롬, Cacko 롬, PdaX 롬등이 있다. 이 외에도 몇가지 롬들이 더 있다.

롬이란 무엇인가

하나의 운영체제라고 봐도 무방하다. 자우르스의 저장공간은 flash 와 마드로 구성되어 있다. 롬을 설치할 때, 바로 여기에 설치된다.
일단 여기서는 가장 많이 사용되고 있는 Cacko 롬을 기준으로 설명할 것이다.
기존의 Cacko 롬을 보면, 몇 개의 파일들로 이루어져 있음을 알 수 있다.

  1. hdimage1.tgz : 마드에 설치되는 파일들이 담겨있다.
  2. initrd.bin : flash 에 설치되는 파일들이 담겨있다.
  3. mversion.bin : 아직 잘 모르겠다.
  4. readme.txt : 설치방법을 기술한 파일이다.
  5. updater.sh : 롬을 설치하기위한 스크립트 파일이다.
  6. zImage.bin : 커널 이미지이다.

Cacko 롬 분석

여기서는 hdimage1.tgz 과 initrd.bin 파일만 설명하도록 하겠다.
먼저 hdimage1.tgz 부터 설명하겠다. 이 파일은 용량도 제일 클 뿐더러, 가장 간단하게 수정이 가능하도록 되어 있다.
이 파일은 압축이 되어 있는 데, 롬이 설치되면 마드의 /hdd1, /hdd2, /hdd3 에 각각 복사되어 진다.
그래서 이 파일을 수정하면, 위의 디렉토리들을 수정할 수 있다.
/hdd1 은 ro 로 마운트되어진다. /hdd2 와 /hdd3 는 rw 로 마운트된다.
이 파일 수정시에 유의할 점은 심볼릭 링크와 각 파일들의 경로를 잘 지정해주어야 한다.

initrd.bin 파일은 flash 에 복사되는 파일이다. 이 파일은 jffs2 파일 시스템으로 만들어져 있기 때문에 마운트하기 위해서는 리눅스가 설치된 호스트가 필요하다.

나의 경우, VMware 에 레드햇 9 를 설치했다. 이때 하드를 hda 로 선택하도록 한다.
만일 sda 로 할 경우, 커널 컴파일시 패닉이 날 수 있다!!
기본적인 설치상태에서는 jffs2 파일 시스템을 마운트 할 수 없다. 그래서 커널 2.4.21 을 받아서 컴파일을 했다. 컴파일 옵션은 레드햇 9 의 바닐라 커널의 옵션을 그대로 사용했고, 또한 MTD 와 FileSystem 부분에서 jffs2 를 추가로 모듈화 시켰다.
이때 MTD 에서는 모든 메뉴와 하부 메뉴를 모두 모듈 선택하도록 한다.
이제 마운트를 하기위해 모듈을 올릴 차례다.

# modprobe mtdcore
# modprobe jffs2
# modprobe mtdram total_size=32768 erase_size=256
# modprobe mtdchar
# modprobe mtdblock
# lsmod
# mknod /dev/mtdblock0 b 31 0

이제 마운트 시킬 .bin 파일을 준비하고, 다음을 실행한다.

# dd if=initrd.bin of=/dev/mtdblock0
# mkdir rootfs
# mount -t jffs2 /dev/mtdblock0 ./rootfs
# df -h
# cd ./rootfs

현재로 이파일에 대한 연구가 아직 덜 된 상태이다.

  • computer/embedded/자우르스_활용하기_-_6.나만의_롬만들기.txt
  • Last modified: 3 years ago
  • by likewind