반응형

OS: Ubuntu 12.04 LTS (desktop)


PC에 멀티부팅을 위해서 윈도우와 우분투를 같이 설치하면, GRUB 부트 로더가 운영체제 선택을 할 수 있는 메뉴를 보여준다. 그런데 기본적으로는 맨 위의 첫번째 항목에 Ubuntu 운영체제가 있고, 그 항목이 선택되어 있다. 만약 제한시간(기본적으로 10초) 내에 키보드로 선택을 바꾸지 않으면 기본 선택된 운영체제로 자동으로 부팅을 진행한다. 그러나 평소에 윈도우를 더 많이 쓰는 경우에는 부팅할 때마다 매번 키보드로 선택을 바꿔 줘야 해서 불편한 경우도 있다.


이를 해결하기 위한 설정 변경 옵션을 GRUB에서 제공하고 있다. 이 글에서는 기본 부팅되는 운영체제 선택을 변경하는 2가지 방법을 설명한다. 첫번째설정파일 편집과 콘솔 명령을 이용하는 방법이고, 두번째는 Ubuntu가 GUI (Graphic User Interface) 환경일 경우 grub-customizer 프로그램 통해서 마우스 클릭 몇번으로 설정할 수 있는 쉬운 방법이다.



(1) 설정 파일 수정 및 콘솔 명령을 통한 방법

우선 GRUB 메뉴상에서 윈도우가 몇번째 항목인지 알고 있어야 한다. 부팅할 때 GRUB 화면을 보고 몇번째인지 기억해 둔다. 필자의 경우 6번째 항목이 윈도우7이었다.


만약 재부팅해서 확인하기 귀찮다면, /boot/grub/grub.cfg 파일에서 몇번째에 있는지 확인할 수 있다.

vi든 gedit든 아무 텍스트 편집기를 써서 /boot/grub/grub.cfg 를 연다.

그리고 "menuentry"로 검색해 보면 운영체제 이름과 함께 여러 개가 검색될 것이다. 

여기서 윈도우 운영체제 이름이 적힌 menuentry가 몇번째인지 확인하면 된다. 


주의할 점은, 중간에 submenu "Previous Linux versions" { 로 시작해서 menuentry가 몇개 나오고 그 다음에 다시 중괄호( } )가 닫히는데, 이 부분은 하나로 계산해야 한다. 즉, submenu 안에 있는 운영체제 개수는 여러개가 있어도 1개로 간주해야 한다. 

일반적으로 아래와 같은 구조로 되어 있다.

menuentry 'Ubuntu, ......' {

    각종 옵션들

}

