2013년 12월 27일 금요일

pintf() 문이 한번에 나온다!!

그럴땐 printf() 밑에 fflush(stdout);을 붙여보아요..
printf 문이 버퍼링을 하고 있기 때문이래요.

http://kldp.org/node/141240

윈도우 7 설치시 ACPI 에러

살다가 처음 겪는 경우였습니다.
배정받은 회사 pc의 os가 윈도우xp 라 윈도우 7으로 올리려고 했습니다(업데이트든, 포멧하고 다시 깔든)

저같은 경우는 palconn p31a 보드였네요. 애초에 win7을 지원하는 보드였습니다.

부팅화면에서 cd, ubs외장하드로 7설치를 시도해 봤는데 설치 화면 가기전에 검은화면에서 윈도우7 로고애니메이션이 나오려다가 블루스크린이 떴었습니다. acpi 어쩌고 저쩌구 bios update를 어쩌구 저쩌구....

하.. 신입이 이거 잡고 3일동안 삽질 하는건 경우가 아닌데...
미춰버리는줄 알았습니다.;;

인터넷에 찾아보니 바이오스를 업데이트 하라 마라 등 말이 많았는데 이것 저것 다 따라하다보니 부트 메뉴도 더렵혀저서 엉망이였죠.

안되겠다 싶어 win xp를 구해서 하드 포멧하고 설치 후에 다시 하려고 했더니 왠걸
xp 서비스팩 업데이트를 안하면 3dp net 이나 usb PnP등이 지원을 안하는겁니다.(네트워크 연결을 해서 어찌해보려고했는데 네트워크 드라이브도 안잡혔었죠)

부랴부랴 cd에 sp1(인지 sp3인지 기억이잘안나네요)를 구워서 업데이트 하고선 일사천리로 정상화 되었습니다(드라이버 다 잡고, 백신, 필수 유틸리티등 설치완료했었죠)


이대로 포기하나 했었는데 경영지원팀에 대리님(정말 감사했어요)께서 친히 pc수리기사님을 저에게 보내 주시어 7깔기에 다시 돌입했습니다.

APCI 에러 (블루스크린)을 보시더니 여기저기 전화 해보곤 본체를 냅다 들고 가시는겁니다.
(아.. 수리할때 까지 사무실에 앉아서 난 뭐하란 말입니까 )
점심부터 a4용지 한장짜리 프린터물 하나 잡고 6시까지 버텨냈습니다.

그리곤 퇴근+클스마스-> 다음날..

노트북을 들고왔습니다=_=;;

win7를 깐 노트북이라 으싸으싸 해서 (노트북도 하드디스크 문제가 있어서 하드교체후 윈도우만 깔아 놨더랬죠)

다시 이것저것 회사 일에 필요한 전문지식 찾아 다니고 있었는데 화장실갔다오니 pc수리기사님이 번개같이 pc를 수리하셔서 설치까지 완료 해주셨습니다. (사실 화장실 갔다오고 노트북으로 공부하다가 문득 고개를 돌려보니 본체가 와있어서 깜짝놀라 고함을 질렀습니다)

수리된것도 기뻤지만 젤궁금한건 원인이라 전화를 했더니.
램 슬롯과 2번째 램 이 문제 였답니다.(사실 모르겠습니다. 총 슬롯 2개 중에 슬롯 2번이 고장났고 기사님은 2기가 램이 가지고 싶어서 렘까지 고장났다고 한건지..)

(고장난 램 1개 포함한)램이 듀얼로 꽂혀있는 상태에서 (xp에는 없는기능인거같은데)


네 결론은 파워를 교체해보고 설치 하시던지, 하드|| 렘 || 그래픽카드 || 마지막 메인보드  순으로 교체후에 설치 시도해보면 되겟습니당


2013년 9월 5일 목요일

openflow setup

토폴로지라고 할 것도 없지만
컨트롤러(1.1.1.1:6633)
|
switch(오픈플로우 스위치, pc가 switch 행동을 합니다)

환경입니다




---------------------------------------------------------
Openflow 설치법 1.0 기준
설치환경(OS): 우분투12.04
설치물: 오픈플로우1.0

