2011-11-27

[OSX] Mac에서 검은색 배경화면 지정하기

이게 정석인지는 모르겠지만..

Mac에서 검은색 배경화면을 지정하기 위해서
첨부한 이미지를 다운 받아서 아래 위치에 저장한다.

/Library/Desktop Pictures/Solid Colors/Solid Black.png

시스템 환경설정 -> Desktop & Screen Saver -> Desktop 에서
Solid Colors에서 검은색 이미지를 선택한다.

2011-11-22

CentOS bonding 방법



아래 링크의 내용을 그대로 긁어왔다.


Bonding이란? (Teaming 이라고도 함)
여러 NIC 포트를 하나로 묶어 대역폭을 넓히고 장애에 대비한 방법입니다.



1. GATEDEV에 bond0 항목 추가
[root@test01 ~]# vi /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=test01
GATEDEV=bond0    <= 추가


2. ifcfg-bond0 생성 및 설정
[root@test01 network-scripts]# cp ifcfg-eth0 ifcfg-bond0
[root@test01 network-scripts]# vi ifcfg-bond0
# Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet
DEVICE=bond0
BOOTPROTO=none
-NBOOT=yes
USERCTL=no
TYPE=Ethernet
NETMASK=255.255.255.0
IPADDR=192.168.0.222
GATEWAY=192.168.0.1


3. ifcfg-ethx 수정
[root@test01 network-scripts]# vi ifcfg-eth0
# Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet
DEVICE=eth0
BOOTPROTO=none
-NBOOT=yes
USERCTL=no
TYPE=Ethernet
MASTER=bond0
SLAVE=yes


4. bond0 모듈 추가
[root@test01 network-scripts]# more /etc/modprobe.conf
alias eth0 bnx2
alias eth1 bnx2
alias eth2 bnx2
alias eth3 bnx2
alias scsi_hostadapter megaraid_sas
alias bond0 bonding   <= 추가
options bonding mode=1 miimon=100   <= 추가


<Options>

Mode : 본딩방식을 정하는 옵션
0 - RR 방식 로드밸런스. 인터페이스의 라운드로빈. (대역폭 상승 + Failover)
1 - Active-Standby (NIC 의 Failover 만을 위한 모드)
      한개는 Standby로 기존 것이 문제 생길경우 active로 전환
2 - XOR 방식 / 수신시에는 MAC 어드레스로 매핑, 송신시 1번 NIC 사용
3 - Broadcast 방식 / 모든 Slave NIC 으로 통신 failover 제공
4 - 802.3ad Dynamic Link aggregation
5 - 송신패킷만 로드밸런싱 / 동일 스위치에 물려있어야 함
6 - 송수신패킷 로드밸런싱 / 동일 스위치에 물려있어야 함

Miimon : 링크 감시설정 모드 / ms 단위, 디폴트값이 0(사용안함)
               즉, 0으로 설정하면 Failover가 비활성화


5. bonding 모듈 적재
[root@test01 network-scripts]# modprobe bonding


6. Network 서비스 재시작 or Reboot
[root@test01 network-scripts]# service network restart


7. bonding 설정 확인
[root@test01 network-scripts]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.4.0-1 (October 7, 2008)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: up
Speed: 100 Mbps
Duplex: full
Link Failure Count: 2
Permanent HW addr: 1x:xx:xx:xx:a8:49
Slave Interface: eth1
MII Status: up
Speed: 100 Mbps
Duplex: full
Link Failure Count: 2
Permanent HW addr: 1x:xx:xx:xx:a8:4b


8. Network 정보 확인(Mac Address 가 모두 동일하게 나옴)
[root@test01 network-scripts]# ifconfig
bond0     Link encap:Ethernet  HWaddr 1x:xx:xx:xx:A8:49 
          inet addr:192.168.0.222  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::16fe:b5ff:fed4:a849/64 Scope:Link
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:16062 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1767 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1259307 (1.2 MiB)  TX bytes:235045 (229.5 KiB)
eth0      Link encap:Ethernet  HWaddr 1x:xx:x:xx:A8:49 
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:9015 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1703 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:747490 (729.9 KiB)  TX bytes:228009 (222.6 KiB)
          Interrupt:82 Memory:d6000000-d6012800
eth1      Link encap:Ethernet  HWaddr 1x:xx:xx:xx:A8:49 
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:7047 errors:0 dropped:0 overruns:0 frame:0
          TX packets:64 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:511817 (499.8 KiB)  TX bytes:7036 (6.8 KiB)
          Interrupt:90 Memory:d8000000-d8012800
lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:560 (560.0 b)  TX bytes:560 (560.0 b)

2011-03-09

[JAVA] jni에서 사용되는 Type Signature

JAVA jni에서 사용되는 Type Signature는 include/jni.h 에서확인할수 있다.

typedef union jvalue {
    jboolean z;
    jbyte    b;
    jchar    c;
    jshort   s;
    jint     i;
    jlong    j;
    jfloat   f;
    jdouble  d;
    jobject  l;
} jvalue;

2011-03-06

