쉼터

HTTP 통신할때 주로 httpclient를 이용해서 처리를 한다.

기본적인 httpclient 사용 방법은 다음과 같다.
여기서 주의할 점은
method.releaseConnection();
이렇게 connection을 끊어줘야한다.

근데 간혹 CLOSE_WAIT, TIME_WAIT이 누적되어서 FD가 빠지지 않는 경우가 있다.
(ESTABLISHED, CLOSE_WAIT, TIME_WAIT이 뭔지 모른다면 TCP 3-Way handshake부터 공부하면 된다.)
대충쓸때는 상관없지만 문제는 지속적으로 연결할때 CLOSE_WAIT, TIME_WAIT이 없어지지않고 계속해서 쌓이게될때가 있다.

일단 CLOSE_WAIT이 계속 누적해서 안빠진다면 httpclient를 잘못쓴 경우가 많다.
연결할때마다 계속해서 httpclient를 new해서 생성을 하면서 어느수준이상으로 연결을 시도할때 CLOSE_WAIT이 누적되어 안빠지게된다.
왜냐하면 httpclient는 default가 HTTP/1.1 방식이다.
어느정도 keepalive를 유지하기때문에
서버에서는 connectionTimeout이 지나면 연결을 종료시키지만
서버에서 연결종료된 상황을 클라이언트에서 서버로 다시 물어보기전에는 알 수가 없다.
그래서 완전히 종료가 안되고 CLOSE_WAIT 상태가 된다.
근데 이 상황에서 매번 httpclient를 생성하게되면 제대로 연결을 종료안되고
클라이언트 쪽에는 CLOSE_WAIT이 쌓이게된다.

해결책은 여러방법이 있다.
1. 클라이언트쪽에서 HTTP/1.0으로 연결하면된다.

method.getParams().setParameter(HttpMethodParams.PROTOCOL_VERSION, HttpVersion.HTTP_1_0);

1.0으로 연결을 한다는거는 keepalive를 유지안하고 매번 연결하고 끊고한다는거다.
이렇게 하면 CLOSE_WAIT이 누적은 안된다.
하지만 CLOSE_WAIT대신에 TIME_WAIT이 누적된다.
그리고 매번 연결을 끊고 연결하기때문에 throughput이 제대로 안나온다.

2. httpclient를 제한적으로 사용하는 방법이다.
httpclient를 wrapping하는 하나의 클래스를 만든다.
그리고 그 클래스를 싱글톤패턴을 이용해서 필요한곳에서 사용한다.
근데 문제는 스레드환경에서 한번에 여러군데 접속하고 싶을때는 문제가 발생한다.
그럴때는 MultiThreadedHttpConnectionManager를 이용하면된다.

MultiThreadedHttpConnectionManager connectionManager = new MultiThreadedHttpConnectionManager();
HttpClient client = new HttpClient(connectionManager);

이렇게만 해주면 알아서 pooling을 해준다.
MultiThreadedHttpConnectionManager에는 몇가지 옵션이 있는데
필요에 따라서 적절히 조절해주면된다.

이렇게 하면 CLOSE_WAIT 상태가 계속해서 누적되어 쌓이지 않는다.

3. IdleConnectionTimeoutThread를 이용해서 해결 할 수도 있다.

MultiThreadedHttpConnectionManager connectionManager = new MultiThreadedHttpConnectionManager();
IdleConnectionTimeoutThread idleConnectionTimeoutThread = new IdleConnectionTimeoutThread();
idleConnectionTimeoutThread.addConnectionManager(connectionManager);
HttpClient client = new HttpClient(connectionManager);
idleConnectionTimeoutThread.start();

이렇게 별도의 스레드를 생성해서 idle상태를 주기적으로 지워준다.

IdleConnectionTimeoutThread를 이용하지않고
connectionManager.closeIdleConnections(1000*10);
이걸 이용해서 주기적으로 지워줄 수 있다.

근데 3번째 방법은 CLOSE_WAIT를 해결하는 방법이라기보단
CLOSE_WAIT가 발생할때 더 이상 안늘어나게하는 사후처리 방법이다.

웬만하면 2번째처럼 통신할 수 있는 채널에 제약을 걸어서 많이 생성못하도록하는게 제일 좋은거 같다.

