'2009/05'에 해당되는 글 18건

  1. 2009.05.30 제로보드설치 - 서브버전으로 XE 다운받기 와 설치 (1)
  2. 2009.05.30 제로보드설치 - 설치 환경 체크 과정 기록
  3. 2009.05.29 2.6.28 커널로 갈아타기 - zImage 와 시리얼 포트 (1)
  4. 2009.05.26 2.6.28 커널로 갈아타기 - arm 커널 부팅과 시리얼 포트
  5. 2009.05.23 노무현 대통령께...
  6. 2009.05.23 2.6.28 커널로 갈아타기 - 커널을 보드에 올리기 (2) (1)
  7. 2009.05.21 윈도우용 포터블 우분투 용량 늘리기
  8. 2009.05.20 윈도우용 포터블 우분투 구하기 및 설치 (3)
  9. 2009.05.19 2.6.28 커널로 갈아타기 - 커널을 보드에 올리기 (1) (1)
  10. 2009.05.18 2.6.28 커널로 갈아타기 - 커널 최초 컴파일 시험 (3)
2009.05.30 22:09

제로보드설치 - 서브버전으로 XE 다운받기 와 설치

참조 문서 : http://zbxe.springnote.com/pages/641824
참조 문서 : http://zbxe.springnote.com/pages/398149

다음과 같은 명령을 사용해서 받는다.

위치는 index.html 이 있는 곳에서 받는다.

    svn checkout http://svn.xpressengine.com/XpressEngine/trunk xe

이것은 배포판 버전이다.

서브버전으로 다운로드가 끝났다면

XE가 업로드되어 있는 주소로 접속한다.

예를들면

   http://xxx.xxx.org/xe

이다.

여기서 부터는 제로보드에 있던 것을 가져 왔음

  1. XE가 업로드된 url을 브라우저에 입력합니다.
    예를 들어 홈페이지 주소가 http://www.abc.com 이고 XE가 업로드 된 폴더가 xe 일경우 아래와 같이 입력하세요.
    http://www.abc.com/xe

  2. 홈페이지에서 사용하실 1) 언어를 선택하시고 2) 라이센스에 동의 합니다.
    XE에서는 한국어, 영어, 중국어, 프랑스어, 스페인어, 일어, 러시아어, 프랑스어, 독일어 등을 지원하고 있습니다
    이때 선택된 언어는 대표 사용 언어로 지정이 되고 차후 관리자 페이지에서 대표 사용 언어를 변경하실 수 있습니다.
    대표 사용 언어는 홈페이지에 처음 접속한 사용자들에게 보여질 언어입니다.
      setup.gif
  3. 설치 가능 여부를 확인한 후 "설치를 진행합니다" 버튼을 클릭합니다.

       setup2.gif

  4. FTP 정보를 입력합니다.

    이 단계는 Safe mode=On 인 경우에도 FTP를 이용해 XE사용에 문제가 없도록 하기 위해 생긴 설정 페이지 입니다. 이에 해당되지 않는 경우(Safe mode==on이 아닌 경우) [무시]를 클릭하고 넘어가시면 됩니다.

    ftp.gif 

  5. 사용하시려는 DB를 선택하신 후 "설치를 진행합니다" 버튼을 클릭합니다.
    설치환경에 따라 DB 종류가 나타나지 않을 수 있습니다. DB는 사용가능한 DB의 종류가 표시됩니다.
    각 DB에 대해서는 아래 내용을 참고하세요.
    db.gif

설치 가능 여부를 확인한 후 "설치를 진행합니다" 버튼을 클릭합니다.


MYSQL 사전 설정



mysql 설치 명령
  
     yum install php-mysql mysql-server

데몬 시작하고

     cd /etc/init.d/
     mysql start

가장 처음 root 암호를 바꾼다.

     mysqladmin -u root password '암호'

데이터 베이스 만들기



mysql 을 실행한다.

    mysql -u root -p
   

 제로보드에서 사용할 DB 를 만든다.

    create database 데이터베이스;


DB 관리자 추가

   GRANT ALL PRIVILEGES ON 데이터베이스.* TO 관리자@localhost IDENTIFIED BY '암호' WITH GRANT OPTION;
  

 DB 관리자 정보가 맞는가를 다음 명령후 결과에서 관리자며잉 나오면 확인된것이다.

    use mysql;         
    select * from user;

DB 정보 입력
set_db.png


이 뒤로는 자동으로 진행된다..

Trackback 0 Comment 1
  1. oki6551 2009.09.04 01:03 신고 address edit & del reply

    DB 데이터베이스 를 어떻게하는모르겠어요.

2009.05.30 21:09

제로보드설치 - 설치 환경 체크 과정 기록

참조 자료 - http://zbxe.springnote.com/pages/880748

서버 정보를 얻기 위한 PHP 파일 만들기

PHP 및 기타 서버 정보를 얻기 위해서
<?php phpinfo(); ?>

phpinfo.php란 파일이름을 가지는 파일을

서버의 홒페이지 도큐먼트 디렉토리에 만든다.

예를 들면 http://www.xxx.org/phpinfo.php

이때 다음과 같은 내용들이 나와야 한다.

● PHP 버전 확인 ( 필수 항목 )

PHP 버전은 4.X 와 5.X 이다. 단 5.2.2 는 지원하지 않는다.

phpinfo1.jpg


현재 내 버전은 5.2.6 이다.

일단 버전은 확인이 되었다.


● GD Library 확인 ( 필수 항목 )

제로 보드의 이미지 조작을 위한 라이브러리이다.

다음과 같은 형태로 표시 되어야 한다.

phpinfo2.jpg


그런데 없다. 그렇다면 설치 해야 한다.

이 패키지는 다음과 같은 명령을 사용하면 페도라에서 설치된다.

yum install gd php-gd 

설치후 아파치 데몬을 재 기동해야 한다.

[root@fqf html]# /etc/init.d/httpd restart
httpd 를 정지 중: [  OK  ]
httpd (을)를 시작합니다: [  OK  ]
[root@fqf html]#


● iconv 의 설치 확인하기

iconv는 EUC-KR등의 문자셋을 UTF-8문자셋 인코딩 변환을 위해 필요한 library 이다.

다음과 같은 형태로 표시 되어야 한다.

phpinfo7.jpg


● MySQL 설치 확인하기

MySQL의 경우 4.1 이상의 버전만 사용이 가능하다.
보통 아래와 같은 표에서 Client API version이 4.1 이상이어야 한다.

phpinfo3.jpg


일단 설치 환경은 확인 되었다.


Trackback 0 Comment 0
2009.05.29 23:48

2.6.28 커널로 갈아타기 - zImage 와 시리얼 포트

EZ-S3C2410 용 이지부트 시리얼 포트

자…

이제 여러분은 눈치 채셨을 겁니다.

커널 소스상에서 압축 푸는 부분부터 시리얼 포트를 수정해야 한다는 것을

우선 부트로더부터 확인해 봅시다.