menuentry 'Ubuntu, ...... (recovery mode)' {

    각종 옵션들

submenu "Previous Linux versions" {

menuentry 'Ubuntu, ......' {

    각종 옵션들

}

menuentry 'Ubuntu, ......' {

    각종 옵션들

} 

}

menuentry "Memory test (memtest86+)" {

    각종 옵션들

menuentry "Memory test (memtest86+, serial console 115200)" {

    각종 옵션들

menuentry "Windows 7 (loader) (on /dev/sda1)" {

    각종 옵션들

}


위와 같은 경우, 윈도우는 6번째 항목이다.


이제 설정 파일에서 기본 선택 위치를 바꿔 보자. 루트 권한을 가지고 /etc/default/grub 파일을 연다.

vi 를 쓰는 경우:

$ sudo vi /etc/default/grub

gedit 를 쓰는 경우:

$ sudo gedit /etc/default/grub


GRUB_DEFAULT="0" 이라고 적힌 줄이 있을 것이다. 이 부분을 메뉴상에서 윈도우가 있는 메뉴 숫자로 바꿔 주어야 한다. 앞의 확인 과정에서 윈도우가 6번째라면, 변경된 값은 5가 된다. 왜냐하면 첫번째 항목이 0부터 시작하기 때문이다.

GRUB_DEFAULT="5"   #윈도우가 메뉴상에서 6번째 항목일 경우


만약 GRUB가 자동 부팅까지 기다리는 시간을 조정하고 싶다면 GRUB_TIMEOUT="10" 에서 따옴표 안의 숫자를 원하는 숫자(초 단위)로 바꾸면 된다.


설정 파일을 고쳤다면 아래 명령을 통해서 설정을 변경한다.

$ sudo update-grub




(2) grub-customizer 프로그램을 이용한 방법


이 방법은 우분투가 GUI 환경을 지원한다는 가정 하에 이용 가능하다.

아래와 같이 콘솔에 명령어를 입력하여 grub-customizer를 설치한다.

$ sudo add-apt-repository ppa:danielrichter2007/grub-customizer

$ sudo apt-get update

$ sudo apt-get install grub-customizer


간중간 계속 진행할 것인지 물어볼 것이다. 모두 yes로 선택(y 입력후 엔터 또는 그냥 엔터)한다.

콘솔에서 아래 명령을 통해서 grub-customizer를 실행한다.

$ gksu grub-customizer


기본 화면은 아래와 같다.


General settings 탭을 누른다.


default entry에서 predefined 항목을 누르면 선택할 수 있는 운영체제 목록이 나온다.

윈도우 운영체제에 해당되는 Entry를 선택한다. 윈도우 운영체제 이름 또는 Entry 번호 중에서 아무거나 선택할 수 있다.


참고로, 아래에 있는 Boot default entry after [   ] Seconds 에 있는 숫자를 조정하면 GRUB가 기다리는 시간을 조정할 수 있다. 위의 그림의 경우, 7초 동안 기다렸다가 자동으로 Windows 7으로 부팅하겠다는 설정이다.


원하는 대로 설정이 되었다면 반드시 Save 버튼을 눌러서 설정을 저장하도록 한다.



이제 컴퓨터를 재부팅해 보면 기본 선택이 윈도우로 바뀌어 있을 것이다.



반응형
블로그 이미지

Bryan_

,
반응형

*테스트한 프린터: HP Color LaserJet CP2020 Series

*프린터 드라이버: 윈도우 7(Windows 7)용 드라이버, HP Color LaserJet CP2020 Series PCL6 (0.3.7071.0)



HP 레이저 프린터 중에서 자동 양면 인쇄를 지원하는 모델이 여러 개 있다. 그런데 모델명에 맞는 레이저 프린터 드라이버를 제대로 설치했음에도 불구하고 양면 인쇄 옵션이 보이지 않거나, 양면 인쇄가 자동으로 되지 않아서 사람이 손으로 A4용지를 뒤집어야 하는 경우가 있다. 대부분 컴퓨터를 포맷하고 나서 레이저 프린터 드라이버를 새로 설치했을 때 이런 문제를 겪는다.


이 문제를 해결하려면 HP 레이저프린터 속성 창에서 자동 양면 인쇄 기능을 따로 설치해 주어야 한다. 참고로 양면 인쇄 기능을 설치할 때 새로운 드라이버가 필요하거나 특별한 파일을 다운로드받을 필요는 없다. 단지 설정을 변경하는 수준의 작업으로 해결할 수 있다. 대부분의 HP 레이저 프린터는 비슷한 형태의 드라이버를 갖고 있으며, 이 글에서는 HP Color LaserJet CP2020 모델을 대상으로 설명하고자 한다.



<가정사항>

*자동 양면 인쇄 기능이 지원되는 HP 레이저프린터 기종이다.

  무엇보다도 가장 주의할 점은, 레이저 프린터가 자동으로 양면 인쇄하는 기능이 있는지 먼저 확인하는 것이다. 자동 양면 인쇄가 되는 레이저 프린터 모델을 확인하고 싶다면 HP 프린터 및 복합기 페이지 (http://www8.hp.com/kr/ko/products/printers/#!view=grid&page=1)를 확인하는 것이 도움이 된다.


*윈도우 운영체제를 쓰며, 프린터 드라이버가 이미 설치되어 있다.

  윈도우용이 아닌 HP 프린터 드라이버의 경우 설정창이나 옵션 변경 방법이 다를 수 있고 테스트해본 적이 없다. 따라서 이 글에서는 윈도우 운영체제에서 HP 공식 프린터 드라이버(또는 윈도우 업데이트를 통해 자동 설치된 드라이버)를 사용하는 경우를 가정한다.




<자동 양면 인쇄 설정방법>


(1) [시작] - [장치 및 프린터]에 가서(또는 제어판 - 장치 및 프린터), 원하는 프린터의 오른쪽 단추를 누르고 메뉴에서 프린터 속성 페이지로 진입한다. 참고로 메뉴 맨 끝에 있는 속성이 아니고 중간쯤에 있는 "프린터 속성"을 눌러야 한다.


(2) [장치 설정] 탭으로 이동한다.


(3) "설치할 수 있는 옵션" 중에서 "듀플렉서(양면 인쇄)" 항목이 보일 것이다. 기본값은 "설치되지 않음"으로 되어 있는데, 여기서 "설치됨"을 선택한다. 그리고 [적용], [확인] 버튼을 누른다.


(4) 정말로 양면 인쇄가 잘 되는지 테스트해 보자. MS Word(워드)에서 인쇄 창에 가면 인쇄할 프린터 모델명 밑에 "프린터 속성" 링크가 있다. 이것을 눌러서 설정창을 연다.


(5) 설정창에서 [완료] 탭을 선택한다.


(6) 중간의 문서 옵션 영역에 "양면 인쇄" 항목을 체크한다. [확인] 버튼을 누르고 인쇄를 해 보면 양면 인쇄가 자동으로 될 것이다.




반응형
블로그 이미지

Bryan_

,
반응형

자정이 넘어가고 나서 3월의 애드센스 내역을 확인해 보려고 들어갔는데,

연두색 대한민국 지도가 있어야 할 왼쪽 하단 자리에서 뭔가 어색한 느낌이 들었다.





최상위 수입을 기록한 행성이 "유로파"라고 한다. ㅋㅋㅋㅋ

두번째 수입을 기록한 "위성"은 도대체 뭔지..? 아리랑 3호가 구글에 방문한 것일까?

그리고 화성인도 블로그에 방문해 주었다. ㅋㅋ


물론 "행성 보기" 링크를 누르면 원래 보던 대로 세계지도에서 최상위 수입 국가를 보여 준다.

그 페이지마저 태양계 지도(지도라고 해야 하나?)였다면 더 센스있는 만우절 거짓말이었을지도 모른다.

어쨌든 새벽에 잠깐 웃게 해준 구글 애드센스 담당자에게 소소하게 칭찬을 남기는 바입니다. :-)


반응형
블로그 이미지

Bryan_

,
반응형

테스트 장비: 삼성 시리즈 9, 13인치 모델(NT900X3C-A64, 2012년 말 구입)


처음 시리즈9 노트북을 샀을 때 윈도우8이 기본으로 깔려 있었다. 같은 스펙에 이름 맨 끝이 A54인 경우가 윈도우7이 기본으로 깔려 있는 모델이었던 것 같다.


연구/실험용으로 윈도우7과 리눅스를 노트북에 설치하려고 삽질을 했었는데, 가장 먼저 직면했던 문제는 윈도우7 설치가 진행되지 않는 것이었다. 처음에 윈도우7 DVD를 넣으면 설치 준비까지는 잘 되는데, 본격적으로 설치하기 위해서 파티션 설정 화면으로 넘어갈 때 하드디스크가 없는 것으로 인식하는 것이었다.


경험상으로는 윈도우7을 설치하려면 바이오스 설정에서 운영체제가 UEFI OS로 되어 있는지 확인해 보고 CSM OS로 변경해야 한다. 그렇지 않으면 위와 같이 윈도우7 설치가 안되거나, 설치가 성공적으로 되었더라도 부팅이 안되는 상황을 겪었다.


정리하면,

- 부팅 시작할 때 F2 키를 연타해서 바이오스(BIOS) 진입 (절전모드에서 켜는 것이 아니라, 완전히 "시스템 종료"를 하거나 "다시 시작"을 해야 한다.)

- [Boot] - [Secure Boot]이 설정되어 있다면 해제(Disabled)하고, [OS Mode Selection]"CSM OS" 선택 ("UEFI and CSM OS"도 가능한 것 같지만 확인되지 않음)


(윈도우7이 성공적으로 부팅되는 경우의 시리즈9 바이오스 세팅)


반응형
블로그 이미지

Bryan_

,
반응형

개발환경: Microsoft Visual Studio 2010, MFC


아는 동생이 MFC로 히스토그램을 만들어서 시연하기 위한 코딩을 도와주면서 MFC를 오랜만에 접하게 되었다. 놀라운 얘기지만, 나는 학부 때 MFC 프로그램을 만들 일이 없었고, 연구실에서도 Java와 C 위주로만 개발하다 보니 MFC를 제대로 배운 적이 없다.


간단하게 윈도우 창에 히스토그램을 그려 주는 코드를 만들어 보면서, 혹시라도 나중에 데이터를 가지고 아주 간단한 시연(demonstration)을 할 때 급히 써먹을 가능성이 있을 것 같아서 기록하게 되었다. 막상 기록은 하게 됐지만 실상은 너무 간단하다.

 - 먼저 X축과 Y축을 원하는 길이만큼 긋고,

 - X축 위에 원하는 너비와 높이만큼 막대기를 배치한다.

끝. ㅡㅡ;


물론 더 보기 좋은 히스토그램을 그리고자 한다면 X축과 Y축 제목을 비롯해 고칠 것이 매우 많겠지만, 일단 기본 코드 위에서 그런 잡다한 작업을 시작하면 될 것이므로 기본 중의 기본만 남기게 되었다.

MFC에는 당연히 사각형을 그려 주는 함수가 있다. 그리기 개체(CClientDC)를 정의하고 FillSolidRect 함수를 이용하면 된다.

CClientDC pDC(this);

pDC.FillSolidRect( 0, 200, 50, 80, RGB(255,0,0) ); // (x,y)좌표: (0, 200), 너비: 50, 높이: 80, 색깔: 빨간색


단지 사각형을 그릴 때의 기준점(원점: (0,0))이 윈도우 창의 왼쪽 위에서 시작하고, Y 좌표값은 아래쪽으로 갈 수록 커진다는 것만 주의하면 된다.


우선 새로운 MFC 프로젝트를 만들 때 빈 윈도우 화면에 ChildView를 하나 만든 채로 시작했다.

프로젝트 이름을 hstorgram_140206으로 했더니 Visual Studio 2010에서 알아서 헤더와 소스 파일은 만들어 주었다.

편의를 위해 헤더 파일(historgram_140206.h)에 원점과 X,Y축 길이, 히스토그램 사각형(막대기)의 크기 등을 미리 정의했다.

// 새로 정의한 변수들

#define ORIGIN_X 20

#define ORIGIN_Y 560

#define X_AXIS_LENGTH 800

#define Y_AXIS_LENGTH 500

#define BAR_WIDTH 25

#define BAR_HEIGHT 20

#define BAR_COLOR RGB(0,255,0) // 녹색


ChildView.cpp 파일에는 onPaint() 함수에 히스토그램 그리는 작업을 했고, 막대기는 반복해서 그리기 때문에 별도의 함수로 만들었다.

/**

 * 단색으로 채워진 사각형을 그립니다.

 *

 * @param x 히스토그램의 x축에서 사각형을 그리게 될 위치

 * @param width 그려지는 사각형의 가로 길이

 * @param height 그려지는 사각형의 세로 길이(y값)

 * @label 해당 사각형의 레이블 값(x축에 적히는 글자)

 */

void CChildView::drawSolidRectangle(int x, int width, int height, CString label)

{

CClientDC pDC(this);

pDC.FillSolidRect(ORIGIN_X+x, ORIGIN_Y-height, width, height, BAR_COLOR);

pDC.SetBkColor( RGB(255,255,255) );

pDC.TextOutW(ORIGIN_X + x + (BAR_WIDTH/2), ORIGIN_Y+1, label);

}


void CChildView::OnPaint() 

{

CPaintDC dc(this); // 그리기를 위한 디바이스 컨텍스트입니다.


// 그리기 객체 초기화

CClientDC pDC(this);


/*

* X축과 Y축 그리기.

* 참고로 (0,0)은 화면상에서 왼쪽 위.

*/

pDC.MoveTo(ORIGIN_X, ORIGIN_Y); // 원점으로 이동

pDC.LineTo(ORIGIN_X + X_AXIS_LENGTH, ORIGIN_Y); // X축 선 그리기

pDC.MoveTo(ORIGIN_X, ORIGIN_Y); // 원점으로 이동

pDC.LineTo(ORIGIN_X, ORIGIN_Y - Y_AXIS_LENGTH); // Y축 선 그리기


/*

* data 읽어오기

*/

// 텍스트 파일이나 DB에서 읽어오고자 할 경우 여기서 값을 로드합니다.



/*

* 색깔이 채워진 사각형(SolidRect) 그리기

 * 여기서는 예제로 a부터 z까지 높이를 20씩 증가시켜 가며 자동으로 막대기를 그렸다.

*/

char ch = 'a'; // 각 사각형의 x축 레이블(테스트 목적으로 a~z 글자를 입력)

int i = 0;

for(i=0; i<26; i++){

drawSolidRectangle(BAR_WIDTH*i, BAR_WIDTH-1, BAR_HEIGHT*i, CString(ch));

ch++;

}

}





Visual Studio 2010 프로젝트 파일(zip): 

histogram_140206_2.zip




반응형
블로그 이미지

Bryan_

,