'분류 전체보기'에 해당되는 글 342건

  1. 2011.06.07 [log] 2011/06 바탕화면 8
  2. 2011.05.27 포인터 연습 6
  3. 2011.05.25 [수정중] 아치리눅스에서 안드로이드 개발환경 설정 2
  4. 2011.05.24 리눅스 + 이클립스 트러블슈팅 2
  5. 2011.04.20 Alsa 장치 순서 정렬 2

[log] 2011/06 바탕화면


오랜만에 스크린샷 올려보는듯?



어쨋던 바탕화면 꾸미기 완성~

conky에 아이콘(?) 막 넣으니깐 엄청 그래피컬 하게 보이지 않나요?

역시 모니터가 크니깐 화면에 이것저건 넣고 vi도 나눠쓰고 편하네요......

특히 일정관리는 구글이랑 연동되는것도 있으니깐 편한거 같기도.

데스크탑 환경 DIY하는데 아주 재미가 걸린거 같네요, 뭐 덕분에 스크립트 언어 몇개 더 건드리게 되긴 하였지만

이제 겉멋 들이는건 됬으니깐 속멋이나 더 들게 만들어 볼까요......

아놔 공부해야되는데~ 이러고 있네요.

포인터 연습


요즘엔 쉘 스크립트만 붙잡고 노는지라, C는 안한지 몇달이 다되가네여.

포인터도 좀 마니 까먹은듯?

친구가 다중배열 넘기는 방법을 물어보길래 함 짜보네여,

옛날에도 2차원 배열, 2차원포인터로 넘기는건 기본이고 3차원 포인터(!) 까지 쓰고 그랬는데 요즘엔 영 기억이 안난다는

(이게다 스크립트 언어만 만지기 때문임 ㅠㅠ)

친구가 준 소스를 수정 ( 다 바꿨지만)해서 만든 완성본

자세한 설명은 생략, 뭐 어짜피 이블로그 오는사람은 이정도는 다 알겠져.
#include <stdio.h>

#define MAX_ROW 4
#define MAX_COL 5

int PArray_Type (int *array)
{
    int i;

    for(i = 0;i < MAX_COL;i ++){
        printf("%d\n", array[i]);
    }  
}

// 통채로 넘겼으므로, (보낸 배열과 같게)열의 크기를 정해줘야한다.
int PArray_Type2 (int (*array)[MAX_COL])
{
    int i,
        j; 

    for(i = 0;i < MAX_ROW;i ++){
        for(j = 0;j < MAX_COL;j ++){
            printf("%d\n", array[i][j]);
        }  
    }  
}

int main (int *argc, int argv[])
{
    int array[MAX_ROW][MAX_COL] = {{5,7,0,1,3},
                                   {8,2,3,7,0},
                                   {1,6,3,8,4},
                                   {1,2,4,8,3}},
        *array2,
        i; 

    for(i = 0;i < MAX_ROW;i ++){
        array2 = array[i]; // 각 row 의 맨앞 주소만 넘김
        PArray_Type(array2);
    }  

    puts("--");
    PArray_Type2(array);

    return 0;
}  

응용해서.. 다음과 같은것도 넘기는것도 가능합니다.

포인터 배열을 넘길때에는 받는 함수쪽에서 괄호를 주의하도록 합시다.
#include <stdlib.h>    
#include <stdio.h>    
#define FUNCTION_KEY_COUNT 12

char *keysym_function[FUNCTION_KEY_COUNT] = { "F1", "F2", "F3", "F4", "F5", "F6",   
                                                                             "F7", "F8", "F9", "F10", "F11", "F12"};   

void KeyArray_String(char (*array_keycode[FUNCTION_KEY_COUNT]))
{   
    int i;   
   
    for(i = 0;i < FUNCTION_KEY_COUNT;i ++){   
        printf("%s\n", array_keycode[i]);
    }   
}   

int main(int argc, char **argv)
{
    KeyArray_String(keysym_function);
}


'Programming > C' 카테고리의 다른 글

간단한 디버그 함수  (0) 2010.08.16
오늘도 실수.. iconv  (0) 2010.06.24
아아 또 실수~!  (4) 2009.06.22
주의력 부족  (2) 2009.06.22
이진트리를 만들고나서....아 망했어요...  (2) 2009.05.25

[수정중] 아치리눅스에서 안드로이드 개발환경 설정

