'2008/04'에 해당되는 글 3건

  1. 거지 2008/04/25
  2. 전화를 했어. 시작하고 처음으로. (6) 2008/04/10
  3. pxa270tku ramdisk booting (2) 2008/04/07

거지

from 숨막히는 아름다움 2008/04/25 21:02
사용자 삽입 이미지



그래...?


나도 충고 하나만 할까?


무슨 짓을 해도 바뀌는 건 없다...
라는 충고에도 멈추지 않는 사람들이 있었기에

세상은 그나마 여기까지 오게 된거야.




생각하는 대로 살지 않으면
사는 대로 생각하게 된다.



요즘은 단행본 보다는 웹툰->인기->단행본 의 트랜드인거 같다. 트레이스도 단행본 나왔던데 아주 퀄리티가 그냥.
어찌되었든 내가 관심있게 봤던 에피소드 거지. 아 빨리 스타워즈 시리즈 봐야 되는데 ㅜ
2007년 1월 25일 목요일 구름 적당함


사용자 삽입 이미지
-  '아직도 사진 속에서 저 깊은 피사체를 볼 때마다 가슴이 두근거린다. 그때 미처 깨닫지 못한
아름다움 속에서 한 걸음 한 걸음을 걱정하던 내가 부럽다. '

 


  어젯 밤에 야영을 했던 북평초등학교에는 당직실이 있었고 불도 켜져 있었다. 허락을 받을까 말까 무진장 고민하다 결국은 배낭이 무거워서 && 괜히 늦은 밤 귀찮게 해드리고 싶지 않아서 학교 구석에 잘 짱박혀 ( 어떻게 이보다 더 리얼한 묘사가 있을 수 있단 말인가 ) 텐트를 쳤다.
  밥을 해먹고 일기 쓰고 막 자려고 침낭을 펴는데, 아니 이 당직실에 계셔야 될 선생님이 따님과 함께 마실 나가셨다가 돌아오시는 길에 내 텐트를 발견한 듯한 발소리가 들리는 것이 아닌가!!! 안절부절.... 가까워지는 발걸음에 앉아서 당하느니 당당히 맞서겠다는 (응?) 굳은 각오로 이너텐트를 열고 변명을 하는데 오히려 추운데 괜찮겠냐고 침낭은 있냐고 걱정까지 해주시는 것이 아닌가. 아..아직 대한민국은 아름다운 곳이다. ㅜㅡ
  당직선생님이 돌아가시고 남은 일들을 처리하고는 자려고 침낭에 눕는데 또 발소리가 들려왔다!. 숨죽인 채 귀를 귀울여 위급상황에 대비했다.  한 명은 체중 25kg에 여자. 신발이 끌리는 소리로 추측해 보건대 샌들에 원피스. 한 명은 70kg 정도의 호리호리한 체격에 운동화! ( 평소에는 마을 입구 같은데 텐트 쳐 놓고 이런 놀이하면서 제발 그냥 지나가길 빌고 있다. ~_~;) 이번에는 그 선생님이 따님을 데리고서 따뜻한 녹차를 담은 물통을 가지고 나타나셨다. 물통은 가지고 가라고 하시길래 괜히 미안한 마음에 사양을 했지만 여행에 다 필요한 거라고 챙겨 주시길래 챙겨 넣었다. -_-v 득템. 그 녹차는 아침에 땡땡 얼기 일보직전 숭늉을 끓이는데 쓰였지만 너무나 고마운 분이 아니신가.
 아침 일찍 떠나는 길에 당직실 앞에 감사의 쪽지를 남기면서 부디 그 따님이 건강하게 자라나기를 빌어드렸다. 분명 그런 아버지 밑에서 자라는 딸은 내 걱정이 없어도 건강하고 멋진 사람이 되겠지.

  백봉령을 넘고 나서는 날씨가 더 추워져서 아침에 출발하기 전까지가 참 힘들다. 일어나려고 하면 침낭부터 차가워서 더 돌돌 말아 구르고 싶고, 어떻게 겨우겨우 일어나 밥을 먹고 텐트를 걷을라치면 이너텐트 외부와 폴대들 사이에 붙은 얼음을 때어 내는게 또 일이다. 이렇게 저렇게 꼼지락거리다 보면 어느새 일출. 내일 부터는 서둘러야 겠다. 날씨는 점점 더 추워질테니 무작정 퍼질 수 만은 없지. 어떻게든 출발하자. 그리고 걷다보면 언젠가는 끝나겠지.