설치전 환경: 우분투 10.04 설치 후, 업데이트 센터에서 모든 업데이트를 마치고(업데이트는 daum.net에서 받는 것이 빠르다). 터미널 창으로 가서 sudo passwd를 적고 엔터를 쳐서, 계정비번을 치고 루트의 “비번/비번확인” 을 만들어 주고 아래 명령어를 순차적으로 입력.
보통 ubutu gui환경에서 상단 오른쪽에 있는 네트워크는 사용 안함으로 지정하고 터미널에 들어가서 ifconfig -a를 적어 모든 NIC를 확인한 후
ifconfig eth숫자 up(또는 down) (죽이고 켜기)로 eth을 키고
ifconfig eth0 ip주소/서브넷마스크(e.g 24(24는 255.255.255.0이다)
(해당 eth에 아이피 추가하기)로 컨트롤러 아이피만 지정한 후.
route add eth번호 ip주소
route default gw ip주소 (로 디폴트 게이트 웨이를 입력하고
아래 작업 시작

명령어순서:
sudo apt-get install git-core automake m4 pkg-config libtool gcc vim
git clone git://openflow.org/openflow.git
cd openflow
git fetch
./boot.sh
./configure
make | make install
regress/scripts/install_deps.pl
apt-get remove avahi-daemon
vim /etc/sysctl.conf
위 명령어를 치면 문서 편집기가 나온다 I를 눌러 편집모드로 전환하고
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.diable_ipv6 = 1
위 2줄을 그대로 쓴 다음 esc키를 눌러 편집모드를 종료하고 콜론: 을 적으면 하단에 명령어를 칠 수 있는데 w나 w!를 입력하여 엔터 다시 :을 누르고 q나 q!를 눌러 나온다.
vim /etc/modprobe.d/blacklist.conf
내용추가
blacklist net-pf-10
blacklist ipv6
적고
esc키
:
w 또는 w! 엔터
:
q 또는 q! 엔터
cd ~
cp /home/(우분투 사용자 폴더명:)/openflow/regress/scripts/env_vars .
vim env_vars
편집기창에서 /home/(우분투 사용자 폴더명:)/ home 다음에 실제와 다른 사용자 폴더명을 바꾸고 저장 후 나옴.
source ~/env_vars
/sbin/ifconfig | more
ofdatapath punix:/var/run/dp0.sock -i eth0,eth4(eth0,eth4 이부분 쉼표다음 띄우지 말고 컨트롤러부분의 NIC와 브릿지 NIC 부분 빼고 스위칭 할 호스트들의 eth들을 다 추가)
ofdatapath가 안된다면 /home/유저폴더/openflow/udatapath 안으로 접속한 뒤 ./ofdatapath punix:/var/run/dp0.sock -i eth0,eth4를 입력
새 터미널을 띄워서
su
root계정비번 치고
ofprotocol unix:/var/run/dp0.sock tcp:1.1.1.1:6633
안되면
/home/유저폴더/openflow/udatapath 안으로 접속한 뒤
ofprotocol unix:/var/run/dp0.sock tcp:1.1.1.1:6633 나
./ofprotocol unix:/var/run/dp0.sock tcp:1.1.1.1:6633를 입력
1.1.1.1은 컨트롤러의 아이피이고 6633은 컨트롤러가 정한 오픈플로우 포트이다. 환경에 맞게 변경


wireshark설치
apt-get install wireshark libgtk2.0-dev
오픈플로우 폴더안에서 cd utilities/wireshark_dissectors/openflow
make | make install


명령어 이해:
sudo apt-get install git-core automake m4 pkg-config libtool gcc vim
설치전 기본 APT를 설치한다

git clone git://openflow.org/openflow.git
오픈플로우 폴더를 현재 위치에 복사한다.

cd openflow
오픈플로우 폴더로 들어온다

git fetch
git 목록을 가져온다

./boot.sh
파일을 복사하는 boot.sh 명령어.

./configure
환경설정을 하는 명령어

make | make install
make 소스를 컴파일 make install 은 설치

regress/scripts/install_deps.pl
사용자의 OS등의 환경을 찾아내어 무슨 행동을 하는 ???

ipv6가 켜져있으면 오픈플로우 과정중 오류가 날 수 있음으로 ipv6를 닫아 주는 명령어 시작,

apt-get remove avahi-daemon
간단하게 네트워크 공유 상태를 갱신해주는 녀석인데 지운다.

vim /etc/sysctl.conf
sysctl.conf 파일을 열어 편집

내용추가
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.diable_ipv6 = 1
ipv6를 사용안함


vim /etc/modprobe.d/blacklist.conf
내용추가
blacklist net-pf-10
blacklist ipv6



reboot
컴퓨터 재부팅 명령어

cd ~

cp /home/home/openflow/regress/scripts/env_vars .
cp는 copy명령어 env_vars 파일을 ~ 위치에 복사

vim env_vars (에서 패스 잡아주세용)

source ~/env_vars
env_vars에 있는 명령들을 읽어서 실행

/sbin/ifconfig | more
로 확인

cd /home/유저폴더/openflow/udatapath
ofdatapath punix:/var/run/dp0.sock -i eth0, eth4(띄우지말고 컨트롤러+br부분빼고 다 추가)
오픈플로우 시작전 데이터패스를 잡아준다

새창 터미널 띄워서

su
password입력

cd openflow/secchan
ofprotocol unix:/var/run/dp0.sock tcp:1.1.1.1:6633
만들어진 데이터 패스를 기반으로 컨트롤러와 연결