£ Programing2009/05/20 09:18
  

작성자: 박재성 (http://discount77.com/blog/ospace/, ospace114@empal.com)

"메시지 처리에 대해서 잘 알고 있다면 다음 내용이 필요 없다."

MFC에서 기본적인 위도우 프레임웍이 설계되어 있고 그 곳에 맞게 필요한 코드를 넣어주면 된다.
프로그래밍에 있어서 가장 중요한게 자원 할당과 해제이다. 특히 C++에서는 메모리 관리를 프로그래머가 직접해주기 때문에 잘못된 메모리 관리는 시스템 전체에 안좋은 영향을 준다.

MFC에서  가장 무식하게 자원 할당과 해제를 하는 경우를 보면 생성자와 소멸자에 하는 경우이다. 실제 직접 생성자와 소멸자에 코딩하는 경우는 드물고 포인터 변수를 NULL로 초기화하는 정도이다.

그럼 MFC에서 실제 API 호출 순서를 보자. 응용프로그램 형태 중에서 대화상자를 중심으로 살펴보겠다.


Case 1) 대화상자 뛰우고 [X] 버튼  눌러 종료하기

Warning: no message line prompt for ID 0x8003.
[CD1Dlg] PreInitDialog()
[CD1Dlg] OnInitDialog()
[CD1Dlg] OnClose()
[CD1Dlg] OnCancel()
[CD1Dlg] OnDestroy()
[CD1Dlg] PostNcDestroy()
[CD1Dlg] OnNcDestroy()

Case 2) 대화상자 뛰우고 "Cancel"  버튼 눌러 종료하기

Warning: no message line prompt for ID 0x8003.
[CD1Dlg] PreInitDialog()
[CD1Dlg] OnInitDialog()
[CD1Dlg] OnCancel()
[CD1Dlg] OnDestroy()
[CD1Dlg] PostNcDestroy()
[CD1Dlg] OnNcDestroy()

Case 3) 대화상자 뛰우고 "Ok" 버튼 눌러 종료하기

Warning: no message line prompt for ID 0x8003.
[CD1Dlg] PreInitDialog()
[CD1Dlg] OnInitDialog()
[CD1Dlg] OnDestroy()
[CD1Dlg] PostNcDestroy()
[CD1Dlg] OnNcDestroy()

* 처음

위의 경우를 살펴보면, 처음 시작시 호출되는 함수가,

PreInitDialog()
OnInitDialog()

두 함수가 기본적으로 호출이 된다. OnInitDialog 함수는 많이 익숙한 이름이다. 대화상자에 가장 기본적인 초기화 코드를 넣는 함수이다.

(함수라는 용어보다 메소드, API, 멤버 함수등을 적합한 이름을 선택해야되는데 편의상 쉽게 이해하기 위해서 함수로 통일한다.)

** 중간

그리고 종료하는 종류에 따라서 중간에 호출되는 함수가 달라진다.

[X]와 "Cancel" 버튼을 눌렀을 경우에 공통적으로 OnCancel 함수가 호출된다. 단, [X] 버튼을 눌렀을 경우 추가로 OnClose 함수가 호출된다.
간혹 OnClose 함수가 대화상자 닫히는(Close) 경우로 착각해서 이 곳에 넣는 경우가 있다. 나도 그런 적이 있었다. 위의 함수 호출 순서에 나왔듯이 OnClose 함수는 경우에 따라서 호출되지 않은다.
"Ok" 버튼을 눌렀을 경우는 역기서는 별다른 함수 호출이 없다. 필요하다면 OnOk 함수 정도 정의하면 된다.

*** 끝

종료하는 경우는 살펴보자.

OnDestroy()
PostNcDestroy()
OnNcDestroy()

