<1> 부트로더 진입 대기시간 변경

      https://makeutil.tistory.com/123

     

     

      앞서 부트로더 진입 대기시간(bootdelay)을 조정하였다. 그런데 말이다. 만약 본인이 다니는 회사에서 제품을 만들었는데 소비자가 손쉽게 부트로더에 진입하는 상황이 발생된다면 어떤일이 벌어질까? 고객이 실수로 부트로더를 건드려서 부팅이 되지 않거나 또는 부팅시 파일 시스템 정보에대한 변조등 여러 문제가 발생될 수 있다. 그래서 보통 평가보드가 아닌경우 아무키나 눌러서 부트모드에 진입하는 것이 아니라 특정 문자열 보통 패스워드라 불리는 키를 통해서 부트로더에 진입하도록 설정하기도 한다. 사용자에 따라 이 문자열을 암호화 하여처리할 수 있다. 마치 비밀번호 처럼 말이다. 

     

     문자열을 통해서 부트로더에 진입하는데 고려할 내용은 단순하다. 우선 첫번째로, 문자열 길이를 정하고(문자열의 길이에 따라 고객이 접속할 수 있는 확율이 변한다.) 그리고 회사 내부 도는 필요에 의해서 부트로더에 진입해야 할 경우 문자열을 입력할 충분한 시간이 제공되는지 여부이다. 따라서 부트로더의 기본 대기시간이 보통 1~3초 사이가 될텐데 문자열을 100자로 만들어놓으면 입력하기 전에 부팅이 되어서 리눅스가 시작될 것이다. 어쨋든 적당한 길이에 따른 bootdelay가 필요하다. bootdelay ㅛㅓㄹ정방법은 위의 링크를 확인한다. 

     

    1. 설정내용

      문자열을 이용한 부트모드 진입의 경우 부트로더 설정에서 다음의 항목을 입력하면 된다. 

      * 부트로더 메뉴 > Command line interface > Autoboot option > [*] Stop autobooting via input key / string

     

      그렴 하위메뉴가 표시된다. 

    특정 문자열을 입력하여 부트를 정지시키기 선택항목에 원하는 문자열 을 넣는다.

     

    그리고 빌드해서 시스템에서 사용하면 된다. 

     

    2. 기타사항

      혹시 독자분께서 common/autoboot.c 파일을 직접 수정하여 키 입력을 받을 수 있도록 변경했을 때 위의 옵션이 적용되면 호출되는 함수가 달라져서 실행되지 않는다. 무시되고 위의 문자열을 이용한 옵션에 따른 방식만 동작되므로 이전의 소스를 변경하지 않아도 된다.

     

      그리고 부트로더에서 해당 문자열 입력시 잘못 입력되었다면 당연히 다시 입력하면 부트 커맨드 모드로 진입한다. 왜냐면 보통 시리얼 통신을 통해서 이용하고 있을테니, 부트로더에서 시리얼 통신은 입력이 발생되는 즉시 처리되므로, 잘못 입력한경우 앞서 입력한 문자열은 무시된다. 따라서 아무리 잘못 입력하더라도 대기시간이 끝나기전에 다시 제대로 입력하면 부트 커맨드모드에 진입된다.

    반응형
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기