그리고 TIME_WAIT 상태가 누적되는거는 연결이 종료되는데 시간이 걸리기때문에
어쩔 수 없이 발생을 하게된다.
그래서 웬만하면 HTTP/1.1로 통신을 해야한다.
서버도 HTTP/1.1로 받을 수 있도록하고
클라이언트도 HTTP/1.1로 보내면서 keepalvie를 유지해서
나름 서로간에 전용통로를 만들어줘서 연결이 종료안되게 만들면된다.

여기서 중요한것은 MultiThreadedHttpConnectionManager 여기에
maxTotalConnections 이 값을 상황에 맞게 유지시키는거다.
내가 연결해야하는 connection수가 maxTotalConnections수를 넘어가게된다면
어쩔수 없이 기존 연결된 소켓을 끊고 새롭게 연결해야하기때문에
keepalive 상태를 유지못한다.

즉, TIME_WAIT이 안일어나게 하기 위해서는 연결 종료를 안하고
계속 그 통로를 통해서 통신을 하는건데
maxTotalConnections수를 적절히 조절해서 연결이 안끊기게
keepalive 상태를 유지하게하면된다.

자세한 사항은 httpclient wiki에 나와있다.
Posted by pchun

hbase 설치

2008. 3. 17. 21:51 : 공부/opensource
hbase는 Google의 Bigtable의 clone 프로젝트로 진행중에 있고
hadoop의 subproject로 진행중이다.

즉, hbase를 사용할려면 hadoop(0.16.0이상)을 다운 받으면된다.

$HADOOP_HOME/contrib/hbase 에 있다.

일단 $HBASE_HOME/conf/hbase-site.xml을 편집한다.

<configuration>
    <property>
        <name>hbase.master</name>
        <value>localhost:60000</value>
        <description>The host and port that the HBase master runs at.</description>
    </property>
  
<property>
        <name>hbase.rootdir</name>
        <value>hdfs://localhost:9000/hbase</value>
        <description>The directory shared by region servers.</description>
    </property>
</configuration>

일단 hbase.master, hbase.rootdir는 기본적으로 설정해줘야한다.

$HBASE_HOME/conf/regionservers 이 파일하고 $HADOOP_HOME/conf/slaves와 동일하게 해준다.

$HBASE_HOME/bin/start-hbase.sh(hbase 시작)
$HBASE_HOME/bin/stop-hbase.sh(hbase 종료)

항상 hadoop을 먼저 띄우고 hbase를 시작해야하고 hbase를 닫고 hadoop을 닫아줘야한다.

http://localhost:60010
정상적으로 hbase가 실행이 된다면 위 페이지가 나올것이다.

