리눅스 커널을 임베디드 보드에 포팅 할때 맨 먼저 하는 일이 아무래도 콘솔 메시지를 보기위한 작업 아닐까 생각 됩니다.

커널은 부트로더에서 여러가지 정보들을 파라미터로 받아 실행 하게 되는데요. 그중 하나가 이 콘솔포트에 대한

정보 입니다.


ezboot 에서는 이 정보를 아래와 같이 설정 할 수 있습니다.

EZBOOT3> set 

config setup


   1) mac address             : 00:FA:01:A2:13:04

   2) local ip                : 192.168.10.124

~ 생략 ~

  18) KCMD 3  : console=ttyO0,115200n8

  19) KCMD 4  : 

  20) KCMD 5  : 

~생략~

  Q)  Quit


Select>   

설정 내용은 콘솔은 ttyO0 이고 보레이트가 115200 bps 에 패리티 없이 데이터 8비트 라는 설정입니다.


또 이 콘솔 정보는 부트로더에서 보내지지 않더라도 커널 컴파일 옵션에서 아래와 같이 미리 지정 할 수도 있습니다.

#make menuconfig 명령으로 커널 컴파일 옵션을 실행 합니다.

아래 그림과 같이 boot options 를 선택 합니다.

1.JPG


default kernel command string 을 선택 합니다.

2.JPG


그럼 커맨드라인에 직접 입력을 할 수 있게 됩니다.

3.JPG

ok 를 누르고 나오면. 아래 그림과 같이 항상 이 기본값을 사용 할것인지 선택 할 수 있는 항목이 만들이지는데요.

만약 여기에 체크를 하면 부트로더에서 넘겨주는 파라미터 값은 무시됩니다.

만약 이곳에 체크가 되지 않았다면, 부트로더에서 넘겨주는 값이 없을때만 기본 값을 사용 하게 됩니다.

4.JPG

커널 컴파일 옵션을 빠져나와 컴파일 후 확인해 보시면 됩니다.


그런데. 

여기까지 했다고 해서 무조건 콘솔 메시지 보기위한 설정이 다 끝난것은 아닙니다.

부팅 메시지까지 다 봤는데.만약 아래와 같이 로그인이 되지 않는다면.


Welcome to FALinux (www.falinux.com)

Linux Kernel 2.6.37

falinux login: root

Login incorrect

falinux login:  


/etc/securetty 파일에 콘솔포트 노드가 등록돼 있는지 확인 해 보아야 합니다.

 [root@falinux ~]$ cat /etc/securetty 

# /etc/securetty: list of terminals on which root is allowed to login.

# See securetty(5) and login(1).

#

# Include ttyp0, ttyp1, etc to allow telnet access. *NOT RECOMMENDED*

ttyO0

ttyO1

ttyO2

ttyO3

ttyO4

~ 생략 ~ 

없다면 이 파일에 등록해 주어야 합니다.

예를 들어 콘솔 노드가 ttyS1 이라면 이 파일 안에 ttyS1 을 추가해 주면 됩니다.


그런데.. 막상 확인 해 보라고 했으나, 일단 로긴이 돼거나 로그인 하지 않고 넘어가도록 설정되어야 확인 할 수 있겟지요.

이 문제 또한 커널 커맨드로 해결이 가능 합니다.

물론 이지부트의 커맨드 라인에 추가해서도 가능 합니다. 


 18) KCMD 3 : console=ttyO0,115200n8 init=/bin/bash

붉은색 커맨드 추가. 또는.


19) KCMD 4 : single 


이렇게 해 주시면 됩니다.


그럼 로그인 상태로 대기 하지 않고 일단 넘어가며 만약, /etc/securetty 파일에 등록이 돼 있지 않다면.

수정 해 주어야 .... 하는데.. 여기서 직접 수정 해봐야 램디스크 모드라면 의미가 없으므로, 램디스크 이미지에서 

수정 해 주어야 합니다.