'Linux'에 해당되는 글 94건

  1. 2006.07.29 하드 디스크 속도 향상시키기 2
  2. 2006.07.24 KernelProgramming-printk 5
  3. 2006.07.21 Kernel Panic! 2
  4. 2006.07.18 Glade! 리눅스 GUI 프로그래밍 툴

하드 디스크 속도 향상시키기

(아래는 리눅스용...윈도우는 따른 프로그램이 있거나...? 아님 직접 바이오스를 건들여 보심이)

오늘 Amarok로 mp3들으면서 Wine+IE를 돌려서 애피에서 애니를 다운받고 있었는데.
다운을 받으면서 Amarok이가 딱딱 끈기는 것이었다...(정말 렉걸린거 처럼!)
그래서 오랜만에 아치리눅스 포럼에 들렸다가 위키에 찾아보니까 하드 속도 올리는 방법이 있었다
이 방법.. 포맷하기 전에는 실행을 해도 안먹히 던데.. 이번엔 될려나.. 하는 의심을 가지고서
한번 시도해 보았다

pacman -S hdparm 로 설치후 #archlinux일 경우

hdparm /dev/hda #자신의 장치명

테스트를 위해서 일단 속도 측정을 해보자

hdparm -t /dev/hda
나 같은 경우는 대략 3MB/sec 로 나왔다

다시 dma+32비트 지원 모드로 바꿔보면
hdparm -c3 -d1 /dev/hda
hdparm -t /dev/hda

Timing buffered disk reads: 170 MB in 3.02 seconds = 56.32 MB/sec
(이게 부팅할때마다 속도가 쪼금씩 차이가 났었다.. 한 2~3mb정도)

속도가 더 향상되었다... 한 19배 되나..
부팅시마다 실행하기 귀찮으니까 rc.local 파일내에 금방 썻던 내용들을 추가시키자

음......그리고..만약 확실히 속도 향상이 없거나,32비트 모드로 변경이 안된다면
바이오스에 들어가서 직접 하드 옵션을 건드려서 하드 모드를 32비트로 바꿔주자
내가 dma값을 막 바꿔봤는데.. 그다지 속도 향상은 없었다..
Auto모드가 있으면 그냥 Auto로 해도 괜찮을듯..

이렇게 하니까 물론 Wine+익스플로러 조합에서도 음악이 끈김없이 재생되었다..
그리고 프로그램의 로딩속도도 좀 향상된 듯하다.. 단.. 왠지.. 하드에 소음이 더 시끄러워진듯

Ps;
아마도 커널컴파일할때 하드 dma옵션도 들어가나보다.
아치리눅스에서 기본적으로 제공되던 커널이미지에 이 옵션? 이 추가되어 있었나했었는듯
(저번 커널이미지에서는 애피에서 애니 받아도 안느렸으므로 뭐 아님 말고)

KernelProgramming-printk

커널의 나만의 함수를 시스템 콜(함수)로 만들어보기

1시스템 콜을 등록하자

리눅스 커널 2.4버전이 /usr/src/linux-2.4.32 의 디렉토리에 있다고 하면

/usr/src/linux-2.4.32/include/asm-i386/unistd.h
파일에서 내가 만들 함수를 추가한다

#define __NR_exit_group 252
아래에 추가할것(커널 2.4 일때)
만약 거기에 글자가 있더라도 수정해도 된다
(라인수가 맞게 작성하자 예를들어서 252밑 라인에)

ex>
#define __NR_cpuinfo 253

다음에는
/usr/src/linux-2.4.32/arch/i386/kernel/entry.S 파일에 역시 전거와 비슷하게
라인수를 맞춰서 적는다

ex>
.long SYMBOL_NAME(sys_cpuinfo)
참고로 라인수는 위쪽라인에 옆 주석에 대충 5인가 10사이마다 나와있다
그것을 잘 맞춰서 할것(앞에서 253이었다면 이번에도 253 맞춰서 적어주어야함)

Plus...C에서는 인수가 6개 정도 밖에 안된다고 한다나

2함수가 될 본제를 작성한다

/usr/src/linux-2.4.32/kernel/cpuinfo.c(편의상 kenel 디렉토리에 작성)

#include<linux/linkage.h>
#include<linux/unistd.h>

asmlinkage int sys_cpuinfo()
{
   printk("CPU INFO\n");//C에서 printf 함수와 사용법이 비슷하다
   return 0;
}

3/usr/src/linux-2.4.32/kernel/Makefile 에다가 오브젝트?를 추가해준다
obj-y = sched.o dma.o fork.o exec_domain.o panic.o printk.o \
         module.o exit.o itmer.o info.o time.o softirq.o resource.o
         중략....
         signal.o sys.o kmod.o ......(맨뒤에다가)  cpuinfo.o 추가(아마도 c파일이랑 같은 파일명으로 해야하는거 같다)