참조사이트(http://hadoop.apache.org/hbase/docs/current/api/overview-summary.html#overview_description)
Posted by pchun

hadoop 설치

2008. 3. 3. 23:18 : 공부/opensource
- ssh 설치
ssh를 이용해서 remote hadoop daemons을 관리하기 때문에 필수로 설치되어야한다.

- hadoop 다운로드
http://hadoop.apache.org/core/releases.html

- 압축을 풀고 나서 conf/hadoop-env.sh 파일에 JAVA_HOME 설정

- bin/hadoop 한번 실행

- conf/hadoop-site.xml 편집
<configuration>
  <property>
    <name>fs.default.name</name>
    <value>localhost:9000</value>
  </property>
  <property>
    <name>mapred.job.tracker</name>
    <value>localhost:9001</value>
  </property>
</configuration>

- ssh-keygen 실행(localhost도 ssh를 이용하기때문에 설정해야함)
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys


- DFS 포맷
bin/hadoop namenode -format


- example(그냥 싱글노드에서 동작)

bin/start-all.sh (hadoop daemon 실행)
bin/hadoop dfs -put conf input (conf 디렉토리에 있는 파일을 DFS에 input이라는 이름으로 copy)
bin/hadoop jar hadoop-*-examples.jar grep input output 'dfs[a-z.]+' (DFS input에 있는 파일 중에 'dfs[a-z.]+'에 매칭되는 문자열을 output에 저장)
bin/hadoop dfs -get output output  (DFS output에 있는 내용을 output 디렉토리에 저장)
cat outout/* (결과값 확인)
bin/stop-all.sh (hadoop daemon 중지)


참조 사이트(http://hadoop.apache.org/core/docs/current/quickstart.html)
Posted by pchun
http://kldp.org/node/81847

위 주소에 들어가보면 자세히 나와있다.
뭐..대략적인 내용은 Flahs font관련되서 Sans가 디폴트인데...
Sans 폰트가 한글을 제대로 지원안하기때문에...
이를 변경해야하는거다.

Posted by pchun

웹2.0 새로운 등장과 그 의미

By 김중태 김중태문화원 원장 (www.dal.co.kr)

미래의 웹은 시맨틱웹이며, 웹2.0은 시맨틱웹을 경제적 관점에서 본 말이다.

시맨틱웹이 보급되려는 시점에 웹2.0이라는 말이 나와 혼란을 주고 있다. 결론부터 내리자면 W3C나 팀 버너스 리가 제시하고 있는 차세대웹(NGWeb = Next Generation Web)은 1998년부터 확정되어 전개되고 있는 시맨틱웹이다.

웹2.0(Web 2.0)은 초창기 웹을 1.0이라 생각하고 다음 세대 웹을 2.0으로 구분한 것인데, 이 낱말은 경제적 관점에서 만들어졌다. 시맨틱웹이 RSS 등을 통해 점차 구현되기 시작하자 오라일리(O'Reilly Media, www.oreilly.com)는 2004년 10월 5일부터 일주일 동안 미국 샌프란시스코에서 '웹2.0컨퍼런스(www.web2con.com)'를 개최한다. 이때부터 퍼진 웹2.0 용어는 시맨틱웹의 다른 낱말로 이해되고 있다. 하지만 일부 사람은 이미 시맨틱웹이라는 낱말이 있는데 별도의 웹2.0이라는 낱말을 만든 것이나, 차세대웹(Next Generation Web) 용어가 일개 회사의 전략에 따라 경제적인 관점으로 흘러가는 방향을 탐탁치 않게 생각하고 있다.

웹2.0 컨퍼런스 홈페이지(www.web2con.com)



웹2.0은 아직 개념이 정립되지 않은 상황이라 사람마다 조금씩 정의가 다르다.

"플랫폼이 기반 환경이 되는 웹 - Richard MacManus" "컴퓨터에게 유용한 웹 - Jeff Bezos" 등과 같이 사람마다 조금씩 다르며 받아들이는 사람마다 그 해석이 다르다. 위키피디어에서는 '더블클릭은 웹1.0이고, 구글 애드센스는 웹2.0'이라는 재미있는 표현이 있다. 이 비유는 정확하지는 않지만 웹2.0의 특징이 무엇인지 눈치챌 수 있게 해준다. 사람이 광고를 눌러서 자기가 관심 가지는 광고를 찾아가면 웹 1.0이고, 컴퓨터가 알아서 구독자가 관심 가지는 광고를 제공하면 웹2.0이라는 뜻이다.

따라서 기본적으로 웹2.0과 시맨틱웹은 목적지가 거의 동일하다. 다만 시맨틱웹이 목적지를 향한 기술에 관심을 두고 있다면 웹2.0은 시맨틱웹의 기술을 어떻게 응용하여 경제와 인간생활에 적용시킬 것인가에 관심을 두고 있다는 정도의 차이가 있다. 웹2.0 컨퍼런스의 주요 내용을 보면 '웹 2.은0 개발 환경이며 웹사이트는 사용자가 불러서 사용하는 소프트웨어다. 따라서 소프트웨어의 업그레이드 사이클이 존재하지 않는다. 웹은 늘 최신의 것을 제공하기 때문이다.'라고 표현하고 있다. 이런 표현을 보면 웹을 서비스적인 관점과 경제적 관점에서 보는 웹2.0 지지자의 논리가 잘 나타난다.

응용 관점의 웹2.0이므로 결국 플랫폼에 관심을 가질 수밖에 없다. 웹2.0 컨퍼런스에서도 이런 부분이 집중적으로 논의되었다. 휴대전화에서 친구가 보낸 이메일을 보고 전자렌지나 냉장고 화면에 '오늘의 추천요리'가 표시되는 이유는 이들 기기가 웹이라는 플랫폼에 기반을 하고 있기 때문이다. 이처럼 웹이 플랫폼으로 가전과 모바일기기에 들어갈 경우 우리의 일상은 웹과 연결되어 더욱 자동화되고 편리해질 것이다. 이것을 바로 웹2.0이라고 보는 것이다.


웹2.0은 기계의 노동력으로 움직이며 사람을 위한 웹이다.

그러나 확고한 개념과 목표, 발전과정과 이에 필요한 기술, 뼈대와 구조까지 제시된 시맨틱웹과 달리 웹2.0은 매우 추상적이며 모호하다. 웹2.0을 주장하는 사람은 이전의 웹보다 발전된 것이 웹2.0이라고만 말할 뿐, 웹2.0의 기술이 무엇이고 어떤 기술이 적용되어야 하는지, 웹2.0의 목표는 무엇인지 제시하지 못하고 있다. 단적인 예로 다들 플랫폼 기반의 웹2.0을 말하지만 아직 웹2.0의 구조가 어떤 식으로 구성되고 있는지조차 제시하지 못하고 있다. 어떤 플랫폼이 어떤 식으로 역할을 하면서 웹2.0을 구성하고 있으며 그런 플랫폼의 종착지가 어디인지는 막연하다. 좀더 제대로 말하자면 시맨틱웹 논의로 개발된 기술을 이용해 좀더 멋진 웹생활을 구현하려는 것이 웹2.0 지지자들의 목적인데, 어떻게 하는 것이 좀더 나은 웹인지를 제시하지 못하고 있는 상황이라 할 수 있다. 이런 이유로 이 책에서는 개념이 명확하지 않은 웹2.0이라는 말을 사용하지 않고 시맨틱웹이라는 말로 차세대웹을 다루고 있는 것이다.

그러나 일반인에게는 시맨틱웹이나 웹2.0이나 같은 개념으로 다가갈 것이다. 어차피 지향하는 것이 같고 사용되는 기술이 비슷하기 때문이다. 웹2.0은 시맨틱웹을 경제적 관점이나 플랫폼으로 보고, 응용해 구현된 상태를 표현하는 말인 것이다. 그러므로 웹2.0은 곧 시맨틱웹의 또 다른 이름으로 봐도 무방하다.

WEB 2.0 컨퍼런스에서 제프 베조스(Jeff Bezos, Amazon CEO)는 WEB 1.0은 사람을 위한 인터넷으로, WEB 2.0은 기계를 위한 인터넷으로 표현했다. 그러나 내가 보기에 이 표현은 적합하지 않다. 웹 2.0이야말로 사람을 위한 웹이기 때문이다. 'WEB 1.0이 사람의 노동력으로 움직인 웹이라면 WEB 2.0은 기계의 노동력으로 움직이는 웹이다.'라고 나는 표현한다. 웹2.0은 그동안 사람이 해야 했던 일들을 기계가 자동화처리해주는 웹으로, 사람이 정보처리를 위해 낭비한 시간만큼 정보를 습득하고 공유하는 시간으로 활용할 수 있는 '더욱 인간을 위한 웹'이 될 것이다.


인터넷2.0은 새로운 구조의 인터넷을 뜻하는데, 공식적인 용어가 아니다.

인터넷2.0이라는 낱말은 새로운 인터넷이라는 말로 사용하고 있는데, 일부는 시맨틱웹의 개념을 인터넷2.0이라는 이름으로 사용하고 있고, 일부는 새로운 구조와 시스템에 기반한 더 빠르고 강력한 인터넷을 뜻하는 낱말로 사용하고 있다. 그러니까 인터넷2.0이라는 낱말은 정확한 개념 없이 막연하게 다음 세대 인터넷이라는 뜻으로 사용되고 있는데 시맨틱웹과는 거리가 있다.

정리하자면 차세대 웹이라는 의미로 '웹2.0'을 사용하는 것은 큰 무리가 없으나 컴퓨터끼리 대화하고 자동화된 지능형 웹을 뜻할 때는 '시맨틱웹'으로 표현하는 것이 좀더 정확한 사용법이 될 것이다.

출처:유미디어랩

Posted by pchun

실제로 홈페이지를 제작하시다가 격는 아주 머리아픈 경우입니다. 바로 인터넷 익스플로러, Internet Explorer, IE 에서 원래 CSS 에서 의도한대로 렌더링을 하지 않고 다르게 이해를 하는경우입니다. 많은경우 DIV가 깨지기도 하는데요, 이 이유와 해결책을 잠깐 보겠습니다.

IE padding error

보시다시피 CSS 에서 제작자가 의도한데로 width 를 정해놓지만 IE 에서 읽어들일때(IE 5.x 와 quirks 모드의 IE6)에는 그 width 안에 padding 값과 border 값이 같이 계산되어서 렌더링이 됩니다.
*quirk 모드 는 DOCTYPE 이 제대로 잡히지 않아 렌더링이 올바르게 되지 않는것을 일컫습니다. DOCTYPE 만 제대로 된다면 IE6도 렌더링은 제대로 되게 됩니다.

예를 들어보겠습니다.
<div id=”content”></div>
를 해 놓고 너비는 300px 에다가 padding-left 를 한 20px 로 주고 싶습니다.
그렇다면 보통의 CSS 렌더링은 너비 300px + padding값 20px 을 주니 총 너비는 320px 로 측정해야겠죠. 하지만 IE 에서는 너비값 300px 에다가 그 안에 padding값 20px 이 들어가니 총 너비는 그대로 300px 입니다. 그리고 그 안에 div는 작아졌겠죠. 280px 로 말입니다. 이것을 고치는 법은, CSS 를 핵 하는 법입니다. 계산을 거꾸로 해서 오히려 IE 에서는 너비를 320px 로 이해하게 만들면 20px 로 padding 을 주고 나머지 300px 은 div 내용이니 원래의 의도대로 렌더링을 해주니까요.

CSS Hacks and Filters 와 타 ALA 같은 CSS 페이지에서 설명해주고 있는 방법을 소개해 드립니다.

일단 원래의 CSS 코딩을 적습니다.
#content {
  width: 300px;
  padding-left: 20px;
  }

그리고 다음줄에 IE 해킹을 넣습니다.
*html #content {
  width: 320px;
  /*padding은 안적어도 되는것이 위에서 이미 불러주었기때문에 괜찮습니다*/
  }