1. SDK 설치
1) 다음 패키지를 설치합니다.
yaourt -S android-sdk android-sdk-platform-tools

2) PATH를 설정해 줍니다.
다음 경로들을 추가해 주면 됩니다.

/opt/android-sdk/tools
/opt/android-sdk/platform-tools:

만약 JAVA_HOME이 설정이 안되 있다면,  이것도 추가 합시다.

/opt/java

export PATH="$PATH:/opt/java/bin:/usr/local/bin:/opt/android-sdk/tools:/opt/android-sdk/platform-tools:"
export JAVA_HOME="/opt/java"
export CLASSPATH="."

3)SDK/AVD 관리자를 실행시킵니다
  #android

4)Available packages 에서 원하는 패키지를 선택합니다.
뭐 다 선택해도 무방 합니다만......
그리고 Install Selected 하심 끝입니다.


5) 뭐 저는 어짜피 프로요까지 밖에 못쓰니깐 이정도만 설치했습니다. 참조해 주세요.


2. 물리 장치 인식
Virtual device가 아니라 실제 장치를 인식시키는 과정입니다

1) 스마트폰에서 다음과 같이 설정합니다 (프로요 기준)
홈 -> 설정 -> 응용프로그램 ->개발 ->USB 디버깅을 켜줍니다.
(나머지 옵션도 켜주시면 좋습니다)

2) 스마트폰을 USB에 연결합니다.

3) 다음 명령어를 사용하여 vid, pid를 알아냅니다.
빨간게 vid, 파랑색이 pid 입니다.
[~]$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 0000:9999   ..........
......
Bus 002 Device 003: ID 0000:9999  ..........
......
Bus 002 Device 011: ID 1111:2222 Motorola PCS Droid/Milestone (Debug mode)

4) 루트로 다음 파일을 편집합니다. (아마 파일이 없을겁니다. 생성합시다)
이번에도 udev 설정입니다. alsa랑 별 다를바 없어요.
#  vi /etc/udev/rules.d/90-android.rules
SUBSYSTEM=="usb", SYSFS{idVendor}=="1111", MODE="0666"

SUBSYSTEM=="usb",ATTR{idVendor}=="1111",ATTR{idProduct}=="2222",SYMLINK+="android_adb"
SUBSYSTEM=="usb",ATTR{idVendor}=="1111",ATTR{idProduct}=="2222",SYMLINK+="android_fastboot"

5) udev를 재시작 합니다
#udevadm control --reload-rules

6) 확인해 봅니다
[~]$ adb devices
List of devices attached
FFFFFFFFFFFFFFFF        device

참고:
http://developer.android.com/guide/developing/device.html
https://wiki.archlinux.org/index.php/Android

2. Eclipse 설치
많이 사용하는 IDE 이클립스를 설정해 보겠습니다. 설치방법은 다음과 같습니다.

일반 eclipse 패키지를 설치하지말고, 꼭 eclipse-android  패키지로 설치하도록 합니다.

아니면 뒤에 삽질좀 더 해야 하거든요.
#yaourt -S eclipse-android

1. 한글 언어팩 설치
다음은 자세한 설치과정입니다. 제가 나중에 잊어버렸을때를 대비해서 -_-.. 자세하게 적어 놨습니다.
메뉴 -> help -> Install New Software

work with : 에

http://download.eclipse.org/technology/babel/update-site/R0.8.0/helios

http://download.eclipse.org/technology/babel/update-site/R0.10.1/juno

를 넣고 기다립니다. 시간이 좀 걸리네요

저는 한 십분 걸린듯


2) Babel Langauge Packs in Korean을 선택합니다.


3) 저는 다 선택 했으므로 하위 패키지들이 모두 나옵니다.


4) 단체 accept 해 줍니다. finish!


5) 알아서 설치 합니다.


6) OK!


7) 재시작 을 합니다.


8) 완료



2,
AUR에서 eclipse-android 패키지에 문제가 있으실경우, 다음과 같이 수동으로 설치 해 주세요.

제대로 패키지를 설치하였다면, 이 부분은 무시해 주세요.

(!) 설치시 일부 메뉴의 사용이 불가능(disable)되어버리는 문제가 발생하므로
가급적 아래의 방법은 사용하시자 마시기 바랍니다.