EZ-S3C2410 용 이지부트는 시리얼 포트(UART) 로 3번째 것을 사용합니다.

이지 부트 로더의 다음 소스 부분에서 처리 하고 있습니다.

소스 : ezboot\arch_s3c2410\ console.c

void console_init( u32 baudrate)
{
    int  dummy;
                                                                 
    // 포트를 선택한다.
    UART = (volatile u32 *) &(S3C2410_REG_UART2_BASE);
        :
        :

}



오호…

UART2 라서 두 번째 포트라고 우기시는 분 혹시 있으신 거 아니죠?
UART0 번부터 시작합니다. ^^

zImage 시리얼 포트 관련 함수 추적하기

그렇다면

zImage 의 head 프로그램이 압축을 풀면서 메시지를 표출할 때 사용하는 포트를 UART 2 번을 사용해야 하는 겁니다.

이걸 수정하려면 당연히 시리얼 포트를 처리하는 함수를 찾아서 이 부분을 수정해야 겠죠?

우선 ARM 에서 커널 압축 이미지를 푸는 소스의 위치는 어디 일까요?

예 바로 요기 입니다.

              linux/arch/arm/boot/compressed/

이중 head.S 가 가장 먼저 실행하는 루틴을 가지고 있고
misc.c 가 압축을 푸는 부분입니다.

이중 misc.c 를 분석하면 압축 해제 중에 다음 두 가지 루틴을 호출하게 됩니다.
뭐.. 기타 다른 매크로 함수도 있지만 가장 중요한 것을 꼽자면 이 두 가지 입니다.

              static inline void arch_decomp_setup(void)
              static inline void putc(char c);

arch_decomp_setup 함수는 압축을 해제 하기 전 초기화 할 루틴을 선언하도록 되어 있습니다. 예를 들면 시리얼 포트 초기화 같은 거죠

putc 함수는 압축을 해제 할 때 문자를 표출할 때 사용되는 가장 기본 되는 매크로 함수로 시리얼 포트로 한 글자 내 보내는 처리를 하게 됩니다.

이 두 함수가 사용되는 곳을 찾기 위해서

                 linux/arch/arm/

이 디렉토리에서

                  [root@localhost arm]# grep arch_decomp_setup * -R

명령을 실행하면 검색 결과로 너무 많은 것이 나옵니다.
 

흐흐

그래서 제가 골라 주면

      plat-s3c/include/plat/uncompress.h:arch_decomp_setup(void)

요놈이 되겠습니다.

이게 맞는지 어떻게 아냐구요?

그건 plat-s3c/include/plat/uncompress.h 에서 일부러 에러가 나도록 편집해서 커널을 컴파일 해 보면 압니다.

그리고 일단 통밥상 plat-s3c 이런 문구가 있잖습니까?

이건 플랫폼 S3C 계열이다. 뭐 이런 의미죠..

Arm 에서는 3가지 개념이 있습니다.

ARCH , MACH ,PLAT

흠…. 이건 나중에 설명하기로 하죠…

이런 거 일일이 설명 하다 보면 진도 못 나갑니다. ㅎㅎ

일단 소스를 훓어 보다 보면

초보분들



뭐가 뭔지 모르실텐데요…

다른 것은 제쳐 두고 시리얼 출력하는 부분이 어디 인가를 추적해 보면

대략 다음과 같은 매크로가 시리얼 처리를 위한 지정임을 알 수 있습니다.

     #define uart_base S3C24XX_PA_UART + (0x4000*CONFIG_S3C_LOWLEVEL_UART_PORT)

즉 uart_base 가 처리되는 출력 주소를 지정하게 되는 겁니다.
 

흠.

그렇다면

여기서 핵심 키워드는

        CONFIG_S3C_LOWLEVEL_UART_PORT

같군요

호~~

       CONFIG_

이런 접두사가 붙었다면 이것은 커널 컴파일 환경 설정 변수라는 의미인데
이것을 사용자가 선택하도록 하는 부분이 어디에 있겠다는
생각이 머리에 팍~스쳐 지나갑니다.

이런 CONFIG_ 가 붙은 변수는 Kconfig 상에서 CONFIG_ 를 제거한 키워드로 찾아 봐야 합니다.

요렇게요

     [root@localhost arm]# grep S3C_LOWLEVEL_UART_PORT * -R | grep Kconfig

이렇게 찾아 보니

     arch/arm/plat-s3c/Kconfig

란 파일에

    “S3C UART to use for low-level messages” 란 메시지로


S3C_LOWLEVEL_UART_PORT 를 선언하고 있는 것을 알 수 있습니다.

Kconfig 는 커널 컴파일 옵션 설정용 파일이므로

그렇다면 우리는

    make menuconfig 란 명령을 이용해서

이 값을 재 설정해야 한다고 판단할 수 있습니다.

커널 컴파일 환경 설정

수정 순서는

System Type --> S3C UART to use for low-level messages
Kernel hacking -->  S3C UART to use for low-level debug

순 입니다.

이걸 화면으로 찍어 보면 다음과 같습니다. 

[

]

  [A009_000_kernel_config_b2_580.png]
 

[A009_000_kernel_config_b3_580.png]
 

 [A009_000_kernel_config_b4_580.png]
  

[A009_001_kernel_config_1_580.png]
  

[A009_002_kernel_config_2_580.png]
  

[A009_003_kernel_config_3_580.png]
  

[A009_004_kernel_config_4_580.png]
  

[A009_005_kernel_config_5_580.png]
  

[A009_006_kernel_config_6_580.png]


자 이제 설정이 끝났으면 컴파일 해서 보드에 올려 봅시다.

[root@localhost linux]# make zImage
  :
  :