세 종류의 함수가 호출된다. OnDestroy 함수는 메시지 핸들러로 WM_DESTROY 메시지를 수신하면 호출된다.
PostNcDestroy 와 OnNcDestroy 는 함수 재정의에 의해서 사용된다.
종료시 가장 많이 사용하는 함수가 OnDestroy와 OnNcDestroy 함수이다.
본인이 선호하는 것은 OnDestroy 함수이다. OnNcDestroy()는 함수를 재정의 해줘야하며 메시지 종료 (WM_DESTROY)에 의해서 종료될 경우 해당 자원 해제를 확인하는데 직관적이지 않기 때문이다.



소멸자와 생성자 사용에 대해서

앞의 예제를 실제 코드로 간략히 살펴보면, Class CD1Dlg 정의는 되어 있다고 가정한다.

CD1Dlg dlg; // (1)
if(dlg.DoModal() > 0) {
  // Ok
} else {
  // Cancel
}

와 같이 동작한다. 위의 코드에서 대화상자를 객체화하는 부분(1)를 저장해두었다가 필요시 호출해서 사용할 수 있다. 즉 다음과 같다.

if(m_pDlg == NULL) {m_pD1Dlg = new CD1Dlg; }
if(m_pD1Dlg->DoModal() > 0) {
  // Ok
} else {
  // Cancel
}

위와 같이 바뀌면 앞에서 초기화하는 부분

PreInitDialog()
OnInitDialog()

그리고, 종료하는 부분

OnDestroy()
PostNcDestroy()
OnNcDestroy()

이 호출하지 않는다고 생각할 수 있다. 근데, 전혀 그렇지 않다.
대화상자 DoModal함수 호출이 초기화하는 부분을 불러오게 된다.

PreInitDialog()
OnInitDialog()

종료하는 부분도 마찬가지이다. 그러면 대화상자 객체를 저장하는 이유는 뭘까?
대화상자를 빈번히 호출하면서 초기화가 오래걸리는 객체를 대화상자에 갖고 있다면, 한번 초기화한 후에 그 결과 객체를 계속 보관하고 필요시 가져와서 사용하면 성능 향상에 도움이 될 것이다.
(주! 이 부분은 여러 방법으로 가능하기 때문이 반드시 대화상자에 객체를 저장할 필요는 없다.)

그때 생성자에서 해당 객체를 생성하고 소멸자에서 해당 객체를 제거하면된다. 그러면 대화상자 뛰우고 종료하는 과정에서는 해당 객체가 사라지지 않는다.


덧글: MSDN도 참고 했지만 시간관계상 재 검토는 하지 않아서 틀린 부분도 있을 것이라 사료된다. 틀린 부분이 있거나 더 좋은 방법이 있다면 필히 메일로 내용을 보내주기 바란다. 좋은 프로그램 많이 만들기 바란다.

Posted by navitago
TAG MFC
£ Programing2009/03/20 15:34
  
One

void SetBacklightRequirement(BOOL fBacklightOn)
{
// The name of the backlight device.
TCHAR tszBacklightName[] = TEXT("BKL1:");

static HANDLE s_hBacklightReq = NULL;

if (fBacklightOn)
{
if (NULL == s_hBacklightReq)
{
// Turn the backlight on by setting the requirement that the backlight device
// must remain in device state D0 (full power). Replace D0 with D4 (zero power) to
// turn the backlight off.
s_hBacklightReq = SetPowerRequirement(tszBacklightName, D0, POWER_NAME, NULL, 0);

if (!s_hBacklightReq)
RETAILMSG(1, (L"SetPowerRequirement failed: %X\n", GetLastError()));
}
}
else
{
if (s_hBacklightReq)
{
if (ERROR_SUCCESS != ReleasePowerRequirement(s_hBacklightReq))
RETAILMSG(1, (L"ReleasePowerRequirement failed: %X\n", GetLastError()));

s_hBacklightReq = NULL;
}
}
}


Two

SystemIdleTimerReset();
keybd_event(VK_LBUTTON, 0, KEYEVENTF_KEYUP|KEYEVENTF_SILENT, 0);
Posted by navitago
TAG WinCE
£ Windows2009/03/20 15:28
  