3. 커맨드를 사용한 컴파일/실행 방법

1) 컴파일을 하기위해서 ant 패키지 설치
[/tmp]# yaourt -S apache-ant

2) PATH 추가
위와 같이 "/usr/share/java/apache-ant/bin"를 경로에 추가해 줍니다.
export PATH="$PATH:/opt/java/bin:/usr/local/bin:/opt/android-sdk/tools:/opt/android-sdk/platform-tools:/usr/share/java/apache-ant/bin:"

3) 기본 템플릿 파일 만들기
자세한 설명은 생략하겠습니다. 파라매터에 설명이 다 나와 있으니까요.
[/tmp]$ ./android create project \
--target 1 \
--name hello \
--path Project/hello \
--activity hello \
--package example.hello

3) 만든 디렉토리로 이동한 이후에 컴파일 합니다.
[/tmp]$ cd Project/hello
[/tmp/Project/hello]$ ant install

4) 실행
[/tmp/Project/hello]$ adb shell 'am start -n example.hello/.hello'

5) 스마트폰을 확인해 보세요. 프로그램이 실행되어 있을겁니다.

4. 이클립스를 Vim 처럼 사용하기

터미널에서 작업하고 싶은데(Eclim이 안되 ㅠ) eclipse의 자동완성 기능이 부러우신분,

또는, 이클립스 내부에서 vi를 사용하고 싶은분은 다음과 같이 해 주세요.

먼저, 터미널에서 eclim을 사용하는 경우를 먼저 설명하겠습니다.

1) Eclim 사용하기

이클립스를 데몬으로 돌려서 일부의 기능을 vim쪽으로 끌어오는(!) 방식으로 작동하는 녀석입니다.

컴파일하기도 힘들고, 설명 패키지로 만들어서 설치를 한다고 해도, 제대로 작동하지가 않네요.

그래도 업데이트는 잘되는 편이던데...... 데체 이걸 어케 사용하는거야 다들?;;

뭐 나중에 해결책이 나오면 이어서 포스팅할꼐요. 지금은 영 안되겠습니다.

2) vrapper 사용하기

그나마 젤 사용할만합니다. (사실 이것말고는 선택사항이 없......)

설치하기도 매우 쉽고요. 앞에서 하던데로 하면 됩니다.

도움말 -> Install New Software

Work with: http://vrapper.sourceforge.net/update-site/stable



다음엔 다 아시죠? 여태까지 해 왔던대로 다음 버튼누르고 라이센스 동의 하고 확인 몇번 눌른후,

이클립스를 다시 시작 하면 설치과정은 끝입니다.

이제 재시작이 완료 되었으면, 툴바에서 gVim 아이콘을 누르고 그냥 사용하면 됩니다.

더이상 따로 건드려줘야 할건 없습니다. 심플하죠.

이것도 좀 부족한게 있는데 왜냐하면 몇몇 자주쓰는 기능이 빠져 있기때문입니다.

아직 지원하지 않는 명령은 (제가 대충 찾아본 결과)

버퍼 관련 명령들, '-', '+', '%' 들여쓰기 정렬,  페이지 이동, gd, 이정도가 되겠습니다.

이점 참조 하시길 바랍니다.

결론적으로, 그냥저냥 파일내부에서 기초적인 편집과 커서이동은 가능하구나 생각하시면 됩니다.

hjkl의 자유를 얻은것만으로 만족합시다;


2) ViPlugin 사용하기

유로로 돈내고 사야합니다 (......), 가 아니라 일단 무료로 쓸수 있긴 한거 같습니다.

문제라면 귀찮도록 나오는 경고 메세지 입니다

(라이센스가 없으니깐 사주세여 어쩌고......)

그런데 아직까지 별로 써본적이 없기때문에,

무슨 기능상 무슨 제한이 있는지, 아니면 날짜 제한이 있는지는 아직은 모르겠네요

어쨌던 라이센스를 얻으라면 페이팔에서 결제를 해야합니다. 얼마냐구여? 15 유로네요.

www.viplugin.com

1유로가 1545원이니까...  (유로가 달러보다 비쌌군요; ) 한 23000원 하네요.

그런다해도 구글에 찾아보면 해적판! 크랙판! 을 쉽게 찾을수 있습니다.

(버전이 좀 낮습니다만...... 업데이트가 따로 되는지 안되는지는 모르겠네요)

