Autoconf 로 Makefile만들기 예제 링크

 autotut: Using GNU auto{conf,make,header}

http://www.seul.org/docs/autotut/ 


Buy me a coffeeBuy me a coffee

HTC DesireHD의 엄청난 부팅속도를 체험할수 있는 동영상이 나왔습니다.

iPhone4와 Desire HD를 동시 부팅하였을때에 Desire HD가 제일 먼저 부팅된다는 걸 보여주고 있습니다.

Desire HD에 어떻게 부팅속도를 빠르게 했을까요? 궁금합니다.


HTC Desire HD vs iPhone 4 Startvorgang

ps. 참고로 독일인이 독일어로 촬영한거라 부팅영상만 보고 올리는겁니다 ---;;
Buy me a coffeeBuy me a coffee


2007/12/24 - [일상다반사] - 안경을 바꾸었습니다.

2007년 12월 24일부로 안경대와 안경알접합부위가 반으로 쪼개져서 안경테와 안경알을 새로 맞쳤습니다.

2007년 12월 24일에 새로 맞춘 안경 사진!

그 후 안경을 쭉 사용하다 안경에 기스가 엄창 났었고, 코딩이 많이 벗여졌더군요.

2010년 9월 8일부로 2007년 12월 24일부터 써온 안경테에 있던 안경알을 바꿨습니다. 

그동안 기스가 엄청 나고 코팅이 많이 벗여져서 눈에서 보이는게 흐릿흐릿하였습니다. 안경알을 바꾸니 세상이 매우 맑고 깨끗하고 크고 아름답게 보이군요.


2010년 9월 8일에 새로 맞춘 안경알!


안경알 새로 맞추니 정말 작업 효율이 늘어나는 걸 느끼게 됩니다.


Buy me a coffeeBuy me a coffee

http://twtkr.com/view.php?long_id=L65ZR

대만과 조선을 접수하고, 러일전쟁에서 이겨 만주에 대한 이권을 챙기고, 괴뢰국인 만주국을 만들었으며, 제2차세계대전동안 중국, 인도차이나 반도, 인도네시아, 남태평양 섬들을 침략하였던 일본 정부는 아직도 침략국으로서의 반성과 사과는 없다.


그리고 어두운 과거를 시민들에게 알려주지도 않는 일본 정부의 역사 교과서나 일본 정부의 역사 인식을 보면 가관이다.

아직도 식민지배의 피해자가 백발이 성성한 상태로 살아 있고(식민지배 35년과 식민지배 이후 60년의 세월은 길지만 아직도 짧다), 피해자의 후손들도 일본 제국의 만행을 알고 있는데도 은폐하려는 태도는 뻔뻔하다.


ps. 만주로 끌려갔다 돌아오셨단 외할아버지의 이야기나, 태평양전쟁 말기때에 철이 부족하다고 철제 숟가락, 젓가락, 밥솥을 뺐어갔다는 외가이야기를 들어보면 가관이라고 할까?

아직도 피해자가 입은 상처와 상처를 봤었던 피해자 후손들은 일제만행에 대해서 똑똑히 기억하고 있다는걸 알아야 할텐데.


'생각들' 카테고리의 다른 글

시행착오에 대한 반성과 성찰  (2) 2010.11.01
Mouse Land  (0) 2010.10.08
정리는 미리미리  (0) 2010.07.21
AT&T와 Apple의 복장 신경전  (0) 2010.07.21
인생 목표 수립이 중요하구나  (0) 2010.07.12
Buy me a coffeeBuy me a coffee


Mozilla Fennec 2.0 Alpha for Android





Buy me a coffeeBuy me a coffee



이 글은 생각을 해볼 글로서, 제 생각을 주절주절 쓴 것입니다.

저의 생각을 주절거린 것이라 딴지 걸어도 상관 없습니다. (욕설만은 피해주시기 바랍니다)


구글의 모토인 Don't be evil(악이되지 말라)라는 말은 천사가 되자는 말이 아니다. 기업의 속성상, 돈벌이를 하기 위해선 악을 써야하지만, 악을 내세우지 말라는 말이라는 늬앙스가 풍긴다고 할까?


안드로이드의 추악한 진실이라는 글에서 Google에 대해 잠시금 생각을 해봐야 하는 회사라는 걸 느끼게 된다.

언론에서는 추악한 Apple사와 다르게 Google은 Don't be evil이라는 모토로 천사같은 이미지가 자꾸 떠오르도록 홍보를 하지만 과연?

구글(Google)이 Android OS를 발표하면서 OHA(Open Handset Alliance)를 조직하였을때 OHA에 대해서 아래와 같은 주장을 하였다.

"이 연합은 휴대기기의 혁신을 가꾸어서 오늘날 존재하는 그 어떤 모바일 플랫폼보다 소비자에게 훨씬 더 나은 사용감을 제공한다는 공통 목표를 갖고 있습니다. 개발자들에게는 새로운 차원의 개방성을 제공하여 보다 더 협력적으로 작업할 수 있게 해 줌으로써, 안드로이드는 더욱 더 빠르게, 소비자들에게 새롭고 매력적인 모바일 서비스를 줄 것입니다."

그렇지만 현재, 한국 모바일 시장에서 안드로이드폰들을 보면 호환성에 문제가 있는경우가 허다하다.