사용자 삽입 이미지

- 정선을 나와서. 기찻길. 그냥 동굴이 아니라 잘 보면 구멍이 숭숭 뚫려 있다. 뭔가 은밀한 장소.


사용자 삽입 이미지

- 여기는 강 옆 도로였는데 수면과 차이가 상당했는데도 침수가 됐다는 걸 보면 우리 루사씨와
매미님이 쌔긴 쌨나 보다. ( 침수높이가 300m,  ㄷ ㄷ ㄷ )




사용자 삽입 이미지

- '떼돈을 번다의 어원' ㅋ


사용자 삽입 이미지
 

-  " 카메라 딜레이샷 최장 딜레이는 10초. 사진 한장을 위해 난 100m를 10초에 주파한다."


사용자 삽입 이미지
 

- " 비행기재 터널 입구.  이 사진의 왼쪽으로는 소나무재선충 방지를 위한 벌목이 행해지고 있었다.
여기까지 오는 길 곳곳에서 벌목작업이 진행 중이었는데 생각보다 규모가 엄청나다. 사실 가끔 뉴스
로 이슈화될 때 말고는 이런 작업이 벌어지고 있는지도 모르고 있었는데 소리없이 뭔가 체계적이고
계획적으로 재선충 방지대책이 시행 중인 거 같다. 이래저래 많이 까이는 정부지만 까이는 이면 어딘
가에서 움직이는 사람들도 내가 보고 생각하는 것 정도는 할 수 있을테니 그 사람들을 비난할 수
만은 없다. 또 조직에 속한 이상 시스템 상의 문제가 개인의 무능함으로 비춰질 수도 있는거니까.



사용자 삽입 이미지

- 뭔가 사기당하는 기분을 지울 수 없지만 '정상' 이라는 말에 또 한번 스스로 몰핀을 놓는다.



# 일일노트

@ 나전 북평초등학교
- 당직실 당직선생님이 녹차와 물통을 주심.

@ 반점재, 설치재

@ 정선
- 부모님과 홍규에 전화
- 청옥산. 고원 600마지기 이야기
- 사람들이 나에게 길을 많이 물어옴 ;;

@ 미탄 초등학교
- 쓰레기 매립지 선정에 대한 주민 반대 현수막들 걸려 있음.




-------------------------------------------------

총 걸은 시간 : 08:00 ~ 18:00 (약 32.5Km)
누적거리 : 260.3 Km 

사용여비 : 생수1 + 김1(12개) + 빵1 + 사이다1 + 빵3 + 부탄가스1 + 라면2 + 떡 1
               + A3 건전지1 + 휴지1 + 과자2 = 41,000 + 5,550 + 2,800 = 12,450원
누적여비 : 81,510원




pxa270tku ramdisk booting

from 라이눅스 2008/04/07 01:36
hibus 사의 xhyper270tku를 ramdisk로 부팅하는 방법을 알아보자