Android 전체화면 사용

아래 구문을 OnCreate() 에 삽입한다.

- 타이틀바 제거
requestWindowFeature(Window.FEATURE_NO_TITLE);


2011-03-05

Android 여러 device있을때 adb shell 접속 방법

adb devices

나온 목록 중 원하는 device를 찾는다
아래 명령을 입력한다.

adb -s 번호 shell

2011-03-03

Android Screen 화면 조절

문제
갤탭에 어플을 올렸는데 아이패드에 아이폰 어플 올린것 처럼 화면 가운데에 activity가 떴다..

해결방법
AndroidManifest.xml에 아래를 추가한다.
<supports-screens android:largeScreens="true" android:anyDensity="true" />

Android application process 종료

Android의 Activity를 종료 시킬경우 아래 문제가 발생했다.

1. adb에 들어가서 ps명령으로 확인시 process가 종료가 안되어 있다.
2. 갤럭시의 작업관리자에서 확인하면 종료가 되어 있는데, 응용프로그램 관리에서 확인해보면 종료가 안되어 있다.

Activity가 종료되는것과 Process가 종료되는것은 다른것 같다. 그래서 구글링으로 아래 방법을 찾아서 적용하니 해결이 되었다.

1. AndroidManifest.xml에 아래 권한 등록
    <uses-permission android:name="android.permission.RESTART_PACKAGES" />

2. Activity 종료시 onDestroy()에 아래 명령 실행
    ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
    am.restartPackage(getPackageName());


참고 : http://blog.naver.com/huewu/110082677696

2011-03-01

android 내가 만든 패키지 shell 에서 실행하기

adb shell에서 activity를 실행하기 위해선 아래 명령을 사용한다.

am start -n 패키지이름/패키지이름.액티비티이름

2011-02-28

2011-02-27

javah 의 classpath 옵션 사용

아래는 javah에서 확인한 classpath옵션의 help 메뉴얼이다.

Usage: javah [options] <classes>
where [options] include:
        -classpath <path>     Path from which to load classes
javah -classpath <path> <classes> 형태로 사용가능하다.
이때 <path> 뒤에 세미콜론(;)을 추가해줘야 한다.

30분 삽질하고 알아낸 정보... ㅠㅠ

2011-02-19

PES의 PTS구하기

PES_header의 stream_id가 다음 조건을 충족할때 PTS_DTS_flags가 활성된다.
[조건]
  stream_id != program_stream_map
  && stream_id != padding_stream
  && stream_id != private_stream_2
  && stream_id != ECM
  && stream_id != EMM
  && stream_id != program_stream_directory
  && stream_id != DSMCC_stream
  && stream_id != ITU-T Rec. H .222.1 type E_stream
PTS_DTS_flags는 2bits flag이며, 10 혹은 11 값을 가질때 PTS가 존재한다.

나머진 문서 참조.

참조문서 ISO/IEC 13818-1-01 1994

2011-02-18

cygwin에서 sshd 설치하기

os : windows xp sp3

http://www.cygwin.com/ 에서 cygwin을 다운 받아 설치할수 있으나 현 버젼 설치 실패
http://x.cygwin.com/ 에서 cygwin/x를 다운 받아 설치했다.

1. cygwin 설치시 net > openssh를 같이 설치한다.

2. 다음 명령을 입력한다.
# ssh-host-config -y

2-1설치시 디렉토리나 파일에 대한 권한에 대해 에러메시지가 나면 해당권한을 준다.
ex) chmod +x /var

3. sshd를 설정한다.
# vi /etc/sshd_config

4. windows의 user, group 권한을 cygwin에서 사용가능하게 설정한다.
# mkpasswd -l > /etc/passwd
# mkgroup -l > /etc/group

5. sshd를 실행한다.
# cygrunsrv -S sshd
혹은
제어판-관리도구-서비스 에서 "CYGWIN sshd" 를 실행한다.

6. windows의 방화벽을 풀어준다.
기본 22번 port이다.  3.에서 port번호를 변경했을시 그에 맞는 port를 풀어준다.

[Windows] WDK(Windows Driver Kit ) 다운로드

예전에 윈도우 드라이버를 개발하기위해서는 DDK(Driver Development Kit)라는 것을 썼었으나
비스타 이후로는 WDK(Windows Driver Kit)를 사용한다.


다운로드나 자세한 정보를 보는것은 아래 주소에서 가능하다
http://www.microsoft.com/whdc/devtools/wdk/WDKpkg.mspx

[Android] Android 에뮬를 위한 SD카드 이미지 만들기

cygwin에서 Android 에뮬에 동영상을 올리기위한 SD카드 이미지를 만드는데 실수한부분이 있어서 적어봤다.

mksdcard명령을 통해 sd 카드 이미지를 만들수 있다.

usage: mksdcard [-l label] <size> <file>
if <size> is a simple integer, it specifies a size in bytes
if <size> is an integer followed by 'K', it specifies a size in KiB
if <size> is an integer followed by 'M', it specifies a size in MiB