[root@localhost linux]# cp arch/arm/boot/zImage /tftpboot/zImage.ez-s3c2410
cp: overwrite `/tftpboot/zImage.ez-s3c2410'? y




짜짠~~~

이런 메시지가 나옵니다.

 
[A009_010_kernel_boot1_580.png]

일단 무언가 나오기는 하는데

요건 도대체 무슨 화면일까요?


Trackback 0 Comment 1
  1. Cheap Uggs 2011.10.11 16:48 신고 address edit & del reply

    Fashion business attracts a large number of young people these days don't just for the reason that this is a alternatively new occupation, but also it can be supposed to comprehend person's likes while in the subject of fashion. In addition to, it's always particularly a high-paid career now. Any time a youthful individual decides to link his / her activity when using the trend community very little comes to head except a single its element - vogue design and style. Probably, handful of customers actually understand that it is a separate discipline of trend sector. In reality, you can find an ideal variety of other professions and specialties in including planning garments, style and design, online marketing, merchandising, and many others.

2009.05.26 21:38

2.6.28 커널로 갈아타기 - arm 커널 부팅과 시리얼 포트


광고

커널 컴파일 했습니다. 커널 올렸습니다. 그런데 동작하지 않습니다.
막약에… 커널 올리고 부팅했는데 그냥 시리얼 메시지 나오면 아무 문제가 없죠..
하지만 이렇게 어떤 문제가 터지면 어디서 문제가 발생했고 어디를 고쳐야 하는지 알아야 하죠?

음하하하! 저희는 알죠 

물론 여러분들도 알 수 있습니다. 커널 소스를 분석하고 학습하면요…
대신 시간이 걸립니다.
그 시간을 아끼시고 싶으십니까? 저희에게 맡겨 주십시오.

광고 였습니다.
쩝…
이 먹고사니즘이여…

처자식 때문에 뻔뻔하게 회사 광고 합니다. ( 흑흑 ) 

그런데

저희 회사가 어떤 회사 입니까? 

자료와 기술은 공유하자라는 아주 착한 마인드를 가진 회사 아니겠습니까? 

그래서 이렇게 보드를 사시고 학습하고자 하는 의욕이 계신 분들에게 그 비법을
일부 공개하는 것 아니겠습니까? 

자. 이제 비법을 공개해 봅시다. 

ARM 용 zImage

 EZ-S3C2410은 ARM 이죠  

그래서 이후에 이야기 하는 것은 S3C2410만 해당되는 것이 아니고 ARM에 모두 해당 되는 겁니다.  

ARM용 커널은 특별한 경우가 아니라면 zImage 형태로 만들어 집니다.  

이 커널 이미지는 압축된 이미지죠.. 

엥? 

커널 이미지가 압축되어 있다?
그러면 어떻게 실행 되죠?

예… 맞습니다.

압축된 상태에서는 실행되지 않습니다.  

 우선 아래 그림을 봅시다.

 

그림을 보시면 아시겠지만

동작되는 진짜 커널 바이너리 이미지는 vmlinux 라고 이름이 붙습니다. 

근데 요놈 사이즈가 좀 큽니다.
임베디드 시스템은 아무래도 저장 공간의 부족에 시달리죠..
물론 최근에 들어와서는 안 그렇습니다만 

어쨌든 용량을 조금이라도 줄이려고
이걸 gzip 압축 프로그램을 이용하여 piggy.gz 파일로 만듭니다.  

자 이 압축된 것이 나중에 보드에 올라 갔을 때 압축이 해제 되어야 하지 않겠습니까?
또 압축이 해제된 커널이 실행도 되어야 하지 않겠습니까?  

이렇게 압축도 해제하고 실행도 시키는 프로그램을 head 라고 하는데 이것과 압축된 커널 이미지 piggy.gz 합쳐서 zImage 라고 이름 짓습니다.  

처음 실행하고 압축 이미지를 풀고,
풀린 커널로 점프하도록 하는 것은 head.S 가 담당합니다.  

압축을 해제 하는 실제 동작은 misc.c 에서 합니다.
이 부분에 대한 자세한 구조를 굳이 여기서는 말하지 않겠습니다.

귀찮잖아요 쩝~ 

그런데 말이죠..
만약 여러분이 사용하는 부트로더가 압축을 푸는 루틴을 가지고 있으면 piggy.gz 만 사용해서 부팅할 수 있습니다. 

그런데 굳이 그래야 할 이유가 있을까요?  이미 커널에서 지원하는데
또 만들면 귀찮잖아요…

그쵸? 

 zImage 와 콘솔용 또는 메시지 표출용 시리얼 포트

자 어쨌든 zImage 가 동작하면서 압축을 풀겠죠? 

그런데

zImage 가 수행되면서 “나 압축 푸는 중이야” 하는 것을 사용자에게 알려주어야
사용자가 답답해 하지 않겠죠? 

그래서 압축을 해제 하면서 메시지를 표출 하는데
임베디드 시스템에서는 메시지 표출 방법으로 주로 시리얼 포트를 이용하죠

당연히 zImage 의 실행 소스 부분에 이 시리얼 포트를 사용하는 부분이 있죠

그렇다면 아무런 메시지가 나오지 않았다는 것은
이 시리얼 포트로 데이터를 전송하는 부분이 문제가 있는 것이겠죠? 

물론 다른 이유도 있겠지만  

우선 이 부분부터 의심해 봅시다.  

왜냐하면 

이지보드는 다른 회사의 평가 보드와 다르게 콘솔용 시리얼 포트로 사용되는 포트가첫번째 것이 아니기 때문입니다.

판매되는 평가 보드들에 동작되는 부트로더와 커널은  메시지를 표출하기 위해서 MCU 의 첫번째 시리얼 포트를 콘솔용 시리얼로 사용하도록 설정되어 있습니다.  

그에 반해 저희 이지보드는 보통 세번째 것을 이용합니다.  

왜냐하면  

커널 콘솔용 시리얼 포트로 사용되거나 부트로더 진행 표시 및 입출력용으로 사용되면 다른 목적으로 사용이 곤란해 집니다.  

그래서 저희는 가장 나쁜 성능을 가지는 포트나 가장 사용이 안될 가능성이 높은 것으로 시리얼 포트를 선택한 겁니다.  

주로 세번째 시리얼 포트들이 가장 나쁜 성능을 가지고 있기 때문입니다 . 

처리 속도가 낮거나 적외선 시리얼 포트용으로 사용되는 경우도 많습니다. 

이런 차이로 인해서

기존의 유부트나 커널 환경 설정의 기본 조건이 되지 않아서 처음 커널 메시지를 보지 못하는 수가 있습니다.

그래서 가장 먼저 이 부분을 의심하는 겁니다. 

부팅 과정과 시리얼 포트



이쯤에서 리눅스가 정상적으로 부팅 되면서 거치는 프로그램의 종류와 시리얼 포트에 대하여 그림으로 알아 봅시다.

 


[A008_002_booting.png]

허허~~

의외로 응용 프로그램까지 오는 동안 많은 과정을 거치죠?  

이 그림을 글로 정리하면 다음과 같습니다.  

1) 보드가 부팅된 후 동작하는 이지부트에서  시리얼을 초기화 합니다.
2) 이후로 프로그램상에서는 printf 라는 함수를 이용하여 출력 할 수 있습니다.
3) 이때 사용되는 시리얼 포트는 3번째 것 입니다.
4) 이지부트가 zImage를 메모리에 올린 후 실행시킵니다.
5) zImage 의 head 프로그램이 실행되면 arch_decomp_setup 이라는 시리얼 초기화를 위해서 매크로 함수를 호출합니다.
6) 이후 압축 해제 진행 과정을 표시하기 위해서 putc 라는 매크로 함수를 호출 합니다.
7) 커널이 동작되면 커널의 상태를 표출하기 위해서 이지부트에서 전달된 커널 커맨드중 console= 으로 설정된 디바이스 드라이버를 이용하여 커널 메시지를 표출합니다.
8) 커널 부팅 프로세스가 모두 끝난후 init 프로세서에서는 시리얼 터미널 프로그램을 동작 시켜 login 상태로 대기 합니다.
9) Login 프로그램으로 사용되는 것이 getty 라는 프로그램인데 이때 시리얼 디바이스를 지정합니다.
10) 정상적인 부팅 과정이 끝난 후 응용프로그램이 동작합니다.
11) 만약 응용 프로그램이 시리얼 포트를 사용한다면 /dev/ttyS… 를 이용합니다.

 여러분은 이제 깨닫는 것이 있으실 겁니다.

 즉 부팅까지 여러 프로그램이 동작되어 가는데 각 진행 프로그램마다 사용되는 시리얼 포트가 달라질 수 있다는 것을..

그래서 이 부분을 하나로 통일 하는 과정이 필요한 겁니다.

 

Trackback 0 Comment 0
2009.05.23 21:04

노무현 대통령께...


죄송합니다.

그냥 미안합니다.

당신이 가신 뒤에

그저 눈물만 흘립니다.

바보같이...

눈물만 흘립니다.

이제

다시 볼수 없겠죠.

당신의 그 해 맑은 웃음을

이제

들을 수 없겠죠..

그 구수한 사투리를

서민인 나와 같은 느낌의 대통령을

이제

다시는 볼수 없겠죠

이 나라에서는요..

그런 귀한 한 분이었는데

계실때는 미쳐 몰랐습니다.

그래서 더 죄송합니다.

미안합니다.



 

Trackback 0 Comment 0
2009.05.23 08:31

2.6.28 커널로 갈아타기 - 커널을 보드에 올리기 (2)

흠 

이번 글은 무척 짧습니다.
하지만 글 흐름상 끊기가 애매해서리..
비축분도 다 떨어져가고 ㅜㅜ 

커널 다운로드

 전 강좌글을 보면 커널 이미지는 zImage.ez-s3c2410 여야 합니다.  

여기서 잠깐 한마디를 하면  

이지부트와 커널은 무척 밀접하게 연결되어 있습니다.
물론 램 디스크까지도 영향을 미칩니다.

왜 이렇게 만들었는가 하면 

실제 현장에서 설정 환경을 맞출 때 부트로더에서 모든 설정이 되면 편리한 것이 많습니다.  

그래서 부트로더에서 여러가지 설정을 하고 이를 커널에 영향을 끼치도록 하고 다시 램디스크에 영향을 끼쳐서 최종적으로 응용 프로그램까지 설정 내용이 적용되도록 하게 되어 있습니다.  

이것이 저희 회사가 패치해서 제공하는 부트로더나 커널 그리고 램디스크의 특징이기도 합니다.  

그래서 저희는 사용하지만 여러분들이 잘 모르는
공개 되지 않는 몇 가지 팁들이 있습니다.

아마도 이런 것들이 낱낱히 밝혀지겠죠.. 호호


개발 환경인 coLinux 에 텔넷으로 접속한 상태에서 다음과 같은 명령으로 보드에서
이더넷 tftp 프로토콜로 커널 이미지를 다운받도록 설정해 봅시다.

[root@localhost linux]# cp arch/arm/boot/zImage /tftpboot/zImage.ez-s3c2410 


보드에서 tfz 명령을 사용하여 리눅스 커널을 다운 받습니다.

EZBOOT>tfk
 receive zImage.ez-s3c2410
 tx ARP
 ARP error
 rx ARP
 HOST MAC : 00:FF:A7:1F:64:00
 HOST  IP : 192.168.10.61
 LOCAL IP : 192.168.102.101
Miss RX
 option [timeout 120 tsize 1790900]
 size = 1790900

 ...write 1790900  complete
 ...verify complete

EZBOOT>


efr 명령을 사용해서 램디스크 영역을 클리어 해 줍니다. 아까처럼 ecc 에러 어쩌구 하는 메시지 보기 싫으면요…

EZBOOT>efr
 ...erase 5MB  complete
EZBOOT>

 rst 명령을 사용해서 보드를 리부팅 해서 커널이 제대로 부팅되는지 살펴 봅니다.

EZBOOT>rst
System Soft Reset.......
EZBOOT>0123B

WELCOME EZBOOT V2.3.04 (FALINUX Co.,Ltd) ......S3C2410(EZ-S3C2410) (266MHz)
Program by You Young-chang, Oh Jae-Kyong, Jang Hyung-Gi
Last Modify May 10 2009

  Detect Samsung NAND 64M 3.3V 8-bit Flash : vid=EC pid=76
  SIZE 64-Mbytes (page=512, block=16K)

Quickly Autoboot [ENTER] / Goto BOOT-MENU press [space bar]

Copy Kernel Image .....
Copy Ramdisk Image .....
Starting kernel [MARCH 3006]...
kernel command [EZBOOT mem=64M initrd=0x30800000,5M root=/dev/ram0 ramdisk=16384 console=ttySAC2,115200    ip0=192.168.102.101 mac=00:FA:01:A2:13:04 netmask=255.255.0.0 gw=192.168.10.1 host=192.168.10.61 nandparts=2,8,54 ]



음하하하 , 역시나 커널 부팅 안합니다.

나오는 메시지 중  

Copy Kernel Image .....
Copy Ramdisk Image .....
Starting kernel [MARCH 3006]...
kernel command [


이 부분은 모두 다  이지부트로더에서 표시해주는 내용입니다. 즉 커널은 아무 소리를 하지 않고 있다는 거지요..

 자 여러분은 이런 상황이면 어디서부터 의심하시겠습니까?



Trackback 0 Comment 1
  1. Cheap Uggs 2011.10.11 17:22 신고 address edit & del reply

    Fashion business attracts a large number of young people these days don't just for the reason that this is a alternatively new occupation, but also it can be supposed to comprehend person's likes while in the subject of fashion. In addition to, it's always particularly a high-paid career now. Any time a youthful individual decides to link his / her activity when using the trend community very little comes to head except a single its element - vogue design and style. Probably, handful of customers actually understand that it is a separate discipline of trend sector. In reality, you can find an ideal variety of other professions and specialties in including planning garments, style and design, online marketing, merchandising, and many others.

2009.05.21 22:57

윈도우용 포터블 우분투 용량 늘리기

크기 조정에 대한 문서



윈도우용 포터블 우분투는 그 기반이 coLinux 이다.

당연히 coLinux강좌와 관련된 내용은 밀접한 연관이 된다.

자 그런데

이전에 크기 조정은 여기 저기서 산재한 유틸리티 구하느라 고생했는데
윈도우용 포터블 우분투는 사이트에 도큐먼트에 있다.

그렇다..

이 문서를 보고 크기를 조정해 보자.

그러면 이 문서는 어디에?

http://portableubuntu.demonccc.cloudius.com.ar/ 에 가서

Documentation 을 클릭하면 보인다.

두가지 제목이 보이는데

How to change the file system size
How to change the file system size ? Method 2


란 제목이다.

둘 다 읽어 보니

두 번째 방식이 무척 간단하고 빠르다.

여기서는 이 방식을 해 본다.

이 방식은 Angelo Compagnucci 란 사람이 사용한 방법이란다.


파일 크기 키우기



나는 목표를 10G 로 하기로 했다.

이유가 뭐냐고? 뭐 별거 없다.
이런 저런 개발 환경을 구축 하다 보니 저 정도는 되어야 뭔가 할 수 있다.
너무 작으니 아무것도 못한다.

우선 파일 크기를 키우기 전에 포터블 우분투가 실행 중이면 반드시 종료 한다.

그리고 윈도우의 cmd 명령을 실행해서 커맨드 창을 띄운다.

그리고 포터블 우분투가 실행되고 있는 위치로 이동한다. 실제로 이동해야 하는 위치는 루트 이미지 파일이 있는 곳이다.

현재 내 시스템에는 D:\Portable_Ubuntu 이므로 이동 위치는 D:\Portable_Ubuntu\images 이다.

다음 명령으로 이동한다.    

D:
cd  \Portable_Ubuntu\images

이제 추가할 용량 만큼 파일을 하나 만든다. 파일은 fsutil 명령을 사용한다. 이 명령은 주로 더미 파일을 만들 때 사용한다.

이주 새로운 더미 파일을 만들 때 fsutil 은 다음과 같은 형식을 갖는다.

    

fsutil  file  createnew  만들어질_파일명   바이트_단위의_크기

10G 크기로 만든다면 현재 루트 이미지 크기가 1G 이므로 9G 의 크기를 만들도록 다음과 같은 명령을 주면 된다.        

 fsutil file  createnew  append.img   9663676416

이제 이미 존재하는 파일과 새로 만든 파일을 합쳐서 하나의 파일을 만든다.  

copy  /b  rootfs.img+ append.img rootfs_10G.img

뭐 정확히는 10G 보다 크다.

이제 append.img 는 필요 없으므로 지운다.

포터블 우분투의 루트 파일 시스템을 새로 만들어진 것으로 바꾼다.

포터블 우분투의 환경 파일은 다음이다.

D:\Portable_Ubuntu\config\ portable_ubuntu.conf

이 파일의 항목중

cobd0=images\rootfs.img

        cobd0=images\rootfs_10G.img


로 바꾼다.

이제

     D:\Portable_Ubuntu\run_portable_ubuntu.bat



를 실행 시켜 포터블 우분투를 실행한다.

Applications --> 보조 프로그램 --> 터미널을 실행한다.


터미널 창에서

    sudo su
    resize2fs -f  /dev/cobd0



명령을 실행해서 크기를 재 조정 한다.

 

다음은 실행 화면이다.

pubuntu@pubuntu:~$ sudo su
[sudo] password for pubuntu:
root@pubuntu:/home/pubuntu# resize2fs -f /dev/cobd0
resize2fs 1.40.8 (13-Mar-2008)
Filesystem at /dev/cobd0 is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/cobd0 to 2831155 (4k) blocks.
The filesystem on /dev/cobd0 is now 2831155 blocks long.

root@pubuntu:/home/pubuntu# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/cobd0            11234756   1390684   9394440  13% /
varrun                  128200        84    128116   1% /var/run
varlock                 128200         0    128200   0% /var/lock
udev                    128200       132    128068   1% /dev
devshm                  128200        12    128188   1% /dev/shm
/dev/cobd2              253871      2069    238695   1% /tmp
cofs0                669557036 104692872 564864164  16% /etc/portable_ubuntu
cofs1                307202928  76073732 231129196  25% /mnt/C
gvfs-fuse-daemon      11234756   1390684   9394440  13% /home/pubuntu/.gvfs
root@pubuntu:/home/pubuntu#


진짜 심플 하다.

Trackback 1 Comment 0
2009.05.20 11:24

윈도우용 포터블 우분투 구하기 및 설치

윈도우용 포터블 우분투

최근에 coLinux에 맛 들려서 개발환경을 구축하고 써 먹고 있다.
물론 페도라 기반의 이미지를 이용했다.

문제는 최근의 대세가 우분투라서 페도라가 점점  밀리고 있는 기분이다.
더구나 카운트 펀치를 받은 것이 안드로이드 개발 환경이다.

고민 고민하다가.

큰 맘먹고 우분투로 옮기려고 하는데
일본에 있는 내가 좋아 하는 채 모 씨가 한국에 오면서
포터블 우분투를 또 소개해 주었다.

하여간 무척 부지런한 양반인데

처음에는 별 생각없이 보았는데

헉~~~

하는 소리가 나왔다.

허허

X 윈도우까지 완샷~~

그러나 네트워크 설정이나 기타 등등이 쪼메 맘에 걸렸다.

그러나

결국 이렇게 일을 저지르기로 마음 먹었다.

솔찍히 윈도우용 포터블 우분투 구하고 설치하기는 정말 쉽다.

그 뒤가 문제 겠지?

아 하하하…

홈페이지

윈도우용 포터블 우분투의 홈페이지는 다음과 같다.

http://portableubuntu.demonccc.cloudius.com.ar/

 


[A001_001_homepage_580.png]

 다운로드


홈페이지에서 다운로드를 클릭하면 최종적으로 다음 링크로 이동한다.

http://downloads.sourceforge.net/portableubuntu/Portable_Ubuntu.exe?modtime=1221687705&big_mirror=0

하여간 심플하다.

위 링크에 가면 바로 다운로드가  된다.

다운 받은 파일 이름은

      Portable_Ubuntu.exe

이다.  

설치

다운 받은 Portable_Ubuntu.exe 를 실행 시킨다.

 


[A001_002_unpack.png]

압축된 이미지가 풀려 설치될 위치를 묻는다.

     D:\

라고 입력하고 Extract 버튼을 누르면

    D:\Portable_Ubuntu

란 디렉토리가 생기면서 이곳에 압축을 풀게 된다.

 


[A001_003_unpack_ing.png]

 

[A001_004_unpack_end.png]


압축이 풀리면 그림과 같이 여러 디렉토리가 생긴다.

우분투를 실행하려면

    run_portable_ubentu.bat

를 더블 클릭하여 실행 시키면 된다.

실행되면 트레이아이콘이 생긴다. 트레이 아이콘은 다음 모양을 갖는다.  

[A001_005_tray_icon.png]

이 트레이 아이콘을 클릭하면 다음과 같이 동작하는 콘솔 창이 표출된다.

 


[A001_006_run1.png]

가장 처음에 파일 시스템을 점검하게 되서 트레이 아이콘을 클릭하지 않으면 실행되지 않는 것처럼 느껴 질 수 있다.

 
우분투의 콘솔 부팅이 끝나고 X 가 실행되면 다음과 같은 화면을 볼 수 있다.

 


[A001_007_flash.png]

 


[A001_008_run_terminal.png]

이것 저것 실행하면 윈도우에서 우분투와 같은 여러 프로그램을 실험 할 수 있다.

초기 패스워드는

     123456
 
이다.


 

Trackback 0 Comment 3
  1. 컴퓨터이용자 2010.03.21 20:01 신고 address edit & del reply

    안되는건 뭐죠? 트레이아이콘이 생기다가 마는데..

  2. hoon20c 2010.04.13 16:22 신고 address edit & del reply

    저두 안되요.. 트레이아이콘이 나타났다가 없어집니다.ㅠㅠ

  3. 되는구나!! 2010.12.06 11:46 신고 address edit & del reply

    아주 좋아요 잘만되는 구먼 안되는분 저에게 물어보세요ㅋㅋㅋ

2009.05.19 21:47

2.6.28 커널로 갈아타기 - 커널을 보드에 올리기 (1)

보드 준비 및 부트로더 확인


자..  재수가 있는지 확인해 봅시다.

보드에 커널을 올려서 제대로 돌아 가면 복권 당첨 된거고, 안 돌아 가면 당연한 겁니다. 

우선 보드를 준비해야 겠죠?

EZ-S2410은 다음과 같이 생겼죠..

 

 
[A007_001_EZ_S2410.jpg]

잘 생겼죠? (큼… 자기 자식 자랑하면 팔불출이라는데 )

 근데 제가 가지고 있는 보드는 좀 너덜 너덜 하군요..
USB 호스트 쪽이 안 된답니다.

아하 짠돌이 생산팀… .
새거 주지..

 시험을 하기 위해서
전원과 아답터 연결하고 , 시리얼 포트 연결 하고 , 이더넷 연결합니다.

 그리고 전원 올려서 부팅 메시지를 봅니다.

 제가 가진 S3C2410 부트로더 버전은 아래 부팅 메세지에서 볼수 있습니다.

일단 이 부분이 저하고 비슷해야 겠죠?

그래야

S3C2410 에 대하여 저와 동일하게 진행할 수 있지 않을까요?

 뭐 각자의 길을 가자면 가지요..

전 손해 볼 것 없습니다.

어찌되었든…

 부팅하면 다음과 같은 메시지가 나옵니다.

WELCOME EZBOOT V1.4 (FALINUX Co.,Ltd) ..........for EZ-S2410
Program  by You Young-chang, Oh Jae-Kyoung
Modified by Park Mun-Sik, Jang Hyung-Gi
Last Modify Apr  6 2007

NAND Chip Check .......................
  NAND Maker ID [EC]    NAND Size  ID [76]
  Detect SAMSUNG [ec:76] 64MByte
  BAD BLOCK SCAN ->
      BootLoader, Kernel, Ramdisk Bad Block [1]

CS8900 Init............................
  Mac Address  : [00 A2 55 F2 26 35]
  Detect value : [3000:3000]
  Chip ID      : [0E63:0009]

Quickly Autoboot [ENTER] / Goto BOOT-MENU press [space bar]..

EZBOOT>


 헉! 버전이 V1.4 라고 나오네요

 어허허…

최근 이지부트가 2.0인데.. 이게 언제적 부트로더여?

 일단 부트로더부터 업그레이드 해야 겠네요..

 제가 그랬죠?

 이 글들은 강좌가 아니라고

제가 진행해 가는 과정을 그래로 보여 주는 거라고..

 

자~~

부트로더 업그레이드 한번 해 봅시다.

 

이지부트 2.0으로 업그레이드


이지부트는 사실 내부적인 소스가 있고 외부적 소스가 있습니다.

하하하.. 완전한 공개는 힘들죠… ^^;

업체에서 요구한 부분들이나 저희 회사 나름대로 사전 진행하는 과정에서 발생한 소스들이 있는데 이것들은 공개 하기가 곤란하죠.

그래도 웬만한 것은 모두 다 공개해 갑니다. 감추고 있는 것은 1%로도 되지 않습니다.

어찌되었든

부트로더를 다운해야 겠죠?

부트로더가 어디있죠?

예 저희 회사 이지부트로더는 여기서 다운 받습니다.

http://ftp.falinux.com/ezboot/recommendation/

이걸 다운로드 받아 보겠습니다. 외부에서 관리해야 하기 때문에 colinux  상에서

 /project/ezboot_outsize/

라고 하는 디렉토리를 만들고 여기에 다운 받도록 하겠습니다.

[root@localhost ezboot_outside]# wget http://ftp.falinux.com/ezboot/recommendation/ezboot.tar.gz
--2009-05-10 02:57:58--  http://ftp.falinux.com/ezboot/recommendation/ezboot.tar.gz
Resolving ftp.falinux.com... 211.239.155.99
Connecting to ftp.falinux.com|211.239.155.99|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 291184 (284K) [application/x-gzip]
Saving to: `ezboot.tar.gz'