4 unistd.h 파일을 복사해 준다

cp /usr/src/linux-2.4.32/include/asm-i386/unistd.h /usr/include/asm/unistd.h

5 시스템 콜을 이용할 프로그램을 작성한다

#include<linux/unistd.h>
_syscall0(int,cpuinfo);

main()
{
  int i;
  i=cpuinfo();
}

6 컴파일
7 출력이 되지 않으면 로그 파일을 확인해본다
ex>/var/log/message.log



쏫스의 자세한 내용은 본인도 모름... 니마~ 이 라인 어떻게 되는거삼~ 하고 물으면 본인은 좌절할수 밖에 없음.;
예>main함수가 왜 저따위로 생겼삼? 이런거.. 내용은..C언어 안다면 대충 무슨짓하는지는 알수 있을듯

'Programming > Kernel' 카테고리의 다른 글

확실히 다르잖아!!  (4) 2008.04.15
ctags 설정  (4) 2008.03.11
본체 전원키로 시스템 off 시키기  (4) 2007.04.22
운영체제 없이 화면에 A를 찍어보아요...  (6) 2007.04.06
Kernel Panic!  (2) 2006.07.21

Kernel Panic!

커널 컴파일...

한 7번만에 성공~

지금 새로 컴파일된 커널에서 글을 쓰고 있어요~~ 하하하~

2.6.17커널인데.. 뭐 Archlinux에선 원래 최신 버젼을 지원하지만..

커널 프로그래밍을 하는걸 계기로 한번 해봤습니다..

커널 플그래밍 책이 2.4버전이길래... 그거 컴파일하려고 했는데.. 실패해서.. 2.6.17을 컴파일하게 됬네요

뭐 결국 2.4버전은 아직 하진 못했지만요..(커널 버젼이 틀려서 그런지 방법이 좀 다른거 같군요)..

이번 컴파일할땐.. 모듈을 안넣고.. 모두 커널에다 넣어버려서 lsmod명령어를 쳐도 모듈이 하나도 안잡히는..

모듈안쓰고 죄다 커널에다 넣으니까는.. 따로 드라이버 깔아주고 설정하구 안해도 되니까 더 편한거 같은..

속도는.. 빨라저야 하는거 같은데.. 잘 모르겠어요.. 제가 게임같은걸 하는게 아니니..

커널 컴파일... 후기

커널 컴파일 하기전에.. 현재 컴퓨터의 자세한 사항을 먼저 조사해 주세요.. 정말 중요합니다..
ex>보드,CPU,사운드카드,랜카드...등.

Kernel Panic ?? 이라면.....

VFS어쩌구 하면서 grub설정 틀렸다고 바꿔라 이렇게 비슷하게 나왔던거 같은데..

뭐 결과적으론 root 파티션을 읽을수 없다~ 이러면서 패닉 걸려버리더라는...

아마.. 이거와 비슷할겁니다

VFS: Cannot open root device "hda2" or 03:05
Please append a correct "root=" boot option
<데뱐 유저~에서 참조>

make menuconfig 에서..
Device Driver-> ATA/ATAPI/MFM/RLL support->PCI IDE chipset support(체크후,컴터에 해당하는 장치가 있으면 체크하고  다음 없으면 끝 )->Generic PCI bus-master DMA support 에서 자신에가 맞는것 선택..

에.. 이게 제일 중요한거 였어요.. 이걸 체크 해주니깐 Kernel Panic 안걸렸습니다..

자아.. 인제 사운드 카드랑.. 랜카드를 인식시켜주면 됩니다..
랜카드 선택할때 주의점은... 만약 보드안에 랜카드가 내장되어 있다면.
그 내장된 보드를 선택하셔야 합니다

예를 들어서 nforce인데 Realtek이다 하면 Realtek을 선택하는게 아니라 nforce를 선택 해야 한다는 거
입니다..(역시 설명이 좀 이상함,,,)

사운드 카드를 인식시킬때는.. 커널 디폴트로 ALSA는 선택 되더군요.
(아마 menuconfig자체가..사용자의 컴터를 조사하고 디폴트 값은 만들어 주는거 같았어요)
거기서 OSS설정을 추가해주시는게 좋을겁니다..

이외에도.. 콘솔 그래픽 설정.. 무슨 장치 설정.. 엄청 많았습니다.. 저야 다 모르지만.. 아는것 필요한것만

체크하고 make로 컴파일 했습니다..

그다음엔 모듈을 먹여야 하는데..저는 모듈을 하나도 안뒀으니~ PASS~하고 그냥 /boot에 복사하고서

