'Linux'에 해당되는 글 94건

  1. 2010.11.14 import를 사용하여 스크린샷 찍기 10
  2. 2010.11.14 Trac NonType object 오류
  3. 2010.11.10 아두이노에서 AVR 사용하기 2
  4. 2010.10.23 아두이노 리눅스에서 사용하기 7
  5. 2010.10.03 Makefile애서 플레그도 제대로 붙여야지....

import를 사용하여 스크린샷 찍기

import 스크린샷 찍을때 사용하는 프로그램인데 간단하고 좋다...

$import

하면 마우스커서의 모양이 십자가로 변하는데, 이때 프로그램의 윈도우를 찍어주거나,

선택한 영역을 드래그 하면, 지정한 영역만을 그림으로 저장해 준다. 블로그에 올릴 사진찍을때 정말 좋다 ㅋ

(이것도 있는지 안지는 꽤  됬는데.... 따로 스크립트는 만들어 주지 않고, 그냥 imagemagick으로

스크린샷 찍고 그랬다 -_-... 왜 그랬을까......)

먼저  import가 깔려있어야 하는데 ... Imagemagick 를 설치하면 알아서 깔린다

맨 페이지 보니깐 해당 프로그램의 멤버인듯.

스크립트는 다음과 같다

#!/bin/bash

SCREENSHOT_PROGRAM="import"
SCREENSHOT_PROGRAM_PID=$(pgrep "$SCREENSHOT_PROGRAM")
SCREENSHOT_SAVE_PATH="/home/lowid/etc/shot"

if [ "$SCREENSHOT_PROGRAM_PID"  = "" ];then
    "$SCREENSHOT_PROGRAM" "$SCREENSHOT_SAVE_PATH"/"$(date +"%F %r")".png &
else
    killall "$SCREENSHOT_PROGRAM"
fi

이걸 플빡이나 오박일경우 단축키로 지정해서 사용하면 편하다

한번누르면 grap을 시도하고, 한번 더 누르면 취소... 뭐 이런식으로 해놧다....

뭐 문제점이 몇개 있긴한데 어지간해선 그런일 일어나지 않을거 같아서 간단하게 작성했다

(너무너무 간단하다는... 달랑 if 문 하나라니 ㅋ)




ps; 스크린샷 찍을땐 compisite 없는 WM에서는 screenlets에 문제가 발생하므로 (검은 사각형)

딴 desklet을 쓰는게 좋을것이라고 생각....... 덕분에 나도 adesklets로 시계 바꿔버림 -_-

Trac NonType object 오류

Trac에서 다음과 같은 Oops 오류가 검출되면....

trac.ini 파일에 설정값이 제대로 안들어간 경우일수도 있으므로 확인해 보자

사용자 삽입 이미지

나 같은 경우에는 다음과 같이 설정되어 있었다

[trac]
repository_sync_per_request = (default)

알고 보니깐 저 값이 잘못되어서 에러가 났던것,

해결방법은 그냥 간단하게 default를 없애면 된다

[trac]
repository_sync_per_request =

이렇게 하면 일단 메인 위키페이지는 정상적으로 뜨는데,

Error with navigation contributor "BrowserModule"

메세지가 위에 뜬다... (스크린샷은 못찍었다......)

그리구 (git) 소스둘러보기 메뉴가 아예 뜨지 않고 타임라인(시간이력) 으로 들어가면 또 웁스 오류가 난다

아놔 다 고친줄 알았더니만 또 이 오류냐 !!!

이 오류 해결법은 다음과 같다....... 그냥 "trac-gitplugin"을 전부 지우고

(아치라면 AUR에 있는 패키지는 쓰지말자 컴파일도 안되는데다가 설치한다 해도 작동도 잘 안된다.)


다음과 같이 재 설치하면 된다

(아치가 아닐경우에는 그냥 easy_install 만 쓰면된다 - 그리고 나는 trac 0.12 임)
# easy_install-2.7 http://github.com/hvr/trac-git-plugin/tarball/master

이제 tracd를 재시작하면 에러 없이 잘 쓸수가 있게 된다. ㅋ

역시 문제가 생기면 다 지우고 재설치가 답인가......씁......

처음에 아치에서 파이썬버전이 막 바뀌면서 생긴 문제인줄 알았는데 그것이 아니라,

어떻게 하다가 설정값이 바껴서 생긴 문제인걸로 파악되었다.

나는 바꾼적이 없었는데... 패키지 깔면서 어떻게 설정값을 건들였거나, 아니면 설정값 정책이 변경된것 같다

이걸 몰라서 방치하다가 한달만에 고쳤다 ㅜ

그런데 trac사용법또 까먹었다는... 다시 좀더 봐야할듯....

아두이노에서 AVR 사용하기

Arduino를 조금 써보니깐 왠지 직접 못건드리니 찝찝하다....

C로 직접 건들여보면 더 좋을것 같아서  "AVR 처럼 사용가능하게 하는 방법" 을

