이번 놀고 있는 연구실 컴퓨터에 있는 Cent OS에 있는 커널 버전이 낮은 관계에다 평소에 많은 자원들을 사용하지 않기때문에 커널 컴파일을 하게 되었다.

현재, 이 글을 쓰고 있는 시점에서 Cent OS 5.5 커널 버전은 2.6.18대이다. (현재 커널 버전과 차이가 많이 남)


[root@localhost ~]$ cat /proc/version

Linux version 2.6.18-194.8.1.el5 (mockbuild@builder17.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Thu Jul 1 19:07:06 EDT 2010

[root@localhost ~]$


또는 uname -a 로 현재 커널 버전을 알 수 있다.


[root@localhost linux-2.6.35]# uname -a

Linux localhost 2.6.18-194.8.1.el5 #1 SMP Thu Jul 1 19:07:06 EDT 2010 i686 i686 i386 GNU/Linux

[root@localhost ~]$


현재, 리눅스 커널 정보를 알아보려면 finger @ftp.kernel.org 로 알수 있다.


[studioego@localhost ~]$ finger @ftp.kernel.org

The latest linux-next version of the Linux kernel is:         next-20100816

The latest mainline 2.6 version of the Linux kernel is:       2.6.36-rc1

The latest snapshot 2.6 version of the Linux kernel is:       2.6.35-git17

The latest stable 2.6.35 version of the Linux kernel is:      2.6.35.2

The latest stable 2.6.34 version of the Linux kernel is:      2.6.34.4

The latest stable 2.6.33 version of the Linux kernel is:      2.6.33.7

The latest stable 2.6.32 version of the Linux kernel is:      2.6.32.19

The latest stable 2.6.31 version of the Linux kernel is:      2.6.31.14

The latest stable 2.6.27 version of the Linux kernel is:      2.6.27.51

[studioego@localhost ~]$


저는 위에서 안정화된 버전중에서 최신버전인 2.6.35.2 를 받아 설치하게 되었습니다.

커널은 git을 받아 설치하게 되었다.


[root@localhost src]# pwd

/usr/src

[root@localhost src]# git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.35.y.git linux-2.6.35


커널을 받고 나선 make menuconfig && make modules && make modules_install && make headers_install &&  make install 로 설치를 하였습니다.

아래와같이 make install을 하고 나서 아래와 같이 bzImage를 /boot 로 복사를 하고 grub에 이미지를 생성합니다. 이제 커널 컴파일이 끝나고 컴파일된 커널을 사용하게 되었습니다.


[root@localhost linux-2.6.35]# make install

sh /usr/src/linux-2.6.35/arch/x86/boot/install.sh 2.6.35.2 arch/x86/boot/bzImage \

                System.map "/boot"

[root@localhost linux-2.6.35]#



그러나 재부팅후에 아래와 같은 커널 패닉이 생겼다.


insmod: error inserting '/lib/dm-region-hash.ko': -1 File exists

Reading all physical volumes. This may take a while....

Volume group "VolGroup00" not found

mount: Could not find filesystem '/dev/root" 

setuproot: moving /dev failed

setuproot: error mounting /proc failed

setuproot: error mounting /sys failed

kernel panic - not syncing Attemped to kill init!

Pid:1, comm: init not tained 2.6.35.2 #1

(...)


커널 패닉이 일어나서 멸망하였습니다.


참고: CentOS 5.4: installing new kernel 2.6.32.9 guide http://funky-dennis.livejournal.com/3290.html 

위의 문제를 해결하기 위해 위의 내용을 보고 삽질한 끝에, 다시 컴파일 초기화 후, .config파일 불려들여 컴파일을 하게 함.

[root@localhost linux-2.6.35]# make clean

[root@localhost linux-2.6.35]# make mrproper

[root@localhost linux-2.6.35]# cp /boot/config-현재커널 버전 ./.config

[root@localhost linux-2.6.35]# make menuconfig


현재 구동중인 커널의 환경정보를 기준으로 커널을 컴파일 하기 위하여 cp /boot/config-현재커널 버전 ./.config 를 함

메뉴 하단에 Load an Al ternate Configuration File을 선택하였다.

.config 파일이 입력되어 있는데, 이를 선택하여 현재 커널 환경을 불러들였음.

이후 General Setup ---> enable deprecated sysfs features which may confuse old usersp 를 Y키를 눌러 *로 활성화 시킨다.

이후 저장하여 메뉴 환경 설정 메뉴에서 저장하고 나왔음

컴파일 완료 재부팅을 하니 좋은 결과가 나왔음.


[root@localhost src]# cat /proc/version

Linux version 2.6.35.2 (root@localhost) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Tue Aug 17 02:26:27 KST 2010

[root@localhost src]# uname -a

Linux localhost 2.6.35.2 #1 SMP Tue Aug 17 02:26:27 KST 2010 i686 i686 i386 GNU/Linux

[root@localhost src]#

그러나 문제가 생김. 2.6.35에서 kernel BUG at arch/x86/mm/highmem_32.c:45

highmem_32.c 의 45번째줄에서 메모리를 잘못 참조하는 에러가 나옵니다. 

2.6.35.2를 사용하다 보니 아래와 같은 메시지가 뜨면서 Kernel Panic이 일어납니다.


Message from syslogd@ at Tue Aug 17 15:04:27 2010 ...

localhost kernel: ------------[ cut here ]------------


Message from syslogd@ at Tue Aug 17 15:04:27 2010 ...

localhost kernel: invalid opcode: 0000 [#2] SMP


Message from syslogd@ at Tue Aug 17 15:04:27 2010 ...

localhost kernel: last sysfs file: /sys/devices/pci0000:00/0000:00:1c.3/0000:02:00.0/irq


Message from syslogd@ at Tue Aug 17 15:04:28 2010 ...

localhost kernel: Process sh (pid: 3941, ti=f51c8000 task=f6b936c0 task.ti=f51c8000)


Message from syslogd@ at Tue Aug 17 15:04:28 2010 ...

localhost kernel: Stack:


Message from syslogd@ at Tue Aug 17 15:04:28 2010 ...

localhost kernel: Call Trace:


Message from syslogd@ at Tue Aug 17 15:04:28 2010 ...

localhost kernel: Code: e8 57 98 06 00 8b 0d 00 b0 8c c0 64 a1 a4 ef 8a c0 6b c0 29 8b 15 ac 62 81 c0 8d 2c 30 8d 04 ad 00 00 00 00 29 c1 83 39 00 74 04 <0f> 0b eb fe 89 f8 83 e7 01 8b 35 00 31 92 c0 74 13 23 05 ac 4a


Message from syslogd@ at Tue Aug 17 15:04:28 2010 ...

localhost kernel: EIP: [<c0420638>] kmap_atomic_prot+0x6e/0xad SS:ESP 0068:f51c8ea8


Broadcast message from root (pts/1) (Tue Aug 17 15:21:20 2010):


The system is going down for reboot NOW!



결국은 이 문제가 해결 못한것을 알고, 이전 커널 버전인 2.6.27로 다시 컴파일 해서 설치하였습니다.


다시 2.6.27을 받아 설치 


[root@localhost src]# git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.27.y.git linux-2.6.27

위와 같이 

[root@localhost linux-2.6.27]# cp /boot/config-현재커널 버전 ./.config

[root@localhost linux-2.6.27]# make menuconfig

그리고 나서 .config파일 불러들여 저장후

[root@localhost linux-2.6.27]# CONCURRENCY_LEVEL=3 make && make modules && make modules_install && make headers_install &&  make install

컴파일을 하였습니다.


(...)

sh /usr/src/linux-2.6.27/arch/x86/boot/install.sh 2.6.27.51 arch/x86/boot/bzImage System.map "/boot"

이 나오고 Linux 2.6.27의 컴파일이 완료하였습니다. 이후 재부팅을 하였습니다.


[root@localhost linux-2.6.27]# reboot



결과, 성공!

[root@localhost ~]# uname -a

Linux localhost 2.6.27.51 #1 SMP Tue Aug 17 17:32:26 KST 2010 i686 i686 i386 GNU/Linux

[root@localhost ~]# cat /proc/version

Linux version 2.6.27.51 (root@localhost) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Tue Aug 17 17:32:26 KST 2010

[root@localhost ~]#


Linux Kernel 2.6.27.51 로 간신히 올렸음 -_-;;


오늘의 교훈: 최신 버전이라고 다 좋은 것도 아님. 아주 최신 버전에서 버그가 나올 수 있다.



Buy me a coffeeBuy me a coffee

버그를 마시자(Drink Bugs) 발표가 2010년 6월 25일이 있었습니다.


발표자료(pdf파일) - 학생 vs 회사내 보안담당자 vs 보안회사종사자

위의 발표자료는 보안 쪽으로 가는 사람이 아니라도 IT종사를 원하는 사람들에겐 볼만한 자료입니다.

첫페이지부터 암울한 기운이 풍겨지며 계속 암울한 이야기만 나옵니다. (한국 IT업계 종사자들의 대부분의 현실이 암울한건 사실)


발표자료에선 본인이 미래에 뭘 할지?, 보안쪽에서 무엇을 얻고 싶은지에 대해 목표를 세우고, 어떻게 행동할까? 기회비용과 노력은 어떻게? 등등의 미래에 대한 설계를 결론 부분에서 말합니다. 

(쉽게말해서 인생 설계를 어떻게 할지에 대한 대안 정도?)

위의 내용은 보안 분야뿐만 아니라 IT분야, 다른 분야에서도 대부분 적용할 수 있는 말입니다.

IT종사 희망자인 저로서는 인생 설계를 어떻게 해야할지 결심을 서게 하는 발표자료입니다.



아래는 김휘강 교수님의 강의 영상입니다. Bugtruck에서 공개된 자료를 링크합니다..

김 휘강 교수님의 강의 영상 입니다^^

http://video.mgoon.com/3686949  - 1
http://video.mgoon.com/3686951  - 2

Buy me a coffeeBuy me a coffee

모토로이를 구입하면서 여러가지 버그들이 많이 나타났지요.

툭별히 음악 어플리케이션에서 음이 계속 튀는 현상, 라디오듣다 나오는 화이트 노이즈, 그리고 카메라 어플리케이션의 의 불안정성(사진 찍다 메모리 부족으로 튕김+ 퍼포먼스 문제)으로 최초의 안드로이드폰에 대해 실망을 많이 하게 되었습니다.

며칠 있다 2월 18일, SKT에서 새로운 모토로이 업데이트가 있다고 알려주더군요.

이번 업데이트에는 Tstore가 들어가는 루머가 안드로이드펍에 돌아다녔다만... 한번 실험해보기로 하였습니다.


아래는 모토로이를 구입한 2월 11일에서 일주일이 지난 2월 18일에 모토로이 펌웨어 업그레이드를 진행하는 모습을 사진으로 담았습니다.

모토로이에서 시스템 업데이트를 누르려고 합니다. 모토로이의 초기버전은 Android OS 2.0.1 - STSKT_N_79.11.29R1 입니다.

가능한 업데이트가 나오군요. SK텔레콤에서 업그레이드 해야한다고 안내 메시지가 나옵니다.이걸 보면 안드로이드 2.1로 펌웨어가 매우 쉽다는걸 알 수 있죠.

다운로드가 끝난후 설치하라는 메시지가 나옵니다,

이번에 SKT에서 내놓은 모토로이 펌웨어 설치중이랍니다.

드디어 업데이트가 성공했다는 메시지가 나옵니다.

업데이트를 했을뿐인데... 모토로이 구입할때 없던 Tstore가 박혔습니다. SKT에서 안드로이드를 손보았군요. ㅠㅠ

이번에 펌웨어 업데이트로 생긴 Tstore에 접속중입니다. wifi로 잡힌 NESPOT으로 접속하고 있습니다.

모토로이에 설치된 Tstore에 무료 어플을 다운로드 중입니다.

이런 영어단어 실행하다... WIPI 컨텐츠가 돌아가지 않는 버그가 생깁니다. (안드로이드폰에 SKAF가 돌아가기때문에 WIPI컨텐츠가 돌아감)

펌웨어 업그레이드 후 버전이 STSKT_N_79.11.29R1에서 STSKT_N_79.11.31R로 바뀌었군요.


모토로이에 펌웨어 업데이트를 한 후 결과. 3줄 요약

  1. 버전이 STSKT_N_79.11.29R1에서 STSKT_N_79.11.31R로 바뀌면서 모토로이에서 보였던 치명적인 버그들이 많이 사라짐. (특히 카메라와 음악쪽 버그들이 많이 사라져 만족스럽게 쓸 정도가 되었습니다.)
  2. 모토로이 안에 있던 SKT의 SKAF 프로세스가 올라갔지만 실제로 뭐하는 기능인지 몰랐다... 이번 업데이트로 제대로 SKAF의 기능을 제대로 발휘되는... SKAF의 각성!
  3. 역시나 SKT입니다. WIPI컨텐츠를 안드로이드폰에 팔려고 Android OS에 WIPI를 올린 SKAF를 올려 WIPI컨텐츠를 쓸수 있게 되었습니다. 좋은 말로는 WIPI의 우수한 컨텐츠를 안드로이드에서 맛볼 수 있다는점. 나쁜 말로는 이걸로 순정 안드로이드 폰을 느끼기 힘들어지고, 속도가 느려질거라는 우려가 있습니다. 이건 제 의견입니다. 다만 SKT는 Tstore의 많은 컨텐츠를 팔아야 하는 사업자이니 그럴 수 있다고 생각하고 있습니다.

    이번 펌웨어 업데이트에선 스마트폰인 안드로이드폰에서 WIPI가 들어간 피쳐폰을 쓸수 있을법한 느낌이 많이 들었습니다.

ps. SKT는 아직도 고객보단 돈이 우선인 회사 이미지가 계속 떠올라가군요. @.@ 

ps2. 모토로이가 들어간 Android OS의 장점인 Google 웹 서비스를 그대로 휴대폰에서 느끼는 것 처럼, 모토로이에 들어간 Tstore에선 SKT의 일반폰에 돌아갈 WIPI컨텐츠를 그대로 스마트폰인 모토로이에 느낄수 있습니다.



Buy me a coffeeBuy me a coffee

이번에 Channy님이나 A2님의 블로그에서 Mozilla FireFox 3 Beta 3이 나왔다는 소식을 듣고 나서 설치해보았습니다.
Mozilla Firefox 3 beta 3 화면

Mozilla Firefox 3 beta 3를 깔고 나서 나온 처음 화면입니다.


Mozilla Firefox 정보

Mozilla Firefox 버전 3.0b3

Firefox 2.0을 쓰다가 이번 버전을 쓰는데 몇가지 달라진 점들이 있군요.
예전보다 UI가 깔끔해진 것 같습니다. Back 버튼을 더 크게 만들어서 쓰는데 편리하게 한 점이 있더군요.
Firefox 2.0.0.11버전을 쓰다가 이번 Firefox 3.0 Beta 3를 써보니까 예전버전보다 체감속도가 엄청 빠른듯 합니다. 랜더링 속도가 빨라졌고 메모리를 잡아먹는게 낮아져서 가볍고 빠르군요.
주로 쓰던 웹브라우저를 Mozilla Firefox 2.0에서 Mozilla Firefox 3.0 Beta 3으로 바꿀까 생각도 해보았습니다.

파이어폭스3 베타버전 다운로드 받기: http://www.mozilla.com/en-US/firefox/all-beta.html

파이어폭스3 베타3 자세히 보기: http://mozillalinks.org/wp/2008/02/a-deep-look-to-firefox-3-beta-3/
(영문 사이트이지만 이미지만 봐도 이번 베타버전의 새로운 기능들을 확인할 수 있습니다.)
위의 글을 한글로 번역한 글도 있습니다. 정승원님께서 번역을 하셨습니다.
파이어폭스3 베타3 한글 번역판 자세히 보기: 파이어폭스 3 베타 3 미리 보기 (http://jeongsw.tistory.com/333)

Firefox 3 베타 3 버전은 미리 체험 하실 분들은 다운로드 링크에서 다운로드 한 다음 설치하시기 바랍니다. Channy님의 말씀처럼 "일반 사용자가 아닌 전문가에게만 설치 추천!"입니다. 능력이 있으면 미리 써보시기 바라면서 Firefox3은 생각보다 버그가 꽤 있더군요 -_-;;
Firefox3 Beta3을 바꿀려는 생각은 안정화 하고 나서 정식버전이 나오고 나서 바꿀 계획입니다.
빨리 Firefox 3.0 정식버전이 나오면 좋겠지만 그 다음은 베타4가 기다리고 있습니다. 언제 안정화가 될련지가 궁금하네요.

ps. Tistory를 쓰다가 버그(?)을 몇개 포착함.
Tistory 로그인 화면이 깨진다. (이건 TIstory에서 웹표준을 안지켰거나 아님 웹브라우저가 베타라서 아직 FF1,FF2처럼 안정화되지 않은 것 같음.

Mozilla Firefox 2 2.0.0.11 에서 본 Tistory로그인 화면
Mozilla Firefox 2 2.0.0.11 에서 본 Tistory로그인 화면

Mozilla Firefox 2 2.0.0.11 에서 본 Tistory로그인 화면입니다.


Mozilla Firefox 3 Beta3 에서 본 Tistory로그인 화면
Mozilla Firefox 3 Beta3 에서 본 Tistory로그인 화면

Mozilla Firefox 3 Beta3 에서 본 Tistory로그인 화면입니다. 로그인 그림 위치가 깨진 것을 확인할 수 있습니다.


Tistory에서 글을 쓰다가 사진을 올리려고 했더니 버그가 몇몇개 있더군요.
사진을 올리려고 이 사진을 올리려고 했습니다.
사용자 삽입 이미지

사진을 올리려고 하려고 했는데 사진이 올라가지 않더군요
(참고사진보기)
사용자 삽입 이미지 사용자 삽입 이미지 사용자 삽입 이미지

사진을 올리는 과정을 하고 나서 결과는???
사용자 삽입 이미지

Mozilla Firefox 3 Beta 3에서 사진이 올라가지 않았다.

그림삽입하는데 HTML모드에선 잘되더군요.

JAVA Script부분 해석하는데에서 에러가 있는 듯 합니다.
마우스로 드래그한 곳을 텍스트상자를 넣으려고 하면 드래그 한 곳이 사라지는 버그가 있습니다.
(참고사진보기)
사용자 삽입 이미지 사용자 삽입 이미지

마우스로 드래그한 곳을 인용구를 넣으려고 하면 드래그 한 곳이 사라지는 버그가 있습니다.
(참고사진보기)
사용자 삽입 이미지 사용자 삽입 이미지

다만, HTML모드에서는 정상적으로 작동이 됩니다.
제 생각에는 JAVA Script 자체가 오류이거나 아님 Firefox 3에서 JAVA Script를 인식할때 나오는 버그 같습니다.
이런 버그글은 원래 한국 모질라 커뮤니티 사이트에 올려야 하는데 블로깅 하다 알아내서 여기에 우선 올립니다.
Buy me a coffeeBuy me a coffee

+ Recent posts