Linux on laptops

강지응: ikarus@kldp.org

 

 

    나는 올해(99년) 8월달에 노트북을 구입해서 2개월만에 리눅스에서의 세팅을 성공적으로 마쳤다. 하지만 VGA 카드의 지원 문제로 인해 Frame Buffer Server를 사용하여 X-windows를 띄웠다.
    필자의 경험을 토대로 이 글을 쓰게 되었다.3회로 나누어질 것인데 이 글을 읽기전에 기본적인 리눅스에 대한 지식을 갖추기 바란다. 여러분이 랩탑에 리눅스를 설치하기로 마음먹은것에대해 후회하지는 않게 해주도록 노력하겠다.

    1회는 기본적인 레드햇 리눅스에서의 치와 X-windows 띄우는 방법에 대해 다뤘고 2회는 PCMCIA package compile과 install을 다뤘다.참고로 내 랩탑은 삼보 드림북 라이트 3530이다. ASUS에서 OEM해오는 것이며 리눅스와의 궁합은 좋은 편은 아니다. ASUS에서의 모델명은 L7300이다.
    사양은 Pentium-II 300 , 32 RAM (X-windows manager를 GNOME을 사용하면 버벅거림이 느껴진다.)비디오카드는 Silicon motion SMI910 4MB (최악의 VGA카드이다. Frame Buffer를 사용할 수 밖에 없었다.Ovislink ETHERNET card를 사용하고 있다. (pcmcia-cs-3.1.0이상부터 지원된다.)

     

1.사전 지식 , 자료모음

    일단 자신의 랩탑에 대한 자료들을 모아야 한다.
    linux on laptops
    (
    http://www.cs.utexas.edu/users/kharker/linux-laptop/)에 방문해서 자신의 랩탑 모델명으로 검색해봐라. 수많은 양의 자료들이 링크되어 있다.
    자신의 랩탑이 도시바, SONY,acers 등 유명한 외국 브랜드라면 자료찾기가 정말 쉬울것이고 국내 랩탑의 경우는 4대 통신망의 리눅스 동호회와 천리안의 노트북 사용자 모임의 소모임 노리모(노트북에서 리눅스를 사용하는 사람들의 모임)에서 자료를 찾을 수 있을 것이다.
    대우 solo와 삼성 sens 노트북의 경우에는 이미 많은 리눅서들이 사용방법을 올려놓았지만 삼보에 대한 글은, 한번도 보질 못했다.

    첫번째, 인터넷과 4대통신망 동호회 활용에서 이렇다 할만한 자료를 찾지 못했다면-. 국내의 경우에는-. 고객 상담 센터에 전화해보는 것도 방법이 될 듯하다. 나의 경우에는 고객 상담 센터에 전화해 봤는데 asus OEM이라는 사실, 자료를 찾을 수 있는 홈페이지를 상담원이 알려주어 큰 도움이 되었다. 노트북에 대한 자료를 찾았다면 다음은 PCMCIA,PC카드 에 대한 자료를 찾는 것이다.
    3com같은 유명제품일 경우 리눅스용 드라이버가 나와있는 경우도 있지만 대만제일경우 문제가 생긴다. NE2000 호환 계열이면 희망은 있지만 그마저 아닐 경우 자신이 직접 드라이버를 개발하는 수밖에 없을것이다.일단 제품의 홈페이지에 방문해보라.
    그곳에 리눅스용 드라이버가 있을 가능성이 크다.그것이 아닐 경우에는 PCMCIA 제작자 홈페이지,(
    http://hyper.stanford.edu/~dhind/pcmcia/)를 가보면 자세한 설명이 있다.드라이버가 없을 경우에는 이 글을 차근차근 읽어나갈때에-. 해결책을 찾을 수 있다.
    만약 이 과정에서 아무런 자료를 찾을 수 없더라도 포기하지는 말라. 이 글에서 제시하는 가이드 라인대로 하면 틀림없이 해결책을 찾을수 있을것이다.

     

2.설치 준비 과정

    이제 본격적인 설치에 들어가자.요즘 나오는 랩탑의 경우에는 CD-BOOTING이 지원되지만 안되는 경우를 위해 boot이미지 디스켓 만드는 법을 간단하게 설명하겠다.
    일단 WINDOWS로 부팅하거나 도스로 부팅해라. WINDOWS로 부팅할경우 (CD-BOOTING이 지원되는 경우 아래 과정을 생략해도 된다)
    시작 -> 프로그램 -> 한글 MS-DOS 로 DOS모드로 나간다음에 다음을 실행한다. (시디롬을 f:로 가정한 예문이다. 여러분의 드라이브에 맞게 써주기 바란다.

    C:\WINDOWS> md c:\temp
    'TEMP디렉토리를 만든다.'

    C:\WINDOWS> copy f:\dosutil\rawrite.exe c:\temp
    'TEMP디렉토리에 RAWRITE(이미지만드는 DOS용 프로그램)을 카피한다.'

    C:\WINDOWS> copy f:\images\boot.img c:\temp
    'boot 이미지를 temp디렉토리에 카피한다.

    '이제 깨끗히 포맷된 디스켓을 a:에 넣고

    C:\WINDOWS> c:\temp\rawrite.exe -f boot.img -d a
    이제 부팅용 디스켓이 만들어 졌다.

    다음은 pcmcia 이미지 디스켓을 만들 차례이다.
    CD-BOOTING이 가능하더라도 PCMCIA이미지 디스켓은 만들어야 한다.

    C:\WINDOWS> md C:\temp
    'temp디렉토리를 만든다."

    C:\WINDOWS> copy f:\dosutil\rawrite.exe c:\temp
    'TEMP디렉토리에 RAWRITE(이미지만드는 DOS용 프로그램)을 카피한다.

    'C:\WINDOWS> copy f:\images\pcmcia.img c:\temp
    'pcmcia이미지를 temp디렉토리에 카피한다.'

    이제 깨끗히 포맷된 디스켓을 a:에 넣고
    C:\WINDOWS> c:\temp\rawrite.exepcmcia.imgapcmcia

    이미지 디스켓 또한 만들어졌다.

     

파티션 분할

    일단 윈도우즈와 같이 쓸지를 , 아니면 리눅스만 쓰기를 , 여러분은 결정해야 한다. 만약 전자를 원한다면 백업이 불가피할 것이고 파티션마법사같은 유틸리티를 사용해서 여러분의 파티션을 나눠야 한다.
    윈도우즈의 ms-dos에서 fdisk를 쳐보자.3번을 누른다면 여러분의 파티션에 대한 정보가 나올것이다. 이것을 참고하여 어떻게 할지 결정해야 한다. - 만약 윈도우즈와 같이 쓰기를 결정하였다면 여러분은 파티션을 나눠야 할 것이다. 보통은 중요한 데이터들을 zip드라이브 혹은 플로피드라이브를 사용하여 백업을 한 후에 파티션을 지운후, 새로운 파티션 2개를 형성한다.여기에서 리눅스 파티션의 양을 결정해야 하는데 여러분의 하드의 양에 따라 설정해준다. 참고로 말하자면 linux for seminar 가 628메가 정도이고 Alzza linux 가 약 900메가정도,엑셀리눅스가 약 1기가정도 설치된다.(full install의 경우)하지만 노트북이므로 어떠한 패키지를 선택할지는 순전히 여러분에게 달려있다.
    그리고 FIPS라는 프로그램이 있다. 이 프로그램은 여러분이 하드를 초기화시키지 않고 리눅스를 설치하는데 도움을 줄 것이다. 이 프로그램을 다운 받은 후 README파일을 읽어보시면 자세한 안내가 나와있다. 참고 하실 것은 이 프로그램을 사용하기 전에 윈도우즈 조각모음을 사용한 다음에 FIPS를 써야한다는 것이다.
    리눅스만을 사용하기로 결정했다면 도스에서 파티션을 나눠줄 필요는 없다. 다음단계로 넘어가도 좋다.

     

주의사항

    랩탑에는 서스펜드 모드라는게 있다. 서스펜드모드는 절전 모드로 파티션을 따로 할당해줘야 한다. (서스펜드모드 전환시 이곳에다가 데이터를 저장하고 전원이 내려간다.) 32메가 정도인데 이 파티션설치 프로그램은 노트북 제조업체에서 제공해준다. 이 프로그램을 사용해서 파티션을 먼저 만들어놔야 한다.

    서스펜스 모드시 할당해주는 영역에서 이 영역을 설정해주지 않고 파티션을 나눈후에는 서스펜스모드를 램으로 사용하거나, 아예 사용하지 않는 편이 좋다. 왜냐하면 파티션이 꽉 차있을 경우에는 모든 파티션을 지우기 때문이다.

    (예) 파일명 : phdisk.exe

    나중에 귀찮은 작업을 더 하고 싶지 않다면 윈도우즈를 먼저 설치한 후에 리눅스를 설치한다. 만약 CD-BOOTING을 한 것이라면 CD를 넣고, 아까전에 boot image디스켓을 만들었다면 디스켓을 넣고(pcmcia디스켓을 넣지말 것) 리부팅한다.

    CD-BOOTING의 경우에는 CMOS셋업에서 BOOT FROM 부분을 조절해줘야 한다. 재부팅을 하게 되면 인스톨 모드 선택 화면이 뜨며 입력을 기다리는데 이 경우 보통 엔터를 쳐주지만 노트북의 경우 pcmcia 소켓을 인식하지 못하는 경우가 있으므로 expert 라고 입력한다. 설치 진행할 언어를 선택하고 키보드 종류를 선택하면 pcmcia를 설치할 것인지 설치 안할것인지에 대해 물어본다. 당연히 yes를 누르고 boot image디스켓을 뺀후 pcmcia 이미지 디스켓을 넣는다. 엔터를 눌러주면 module을 설치하기 시작한다.(pcmcia는 모듈로 작동한다.) 인스톨이 완료된후 나오는 beef음에 주의를 기울여라.PC카드가 하나 설치된 경우에, 짧은 비프음이 두번 울리게되면 인식 했다는 말이고 짧은 비프음 한번, 긴 비프음 한번이 나오게되면 인식은 되지만 제어 할 수는 없다는 말이다.(modprobe:not found 라는 메세지가 뜨게된다.)

    아무 소리도 들리지 않을경우..문제는 심각해진다. 이경우 pcmcia-HOWTO와 pcmcia-developer-HOWTO를 읽어봐야할것이다.

    다음 질문은 어디로부터 리눅스를 설치할것인지 물어보는 것인데 CD-ROM에서 설치하는 것이므로 그냥 엔터를 쳐주고 DISK DRUID로 들어가서 파티션을 조정해주기 바란다. 하드디스크 장치명은 다음과 같다.

      primary master : /dev/hda
      first partition : /dev/hda1
      second partition: /dev/hda2 . .

    파티션 설정에 관한건 이 글이 아닌 다른 글을 참조 바란다. 주제에 좀더 충실하기위해 파티션 설정에 관한 내용은 생략하겠다.

    다음 질문은 설치할 항목을 선택하는 것이다.
    Everything이 가장 속편한 방법이지만 각자의 취향에 맞게 선택해주기 바란다. ok를 한번 누르면 ex2f 파티션을 포맷한 후 설치를 시작한다.

    설치가 끝난후 mouse를 probe하게 되는데 probe가 안될 경우에 수동으로 선택해주면 된다. (제품명은 메뉴얼에 나와있다.)
    마우스를 선택하게 되면 네트워크환경에 대한 질문인데 각자 환경에 맞게 선택해준다.(노트북이 네트워크에 물린경우는 드문거같고 주제를 벗어나게 되는 것 같아서 생략하겠다.)비밀번호는 루트의 비밀번호-. retype까지 해준 후 ok를 누른다.

    리로 설치는 안내 메세지를 보면 충분히 할 수 있는 것이므로 여기서는 설명하지 않겠다.다음은 VGA카드와 LCD설정- X-windows를 위한 것인데 자동으로 잡아주는 경우도 있지만 노트북에서 이런일은 거의 없다고 봐야한다. 아까전에 자료수집단계에서 찾은 vga카드를 선택하고 모니터 종류는 LCD 를 선택해준다(해상도는 각자의 노트북에 맞게)
    만약 자료 수집 단계에서 호환되는 vga카드조차 찾을 수 없었더라도 X-WINDOWS를 띄울 방법이 전혀 없는 것은 아니다. 앞에서 잠깐 설명한바 있는Frame Buffer를 사용하면 되는 것이다. 이 방법에 대해서는 뒤에서 설명하겠고 X의 설정이 되지 않았다면 포기하지말고 자료를 찾아보고 그래도 안될 경우에 Frame Buffer를 사용하기 바란다. 왜냐면 Frame Buffer를 쓸경우에 스크롤이 느리고 콘솔상태에서도 800*600화면을봐야하기때문이다. 이제 시스템은 자동으로 리부팅 될것이다.

     

3. X-WINDOW

    SVGA카드 설정을 성공적으로 마쳤을 경우에는 이미 X-MANAGER까지 설정하고 자기의 취향에 맞게 독특한 리눅스 환경을 구축했을 테지만 설정하지 못했을 경우에는 다시 윈도우즈로 돌아갈 생각까지 하고 있을지도 모를 것이다. 그런 사람들을 위해 프레임 버퍼 서버를 사용하는 법을 설명하겠다.프레임버퍼란 VESA 2.0 이상되는 VGA카드는 모두 사용가능하며 콘솔에서 고해상도를 볼 수 있게 해주는 것이다. 즉 그래픽을 출력하는 어플리케이션이 그래픽 출력장치의 내부구조를 알지 못해도 그래픽 출력을 할 수 있도록 만들 수 있는 것이다.

    일단 커널 설정을 다시 해주어야 한다. 하지만 현재 나와있는 대부분의 배포판의 커널은 이 설정들을 포함하고 있을 것이다.
    먼저 커널의 소스가 있는 곳으로 가서 "make menuconfig" 를 실행시킨다.
    그리고 Consol Drivers menu의 다음사항들이 Yes가 되도록 체크해줘야 한다.

    VGA Text Console
    Video Selection Support
    Support for frame buffer devices
    VESA VGA Graphic console
    Advanced Low Level Drivers
    Select Mono,2bpp, 4bpp, 8bpp, 16vpp, 24bpp and 32bpp packed
    pixel drivers
    VGA character/attributes support

    여기에서 Mono ~ 32bpp까지의 pixel driver는 모두다 선택하지 않아도 되지만 8bpp는 반드시
    선택해 주어야 한다.

    이제 커널을 컴파일하고 설치한다. 만약 이미 옵션에 설정되어있었다면 다시 컴파일하지 않더라도 프레임버퍼를 사용할 수 있을 것이다.
    다음 명령은 장치 구동 파일을 만드는 것이다.
    mknod /dev/fb0 c 29 0ln -s /dev/fb /dev/fb0이제 lilo.conf를 건드릴 차례다. vi나 emacs, 자신이 편리한 에디터로 /etc/lilo.conf를 연다. linux파티션으로 부팅하는 항목 중 vga='숫자' 이란 항목이 있으면 숫자를 적어줘야 하고 없으면 vga='숫자' 식으로 추가 시켜줘야 한다. 숫자란에 들어가는 표는 다음과 같다.

    Colours     640×480     800×600    1024×768    1280×1024    1600×1200
    256           0301          0303          0305           0307             031C
    32,768      0310          0313          0316            0319             031D
    65,536      0311           0314          0317           031A             031E
    16.8M       0312           0315          0318           031B             031F

    여기는 위의 것도 같은 십진수로 된 표입니다.

    Colours     640x480     800x600     1024x768    1280x1024    1600x1200
    256           769            771            773            775              796
    32,768      784             787           790             793              797
    65,536      785             788            791            794              798
    16.8M       786             789            792            795              799

    이제 lilo를 실행시킨 후 재부팅 한다.여러분은 멋진 펭귄로고를 보고 있을 것이다. :) 이제 X-WINDOWS를 띄울 차례다. 이것은 비교적 간단하다. 일단 FB-Xserver 가 필요하다. ftp.xfree86.org 에서 구하기 바란다. 받아와서 압축을 풀면 XF86_FBDev라는 파일이 생길것이다. 이 파일을 /usr/X11R6/bin/ 디렉토리에 옮긴다.
    그 뒤 /etc/X11/X 를 /usr/X11R6/bin/XF86_FBDev로 심볼릭 링크시킨다.

    #ln -s /usr/X11R6/bin/XF86_FBDev /etc/X11/X

    다음은 /etc/X11/XF86Config 파일을 열어서 편집해준다.

    앞 부분의 키보드,마우스,항목은 그냥 놔두고 나머지 부분을 다음을 참고하여 편집해준다.(내가 사용하고 있는 설정이다.)

     

    # XF86Config auto-generated by XF86Setup
    #
    # Copyright (c) 1996 by The XFree86 Project, Inc.

    #
    # Permission is hereby granted, free of charge, to any person
    # obtaining acopy of this software and associated
    # documentation files (the "Software"),to deal in the Software
    # without restriction, including without limitationthe rights to use,
    # copy, modify, merge, publish, distribute, sublicense,and/or
    # sell copies of the Software, and to permit persons to whom
    # theSoftware is furnished to do so, subject to the following
    # conditions:
    #
    # The above copyright notice and this permission notice shall be
    # included inall copies or substantial portions of the Software.
    #
    # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY
    # OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
    # LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    # FITNESS FOR A PARTICULAR PURPOSE AND
    # NONINFRINGEMENT. IN NO EVENT SHALL
    # THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM,
    # DAMAGES OR OTHER LIABILITY,WHETHER IN AN ACTION OF
    # CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
    # OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
    # OTHER DEALINGS IN THE SOFTWARE.
    #
    # Except as contained in this notice, the name of the XFree86
    # Project shall not be used in advertising or otherwise to
    # promote the sale, use or other dealings in this Software
    # without prior written authorization from the XFree86 Project.
    #

    # See 'man XF86Config' for info on the format of this file

    Section "Files"
    RgbPath "/usr/X11R6/lib/X11/rgb"
    FontPath "unix/:-1"
    EndSection

    Section "ServerFlags"
    EndSection

    Section "Keyboard"
    Protocol "Standard"
    AutoRepeat 500 30
    #5 LeftAlt Meta
    RightAlt Meta
    ScrollLock Compose
    RightCtl Control
    XkbKeycodes "xfree86"
    XkbTypes "default"
    XkbCompat "default"
    XkbSymbols "us(pc101)"
    XkbGeometry "pc"
    XkbRules "xfree86"
    # XkbModel "pc101"
    XkbModel "us"#4#88"
    XkbLayout "us"
    EndSectionSection

    "Pointer"
    Protocol "GlidePointPS/2"
    Device "/dev/mouse"
    Emulate3Buttons Emulate3
    Timeout 50
    EndSection

    Section "Monitor"
    Identifier "Primary Monitor"
    EndSection
    #VGA카드 설정부분이다. 역시 Primary Card로 설정해 주었다.
    Section "Device"
    Identifier "Primary Card"
    EndSection
    #제일 중요한 부분이다. 스크린에 대해 설정해주는 곳이다.
    Section "Screen"
    #FBDev를 (아까전에 /usr/X11R6/bin/ 에 복사한 드라이버이다.)
      사용한다.
    Driver "FBDev"
    #Primay카드를 사용한다. 위에서 쓴것과 똑같이 써야 한다.
    Device "Primary Card"
    #Primay모니터를 사용한다. 역시 위에 쓴것과 똑같이 써야 한다.
    Monitor "Primary Monitor"
    #Display 설정이다. 아래 설정은 FB consol 해상도와 같은 해상도를
      X에서 사용한다는 뜻이다. Subsection "Display"
    Modes "default"
    ViewPort 0 0
    EndSubsection
    EndSection

     

    저장하고 빠져나오면, 이제 모든 설정은 완료된 것이다. startx라고 쳐보자. 멋진 X윈도우의 화면이 여러분을 기다리고 있을 것이다.

    이번호에서 다룬 Frame Buffer는 VESAfb-HOWTO를 참고 했으며 다음호에서는 PCMCIA-HOWTO를 다룰 예정이다.
    문의 사항이 있으면
    ikarus@kldp.org로 메일을 보내기 바란다.




▲ top

home으로...