100%[=======================================================>] 291,184     --.-K/s   in 0.08s  

2009-05-10 02:57:58 (3.47 MB/s) - `ezboot.tar.gz' saved [291184/291184]

[root@localhost ezboot_outside]#


워낙 소스가 작기 때문에 금방 받습니다.

이제 압축을 풀어 봅시다.


다음과 같은 명령을 사용합니다.

[root@localhost ezboot_outside]# tar zxvf ezboot.tar.gz


이제 ezboot란 디렉토리가 생겼을 겁니다.

여기로 이동합니다.

[root@localhost ezboot_outside]# cd ezboot
[root@localhost ezboot]# ls
Makefile     arch_pxa255   ez-au1250_make.sh  ez-pxa270_make.sh   image
arch_au1250  arch_pxa270   ez-ep9312_make.sh  ez-s3c2440_make.sh  include
arch_ep9312  arch_s3c2440  ez-pxa255_make.sh  ez-x5_make.sh       main
[root@localhost ezboot]#


허걱~

S3c2410 이 없습니다.

오마이 갓….

어쩐지 수 많은 고객들이 난리더구만.. 허허…
어떻게 2410이 없을 수 있죠?

이번에 심각하게 반성해야 겠군요..

그렇다면 긴급 패치에 들어가야 하는데..

흠.. , 에혀… , 어떻게 해야 하나..

고민 고민…

(**) 여기서부터
(**) 여기까지 글을 쓰는 사이에 약간의 시간이 흘렀습니다. ^^

 

짜잔!

다음과 같은 EZ-S3C2410 추가된 파일을 FTP 에 올렸습니다.

ftp://ftp.falinux.com/ezboot/history/2009_05_10/ezboot-yyc.tar.gz

이것은 공식적인 버전이 아닙니다
나중에 개발팀에서 공식적인 버전을 올려 놓겠죠?

수정된 파일을 다운 로드 받은 후 앞에서와 동일한 방법으로 압축을 풉니다.

그리고 컴파일 합니다.

이지부트 소스는 make 를 직접 사용하지 않고 몇가지 설정이 필요해서 이것을 쉘 스크립트로 만들었습니다.

그래서 다음과 같이 컴파일 해야 합니다.

[root@localhost ezboot]# ./ez-s3c2410_make.sh clean
[root@localhost ezboot]# ./ez-s3c2410_make.sh


./ez-s3c2410_make.sh clean 이 명령은 처음 한번만 하면 됩니다.

소스가 수정되면 ./ez-s3c2410_make.sh 이면 충분합니다.

이 처리 결과 다음과 같이 마지막에 메시지가 나오면 성공한 겁니다.

dd if=arch_s3c2410/start/start_org of=image/ezboot.ez-s3c2410 bs=1k conv=sync
1+1 records in
2+0 records out
2048 bytes (2.0 kB) copied, 0 s, Infinity B/s
dd if=main/main_org of=image/ezboot.ez-s3c2410 bs=1k seek=4
54+1 records in
54+1 records out
56128 bytes (56 kB) copied, 0 s, Infinity B/s
chmod 777 image/ezboot.ez-s3c2410
[root@localhost ezboot]#


부트로더 이미지는 image/ezboot.ez-s3c2410에 생겼습니다

그렇다면 이걸 tftp 프로토콜로 다운로드 받을 수 있겠 끔 옮겨야 겠죠?

[root@localhost ezboot]# cp image/ezboot.ez-s3c2410 /tftpboot/

자 이제 모두 끝났습니다.

다시 보드의 시리얼 에뮬레이터로 가 봅시다.

set 명령을 사용해서 컴파일된 부트로더를 받기 위한 환경 설정을 합니다.

^^;
  1. MAC Address            [00:a2:55:f2:26:35]
  2. LOCAL IP               [192.168.102.101]
  3. HOST IP                [192.168.10.61]
  4. Host tftp directory    []
  5. zImage      file name  [zImage.s2410]
  6. ram disk    file name  [ramdisk-12M.gz]
  7. boot loader file name  [ezboot.ez-s3c2410]

  A. Autoboot wait time     [3]
  B. Boot Menu Key          [ ]
  C. Copy Ramdisk [Y/N]     [Y]
  D. Architecture Number    [784]
  E. Console Serial Number  [2]
  F. NAND-Partition MByte   [2:5:57] (kernel:ramdisk:app)
  W. Watchdog (sec, off=0)  [0]

  K. Kernel CMD 1st [initrd=0x30800000,5M root=/dev/ram0 ramdisk=12288]
  M. Kernel CMD 2nd [console=ttySAC2,115200]
  N. Kernel CMD 3rd []

  L. Load Default
  P. Apply & Exit
  S. Save
  0. Exit

  Select >>


확인해봐야 하는 항목은 2번,3번,7번입니다. 
 
tfb 명령을 통해서 다운받고 부트로더 이미지 받고

EZBOOT>tfb
Receive ezboot.ez-s3c2410
Send ARP Packet
Send ARP Packet
ARP PACKET Resive
HOST MAC : [ 00 FF A7 1F 64 00 ]
HOST  IP : [192.168.10.61]
LOCAL IP : [192.168.102.101]
Resive Address  : 3100-0000
TFTP Request Send
OPTION [timeout 120 tsize 60224]
ALL DATA RESIVE OK [ 60224 bytes ]
    Erase : OK                                                                
    Write : OK                                                                
    Verify: OK                                                                

EZBOOT>


 rst 명령을 통해서 보드 리부팅 합니다.

EZBOOT>rst
System Soft Reset.......
0123B

WELCOME EZBOOT V2.3.04 (FALINUX Co.,Ltd) ......S3C2410(EZ-S3C2410) (266MHz)
Program by You Young-chang, Oh Jae-Kyong, Jang Hyung-Gi
Last Modify May 10 2009

  Detect Samsung NAND 64M 3.3V 8-bit Flash : vid=EC pid=76
  SIZE 64-Mbytes (page=512, block=16K)

ff ff ff : a5 a5 97
ecc correct addr=0x00100000
ecc fail addr=0x00100200
ff ff ff : 6a 99 97
ecc fail addr=0x00100400
ecc fail addr=0x00100600
ff ff ff : 56 69 6b
ecc fail addr=0x00100800

   :
   :

ff ff ff : 96 96 9b
ecc fail addr=0x00107800
ecc fail addr=0x00107a00
ecc fail addr=0x00107c00
ecc fail addr=0x00107e00
  diff magic [flash:20081103]
Quickly Autoboot [ENTER] / Goto BOOT-MENU press [space bar]..

  CS8900 Init ......
  Mac Address  : [00 FA 01 A2 13 04]
  Detect value : [3000:3000]
  Chip ID      : [0E63:0009]

EZBOOT>


이때 ecc fail 이라는 글자가 나온다고 당황하지 마시기 바랍니다.
이전 버전의 부트로더에서 ECC 체크를 하지 않았는데
2.0에서부터 ecc 체크를 하도록 했기 때문에 발생하는 것입니다.

 일단은 set 명령을 사용해서

^^;
   1) mac address            : 00:FA:01:A2:13:04
   2) local ip               : 192.168.102.101
   3) local netmask          : 255.255.0.0
   4) local gateway          : 192.168.10.1
   5) server ip              : 192.168.10.61
   6) zImage      file name  : zImage.ez-s3c2410
   7) ram disk    file name  : ramdisk-1.11-16M.gz
   8) boot loader file name  : ezboot.ez-s3c2410
   9) logo image  file name  :
  10) auto execute full name :
  11) autoboot wait time     : 3
  12) copy ramdisk [Y/N]     : Y
  13) arm kernel arch number : 3006
  14) nand part (B,C,L,K,R,A): 1,1,0,3,5,54
  15) watchdog  (sec, off=0) : 0
  16) KCMD 1 : mem=64M
  17) KCMD 2 : initrd=0x30800000,5M root=/dev/ram0 ramdisk=16384
  18) KCMD 3 : console=ttySAC2,115200
  19) KCMD 4 :
  20) KCMD 5 :
  21) KCMD 6 :

  L)  Load default
      LF) load KCMD2 root=flash
      LR) load KCMD2 root=ramdisk
  M)  generlate Mac address
  S)  Save to flash
  P)  aPply & exit
  Q)  Quit

Select >>



일단 자신의 네트워크 상황에 맞도록 2,3,4,5 항을 수정하십시오 위 예시는 제 보드의네트워크 설정입니다.

그리고 환경 저장을 하시고

tfb 명령을 수행하셔서 다시 한번 부트로더를 받습니다.

그리고

rst 명령을 사용하거나 전원을 껐다가 켜서 다시 보드를 부팅 시킵니다.

EZBOOT>rst
System Soft Reset.......
EZBOOT>0123B

WELCOME EZBOOT V2.3.04 (FALINUX Co.,Ltd) ......S3C2410(EZ-S3C2410) (266MHz)
Program by You Young-chang, Oh Jae-Kyong, Jang Hyung-Gi
Last Modify May 10 2009

  Detect Samsung NAND 64M 3.3V 8-bit Flash : vid=EC pid=76
  SIZE 64-Mbytes (page=512, block=16K)

Quickly Autoboot [ENTER] / Goto BOOT-MENU press [space bar].

  CS8900 Init ......
  Mac Address  : [00 FA 01 A2 13 04]
  Detect value : [3000:3000]
  Chip ID      : [0E63:0009]

EZBOOT>


보시는 바와 같이 깔끔하게 정리 됩니다.  하하

자 이제 부트로더를 업그레이드 했습니다.

  이제 커널만 올리면 됩니다. 음하하하



Trackback 0 Comment 1
  1. 지나가던행인 2009.06.05 19:43 신고 address edit & del reply

    어째선지, 글 끝에 밥 아저씨의 '참 쉽죠'라는 대사가 들린 듯한 데자뷰가 느껴지는군요 ㄱ-;;

2009.05.18 10:35

2.6.28 커널로 갈아타기 - 커널 최초 컴파일 시험

● 커널 최초 컴파일 시험

커널을 포팅하기 전에 가장 먼저 커널 컴파일 옵션을 설정해 보고 한번 컴파일을 해 보아야 합니다. 
이런 과정을 거치는 이유는 개발 환경을 검증하기 위한 목적이 가장 강합니다.

그런데 커널 컴파일 옵션을 생짜로 모두 설정하러 다니는 것이 그리 좋은 것이 아니죠..

가장 좋은 것은 누군가가 해 놓은 환경 설정을 내 환경에 맞추는 것이 좋아요..

 자 1 차 목표는 EZ-S3C2440 이었죠…

 그런데 ..

 리눅스 커널 소스에서 암 용 커널 환경 설정들이 있는 곳이 여기입니다.

linux/arch/arm/configs/

이중에 이런 파일이 있네요…

s3c2410_defconfig

흐흐흐…

그래서 작전을 변경했습니다.

 자 1 차 목표를 EZ-S3C2410으로 하기로

흐흐흐 

앗 약속이 틀리다구요?

하하하..

제 맘입니다.

거저 먹을 수 있는 찬스를 전 놓치기 싫지요.. 

자 이제 시작해 봅시당


● 환경 설정 및 커널 컴파일


이미 작업해 놓은 커널 컴파일 옵션을 적용하는 것이 그리 어려운 것이 아닙니다.

적용전에 우선 Makefile을 약간 손보아야 합니다.

커널소스

linux\Makefile 에서 193 라인 쯤에

크로스 컴파일을 위한 처리 부분이 있습니다.

193 ARCH            ?= $(SUBARCH)
194 CROSS_COMPILE   ?=

이 부분을 arm 용 크로스 컴파일이 될 수 있도록 다음과 같이 고칩니다.

193 ARCH            ?= arm
194 CROSS_COMPILE   ?= arm-linux-


193 라인의 ARCH 는 실제로 리눅스 소스상에 어떤 아키텍쳐 소스를 참조할 것인지등과 같은 컴파일 과정에 영향을 미칩니다.

 예로 보면 linux/arch 하부 디렉토리에는 arm 이라는 디렉토리가 있습니다. 이를 지정하기 위한 경우가 그 한 예죠.

194 라인은 gcc 컴파일의 앞부분에 붙은 접두사입니다.

원래 i386 네이티브 컴파일러라면 앞에 특별히 접두사가 붙지 않습니다.
하지만 arm 이라면 다르죠
이건 어떤 크로스 컴파일러를 설치했고 해당 크로스 컴파일러의 접두사가 어떤 형태인가에 달라지는 겁니다.
저희 회사에서 제공하는 arm 크로스 컴파일러라면 앞에 arm-linux- 가 붙습니다. 

만약 EZ-AU1250 모델과 같은 mips 용 크로스 컴파일러라면 앞에 mipsel-linux- 같은 형태로 붙게 됩니다. 

어쨌든 이렇게 수정한 후 다음과 같은 명령을 사용해서 소스를 청소해 줍니다. 

[root@localhost linux]# make mrproper
  [root@localhost linux]# make distclean


mrproper
 
는 이전에 설정한 정보를 지우거나 새로운 커널 소스를 가져다 컴파일 할 때에 사용합니다. 이전 커널을 컴파일할 때 만들어진 오브젝트 파일(*.o)과 의존성 설정, 컴파일 환경 설정값, 버전 정보 등 새로 시작하는 컴파일에 영향을 주는 이전 정보들을 삭제합니다.

이전에 설정된 컴파일환경을 재사용한다면 이 명령을 수행할 필요는 없습니다.

distclean은 리눅스 커널소스인 .tar.gz 를 풀었을 때와 같은 상태로 만들어 주는 겁니다.

어찌 되었든 이 두 과정을 거쳐서 소스를 깨끗한 상태로 만든 후 다음 명령을 쳐서
S3C2410 컴파일 옵션 설정 상태로 만들어 버립니다.

[root@localhost linux]# 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
#
# configuration written to .config
#
[root@localhost linux]#



자 이제 어떻게 설정되어 있나 잠깐 들여다 봅시다.

make menuconfig 명령을 쳐서 커널 환경 설정 작업 상태로 들어 갑니다.

[root@localhost linux]# make menuconfig

 


여기서 System Type 을 선택합니다.


 
시스템 타입 설정에 S3C2410 이 보이죠? 일단은 제대로 환경 설정이 된거죠..

 이제 컴파일 해 봅시다.

컴파일은 arm 의 경우라면 make zImage 입니다.

[root@localhost linux]# make zImage
     :
  SYSMAP  .tmp_System.map
  OBJCOPY arch/arm/boot/Image
  Kernel: arch/arm/boot/Image is ready
  AS      arch/arm/boot/compressed/head.o
  GZIP    arch/arm/boot/compressed/piggy.gz
  AS      arch/arm/boot/compressed/piggy.o
  CC      arch/arm/boot/compressed/misc.o
  LD      arch/arm/boot/compressed/vmlinux
  OBJCOPY arch/arm/boot/zImage
  Kernel: arch/arm/boot/zImage is ready
[root@localhost linux]#



위와 같은 메시지가 나오면 정상적으로 컴파일이 끝난 겁니다.

생성된 커널 이미지arch/arm/boot/zImage 파일이 되겠습니다.

이렇게 해서 생성된 이미지를 부트로더를 이용해서 보드에 올리면 되는데

문제는!

이것이 제대로 동작할 것이라고 믿을 수는 없다는 겁니다..
재수 좋으면 동작 할 것이고
재수 없으면 동작 안 할겁니다.

복불복이라고나 할까?

여러분의 보드가 배신할지 모르기 때문입니다.

Trackback 0 Comment 3
  1. seso 2010.03.05 03:02 신고 address edit & del reply

    흠 falinux forum 에서 퍼온글이네요. 퍼온글이면 출처정도는 밝혀야 하지 않을까요 작성한분이 힘들게 작성한 글인데

    • 유영창 2010.03.09 22:35 신고 address edit & del

      저글 제가 쓴건데요 ^^

  2. Cheap Uggs 2011.10.11 16:24 신고 address edit & del reply

    Fashion business attracts a large number of young people these days don't just for the reason that this is a alternatively new occupation, but also it can be supposed to comprehend person's likes while in the subject of fashion. In addition to, it's always particularly a high-paid career now. Any time a youthful individual decides to link his / her activity when using the trend community very little comes to head except a single its element - vogue design and style. Probably, handful of customers actually understand that it is a separate discipline of trend sector. In reality, you can find an ideal variety of other professions and specialties in including planning garments, style and design, online marketing, merchandising, and many others.