Posted by navitago
£ Programing2009/03/10 10:57
  
SYSTEMTIME st;
 ::GetLocalTime(&st);

Posted by navitago
TAG TIME, WinCE
£ Storage2009/03/09 12:07
  




Posted by navitago
£ Windows2009/03/08 15:49
  

Extended ASCII Code Table

이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by navitago
£ Storage2009/02/23 08:13
£ Linux2007/10/31 10:20
  

# vi /etc/sysconfig/network

NETWORK=yes

HOSTNAME=COM1.seojune.com

DOMAINNAME=seojune.com

 

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=static

IPADDR=192.168.0.1

NETMAST=255.255.255.0

NETWORK=192.168.0.0

BORADCAST=192.168.0.255

ONBOOT=yes

TYPE=Ethernet

 

# vi /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

BOOTPROTO=dhcp

ONBOOT=yes

TYPE=Ethernet

 

# ifconfig eth1up

 

# vi /etc/modules.conf

alias eth0 8139too

alias eth1 8139too

 

# modprobe 8139too                             #  modprobe 모듈명 :  모듈 올리기

# lsmod                                              #  rmmod 모듈명    : 모듈 내리기

# modprobe eth0

# modprobe eth1

 

#vi /etc/sysconfig/network

...                                   

FORWARD_IPV4 = yes                         <- ip 마스커레이드 설정 (인터넷 공유)

:wq                                 

                                      

#vi /etc/sysctl.conf                                      

...                                   

net.ipv4.ip_forward=1                              

:wq                                 

 

# modprobe ipt_MASQUERADE

# iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

# iptables -L -t nat

#cat /proc/sys/net/ipv4/ip_forward                                       # 패킷 전송확인 1:전송  0:실패

            

#vi /etc/HOSTNAME                                    

#vi /etc/hosts                                      

#/etc/rc.d/init.d/network restart

# vi /etc/rc.d/rc.local

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by navitago
£ Linux2007/10/14 04:41
  

터치패드를 사용하지 않는 방법을 알아 냈습니다.

위에서 처럼 여러 줄을 추가하는 것이 아니라
다음 한 줄만 마우스 부분에 추가 하면 되더군요.
Option "SHMConfig" "true"

즉 /etc/X11/xorg.conf의 마우스 부분은 원래 다음과
같았습니다.
Section "InputDevice"
Identifier "Synaptics"
Driver "synaptics"
Option "Device" "/dev/input/mice"
Option "Protocol" "auto-dev"
Option "Emulate3Buttons" "yes"
EndSection

이것을 다음과 같이 바꿨습니다.
Section "InputDevice"
Identifier "Synaptics"
Driver "synaptics"
Option "Device" "/dev/input/mice"
Option "Protocol" "auto-dev"
Option "Emulate3Buttons" "yes"
Option "SHMConfig" "true"
EndSection  
 
그리고 재부팅 후 다음과 같이 하면 터치패드를 사용안하게 됩니다.
synclient TouchpadOff=1
다시 사용하려면 다음과 같이 하면 됩니다.
synclient TouchpadOff=0 

이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by navitago
£ Linux2007/09/11 19:47
  

레드헷 계열은 기본 설치 하셨다면 방화벽이 설치됩니다.


ui에서 방화벽을 닫거나
 


/etc/init.d/iptables stop


하시면 됩니다.


public IP를 사용하는 경우 보안에 취약하기 때문에 조심하시기 바랍니다.

이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by navitago
£ Linux2007/09/08 11:03
  


이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by navitago
£ Linux2007/09/05 18:21
  

vim에서 .c 나 .jsp 와 같은 파일을 열어보면 각 문법에 맞게
칼라가 입혀져서 보기좋게 나오죠.
vim을 이용하여 이렇게 칼라가 입혀진 상태로 html 파일로 만들수
있습니다. 웹상에서 소스파일을 출력 시키면 vim에서 보던것과 같이
칼라풀한 모습을 볼 수 있으니 매우 유용합니다.
일단, 소스 파일을 vim 으로 열고나서 다음과 같은 명령을 내립니다.