설치방법은
1. 위의 링크를 타고 들어가서 "오른쪽에 거대한 페이팔 로고" 아래에 보면 다운 링크가 있습니다.
 
2, 파일을 받고

3, ~/.eclipse/org.eclipse.platform_VERSION 에 압축을 풀어주시고

4, 이클립스 재시작 하면 됩니다.

위에 나오는 vrapper 보다는 기능이 좀더! 있습니다.

ps; 키가 충돌할 수도 있으므로, 하나만 정해서 사용하는것이 나을겁니다. 아마도.


5. XML 파일을 쉽게 편집하기

1) 이클립스의 도움 없이 xml을 편집하는 방법입니다만...... 그다지 추천은 하지 않습니다;
#yaourt -S droiddraw

2) droiddraw를 실행합니다.

3) 메뉴에서 File -> Open 을 선택하고  PorjectDirectory/rss/layout/main.xml을 선택합니다.

ex>
/tmp/Project/hello/rss/layout/main.xml

4) 수정을 시작합니다.

5) 저장합니다.

6) 재 컴파일 하고 실행.

ps; 아 양 장난아니게 많네여, 조금씩 조금씩 해서 오늘에서야 끝!


'Programming > Android' 카테고리의 다른 글

리눅스 + 이클립스 트러블슈팅  (2) 2011.05.24

리눅스 + 이클립스 트러블슈팅


1. (특히) 자동완성시, 이클립스(helios)가 그냥 죽어 버릴때(SIGSEGV)

xulrunner를 1.9 버전을 쓰면 제대로 된다는 것은 익히 알고 있었지만,

이렇게 하면 FF4를 쓰지 못하기 때문에 어쩔수 없이 다른 방법을 찾다가 찾아낸 해결책.

(사실 이 방법이 더 깨끗하기도 하고)

아치의 경우 /usr/share/eclipse/eclipse.ini 파일에 다음 내용을 추가해 준다.

현재 내 eclipse.ini 파일, 강조 표시된 내용을 추가하면 된다.
-startup
plugins/org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.1.2.R36x_v20101019_1345
-showsplash
org.eclipse.platform
--launcher.defaultAction
openFile
-vmargs
-Xms40m
-Xmx768m
-XX:MaxPermSize=512m
-Dorg.eclipse.swt.browser.UseWebKitGTK=true
-Dorg.eclipse.swt.browser.XULRunnerPath==/usr/lib/xulrunner-2.0/

더 자세한 내용은 다음을 참조.

https://bbs.archlinux.org/viewtopic.php?id=115543

사실 이거 안지는 좀 되었는데,

(국내)인터넷에서도 간간히 안된다는 이야기는 있는데 해결책은 없고......

해서 걍 포스팅 해봄, 오랜만에 포스팅하는것이기도 하고,

ps; 매니패스트 파일 갱신할때 버그가 좀 있네요.

2 에러가 아닌데 에러라고 자꾸 우길때
- xml 파일에 공백 추가후 저장


3 레이아웃 파일을 만들었는데 R.java에 추가가 안될때
- 이클립스 재 시작


4 메뉴 -> 창 -> 환경 설정 -> 일반 -> 키 눌렀을때 다음과 같은 오류가 나온다면,
(또는 메뉴 -> 파일 -> 종료가 비활성화 되었을때
또는 메뉴 -> 창 -> 보기표시 의 하위 메뉴들이 비활성화 되었을때)

오류가 발생했습니다. 자세한 정보는 오류 로그를 참조하십시오.
No context available outside of the request service lifecycle.


WST를 Eclipse에서 Install시  경우 발생한다. (Eclipse Helios Repo를 잡고 설치하면 그러는것 같다? )

확실히 정확한 원인은 모르겠으나, 내가 추측하기전엔 아래 패키지를 설치해 주고 난 이후에 ADT를 설치 해야하는것 같다

(확실히 되는지 안되는지는 아직 확인해 보지 않았, 아치리눅스일 경우 다음과 같이 설치한다)
pacman -S eclipse-emf eclipse-gef eclipse-wtp-wst
5 실행(컴파일)시 다음 오류가 발생할때 (NoClassDefFoundError: 뒤에 프로젝트명이 없을떄)
Exception in thread "main" java.lang.NoClassDefFoundError:
Caused by: java.lang.ClassNotFoundException:
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: .  Program will exit.