grub/menu.lst에서 그냥 커널 이미지만 추가해 뒀습니다~

PS:lsmod해서 아무것도 안뜨니까 .. 기분이 이상하네요 ㅋ..(저번엔 more써서 몇페이지 정도 였는데.)

'Programming > Kernel' 카테고리의 다른 글

확실히 다르잖아!!  (4) 2008.04.15
ctags 설정  (4) 2008.03.11
본체 전원키로 시스템 off 시키기  (4) 2007.04.22
운영체제 없이 화면에 A를 찍어보아요...  (6) 2007.04.06
KernelProgramming-printk  (5) 2006.07.24

Glade! 리눅스 GUI 프로그래밍 툴

제 리눅스 책뒤에 Gtk+가 설명이 있길래..

(읽기만 했지 머가 먼지 아직도 모름........)

쭉보고 있다가... M$ Windows 의 VB처럼..  윈도우 화면(비베식으로 폼) 을 마우스 클릭/드래그

해서 컨트롤을 올리듯이.. 하는게 리눅스에는 없을까... (이 뻔한걸 일일이 코딩하긴 그렇고..)

하고서 구글링 and MSN을 이용해서 알아본 결과 Glade라는 툴을 알게 되었죠..

사실.. 처음 무지 당황했습니다.. 속성 설정하는 부분도 있고 화려할거 같았지만..

달랑 메뉴 5개 툴바 5개의 썰렁한 화면.........;;; 그리고 팔렛트...

처음엔 정말.. 새파일 열기 해도.. 아무것도 안뜨는겁니다 폼같은거라도 떠야 뭘 잡아 끌든 말든 할텐데..

팔렛트에서 겨우 윈도우라는 것을 누르니깐 폼이 뜨더라는(새파일 하면 바로 나올줄 알았는데 아니더군요)

일단 윈도우(폼)를 하나 만들고 팔렛트(VB식으로 컨트롤모음)에 요소들을 클릭해서 비베처럼 끌었습니다..

그런데.. 이번엔 비베처럼 아예 끌리지도 않는겁니다.. 아 이것땜에 몇일동안 처박아 두었는데...

오늘에서야 알았는데.."고정된 위치"라는 컨트롤을 사용하니깐 비베처럼 컨트롤을 끌수가 있겠더군요..!

또 하나 문제점이 발생했습니다.. 속성 설정하는게 또 뭔지 몰라서.. 메뉴 뒤저보니깐 속성창이라는게

하나 있네요.. 그걸 뛰우고 컨트롤? 클릭 하니깐 속성이 쫙 보이는... 흠.

그래서 시험삼아서 방금 이녀석으로 Hello World~  예제를 작성해 보았습니다

하하.. 버튼도 하나 만들어서 클릭 하면 윈도(폼) 이 자동으로 꺼지게~ 말이죠..

버튼 클릭해서 꺼지게 할려면 Gtk 시그널,핸들 을 알아야 하더군요...

전 몰라서 그냥 보이는데로 이리리 찍었습니다만..

시그널은 그 객체가 어떻게 반응을 받는가? 핸들은 무었을(시그널에 받은것에) 실행시킬까? 이런거 같네요

앞에서도 말했지만.. 정말 모릅니다.. 대충 찍었을뿐 ..

객체:button1 에 대해서 속성의 시그널 탭에--> signal:click handle:gtk_main_quit

(아 글구 꼭 저장을 해야 하더군요 .........)

이렇게 만들어 놓으면 button1을 클릭하면 프로그램이 종료 되더군요  아신기...하다~

이부분은 뭔가 비베와 비슷한부분? 인거 같네요..흠..(설마 이것도 객체지향인가 아 몰겟네.;;)

아 그리고 파일을 제공해서 빌드하면 자동으로 컴파일 할수 있는 상태로 만들어 주는 좋은 기능도 있네요.

autogen.sh 라는 스크립트를 이용하면 되네요.. 그리고 make... src디렉토리에 들어가면

제가 만든 프로그램이 나오네요 흐흐 실행해 볼가나..


저런 허접한 플그램 하나가 나옵니다.. 종료 버튼을 누르면 프로그램 종료~

(소켓해야하는데.. 왜 내가 이걸 하고 있을까;;;;;;;;;)

'Programming > GTK+' 카테고리의 다른 글

vte를 이용한 간단한 터미널  (2) 2007.01.14
libglade 컴파일법  (1) 2006.12.14
TODAY.... 삽질 DAY  (6) 2006.08.09
(초보) gtk 작성팁  (10) 2006.08.04
GTK_TEXT 에러..해결책  (4) 2006.07.30
prev 1 ··· 16 17 18 19 next