이 해킹은 *html 을 붙임으로써 다른 브라우저는 인식을 못하고 IE 5.x 버전에서 이해를 하게 되는 부분입니다. 하지만 문제가 있습니다. 이 해킹은 모든 IE 브라우저에 적용이되면서 Mac 에서의 IE 5와 그 이상버전에게 적용이 되어버립니다. Mac 의 Internet Explorer 5와 그 이상, 그리고 IE 6는 은 원래가 CSS 의도대로 렌더링이 되거든요. 그럼 그 버전에서는 다시 깨지게 됩니다. 그러니, 위의 코딩에다 한줄을 더 넣어서 이렇게 넣습니다.

*html #content {
  width: 320px;
  w\idth: 300px;
  }

w\idth 부분이 들어갔죠? 백슬래쉬\ 를 넣으므로써 고쳐질수 있습니다.

정리합니다. padding은 IE 5.x 안에서 다르게 인식되므로 약간의 해킹이 필요합니다. 그래서 예로 width: 300px 에 왼쪽 padding 이 20px 일 경우 이렇게 적습니다.

#content {
  width: 300px;
  padding-left: 20px;
  }
* html #content {
  width: 320px;   /* IE 5.x 버전이 인식 그리고 mac IE, ie6도 인식 */
  w\idth: 300px;  /* Mac IE 와 IE6만이 다시 랜더링 */
  }