우선 bootp와 tftp 기본 설정이 되어 있다는 가정 하에서 rootfs를 이용한 파일시스템이 아닌
ramdisk 를 이용한 파일시스템을 사용하기 위해서는 커널 컴파일을 다시 해야 한다. ~_~;;
뭐 이미 ramdisk 관련 옵션을 활성화 시켰다면 문제는 쉬워질 수 있다. 그렇다 쉬워질 수도 있다.
자 그럼 세세한 부분으로 진행하기에 앞서 기본 베이스에 대해 간략한 복습을 선행해 보자.
일단 pxa270tku 의 경우 SDRAM 128M, flashROM 32M 의 기본 리소스를 가지고 있다. 부팅 시
이 flashROM에 write 해 놨던 걸 boot loader가 주어진 메모리 멥 구성에 알맞게 SDRAM 으로
kernel이나, rootfs, ramdisk 등등을 다운로드하는 하는 것이다. 여기서 체크!
오늘 우리가 뽀개려고 하는 ramdisk.
ramdisk는 말 그대로 ram을 disk처럼 쓰겠다는 것이다. 원래 주메모리인 SDRAM은 우리가 일반 디스크
를 사용하는 방법과는 약간 다른 명령어를 써서 접근해야 하는데 이 SDRAM의 일정 부분을 mount 해서
일반디스크와 같이 사용하겠다는 것이다. 당연히 disk 보다 SDRAM에 대한 접근과 처리가 빠르므로 우리가
의도한 작업들을 보다 빨리 처리할 수 있게 된다는 이야기다. 자 잡설은 여기까지

커널컴파일 시

'make xhyper270tku_defconfig' 를 통해 우리가 타켓으로 하는 270tku 보드에 기본적으로 필요한
옵션들을 쉽게 설정할 수 있다. 이렇게 베이스를 깔아 놓고

'make menuconfig'
로 들어가서 우선 'block device' . 여기서 아래 그림과 같이 옵션을 활성화 시켜 준다. ramdisk 용량은
물론 만들고자 하는 ramdisk 이미지를 고려해야 한다.

사용자 삽입 이미지


주의!!! 하지만, 한가지 주의해야 하는데 SDRAM 이 아닌 flashROM의 경우 ramdisk 영역으로 할당된 부분이
3M인 거 같다. 이거 자세한 건 메뉴얼을 좀 봐야 하겠지만, 나의 경우는 그러했다. 그래서 나중에
ramdisk 를 만들고 gzip 으로 압축할 때 이 크기를 고려해야 한다. 뭐 flashROM에 안쓰고 SDRAM
에서만 일회용으로 돌릴거라면 크게 문제는 없다. 만약 이렇게 돌리고 싶다면 boot loader에서 ramdisk
를 'tftp ramdisk_img ramdisk'로 SDRAM에 올리고 'load kernel'을 해서 flashROM의 kernel
이미지를 다운로드하고 boot 명령을 입력해 주면 재부팅없이 부팅이 진행된다.

이렇게 옵션을 활성화했으면 (모듈이 아니라 포함시켜야 한다. 그래야 initrd 옵션이 나온다.)
이젠 kernel command 를 수정해야 한다. 메인메뉴의 두 번째

'General Setup'


사용자 삽입 이미지

맨 끝에 내려가면 설정을 바꿀 수 있는데 기본 값은

'console=ttyS0,115000 console=tty0 mem=128M root=1F02 rw'