<size>에 들어갈 단위는 Bytes, KB, MB뿐이다. 그런데 8GB가 필요해서 8G로 입력하는 실수를 했었다.

그런데 멍청하게도 명령어의 메뉴얼을 찾을 생각을 못해서 한참 헤맸다.

결국 아래 명령을 사용하여 SD카드 이미지를 만들긴했지만 기본적인것을 하지않아서 삽질한게 부끄럽다.

$ mksdcard 8192M test.img

CentOS bridge 설정하기

본글은 아래 사이트를 참고하여 작성되었다.
http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5.4/html/Virtualization_Guide/sect-Virtualization-Network_Configuration-Bridged_networking_with_libvirt.html

준비.
bridge name은 br0를 사용한다.
br0에 포함될 interface로 eth2, eth3를 사용한다.
# yum install bridge-utils  << brctl 설치

1. bridge 설정
  bridge 설정방법은 brctl를 이용하는방법과 ifcfg를 이용하는 방법 두가지가 있다.
1-1) brctl를 이용하는방법
# brctl addbr br0 << bridge 생성
# brctl addif br0 eth2 << br0에 eth2 추가
# brctl addif br0 eth3 << br0에 eth3 추가
# ifconfig eth2 down
# ifconfig eth3 down
# ifconfig eth2 0.0.0.0 promisc up
# ifconfig eth3 0.0.0.0 promisc up
# ifconfig br0 0.0.0.0 promisc up

1-2) ifcfg를 이용하는방법 - 실행시 자동 설정
# cd /etc/sysconfig/network-scripts << ifcfg가 있는 경로로 이동
# vi ifcfg-br0 << 파일 수정
+--ifcfg-br0----+
| DEVICE=br0 |
| ONBOOT=yes |
| TYPE=Bridge |
| PROMISC=yes |
+---------------+
# vi ifcfg-eth2 << 파일 수정
+--ifcfg-eth2---+
| DEVICE=eth1 |
| ONBOOT=yes |
| BRIDGE=br0 |
| PROMISC=yes |
+---------------+
# vi ifcfg-eth3 << 파일 수정
+--ifcfg-eth3---+
| DEVICE=eth2 |
| ONBOOT=yes |
| BRIDGE=br0 |
| PROMISC=yes |
+---------------+
# /etc/init.d/network restart << network restart
promisc mode가 제대로 안됨.. 아래 명령을 실행
# ifconfig eth2 0.0.0.0 promisc up
# ifconfig eth3 0.0.0.0 promisc up
# ifconfig br0 0.0.0.0 promisc up

1-1) 혹은 1-2) 설정을 한후 ifconfig를 한결과
# ifconfig
br0       Link encap:Ethernet  HWaddr 00:26:B9:47:43:47
          inet6 addr: fe80::226:b9ff:fe47:4347/64 Scope:Link
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:9000  Metric:1
          RX packets:121354 errors:0 dropped:0 overruns:0 frame:0
          TX packets:25 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:160850600 (153.3 MiB)  TX bytes:4912 (4.7 KiB)
eth0      Link encap:Ethernet  HWaddr 00:26:B9:47:43:45
          inet addr:192.168.10.199  Bcast:192.168.10.255  Mask:255.255.255.0
          inet6 addr: fe80::226:b9ff:fe47:4345/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5404 errors:0 dropped:0 overruns:0 frame:0
          TX packets:759 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:421517 (411.6 KiB)  TX bytes:150503 (146.9 KiB)
          Interrupt:106 Memory:d6000000-d6012800
eth2      Link encap:Ethernet  HWaddr 00:26:B9:47:43:47
          inet6 addr: fe80::226:b9ff:fe47:4347/64 Scope:Link
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:9000  Metric:1
          RX packets:26256 errors:0 dropped:0 overruns:0 frame:0
          TX packets:210 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:35736896 (34.0 MiB)  TX bytes:27169 (26.5 KiB)
          Interrupt:114 Memory:d8000000-d8012800
eth3      Link encap:Ethernet  HWaddr 00:26:B9:47:43:49
          inet6 addr: fe80::226:b9ff:fe47:4349/64 Scope:Link
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:9000  Metric:1
          RX packets:210 errors:0 dropped:0 overruns:0 frame:0
          TX packets:22708 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:27169 (26.5 KiB)  TX bytes:30894808 (29.4 MiB)
          Interrupt:122 Memory:da000000-da012800
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:7272 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7272 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:572211 (558.7 KiB)  TX bytes:572211 (558.7 KiB)

2. iptables설정 - bridge forwarding 시키기 (iptable를 사용안하면 필요없다.)
# iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT
# service iptables save
# service iptables restart
# vi /etc/sysctl.conf
   net.ipv4.ip_forward = 1 << 이부분 수정
# sysctl -p /etc/sysctl.conf

3. 확인
# tcpdump -i eth2
# tcpdump -i eth3
를 하여 패킷이 정상적으로 forwarding 되는지 확인해본다.

4. 기타
그래도 안된다면 다음 명령을 실행해본다.
# service NetworkManager stop