border 도 IE 에서는 width 안에 포함되니 border 쓰실때에도 잘 크기를 조절하셔서 쓰시기 바랍니다.
height 을 Mac 의 IE 만 이해하게 하려면 width 는 w\idth 였듯이 he\ight 으로 쓰시면 됩니다.


------
출처 : http://ilmol.com/wp/2005/06/17/38/

Posted by pchun

웹페이지 훔쳐보기...

2006. 8. 21. 01:15 : 공부

많은 웹페이지들은 소스공개를 막고자...
onContextMenu="return false" onDragStart="return false"  onSelectStart="return false"
와 같은 스크립트를 이용한다...
또, 웹페이지의 디렉토리를 포함한 파일명이나 쿼리스트링같은 값들이 주소 표시줄에 보이지 않게...
frame 태그를 이용한다...

view-source:를 이용해서 웹페이지 소스를 볼 수 있지만...
xp서비스팩2가 적용된 IE에서는 실행이 안된다...

asp, php와 같은 언어를 사용해서 소스를 얻어 올 수 있지만...
XMLHTTPXMLHttpRequest를 이용해서 간단히 소스를 얻어 올 수 있다...

<html>
<head>
<script type="text/javascript">
function getPage(f)
{
var objHTTP = new ActiveXObject("Microsoft.XMLHTTP");
objHTTP.Open('get',f["url"].value,false);
objHTTP.Send();
source.innerHTML="<xmp>"+objHTTP.responseText+"</xmp>";
return false;
}
</script>
</head>
<body>
<form name="form" onSubmit="return getPage(this);">
<input type="text" name="url" value="http://www.daum.net">
<input type="submit" value="소스보기">
</form>
<br>
<div ID="source" />
</body>
</html>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript">
var xmlHttp;