뭐 이런 식이다. 여기서 신경써야 할 부분은 root 부분인데 root filesystem이 있는 장소를 가르키도록 설정해야 한다. 1F02이란 값은 MTD에 의해서 (여기에 관해서는 주제가 다르므로 따로 언급하지 않겠다. ) 나뉘어진 SDRAM 영역들 중 3 번째 시작주소를 지시하는 거 같다.(00,01,02) 램디스크 ( 더 자세히는 initrd 옵션) 옵션 설정없이 기본 설정으로 커널컴파일하면 SDRAM의 구조가 bootloader , kernel, rootfs 이런 식으로 구성되어 진다. 따라서 일반적인 경우 1F02이란 rootfs 의 시작주소를 가르키므로 정상적인 설정이라 할 수 있다. 하지만 우리는 ramdisk를 사용하기 위해 옵션 설정을 했기 때문에 (더 자세히는 initrd) 다시 컴파일하면 SDRAM 구조가 bootloader, kernel, initrd, user 이런 식으로 바뀌게 된다. ( initrd = initial ram disk. 참고로 initrd 옵션이 켜지면 rootfs 대신 initrd, user 영역이 생긴다.  ) - 그렇다면 당연히 'root=1F02' 값을 수정해 주어야 하는 것이다. 만약 이 값을 수정해 주지 않으면 부팅 과정 중 기껏 ram disk를 마운트 했으면서 다시 rootfs주소에 접근해 또 파일시스템을 마운트하려고 한다. 이 경우 파일시스템 마운트 에러가 발생한다. 자세한 에러 메시지는 미처 캡처하지 못했다. -
( 이 부분에서 삽질을 좀 한 사람이라면 모순을 발견할 수 있을 것이다. ~_~;; initrd 를 포함시켰을 때 SDRAM의 구조가 bootloader, kernel, initrd, user 라면 root=1F02 그냥 써도 initrd를 읽어야 하지 않느냐라고 생각할 수 있는데... 그러게나; 미처 이것저것 테스트해 볼 시간이 없어서 확실하게 답을 해주지 못하겠다. 이런 무책임한 ㅜ. 이 문단은 수정해야 한다.  )


아무튼 이 'root= ' 값을 ramdisk에 맡게 수정해 주어야 하는데 간단하게

root=/dev/ram0

라고 수정해 주면 된다. 뒤애 숫자 제로다. ( 말이 쉽지 이거 몰라 몇시간을 삽질 했는지 )
좋다. 수정했다고 하자. 만약 여기까지 하고 컴파일 후 부팅을 하다면


Warning: unable to open an initial console.
Kernel panic - not syncing: No init found. Try passing init= option to kernel.


이와 같은 에러메시지를 볼 수 있다. 참. 먹고 살긴 힘들다. -_-
대충 때려 맞춰보면 init 명령을 찾을 수 없다는 말인데 일반 데탑의 경우는 init=/sbin/init 이런 식으로
해결 가능하다고 한다. ( 리눅스에서 init는 pid 1번으로 모든 프로세스의 부모가 된다. )
하지만 나의 경우 이렇게는 안됐었고, "root=/dev/ram0"만으로는 뭔가 부족하다는 생각에 약간 추론과 검색을
통해 부가옵션을 알아냈다.
원래 데스크탑 리눅스 부트로더 LILO의 경우 램디스크로 부팅시 initrd=ramdisk_img 이런 식으로
램디스크 이미지를 지정해 주는데 지금과 같은 경우 SDRAM에 올라가 있는 상태이므로 주소와 offset을 지정해 주어야 한다.


사용자 삽입 이미지


나의 경우는 bootloader에서 ramdisk를 SDRAM에 fusing할 때 ( ' tftp ramdisk_img ramdisk ')
 그 쓰기 시작하는 주소가 0xa1000000 이었다. 그리고 쓰는 용량은 3017611 byte. 그래서
initrd=0xa1000000,3017511 과 같이 입력해 주었다. 자 그럼 최종적인 kernel command 를 살펴보자


" console=ttyS0,115000 console=tty0 mem=128M root=/dev/ram0 rw initrd=0xa1000000,3017511 keepinitrd "

사용자 삽입 이미지

keepinitrd 는 나도 잘 모르겠고, 시간 관계상 이걸 빼놓고 테스트 해보지 못했다. 그리고 kernel command를 적을 때 쉼표로 연결되는 부분에는 공백이 포함되서는 안된다. 쉼표 다음이나 이전에 공백이 포함되면 에러가 발생한다고 한다.

대충 이렇다. 그렇다 여기까지가 키트에 동봉된 메뉴얼에서 빠져있는 내용이다. 자 그럼 행운을 빈다.



제가 이 테스트에 사용한 램디스크이미지는
hybus.co.kr -> 자료실 -> BULVERDE -> Xhyper270A ramdisk
에 올라와 있는 10M 짜리입니다. 참고하세요~