구글에서 찾으니깐 다음과 같은 글이 나왔다...
http://www.javiervalcarce.eu/wiki/Program_Arduino_with_AVR-GCC
http://symbolx.org/robotics/107-arduinoavr-command-line-dev-environment

2번쩨 링크를 보면....예제소스도 있고, Makefile도 있겠다 싶어서 바로

#make;make upload

해봤으나 실패...

다음과 같은 오류가 떠버리고 더이상 진행되지 않는다.

avrdude: stk500_recv(): programmer is not responding

에러를 또 구글에서 찾아보니깐 다름과 같이 하면 된다구 하네. (역시 구글신은 모르는게 없엉....)

http://www.neuraladvance.com/2010/04/08/using-avrdude-with-the-arduino-duemilanove/

응? 거의 비슷한데.... 하다가 좀더 자세히 보니 upload할때 -b 플래그가 빠져있는것을 확인했다..

man페이지 보니깐 baudrate라고 한다...  업로드 속도 관련된듯하다 (이것도 구글이 갈켜줌...ㅋ)

그래서 최종으로 만들어진 Makefile.... 첫번째 링크의  Makefile과 유사하다.

CC=avr-gcc
CFLAGS=-Wall -Os -DF_CPU=$(F_CPU) -mmcu=$(MCU)
MCU=atmega168
F_CPU=16000000UL

OBJCOPY=avr-objcopy
BIN_FORMAT=ihex

# 통신포트 는 개인마다 다를수 있으므로 수동으로 설정 (arduino 의 그 통신포트를 그대로 사용)
PORT=/dev/ttyACM0
BAUD=19200
PROTOCOL=stk500v1
PART=$(MCU)

# 당연히 avrdude 가 설치되어 있어야 한다.
AVRDUDE=avrdude -F -V

RM=rm -f

.PHONY: all
all: main.hex

main.hex: main.elf

main.elf: main.s

# 소스파일명이 다르다면 변경해 주도록 한다.
main.s: main.c

.PHONY: clean
clean:
        $(RM) main.elf main.hex main.s

.PHONY: upload
upload: main.hex
        $(AVRDUDE) -c $(PROTOCOL) -p $(PART) -P $(PORT) -U flash:w:$<

%.elf: %.s ; $(CC) $(CFLAGS) -s -o $@ $<

%.s: %.c ; $(CC) $(CFLAGS) -S -o $@ $<

%.hex: %.elf ; $(OBJCOPY) -O $(BIN_FORMAT) -R .eeprom $< $@

그리고 다음 소스를 복사해서...

(첫번째 링크에 있는 소스와 같은 소스, 왔다가따 하기 귀찮아서 그냥 따로 붙여 넣었다)
/*
* LED 껌벅 껌벅 소스
*/

#include <avr/io.h>
#include <util/delay.h>

int main (void)
{
/* set PORTB for output*/
DDRB = 0xFF;

while (1) {
/* set PORTB.6 high */
PORTB = 0x20;

_delay_ms(1000);

/* set PORTB.6 low */
PORTB = 0x04;

_delay_ms(1000);
}

return 1;
}

실행하면... 뭐라고 메세지가 쭉 나오고 Arduino 보드에 반응이 나타날것이다

제대로 확인하고 싶으면 딜레이 속도를 조절해서 LED의 깜박임 속도를 보면 된다~

아 그리구 Arduino랑 AVR랑 핀 배열에 조금 차이가 있으니깐 꼭 한번 보자.

Arduino 소스를 AVR로 만들어볼때 유용할듯... 해봐야지...ㅋ

사용자 삽입 이미지
http://www.arduino.cc/en/Hacking/PinMapping168
http://techblog.textcube.com/156

어... 근데 이거 적다보니깐 다 어디서 배껴온거네 ㅋㅋㅋㅋ 내가 만든건 뭐냑 ㅋㅋㅋ



ps1; Makefile로 하는거니깐.... vim에서 이제 편하게 코딩이 가능하다 -_-v 자바 안녕~ 스케치 안녕~

ps2; avrdude로 하니깐 부트로더 툴체인 어쩌고 신경 안써서 편한거 같다.

3학년 임베디드 시간에 툴체인 설정하는거 생각하면 이건 축복이나 다름없다 (뭐 다르긴하다만)

ps3; 위에 적힌대로 말고, 그냥 Arduino Code를 외부 에디터로 사용하려면

다음과 같은 방법을 사용 하면 된다.

http://www.arduino.cc/en/uploads/Hacking/Makefile

난 시도는 해봤는데 이상하게 컴파일은 안되서 때려치웠음 -_-.....

'Hardware' 카테고리의 다른 글

아두이노 리눅스에서 사용하기  (7) 2010.10.23
NEXT-510UHP USB허브 구입기  (10) 2010.09.13
모니터를 사자 #1  (6) 2010.08.01

아두이노 리눅스에서 사용하기

내용과는 아무 상관없는 아두아노 IDE스샷... 그림이 있어야 좀 눈에 띄지 않겠어요? :D

사용자 삽입 이미지

1 장치를 켜고 USB에 연결, 다시한번 회로도에 맞게 되어있는지 확인