function createXMLHttpRequest() {
  if (window.ActiveXObject) {
       xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  }
  else if (window.XMLHttpRequest) {
       xmlHttp = new XMLHttpRequest();
  }
}
 
function getPage(f) {
  createXMLHttpRequest();
  xmlHttp.open("GET", f['url'].value, false);
  xmlHttp.send(null);
  document.getElementById('source').innerHTML="<xmp>"+xmlHttp.responseText+"</xmp>";
}
</script>
</head>

<body>
<form action="#">
<input type="text" name="url" value="http://www.daum.net">
<input type="button" value="소스보기" onclick="getPage(this.form);"/>
<br>
<div id="source">&nbsp;</div>
</form>
</body>
</html>

Posted by pchun
에러 : FTP 서버에서 폴더를 여는 중 오류가 발생했습니다. 이 폴더를 액세스할 권한이 있는지 확인하십시요.

해결방안 : IE->도구->인터넷 옵션->고급->방화벽 및 DSL 모뎀과 호환되는 수동 FTP 사용(체크 표시 제거)
Posted by pchun

필드타입을 int가 아닌 varchar, char로 변환해야한다...

10->000010로 변환...

CREATE function dbo.zerofill(@i as varchar(6))
returns varchar(6)
as
begin
declare @t_str varchar(6)
set @t_str = '000000'
set @i = right(@t_str + @i, 6)
  return @i
end

select num, dbo.zerofill(num) as num from test;



응용하기...
0대신에 &으로 채우고 싶을때는...
000000 대신에 &&&&&&을 넣으면된다...

Posted by pchun

테스트 OS : 페도라 코어 4

http://www.ralinktech.com/supp-1.htm에서 드라이버 파일을 /usr/local/src에 다운로드한다.

readme 참고...

1> $tar -xvzf RT61_Linux_STA_Drv_x.x.x.x.tar.gz
  go to "./RT61_Linux_STA_Drv_x.x.x.x/Module" directory.
 
2> $cp Makefile.4  ./Makefile       # [kernel 2.4]
  or
  $cp Makefile.6  ./Makefile       # [kernel 2.6]
  or
  $cp Makefile.RTL865x ./Makefile  #  big endian platform
 
3> [kernel 2.4]
  $chmod 755 Configure
  $make config         # config build linux os version

4> $make all            # compile driver source code

5> $cp rt2561.bin /etc/Wireless/RT61STA/ # copy firmware
  $cp rt2561s.bin /etc/Wireless/RT61STA/
  $cp rt2661.bin /etc/Wireless/RT61STA/

6>  $dos2unix rt61sta.dat
  $cp rt61sta.dat  /etc/Wireless/RT61STA/rt61sta.dat      
  # !!!check if it is a binary file before loading !!! 
 
7> $load               
  #[kernel 2.4]
  #    $/sbin/insmod rt61.o
  #    $/sbin/ifconfig ra0 inet YOUR_IP up
      
  #[kernel 2.6]
  #    $/sbin/insmod rt61.ko
  #    $/sbin/ifconfig ra0 inet YOUR_IP up

8. load 파일을 수정해야한다...
하지만 퍼미션 문제로
chown u+w load
이렇게 실행시켜주고 vi로 편집한다...

/sbin/insmod rt61.ko
/sbin/ifconfig ra0 inet YOUR_IP up
/sbin/route add default gw 게이트웨이주소 netmask 넷마스트주소

그리고 rt61.ko파일을 모듈에 추가하기 위해서 파일이 있는 위치를  패스에 잡아줘야한다...
아니면...
/sbin/inmod /usr/local/src/RT61_Linux_STA_Drv1.0.4.0/Module/rt61.ko
이렇게 수정해준다...
그리고 나서 ./load을 실행시킨다...
중지하고 싶으면 ./unload를 실행시킨다.

Posted by pchun