다음에서 다운로드
[글쓴이:] 다솜돌이
[Ubuntu] dos2unix 사용하기
1. tofrodos 패키지를 설치
2. dos2unix 로 fromdos 를 소프트 링크
혹은 슈퍼유저 권한이 없을 경우 fromdos 파일을 ~/bin에 복사한 후 dos2unix를 소프트링크
Android 개발 시 몇 가지 로그 확인 방법
1. Kernel 에서 pr_debug 등이 안나올 때,
간단히는 맨 위(“#include <linux/kernel.h>”보다 위)에 “#define DEBUG” 추가 혹은 http://www.kernel.org/doc/local/pr_debug.txt 처럼 makefile 수정
DEBUG를 추가했을 때 왜 pr_debug 가 Enable 되는지 보고 싶다면, include/linux/kernel.h 참고
커널 메시지 보기 : 커널이 어느정도 안정적이라면 UART 등을 이용하는 것보다 adb 쉘을 이용하는 것이 더 편하던데..
2. Android 에서 LOGE, LOGW, LOGI, LOGD 가 안나올 때,
맨 위에 “#define LOG_NDEBUG 1” 추가
LOGV 까지 보고 싶을 땐 “#define LOG_NDEBUG 0” 추가
LOG_NDEBUG 가 미치는 영향을 보고 싶다면, system/core/include/cutils/log.h 파일 참고.
logcat 메시지 보기
로그 TAG를 통해 필터링해서 보는 것이 가장 보기 쉽고 깔끔하다.
아쉬우나마 adb logcat 을 이용해서 필터링 하고 싶다면 다음과 같이 한다.
filter-spec 등 adb의 사용법을 더 알고 싶다면 Android Debug Bridge(http://developer.android.com/guide/developing/tools/adb.html)를 참고한다.
[Android] userdata 지우기
개발 중에 App 설정이 userdata 에 저장되는데 잘못된 설정값을 설정하여 App가 계속 죽게될 경우 다시 진입해도 잘못 설정된 값이 저장되어 App가 계속 죽게 된다. 이럴 때 설정값을 날리기 위해서 adb shell 등으로 들어간 루트 쉘에서 다음 명령을 주면 된다.
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)
문서 중 가장 간단하다.
문서를 정리하자면,
다음과 같은 외부와 연결시키고 싶은 네트워크가 있다고 하자.
_____________
/ \ 외부 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 -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT |
이 문서는 GNU Free Documentation License를 따른다.
[Ubuntu] 무선랜 설정 시 볼 만한 문서
웬만한건 드라이버 잡으면
$ sudo iwconfig wlan0 essid GoogleGuest
$ sudo dhclient wlan0
하면 된다.
켰을 때 자동으로 연결 안하길래 아래와 같이 추가해 줬다.
/etc/network/interfaces
iface wlan0 inet dhcp
wireless_essid GoogleGuest
VirtualBOX 에서 공유폴더로 설정한 폴더 mount
Linux
mount -t vboxsf <Shared directory name> <mount point>
Windows
net use x: \\vboxsvr\sharename