2 커널에서 다음을 모듈/커널에 장착해 넣는다 (어지간해선 일반유저는 이거 안건들여도 됨)

Device Drivers ---> [*]USB support --> [*/M] USB Modem (CDC ACM) support

Device Drivers ---> [*]USB support --> <*/M>USB Serial Coverter support --->

[*/M] USB FTDI Single Port Serial Driver

첫번째껀 아두아노에서  usb serial 통신을하기 위한 시리얼포드 설정이다

(윈도우의 COM PORT - 옛날에 모뎀쓸때 쓰던 포트)

보통 메뉴얼에 보면 /dev/ttyUSB*가 나온다고 하는데 다 그런건 아니다

/dev/ttyACM*이 나와도 정상이니깐 신경쓰지말고

뒤에 preferences.txt 파일 설정할때 조심만 하도록 하자

두번째껀 그냥 간단하게 아두이노 에서 사용하는 USB드라이버의 한 종류(FTDI) 라고 생각하면 된다

- 어쨋던 모듈에 신경쓰기 싫다고 하면 나처럼 다 커널안에 넣어버리는것도 한 방법이다.....

3. arduino 설치

- 보통 어지간한 배포판에는 거의다 포함 되어있기 때문에 별 걱정없이 걍 설치해주면 된다...

(적어도 아치, 우분투, 데비안엔 있는것은 확인했다)

아! 그리고 꼭 "32비트용 패키지 인지 64비트용 패키지인지" 확인하고 설치하도록 하자.

(이거때문에 내 황금같은 일요일을 날렸단 말이오!!! 겨우 이거가지고 ㅠㅠ)

이 비트는 지금 운영체제의 비트를 의미하는것이 아니다 - CPU임

32비트 CPU를 가진 컴퓨터라면, 32비트 패키지를 설치해주고,

64비트 CPU를 가진 컴퓨터라면 64비트를 설치하도록 하자

3. uucp그룹에 사용자를 추가히켜 준다.
gpasswd -a <YourID> uucp
4. ~/.arduino/preferences.txt에서

serial.port = /dev/ttyACM0 # 뭐 ttyUSB* 라면 그걸로 맞춰주면 된다

로 설정한다

5. arduino (스케치) 를 실행

Tools -> Board ->에 자신의 arduino모델을 선택

Tools -> Serial Port -> /dev/ttyACM0를 선택한다 (아마 선택되어 있을수도 있다)

- 이제 코드를 집어넣고 upload를 해보자. 스케치에서 작업하는 것은 여기까지

다시한번........Trubleshooting

1. 아두아노 스케치에서 Tool -> Serial Port가 회색인데?, 당근 /dev에 장치도 안올라오구 왜이럼?
- FTDI 모듈이 안잡혔거나, 커널에서 USB 시리얼 포트 설정이 안되서 그럼, 2번을 보셈

2. 컴파일은 잘되는데 업로드가 안되는?
- 다시한번 확인해보셈, 과연 패키지랑 님 시퓨랑 맞나.

ps; 참고로 내 모델은 Uno

이후에 외부 에디터(아마 Vim)에서 아두아노를 컴파일해서 업로드 하는 방법을 포스팅 할 예정
(솔까말 저기 아두이노 스케치로 에디팅하기 정말 불편하다...... 그래서......)


근데 그건 언제일까.......

'Hardware' 카테고리의 다른 글

아두이노에서 AVR 사용하기  (2) 2010.11.10
NEXT-510UHP USB허브 구입기  (10) 2010.09.13
모니터를 사자 #1  (6) 2010.08.01

Makefile애서 플레그도 제대로 붙여야지....

오랜만에 프로파일링 기능함 써볼라구  Makefile.in 에 -pg 옵션을 추가..

그리고 막 소스를 고치고.... 컴파일해서 실행을.....

그런데! 잘 돌아가는 게.. 라이브러리내부에서 (그러니깐 제가 만든게 아니라는) 에러가..

"state not found" 라니, "connection time out" 이라니...

어째서 제대로 이벤트시그널을 Detect해내지를 못하니... 줘도 못먹냐 ㅠㅠ

뭔가 잘못 고쳤을거야... 라고 생각

그래서 소스를 열심히 살펴봄.. 별 바꾼것도 없는데 안됨....

혹시 몰라서 모듈을 따로 분리한다음에 컴파일 해봤음 - "어 이건 되넹" 뭐가 문제야 하다가..

Makefile.in을 차자보니깐 이게 왠걸.. CFLAG에 옵션이 추가된게 아니라 LIB에 -pg가 추가되어 있음

아놔...... 대체 왜 에러가 안난거야? 링크할때나 에러 안나나....

그래서 CFLAG에 추가하니깐 잘 돌아가네염,

아놔 이게 무슨짓이야 이거때문에 어젯밤이랑 오늘 오전 날렸음


3줄 요약

Makefile에도 신경좀 씁시다.


프로그램이 이상하게 돌아가는게 링킹/컴파일이 제대로 안되서(에러가 안나도!)

그럴수두 있다는

prev 1 2 3 4 5 ··· 19 next