1) 창 -> 환경설정 -> Ant -> 런타임 -> Ant 홈(H) 에서 eclipse plugin 디렉토리 선택,

또는 왼쪽 아래에 짱 박혀있는 "기본값 복원" 클릭

만약, 이렇게 해도 별 진전이 없으면, 2번과 같이 해보세요

2) 파일 -> 작업공간 전환 -> 기타

이러면 "작업공간 실행기" 라는 다이얼로그가 뜬다

여기서 "새로운 작업공간"을 만들고 나서 다시 프로젝트를 import해서 사용한다.

6. XML파일을 고치고 실행했는데 에러가 날때

[2011-06-13 18:09:00 - Chapter03Exam01] Error in an XML file: aborting build.

1. res 디렉토리에 생성된 *.out.xml 파일을 모두 지우고, refresh

2. JAVA파일로 포커스를 이동후, 다시 컴파일

Alsa 장치 순서 정렬


다른사람들은 PulseAudio 쓸때도, 저는 아직도 꿋꿋히 alsa를 쓰고 있습니다 (......)

ibus처럼 무슨 문제가 생겨서 바꾼게 아니니깐, 다른 문제가 생기기 전까진

걍 alsa 그대로 쓸랍니다. 귀찮아요 설정 같은거... 조금이라도 가벼운거 좋기도 하고.

38커널 컴파일하면서 alsa관련 모듈(......)을 모듈(......)로 빼놓으니깐 order 문제가

발생하더군요.

udev를 주로 쓰게되면서 커널 모듈 올라오는 순서가 랜덤으로 되어서 그런진 잘 모르겠지만

여튼 장치를 많이 사용하게되면, 번호가 꼬여버려서 문제가 발생합니다......

(mpd, mplayer에서 장치를 지정해주거든요 저는......

mpd는 해드폰으로, mplayer는 외장USB 카드로......

이게 다 놋북사운드카드 단자가 고장났기 때문에 발생하는 현상이기도 하죠.)

여튼 해결책은 간단합니다.

VenderID랑, ProviderID만 알아서 적어주면 됩니다.

[~/work/src]$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 04f2:b052 Chicony Electronics Co., Ltd
Bus 002 Device 002: ID 1a40:0101 TERMINUS TECHNOLOGY INC. USB-2.0 4-Port HUB
Bus 002 Device 004: ID 1a40:0101 TERMINUS TECHNOLOGY INC. USB-2.0 4-Port HUB
Bus 002 Device 005: ID 046d:0a0c Logitech, Inc. Clear Chat Comfort USB Headset
Bus 002 Device 006: ID 1a40:0101 TERMINUS TECHNOLOGY INC. USB-2.0 4-Port HUB
Bus 002 Device 008: ID 056e:0035 Elecom Co., Ltd
Bus 002 Device 009: ID 0c76:1607 JMTek, LLC. audio controller

/etc/modprobe.d/alsa-base.conf 파일, 없으면 만들어 주세요.
#  인텍스 수에 따라서 우선순위가 결정, 놋북 내장 인텔 카드는 0번
options snd-hda-intel index=0

# 둘다 같은 USB 형식이므로, 이렇게 설정해 줘야 합니다.
# lsusb 했을때 앞에 있는게 벤더, 뒤에 있는게 프로덕트id 이므로 순서대로 적으세요
# index=순서1,순서2 vid=HeadsetVID,TVSoundVID pid=HeadsetPID,TVSoundPID
options snd-usb-audio index=1,2 vid=0x046d,0x0c76 pid=0x0a0c,0x1607

# 편의상 그냥 외장 USB카드를 TVSound라고 적었습니다. 햇갈려서요.

출저 - 역시 공식 메뉴얼 페이지가 최고에요

http://alsa.opensrc.org/MultipleCards

'Linux > 내부설정' 카테고리의 다른 글

농협 인터넷 뱅킹 설치 하지마세요.  (8) 2011.06.24
pidgin nateon 32bit 버전 147-27  (2) 2011.06.14
HP f2180 설치 / 설정  (4) 2011.02.20
Vim 윈도우 단축키  (7) 2011.02.09
리눅스 콘솔창에서 트윗질 하기  (8) 2011.01.15
prev 1 ··· 4 5 6 7 8 9 10 ··· 69 next