예를 들어 S전자의 갤럭시A나 갤럭시S에서만 봐도 삼성 안드로이드폰 아니 SKT망에서만 돌아가게 되어 있는 MMS시스템이나, 삼성 폰에서만 돌아가는 어플, SKT의 SKAF가 탑재되었다던지, 또다른 P사의 S브랜드도 그 폰에만 돌아가는 어풀과 SKT망에서만 돌아가게 되어 있는 MMS시스템, 그리고 KT폰에서는 KAF가 들어가고 등의 통신사 전용 서비스들이 탑재된 안드로이드 폰들이 많이 출시되고 있습니다.

(KT는 국제 표준인 OMA-MMS 사용한다는것만 SKT와 다르지,  SKT만큼은 아니지만 통신사 이익을 위해서 몇 부분을 집어넣었습니다.)

안드로이드 폰의 통제권을 통신사들에게 건내주고, 통신사들은 아이폰보다 안드로이드폰이 서로 좋다고 광고하는 식으로 유지하는 걸 보면, 아이폰과 같은 방식이 아닌, 통신사가 원하는 예전 방식을 계속 고수하는 듯 하다.

안드로이드는 아이폰의 대항마도 아니고, 아이폰처럼 비교할 대상이 아니다. 안드로이드는 안드로이드일뿐이고, 아이폰과 비교할 가치가 없은 정체성이 있다. 아이폰의 폐쇄적인 생태계에 대항마가 안드로이드라고 주장을 하여도, 과연 그럴지는 모르겠다.

결론은 구글은 안드로이드 OS의 흥행을 위해서 아이폰과 같은 방식으로 판매하는 대신 통신사의 예전 판매방식을 암묵적으로 승인하여, 안드로이드 OS의 분화를 조장하고 있다고 생각함. 

(구글은 안드로이드 OS의 분화를 막기 위해서 안드로이드 디바이스의 호환성을 테스트하는 도구인 CTS (Compatiblity Test Suite)를 내놓았다. 그렇지만, 그 분화를 CTS가 막아줄것인지는 시간이 지나봐야 알 수 있을것이다.)


아직은 안드로이드의 추악한 진실 이란 글이 진실 판명이 된 상태도 아니지만 구글이 절대 선이 아니고, 안드로이드가 대항마라고 주장하기가 어려운 것을 말해주는 글이다. 언론에서 떠드는 구글찬양과 아이폰 대항마인 안드로이드에 대한 것에 대한 생각의 균형을 맞춰주는 글이라고 생각함.

Buy me a coffeeBuy me a coffee

HTML 5 speed test: Internet Explorer 9 vs. Chrome 6

IE(Internet Explorer)9 'test drive' HTML5 예제는 정말 판타스틱이라는 말이 나옵니다.

IE9에서 HTML5를 보여줄때 하드웨어(GPU) 가속을 사용해서 정말 빠르게 보여줍니다. 다만 Chrome과 Safari는 하드웨어 가속을 사용안하므로 -_-;; 

그렇지만 Chrome과 Safari가 하드웨어 가속을 사용하면 IE9를 누를것이 보임.

MS사에서 현재 만들고 있는 Internet Explorer9에서 웹 표준 준수를 열심히 하는 노력을 보니 이전 버전보단 박수를 치고 싶긴 하다.


Buy me a coffeeBuy me a coffee

윈도폰7 베타기기와 아이폰, 넥서스원(2.2)의 웹브라우징 비교 동영상입니다.

이번에 나올 Windows Phone 7, Android 폰(넥서스원, Froyo탑재), 아이폰과의 웹브라우징 비교 영상을 보니 MS사도 조만간 Windows Phone을 출시하겠구나를 알게되더군요.

MS사에서 Windows Mobile 릴리즈의 하위호환성을 전혀 배제하고, 오로지 Windows Phone 7에 엄청 많이 투자하였는데, 그 결실이 어떻게 될지 궁금하군요.

이제 MS사도 Apple과 Google, RIM, Nokia로 양분되는듯한 모바일 시장에 나서니 모바일 춘추전국시대로 나아가는군요.

Buy me a coffeeBuy me a coffee



이번 놀고 있는 연구실 컴퓨터에 있는 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




제 노트북인 ThinkPad R52에 Ubuntu 10.04가 설치가 되어 있고, 커널은 2.6.32가 설치되어 있습니다.

studioego@studioego-laptop:~$ uname -a 

Linux studioego-laptop 2.6.32-24-generic #39-Ubuntu SMP Wed Jul 28 06:07:29 UTC 2010 i686 GNU/Linux

studioego@studioego-laptop:~$ cat /proc/version

Linux version 2.6.32-24-generic (buildd@rothera) (gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) ) #39-Ubuntu SMP Wed Jul 28 06:07:29 UTC 2010

studioego@studioego-laptop:~$ 


이 노트북에 Linux Kernel 2.6.32에서 2.6.34로 올려볼 생각을 하였습니다. (최신 버전인 2.6.35.2 에 kernel BUG at arch/x86/mm/highmem_32.c:45 메모리 참조 잘못하는 버그가 있어서 차마 최신 버전을 올리진 못하고 안정버전인 2.6.34로 컴파일 하게 되었습니다.)


자고 일어나면 컴파일 완료되어서 노트북에 새로운 커널이 부팅되는 모습을 볼 수 있겠지?

Buy me a coffeeBuy me a coffee

+ Recent posts