-----------------------------------------------번역시작-------------------------
----------
위의 문서는 IDE 성능향상을 위한 패치소스이며, 커널을
리빌드함으로써
어느정도의 IDE성능향상을 추구하고자 한다.
(역자주:먼저 꼭 알고 넘어가야할 부분 - 커널 컴파일 경험이
있어야 합니다..그렇지
처음해보시는 경우라면 커널컴파일에 대한 문서를 보신후
도전해보세요..
^^)
순서1:
1. 리눅스 IDE 드라이버 소스파일을 패치한다.
cd /usr/src (역자주:여기에
리눅스 코어 커널이 존재하죠)
2. 패치하기전, 압축을 풀자
gunzip xxx-patch-xxx-vpide.gz
3. 압출을 푼후에 "xxx-patch-xxx-vpide"란
파일이 생기며, 다음처럼 쉽게 패치할수있다.
patch -p0 < xxx-patch-xxx-vpide(역자주:일단
압축파일을 /usr/src밑의 linux 란 디렉토리에 넣으시구요, 위의
방법대로 압축을 푸신후, /usr/src/란 디렉토리에서 패치명령을
치시면 됩니다. 성공적으로 패치가 되었다면, chunck란 단어가
보이면서 succeed란 단어도 보일겁니다..단.
본인이 커스터마이즈한
커널이라면, linux가 아닌 다른 이름이 될수도 있겠죠..)
순서 2:(커널리빌드)
1. /usr/src/linux디렉토리로
이동
cd /usr/src/linux
2. 시스템 설정
make xconfig(역자주:여기에선
xconfig를 사용하라고 했군요. x-window상이라면,
이 명령을 사용하시면 되겠지만, 만약 터미널이라면 make
menuconfig를 하셔야합니다.)
3. Linux Configuration 이란 윈도우가 뜰것이며, 여기에서 무수한
옵션들중 ATA/IDE/MFM/RLL support란 부분으로 가셔서 "IDE,ATA and ATAPI
Block devices"란 옵션을 선택하세요.그러면
또다른 창이 뜨며, 여기에서 VIA82CXXX chipset support"란 옵션을
선택하시구요.
참고:씨피유타입과
다중씨피유 유무파악할것. 만약 다중씨피유가 아니라면
"multiprocessor support"옵션을 해제할것.
4. 서로간의 의존성을 확인한 후 Makefile한다(역자주:말은
쉬운데요, 이러한 의존성을 파악하시기 위해선 위에서
언급했듯이 커널컴파일의 경험이 있으셔야 할겁니다. 간단한
방법중 하나가요, dmesg > dmesg.txt 하시구요, dmesg.txt로 나온
부분을 프린트하신후, 하나하나 살펴보세요.. 그안에는 본인의
하드웨어 상황이 자세히 기록되어 있으며, 커널 컴파일이
필수적으로 확인해야할 부분입니다..)
make dep
5. 만약 리눅스 운영체제라면 필요없는 객체(object)들을
지워라
make clean(역자주:꼭 지우실 필요는 없구요...지우셔도
상관없구요..)
6. 새로운 커널 이미지생성
make bzImage(역자주:I는
대문자 I입니다..숫자 1이 아니구요.. 이 과정은 새로운 커널
이미지를 만드는 과정이며, 이 새로운 이미지는 다음 부팅시에
적용되는 가장 중요한 커널 코어입니다. 다시말해서 본인이
커스터마이징한
최초의 커널이미지가 되는 셈이죠..)
7. lilo를 위해서 make install한다(역자주:글쎄요..요즘
lilo쓰는 분들도 많으시지만, grub가 더 보안적이라고
하더라구요. 전 잘 모르겠네요.. lilo와 grub와는 성격이 서로
틀려서.. grub의 설정에 관해선 여기에서 설명드리기 좀
그렇군요. lilo같은 경우나 grub같은 경우 역시 /boot로 생성된
이미지를 카피한후 이름을 변경하죠.. 보통 vmlinuz-XXX라고
합니다. 그런후 /etc/lilo/conf나 /etc/gryb.conf에서
새롭게 올라온 커널 이미지의 위치를 지정해주면 됩니다.)
8. /etc/lilo.conf를 확인하라.
9. lilo를 업데이트 한다.
#lilo (역자주:그러면
부팅시 적용될 수 있는 이미지들이 나옵니다. 디폴트이미지,
즉 다음부팅시 적용될 커널이미지에 *표시가 되어있을거구요.
하지만 , grub는 그냥 리부팅하면 됩니다)
10. 리부팅(역자주:만약
커널설정상 서로간의 의존성 결여 및 중요한 하드웨어가
커널로 올라오지 않은 경우, kernel panic이란 메세지와 함께
부팅이 안될겁니다. 그럼 다시 리부팅하시고, 초기
부팅옵션에서 이전 커널이미지를 선택하신후 다시 부팅하시고,
어느 부분이 잘못되었는지 확인하신후 다시 컴파일과정을
거쳐야 합니다. )
11.성공적으로 부팅되었다면, dmesg를 통하여 다음과 같은 문구가
보일겁니다.
"VP_IDE: vt8233a (rev 00) IDE UDMA133 Controller on pci:slot-num"
순서 3:ide성능향상 측정
hdparm이란 명령어를 통하여 새롭게 패치된 IDE소스를 통한
IDE성능향상정도를
파악해봅니다.위의
명령어는 다양한 하드드라이브의
ioctls를 제공한다. 다음은 DMA모드의 설정 켬/끔/변경에 대한
내용이다.
1. hdparm -tT /dev/hda ->파라미터 -T는 프로세서, 캐쉬와 메모리에
대한 전반적인 상황을 보여주며, 파라미터 -t는 일련의
데이터들을 읽어들임에 있어서 어느정도 빠르게
지원해주는지를
보여주게 한다.
2. 파라미터 -d1은 DMS모드 켬, -d0는 반대로 끔
3. 파라미터 -X 16에서 18 또는 32에서 34 또는 64에서 70옵션은
전송모드를 변경해주는 옵션이며, SDMA 0에서 2에 대해서 16에서
18까지, MDMA 0에서 2에 대해서 32에서 34까지, UDMA 0에서 6까지에
대해 64에서 70까지 변경해준다.
4. 파라미터 -i는 현재의 전송모드를 확인하고자 할때
사용된다.
------------------------------번역끝------------------------------
결국 커널컴파일에 대한 내용뿐입니다.
위에서 말씀드렸듯이 커널 컴파일을 해보신 경험이
있으시다면, 모르겠지만..처음이시라면
조금 벅찰수도 있군요.
커널 컴파일에 대한 문서를 보신후에 해보시는게..
그리고, 지금 패치를 하신후 보여준 에러메세지를 보니
서로간의 버전이 맞지 않는거 같군요. 패치소스가 지원하는
커널버전부터 파악하시구요, 그리고 패치를 해보시는데요, 이
패치 소스는 다만 성능향상만을 꾀할뿐 잡지 못한 하드웨어를
잡아주기 위한 패치소스는 아닌듯 싶네요.
예전에 다른 업체에서 아주아주 신기한(심지어 윈도그에도
깔리지않는 무시무시한 raid를 갖고있던놈...아직도
기억나네요..그날밤..
빨간색 랙에 들어있던..그놈...
허나 빨간모자는 잡아내더군요..
-.-;)경험이 있었지요..
혹시 리눅스 배포판이 어느것인지 모르겠지만요, 빨간모자를
한번 설치해보시구요..
그것이 안된다면, 아마도 설치할때 다른 옵션을
가미해주셔할거
같군요..보통 저같은 경우는 구굴을 뒤져보는데요..
거의 해답에 그곳에 있더라구요.. 그래도 못찾으면 여기
산님찾으러 달려오지만..^^
그럼..행운을..
[neograf]님이 남기신 글:
>via southbridge를 인식하지 못한다는 메시지가 나오면서 IDE
설정을
>
>UDMA로 잡지를 못하네요..
>
>그래서 비아사이트를 가서 찾아보니 리눅스 VIA패치가
있더군요..
>
>http://www.viaarena.com/?PageID=182#ide
>
>이 파일의 ReadME 파일의 내용은 밑에 복사해 붙여놓겠습니다.
>
>readme파일의 내용을 보니 patch를 하는 항목이 있어 패치를
>
>해보았더니
>
>이런 메시지가 뜨네요..
>
>-----------------------------------------------------------
>patching file linux-2.4/drivers/ide/ide-timing.h
>patching file linux-2.4/drivers/ide/via82cxxx.c
>Hunk #1 FAILED at 15.
>Hunk #2 FAILED at 87.
>Hunk #3 succeeded at 99 (offset 2 lines).
>Hunk #4 FAILED at 108.
>Hunk #5 FAILED at 133.
>Hunk #6 FAILED at 214.
>Hunk #7 succeeded at 377 with fuzz 2 (offset 131 lines).
>Hunk #8 FAILED at 422.
>Hunk #9 FAILED at 452.
>Hunk #10 FAILED at 509.
>Hunk #11 succeeded at 284 with fuzz 2 (offset -158 lines).
>8 out of 11 hunks FAILED -- saving rejects to file
linux-2.4/drivers/ide/via82cxxx.c.rej
>patching file linux-2.4/include/linux/pci_ids.h
>Hunk #1 FAILED at 960.
>Hunk #2 succeeded at 867 with fuzz 1 (offset -112 lines).
>1 out of 2 hunks FAILED -- saving rejects to file
linux-2.4/include/linux/pci_ids.h.rej
>-----------------------------------------------------------
>참고로 전 리눅스 초짜라 정확하게 이메시지가 전하는 뜻을
>
>모르겠습니다.
>
>이후로 cd /usr/src/linux해서
진행하라는 것 같습니다만..
>
>와우 리눅스의 경우 /usr/src/ 안에
>
>linux2.4, linux2.4.2, 두가지가 존재하는데
>
>어디서 해야할지 감도 안잡히네요.. ㅠ_ㅠ;
>
>제발 아시는 분 계시면 가르쳐 주시길 ㅡㅡ;
>
>밑에는 ReadMe 원문입니다.
>
>This README file describes how to patch IDE driver source file,
>rebuild the Linux kernel, and measure IDE performance.
>
>Step I: Patch the Linux IDE driver source file
>1. The Linux kernel including driver source files are all placed in
> the directory /usr/src/linux. You have to change your directory
> /usr/src in your console.
>
> #cd /usr/src
>
>2. Before patching your Linux IDE source file, you should decompress
> your patch file.
>
> #gunzip xxx-patch-xxx-vpide.gz
>
>3. And then you will find a file "xxx-patch-xxx-vpide" in the current
> directory. This file is a patchfile that the Linux utility "patch"
> can read.
>
> #patch -p0 < xxx-patch-xxx-vpide
>
> Note: Setting parameter -p0 gives the entire file name unmodified.
>
>Step II: Rebuild the Linux kernel
>1. Change the current directory to /usr/src/linux
>
> #cd linux
>
>2. Configure the system. The system will ask about driver settings.
>
> #make xconfig
>
> Note: If you are in text mode, try "make menuconfig".
>
>3. The system will pop up a "Linux configuration window" window
> with many driver buttons. Find out the button "ATA/IDE/MFM/RLL support"
> and press it. Press the button "IDE,ATA and ATAPI Block devices".
> The system will pop up another window. Select "VIA82CXXX chipset support".
>
> Note: Pay attention to your CPU type and check if your system
> supports multiple processors. If your system is a uni-processor
> system, disable the multiprocessor support.
>
>4. Find out the dependencies of source files and the system will
> build a new Makefile.
>
> #make dep
>
>5. If you used to build Linux kernel, you should clean old object
> files and force building new kernel.
>
> #make clean
>
>6. And you can build a new kernel image.
>
> #make bzImage
>
>7. It is also possible to "make install", if you have lilo installed
> to suit your kernel makefile.
>
>8. Then you have to check /etc/lilo.conf to see if the image point
> to /boot/vmlinuz. On the other hand, there must be the line
> "image=/boot/vmlinuz" in your lilo.conf.
>
>9. Run "lilo" command in your current directory and you will see
> the prompt "Added linux *".
>
>10. Reboot Linux system. You will see the boot message shown below
> if using the south bridge vt8233a.
>
> "VP_IDE: vt8233a (rev 00) IDE UDMA133 Controller on pci:slot-num"
>
>Step III: Measure IDE performance
>Use the "hdparm" utility to test IDE performance. The utility
>provides a command line interface to various hard disk ioctls
>supported by the device driver. The following options are available
>for how to enable/disable DMA, change the UDMA mode, and measure
>the data transfer throughput.
>
>1. The parameter -T is essentially to measure the throughput of the
> processor, cache, and the memory of the system, -t is to measure
> how fast the drive can sustain sequential data reads.
>
> eg: hdparm -tT /dev/hda
>
>2. The parameter -d1 is to enable DMA mode, -d0 is to disable DMA mode.
>
> eg: hdparm -d1 /dev/hda for enable DMA
> hdparm -d0 /dev/hda for disable DMA
>
>3. The parameter -X [16~18, 32~34, 64~70] is to switch the transfer mode,
> 16~18 for SDMA 0~2, 32~34 for MDMA 0~2, 64~70 for UDMA 0~6.
>
> eg: hdparm -X70 /dev/hda for UDMA 6
>
>4. The parameter -i to check the current transfer mode.
========================================
|