:so $VIMRUNTIME/syntax/2html.vim

$VIMRUNTIME 의 값은 보통 /usr/share/vim/vim60z 입니다. (래드헷 7.1)

아예 .vimrc에 com -nargs=0 Html :so $VIMRUNTIME/syntax/2html.vim
이렇게 해두면 항상 :Html 만 치면 HTML이 만들어질 겁니다.


[출처] http://kltp.kldp.org

이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by navitago
£ Linux2007/09/05 18:20
  
vi의 설정 파일은 /etc/vimrc 파일과 홈 디렉토리의 .vimrc 파일이다

vi ~/.vimrc

set autoindent " 자동으로 들여쓰기를 한다.
set cindent " C 프로그래밍을 할때 자동으로 들여쓰기를 한다.
set smartindent " 좀더 똑똑한 들여쓰기를 위한 옵션이다.
set textwidth=79 " 만약 79번째 글자를 넘어가면
set wrap " 자동으로 를 삽입하여 다음 줄로 넘어간다.
set nowrapscan " 검색할 때 문서의 끝에서 다시 처음으로 돌아가지 않는다.
set nobackup " 백업 파일을 만들지 않는다.
set visualbell " 키를 잘못눌렀을 때 삑 소리를 내는 대신 번쩍이게 한다.
set ruler " 화면 우측 하단에 현재 커서의 위치(줄,칸)를 보여준다.
set tabstop=4 " Tab을 눌렀을 때 8칸 대신 4칸 이동하도록 한다.
set shiftwidth=4 " 자동 들여쓰기를 할때 4칸 들여쓰도록 한다.

아래는 한글을 제대로 처리하기 위해 필요하다.
if $LANG[0] == `k' && $LANG[1] == `o'
set fileencoding=korea
endif

