[Android] userdata 지우기

개발 중에 App 설정이 userdata 에 저장되는데 잘못된 설정값을 설정하여 App가 계속 죽게될 경우 다시 진입해도 잘못 설정된 값이 저장되어 App가 계속 죽게 된다. 이럴 때 설정값을 날리기 위해서 adb shell 등으로 들어간 루트 쉘에서 다음 명령을 주면 된다.


# wipe data

[Linux] printk 디버깅 메시지 레벨 조정

이 것도 자꾸만 까먹는다..;;


이 글(http://www.makelinux.net/ldd3/chp-4-sect-2.shtml)을 참조하자


간단히, 커널 실행 중일 때는 다음과 같이 하면 모든 디버깅 메시지를 콘솔로 볼 수 있다. 


#echo 8 4 1 7 > /proc/sys/kernel/printk

YUV 포멧 정리

YUV 포멧은 두 가지로 나뉠 수 있는데, 하나는 Packed 포멧이고, 다른 하나는 Planar 포멧이다.
Packed 포멧은 Y, U (Cb), V (Cr) 성분이 함께 Macropixel을 이루는 형식이다. 예를 들면 UYVY의 경우 Y 성분 2개와 그 두 개 Y 성분에 대한 U, V 성분을 합쳐 두 개의 픽셀을 나타내게 된다.
Planar 포멧은 Y, U (Cb), V (Cr) 성분이 각각의 분리된 영역에 저장되어 세 개의 영역을 모두 합쳐서 최종 이미지를 얻을 수 있는 방식이다.

내가 자주 다루게 되는 포멧은 Packed 포멧으로 YUYV, UYVY, Planar 포멧으로 NV12, NV21 이다.

YUYV와 UYVY 는 YUV 4:2:2 Packed포멧이다.
UYVY 는 Y422, UYNV, HDYC 로도 불리며, 32비트 안에 U0, Y0, V0, Y1 순서로 한 성분이 각각 8비트씩 저장되어 2개의 픽셀을 나타내게 된다.
YUYV 는 V422, YUNV, YUY2 로도 불리며, 32비트 안에 Y0, U0, Y1, V0 순서로 한 성분이 각각 8비트씩 저장되어 2개의 픽셀을 나타내게 된다. UYVY 와는 배열 순서만 다르다고 생각하면 된다.
그림으로 나타내면 다음과 같다.

NV12와 NV21은 YUV 4:2:0 Planar포멧이다.
NV12 는 8비트 짜리 Y 성분 하나와 8비트 짜리 U와 8비트 짜리 V 가 합쳐져 한 픽셀을 나타내게 되는데, U와 V 하나를 2×2의 Y 성분이 공유한다. 다른 말로 하자면, 2×2의 4픽셀을 나타내기 위해서 Y plane의 2×2의 4개의 성분과 이에 대응하는 U, V 성분 하나가 사용된다. 그림으로 나타내면 다음과 같이 설명할 수 있다.

NV21은 U/V plane에서 U와 V가 순서가 바뀐 포멧이다. YUV420SP 라고도 불리는 것 같다.
다른 더 많은 포멧은 아래 참고 링크를 참조한다.

참고 : http://www.fourcc.org/yuv.php

추가 :  MSDN 에도 참고할 만한 글이 있다. NV12, YV12, IMC2 포멧 등, 메모리 증가에 따른 저장 공간을 잘 보도록. : http://msdn.microsoft.com/en-us/library/Aa904813

리눅스 인터넷 공유(Masquerade)

http://www.otl.ne.kr/243

문서 중 가장 간단하다.

문서를 정리하자면,

다음과 같은 외부와 연결시키고 싶은 네트워크가 있다고 하자.



   _____________
  /                     \               외부 IP               _________              내부 IP
 |   Internet          |           123.12.23.43           |  linux     |          192.168.0.1
 |   google.com    | ——[외부 랜카드]——| machine |——[내부 랜카드]
  \_____________/                                         ———-             |
                                                                                               |        
                                                                                               |
                                                   _____________                ______|_______
                                                  | 192.168.0.2  |             /                      |
                                                  |    내부        |——–|    192.168.0.0    |
                                                  |    컴퓨터     |            |      인트라넷      |
                                                  ————–             \______________/ 

외부 네트워크 카드는 eth0, 외부 IP는 123.12.23.43, 그리고 내부 네크워크 카드는 eth1라고 가정하자.





$> modprobe ipt_MASQUERADE # 만약 실패하더라도 다음을 계속하시오.

$> iptables -F; iptables -t nat -F; iptables -t mangle -F

$> iptables -t nat -A POSTROUTING -o eth0 -j SNAT –to 123.12.23.43

$> echo 1 > /proc/sys/net/ipv4/ip_forward

그리고 보안을 위해:





$> iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

$> iptables -A INPUT -m state –state NEW -i ! eth0 -j ACCEPT

$> iptables -P INPUT DROP # 위의 두 줄이 성공한 경우에만

$> iptables -A FORWARD -i eth0 -o eth0 -j REJECT

이 문서는 GNU Free Documentation License를 따른다.


http://www.gnu.org/copyleft/fdl.html

[Ubuntu] 무선랜 설정 시 볼 만한 문서

웬만한건 드라이버 잡으면

$ sudo iwconfig wlan0 essid GoogleGuest
$ sudo dhclient wlan0


하면 된다.

켰을 때 자동으로 연결 안하길래 아래와 같이 추가해 줬다.
/etc/network/interfaces


auto wlan0
iface wlan0 inet dhcp
        wireless_essid GoogleGuest

 


[Android] Linux에서 adb와 fastboot 사용하기

http://androidforums.com/samsung-i7500/32481-howto-linux-adb-fastboot-mass-storage.html 에서 자세한 내용을 찾을 수 있다.
요약 정리하면,

Linux 에서 사용할 수 있는 fastboot은 플랫폼 빌드 시에 생성되며, out/host/linux-x86/bin/ 아래에서 찾을 수 있다.

그리고 사용하려는 Linux 머신의 /etc/udev/rules.d/ 경로에 다름 파일들을 생성한다.

50-android.rules

SUBSYSTEM==”usb”, ATTR{idVendor}==”18d1″, MODE=”0666″, OWNER=”<사용할 Machine 상의 USERNAME>”

90-android.rules

SUBSYSTEM==”usb”, ATTR{idVendor}==”04e8″, MODE=”0666″, OWNER=”<사용할 Machine 상의 USERNAME>”

그리고 다음 명령을 사용하여 udev rules을 갱신한다.

reload udev

2014.07.11. SYSFS{idVendor} 를 ATTR{idVendor} 로 변경.

미국 출장 전 준비물

* 챙기기 완료
청바지 1
반바지 1
티셔츠 2
양말 5
우산 1
110V 처럼 생긴 Plug Converter 1

* 완료지만 챙겨야 할 것
스킨/로션 2 샀음
세면제 1 샀음
귀걸이 1 샀음
카드 지갑 1 샀음

* 가져갈 것
명함 넉넉히
회사 수첩 1
노트북 1
외장 하드 1
카메라 1
멀티탭 1
E-Ticket 1
국제면허증 1
여권 1
선글라스 1
슬리퍼 1

* 사야 할 것
왁스 사야함
흰 티셔츠 사야함
속옷 사야함
(햇반?, 컵라면?)

[git] git 설정하기

1. git 설치

sudo apt-get install build-dep git-core git-doc

2. git 구성하기
2.1. username과 email 설정

git config –global user.name “Yang Jeong-Seok”
git config –global user.email “dasomoli@gmail.com

2.2.. git 설정 확인

git config –global –list

2.3.. git color ui 사용

git config –global color.ui “auto”

2.4. 기본 인코딩을 cp949로 바꾸기

git config –global i18n.commitEncoding cp949
git config –global i18n.logOutputEncoding cp949

윈도에서는 LESSCHARSET=latin1 으로 설정해야 로그 메시지를 볼 수 있다.

set LESSCHARSET=latin1

2.5. 기본 에디터를 vim 으로 설정하기

git config –global core.editor “vim”