강좌 & 팁
리눅스 커널을 임베디드 보드에 포팅 할때 맨 먼저 하는 일이 아무래도 콘솔 메시지를 보기위한 작업 아닐까 생각 됩니다.
커널은 부트로더에서 여러가지 정보들을 파라미터로 받아 실행 하게 되는데요. 그중 하나가 이 콘솔포트에 대한
정보 입니다.
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 를 선택 합니다.
default kernel command string 을 선택 합니다.
그럼 커맨드라인에 직접 입력을 할 수 있게 됩니다.
ok 를 누르고 나오면. 아래 그림과 같이 항상 이 기본값을 사용 할것인지 선택 할 수 있는 항목이 만들이지는데요.
만약 여기에 체크를 하면 부트로더에서 넘겨주는 파라미터 값은 무시됩니다.
만약 이곳에 체크가 되지 않았다면, 부트로더에서 넘겨주는 값이 없을때만 기본 값을 사용 하게 됩니다.
커널 컴파일 옵션을 빠져나와 컴파일 후 확인해 보시면 됩니다.
그런데.
여기까지 했다고 해서 무조건 콘솔 메시지 보기위한 설정이 다 끝난것은 아닙니다.
부팅 메시지까지 다 봤는데.만약 아래와 같이 로그인이 되지 않는다면.
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 파일에 등록이 돼 있지 않다면.
수정 해 주어야 .... 하는데.. 여기서 직접 수정 해봐야 램디스크 모드라면 의미가 없으므로, 램디스크 이미지에서
수정 해 주어야 합니다.