터미널이 xterm-debian 혹은 xterm-xfree86일 경우 컬러를 사용한다.
if &term =~ "xterm-debian" || &term =~ "xterm-xfree86"
set t_Co=16
set t_Sf=^[[3%dm
set t_Sb=^[[4%dm
set t_kb=^H
fixdel
endif

"문법 강조 기능을 사용한다.
if has("syntax")
syntax on " Default to no syntax highlightning
endif
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by navitago
£ Linux2007/05/20 14:49
  

출처 : http://blog.empas.com/h2dong
 

얼마전에 구입한 노트북에 윈도우와 fedora(패도라)를 설치하고 리눅스(패도라6)를 사용하기로 결심하였다. 그런데 문제는 노트북의 네트워크 드라이버... 정확히 말하면 IPW3945드라이버 설치가 문제였다.
  많은 영문 싸이트와 몇몇 고수들의 한글로 된 블로그를 종합하고.. 분석하여 드디어 성공하였지만.. 정리해서 블로그에 올리려는 순간 허탈하게도.. 지금까지의 문제를 단번에 해결해줄 최신 리눅스 커널과 드라이버가 나오게 되었다.
  그래서 고민 끝에 다시 한번 정리해서 올리는 것으로 하고 글을 쓴다.
  참고로 말하자면.. 많은 사람들이 패도라 5, 6에서 IPW3945드라이버 설치에 문제를 느끼고 해결하려고 했지만 나의 느낌에는 실패한 것 같았다. 그리고 나처럼 리눅스 초보인 사람은 어려운 부분이 많아 설치하는데 어려움을 느낄 것 같아 최대한 쉽게... 설명하고자 한다.
  하지만.. 리눅스를 공부하는 초보라.. 용어에서 틀리는 부분이 나타날 것이고 왜 그런지는 아는데까지만.. 설명하겠다.
  혹시나 나의 경우처럼 IPW3945 드라이버를 설치하는 사람에게는 많은 도움이 될것이라 생각한다.
 
먼저 리눅스 드라이버 관련 나의 노트북 사양은 다음과 같다.
  ☞ Model       : A6JC
  ☞ Processor : Intel®Core Duo Processor T2500(2.0G)
  ☞ LAN         : Intel®PRO/Wireless 3945ABG Network Connection
                       Realtek RTL8168/8111 PCI-E Gigabit Ethernet NIC
  ☞ Video        : Nvidia GeForce go 7300
 
수많은 싸이트 중 IPW3945드라이버와 관련된 사이트 모음은 아래와 같다.
  ☞ 커널관련 페이지
    http://download.fedora.redhat.com/pub/fedora/linux/core/updates/5/i386/ (페도라 5)
    http://download.fedora.redhat.com/pub/fedora/linux/core/updates/6/i386/ (페도라 6)
    http://blog.naver.com/zezepurr/120030697857
    http://cafe.naver.com/lgxnote.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=50332 (사용자 커널설치부분에서 제일중요)
   http://my.dreamwiz.com/lost1472/KERNEL/install.html

  ☞ 핵심 참고 페이지
   http://www-users.york.ac.uk/~mdc1/samsung.html (IPW3945전반적인 내용에 대해 잘 나와있음-최고중요)

  ☞ 드라이버 다운로드 페이지
   http://ieee80211.sourceforge.net/
   http://ipw3945.sourceforge.net/
   http://www.intel.com/ (IPW3945관련 드라이버 다운)
 
※ 패도라 5에서는 ipw3945-1.1.0을 설치할때 ieee80211에 대한 오류가 계속 나타났다. 이것을 해결하기 위해 커널을 업데이트하고 ieee80211관련된 여러가지를 설치해야 하는데.. 무지 힘들었음.. 나중에는 도대체 내가 뭘 설치했는지도 모를 정도가 되었다.
   하지만 패도라 6에서는 최신버전의 커널 업데이트 1번만해주면 된다. ieee80211에 대한 설치는 필요 없다.
  혹시나 ieee80211에 대한 make또는 ./remove-old 작업을 하였다면 커널 자체를 삭제하고 다시 설치하는 것을 권장한다.
  왜냐하면, ipw3945뿐만 아니라 Realtek RTL8168, Nvidia 드라이버까지 설치하기 위해서는 반드시 개발용? 커널(kernel-2.6.18-1.2869.fc6.i586.rpm)를 설치해야 한다.
  아래 설명은 패도라 6을 기준으로 하는데, 아마 개인적인 생각으로는 패도라 5에서도 적용가능할 것이라 생각한다.
 
 
 
 
※ 혹시나 해서 일단 적어 놓는다. 페도라 6를 처음 설치할 때 '사무와 생산성' 만 체크하고 설치했을 때 네트워크 카드를 make 한 결과 'gcc오류'가 나타났다. 그래서 아에 처음 페도라 6를 처음 설치할 때 '소프트웨어 개발' 부분도 체크한 결과 이런 오류를 해결할 수 있었다.
  고수의 경우 어떻게 해결해야 할지 금방 알 수 있을 것이다. 그러나 나의 경우 의존성 문제로 이 부분을 매우 힘들었다. 덕분에 필요없는 부분까지 설치가 되기는 했지만 일단은 성공했으니까..
 
 
 

 
① 설치할 드라이버와 관련된 파일을 다운받아 CD로 구워 놓는다. 왜냐하면 패도라로 부팅했을때 인터넷이 되지 않는다고 가정하기 때문이다.
   ☞ 커널 관련 패키지 다운받기
     - 아래 사이트를 클릭하여 관련 패키지를 다운받는다.
         http://download.fedora.redhat.com/pub/fedora/linux/core/updates/6/i386/
       · kernel-devel-2.6.18-1.2869.fc6.i586.rpm -> 개발용? 커널을 설치하기 위한 패키지
       · kernel-2.6.18-1.2869.fc6.i586.rpm -> 개발용? 커널을 설치하기 위한 패키지
       · hardlink-1.0-2.fc6.i386.rpm -> 혹시나 커널이 설치가 되지 않을때 이 패키지를 먼저 설치함
    ※ 패키지 이름 끝이 i586인 이유는 아래 그림과 같이 연결된 커널이 i585이기 때문임. 최소한 나의 경우 i686은 설치되지 않았음

 
   ☞ 커널 관련 패키지 다운받기
     - 아래 사이트를 클릭하여 관련 드라이버를 다운받는다.
        http://ipw3945.sourceforge.net/
       · 121Bipw3945-1.2.0.tgz -> Intel PRO/Wireless 3945ABG를 설치할 드라이버
 
   ☞ 방화벽과 데몬파일 다운받기
     - 아래 사이트를 클릭하여 관련 드라이버를 다운받는다.
        http://www.intel.com/ 사이트의 '다운로드 센터'
       · ipw3945-linux-1.1.0.tgz -> 패도라에서 압축을 풀면 관련 파일을 볼 수 있다. 물론 ipw3945-1.1.0드라이버도 있지만 이걸쓰면 오류남 따라서 위의 ipw3945-1.2.0.tgz 파일을 사용
 
 
 
 
 
② 개발용? 커널 설치후 새로운 커널로 다시 부팅한다.
 
 
 
 
 
③ X-Windows에서 CD-ROM을 마운트 하여 CD의 내용중 2.6.18-1.2869커널을 설치한다.
  ☞ 먼저 'kernel-devel-2.6.18-1.2869.fc6.i586.rpm'을 설치한다.
 
※ 혹시나 아래와 같은 문제점이 발생하여도 무조건 설치한다.

 
  ☞ 두번째로 'kernel-2.6.18-1.2869.fc6.i586.rpm'을 설치한다.

 
※ 지난번에 개발용 커널이 설치가 되지 않았다. 그 이유는 알 수 없으나 'hardlink-1.0-2.fc6.i386.rpm'을 설치하니 커널이 설치되었다.
 
 
 
 
 
④ ipw3945 데몬과 방화벽 준비하기 (여기서 사용된 ipw3945-linux-1.1.0.taz의 압축을 풀고 나면 생기는 ipw3945d 파일과 ipw3945.ucode 파일만 사용할 것임)
  ☞ ipw3934-linux-1.1.0.tgz의 압축을 풀기 위해 CD에서 바탕화면으로 드래그하여 복사한다.

 
 
  ☞ ipw3934-linux-1.1.0.tgz을 떠블클릭하여 /root/Destkop에 압축을 푼다.
 

  ☞ 바탕화면에 새로 나타난 ipw3934-linux-1.1.0란 폴더를 떠블클릭하여 ipw3945-ucode-1.13.tgz압축파일과 ipw3945d-1.7.22.tgz 압축파일을 떠블클릭하여 풀어 준다.

 
 
 
 
 
⑤ 인텔 무선 랜카드를 설치하기 위해 ipw3945-1.2.0.tgz 압축파일 풀어 make 와 make install을 통해 모듈을 만들어 준다.
  ☞  CD에서 바탕화면으로 ipw3945-1.2.0.taz파일을 바탕화면에 복사한다.

 
 
  ☞  ipw3945-1.2.0.tgz을 떠블클릭하여 압축을 풀어준다.

 
 
  ☞  아래 그림처럼 '프로그램' → '보조 프로그램' → '터미널'을 열고 다음 아래와 같이 써준다.
  [root@localhost ~]# cd Desktop --> root의 바탕화면 디렉토리로 이동한다.
  [root@localhost Desktop]# cd ipw3945-1.2.0 --> ipw3945-1.2.0 폴더로 이동한다.
  [root@localhost ipw3945-1.2.0]# make
  ....
  .....
  ......
  [root@localhost ipw3945-1.2.0]# make install
  .....
  ......
  ........


 
 
  ☞  make install 까지 끝나고 '프로그램' → '시스템 도구 ' → '파일 브라우저'를 클릭하여 실행한다. 실행후 아래 그림처럼 /root/Desktop/ipw3945-1.2.0 으로 이동하면 'ipw3945.ko' 모듈을 볼수 있다.

 
  ☞  'ipw3945.ko'파일을 오른쪽 마우스 하여 복사를 클릭합니다.
 
 
 
 
 
⑥ 위의 복사된 ipw3945.ko 모듈을 이더넷 카드의 커널 모듈로 복사 붙이기 합니다.
  ☞  'ipw3945.ko'파일을 /lib/modules/2.6.18-1.2869.fc6/kernel/drivers/net/wireless 디렉토리에 붙이기 합니다.

 
 
 
 
 
⑦ 다시 바탕화면에서 ipw3945-linux-1.1.0 폴더속에 ipw3945-ucode-1.13 폴더속의 ipw3945.ucode 파일을 오른쪽 마우스 복사하기를 클릭한다.
  ☞ ' /root/Desktop/ipw3945-linux-1.1.0/ipw3945-ucode-1.13'디렉토리 속의 ipw3945-ucode파일을 복사한다.

 
 
  ☞ ' /lib/firmware/'디렉토리에 'ipw3945.ucode'파일을 붙이기 한다.

 
 
 
 
 
⑧ 다시 바탕화면에서 ipw3945-linux-1.1.0 폴더속에 ipw3945d-1.7.22 폴더속의 x86 폴더에 ipw3945d파일을 오른쪽 마우스 복사하기를 클릭한다.(x86폴더를 선택한 것은 나의 노트북이 32bit이기 때문이다. 만약 64bit 라면 x86_64폴더속의 파일을 선택해야 한다.)
  ☞ ' /root/Desktop/ipw3945-linux-1.1.0/ipw3945d-1.7.22/x86'디렉토리 속의 ipw3945d 파일을 오른쪽 마우스 복사하기를 클릭한다.
 
 
 
  ☞  ipw3945d 파일을 /sbin/디렉토리에 붙이기 한다.

 
 
 
 
 
⑨ '프로그램' → '보조 프로그램' → '터미널'실행하고 아래와 같이 입력한다.
[root@localhost ipw3945-1.2.0]# cd /lib/modules/2.6.18-1.2869.fc6/kernel/drivers/net/wireless --> 이더넷 커널로 이동한다음
 
[root@localhost wireless]# chmod 744 ipw3945.ko --> 권한을 변경한다.
[root@localhost wireless]# depmod -a
[root@localhost wireless]# modprobe ipw3945;ipw3945d
ipw3945d - regulatory daemon
Copyright (C) 2005-2006 Intel Corporation. All rights reserved.
version: 1.7.22
Intel PRO/Wireless 3945ABG Network Connection found at:
/sys/bus/pci/drivers/ipw3945/0000:03:00.0
Daemon launched as pid 3989. Exiting.
You have mail in /var/spool/mail/root
 
-->위의 내용이 나오면 아래와 같이
 
[root@localhost wireless]# system-config-network --> 네트워크 환경설정을 실행한다.
 
 
 
 
 
⑩ '네트워크 설정'에서 '하드웨어' 탭을 클릭하면 'Intel Corporation PRO/Wireless 3945ABG' 장치를 확인할 수 있다.
 
 
 
 
 
⑪ '장치' 탭을 클릭하면 아무런 내용도 확인할 수 없다. 여기서 '새로 만들기'를 클릭하면 '새로운 장치 타입 추가' 대화상자가 나타나고 '무선 연결'을 클릭한다.


 
 
 
 
⑪ '새로운 장치 타입 추가' 에서 'Intel Corporation PRO/Wireless 3945ABG Network Connection(eth0)'선택하고 앞으로를 클릭함

 
 
 
 
 
⑫ 대화창에서 다음과 같이 설정한다.
  ☞  모드(M) : 자동
  ☞  네트워크명(SSID) : 자동(A)
  ☞  채널(C) : 사용자 설정으로 하는데 여기 설정이 아니라 무선 인터넷 공유기의 경우 공유기
                     에서 설정한 채널을 입력한다. 개인적으로 무선 인터넷 공유기 2∼3개 사용해 본
                     결과 보통 '6'으로 설정되어 있다.
  ☞  송신율(T) : 자동
 
 
 
 
 
⑬ 다음 대화창에서 아래 그림과 같이 설정한다. 기본으로 아래와 같은 설정이지만 필요하면 변경한다.
 
 
 
 
 
⑭ 아래와 같이 설정내용이 나오고 적용을 클릭한다.
 
 
 
 
 
⑮ '네트워크 설정'에서 '장치'탭을 클릭하면 상태가 '비활성화'로 나타나게 된다. 오른쪽위의 도구 아이콘에서 '활성화'를 클릭하여 활성화 시킨다.

 
 
 
 
16. '활성화'가 되면 도구 아이콘에서 '편집' 아이콘을 클릭하여 '컴퓨터가 시작하면 장치를 활성화시킴(A)' 에 체크하고 확인을 클릭한다.

 
 
 
 
17. 여기가 끝이다 그러나 문제가 하나 있다. 다시 껐다가 켜면 다시 무선 인터넷이 작동이 안된다. 다시 정상으로 사용하기 위해서는 터미널을 열고 아래와 같이 입력해야 한다.
 
[root@localhost wireless]# modprobe ipw3945;ipw3945d
 
ipw3945d - regulatory daemon
Copyright (C) 2005-2006 Intel Corporation. All rights reserved.
version: 1.7.22
Intel PRO/Wireless 3945ABG Network Connection found at:
/sys/bus/pci/drivers/ipw3945/0000:03:00.0
Daemon launched as pid 3989. Exiting.
You have mail in /var/spool/mail/root
 
-->위의 내용이 나오면 아래와 같이

 
[root@localhost wireless]# system-config-network --> 네트워크 환경설정을 실행한 다음 에 있는 설명처럼 실행하면 다시 활성화가 된다.
 
※ 왜 그런지는 나도 모른다. 다만 영문으로 설명된 곳이 있는데 영어가 짧아 아직 해석을 아무튼 내가 아는 것은 여기까지...(참고.. http://www-users.york.ac.uk/~mdc1/samsung.html)
혹시 17번의 문제를 해결하실 수 있는 분은 아래 답변 부탁함

 17번의 문제 해결법
/etc/modprobe.conf 밑에 내용 추가
alias eth1 ipw3945
install ipw3945 /sbin/modprobe --ignore-install ipw3945 ; sleep 0.5 ; /sbin/ipw3945d --quiet
remove ipw3945 /sbin/ipw3945d --kill ; /sbin/modprobe -r --ignore-remove ipw3945

/etc/rc.local

/sbin/ipw3945d --quiet  추가

이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by navitago
£ It's me2007/05/19 08:46
  



Cheongwon Villa 303ho,397-2,Gung-dong,Yuseong-gu,Daejeon, Korea

Post Code : 305335

 

이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by navitago
£ Windows2007/05/17 18:10
  

1. 레지스트리 편집기를 실행 시킵니다. [시작-실행-regedit]

2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\Desktop
을 찾아갑니다.

3. 오른쪽 목록 중에 NameSpace를 선택하신 후
{645FF040-5081-101B-9F08-00AA002F954E}라는 항목이 있는지 확인해 보세요.
(이 키를 삭제하고, 바탕화면 클릭후 F5를 누르거나 재부팅하면 휴지통 아이콘이 없어짐)


만약 없다면 namespace에서 오른쪽을 클릭하고 새로만들기를 선택하여 '키'를 추가시켜 위의 {645FF040-5081-101B-9F08-00AA002F954E}를 추가시키시면 휴지통이 생성됩니다.

이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by navitago