Linux/Fedora Core2010. 7. 5. 18:43
리눅스에서 터미널을 이용하다 보면
-가 자꾸 옆에 글씨를 잡아 먹어서 답답한 감이 없지 않다.
그래서 시간을 내서 찾아 보니.. 오호라~ 이런 멋진 옵션이! ㅋㅋ

Step 1. 편집 - 프로파일

Step 2. 프로파일을 새로 만들거나 현재 사용중인 "Default"를 편집한다.

Step 3. 배경이 투명하길 원한다면(위의 스샷처럼) 없음(단색사용) 대신 투명한 배경을 선택함.

Step 4. 시스템 고정폭 글꼴 사용을 하면 그런 문제가 발생하므로
          원하는 다른 폰트를 선택한다. 일단 고정폭중에 다른걸 쓰거나, 고정폭을 포기하던가 해야 할듯
          추가적으로 리눅스에서 사용하는 고정폭 폰트를 검색해 봐야겠다.
          - 2010.07.06 추가
          Ubuntu 10.04 에서 폰트를 일일이 뒤져보니 Mono 라고 들어가는 녀석들은 거의 고정폭으로 보인다.
          웃기게(?!) 도 기본 고정폭 폰트인 Monospace는 고정폭이 아닌것으로 보인다 ㄱ-

아무튼.. -가 옆에 글씨를 안 잡아서 먹어서 좋다 -_-

Posted by 구차니
Linux2010. 6. 24. 17:39

CONDITIONAL EXPRESSIONS
       -e file True if file exists.
       -f file  True if file exists and is a regular file.
       -s file True if file exists and has a size greater than zero.

if [ -e filename ]
은 파일의 존재를 확인한다.
반대로 파일이 없을 경우에를 표현하려면

if [ ! -e filename ]
라고 하면된다. (공백에 유의!)


머.. -e 옵션에서 그냥 else 에 넣으면 되긴 하지만..

[링크 : http://stackoverflow.com/questions/638975/how-do-i-tell-if-a-file-does-not-exist-in-bash]
Posted by 구차니
Linux2010. 6. 15. 22:58
test.c 파일을 심심해서 프로파일링과 디버깅 정보를 조합하여 출력하도록 해보았다.
(나중에 어셈블리 분석도 해볼겸!)

$ cat test.c
#include "unistd.h"

int main(int argc, char **argv)
{
	int a = 0;
	int b = 0;

	printf("%d %d\n",a,b);
	a++; b++;
	printf("%d %d\n",a,b);
}

아래의 내용중 파란색 내용디버깅에서 추가되는 내용
빨간색 내용프로파일링에서 추가되는 내용이다.





vimdiff 를 이용해서 비교해본 결과는 아래와 같다.
- 프로파일링 없이 디버깅 정보의 유무

- 디버깅 정보 없이 프로파일링 유무


Posted by 구차니
Linux2010. 6. 3. 18:32
ulimit은 코어덤프나 각종 제한에 대한 값을 돌려준다.
busybox의 ash나, 일반적인 리눅스에서 채용하는 bash에서 지원하는 내장명령어로 보이며

busybox에서는 아래와 같이 출력된다.
# ulimit
unlimited

# ulimit -c
0

# ulimit -a
time(seconds)        unlimited
file(blocks)         unlimited
data(kb)             unlimited
stack(kb)            8192
coredump(blocks)     0
memory(kb)           unlimited
locked memory(kb)    32
process              232
nofiles              1024
vmemory(kb)          unlimited
locks                unlimited

아래는 Fedora Core 6 / Bash 에서 출력한 화면.
# ulimit
unlimited

# ulimit -c
0

# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
max nice                        (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 32216
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
max rt priority                 (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 32216
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

[링크 : http://linux.die.net/man/1/ulimit]
[링크 : http://linux.die.net/man/1/bash]
[링크 : http://dolba.net/tt/k2club/entry/How-To-Create-Core-File]

Posted by 구차니
Linux2010. 6. 3. 17:24
임베디드에서 플래시에 내장된 프로그램을 전체 교체 하는건(예를들어 Root File System) 꽤나 부담이 되는 작업이다.
리눅스 기반에서, 환경변수를 하나 변경하기 위해 RootFS를 변경할바 에는
프로그램에서 내부적으로 환경변수를 변경하면 될터인즉!
검색을 하다보니 putenv() 라는 함수가 나왔다. 아마도 99% 확률로 리눅스 전용일듯

예제결과를 보면 bash 기준 export VAR 식으로 하여 전역변수로 추가하는 것으로 보인다.
예제결과를 보면 전역은 아니고 지역변수(프로세스 기준 지역변수)로 선언되는 것으로 보인다.

#include
#include

extern char **environ;  // 외부 참조 변수로 선언

int main()
{
   putenv( "QTDIR=/form/falinux/com");
   putenv( "NEWVALLUE=form.falinux.com");
  
   while( *environ)
      printf( "%sn", *environ++);
     
   return 0;
}

[링크 : http://forum.falinux.com/zbxe/?document_srl=408394]
[링크 : http://www.joinc.co.kr/modules/moniwiki/wiki.php/man/3/putenv]
[링크 : http://linux.die.net/man/3/putenv]
Posted by 구차니
Linux2010. 6. 1. 10:52
strip *

이렇게 하면 한 디렉토리의 모든 파일을 알아서 strip 한다.
왜 이렇게 간단한걸 몰랐을까 ㅠ.ㅠ

strip [-F bfdname |--target=bfdname] [-I  bfdname |--input-target=bfdname] [-O bfdname |--output-target=bfdname] [-s|--strip-all] [-S|-g|-d|--strip-debug] [-K symbolname |--keep-symbol=symbolname] [-N symbolname |--strip-symbol=symbolname] [-w|--wildcard] [-x|--discard-all] [-X |--discard-locals] [-R sectionname |--remove-section=sectionname] [-o  file] [-p|--preserve-dates] [--keep-file-symbols] [--only-keep-debug] [-v |--verbose] [-V|--version] [--help] [--info] objfile...

@file
    Read command-line options from file. The options read are inserted in place of the original @file option. If file does not exist, or cannot be read, then the option will be treated literally, and not removed.

[링크 : http://linux.die.net/man/1/strip]

Posted by 구차니
Linux/Ubuntu2010. 5. 30. 19:11
페도라 코어와 비슷하게 우분투 역시
/usr/share/fonts 에 폰트가 위치한다.

$ tree -d /usr/share/fonts
/usr/share/fonts
|-- X11
|   |-- 100dpi
|   |-- 75dpi
|   |-- Type1
|   |-- encodings
|   |   `-- large
|   |-- misc
|   `-- util
|-- truetype
|   |-- alee
|   |-- freefont
|   |-- openoffice
|   |-- takao
|   |-- thai
|   |-- ttf-dejavu
|   |-- ttf-indic-fonts-core
|   |-- ttf-kacst-one
|   |-- ttf-khmeros-core
|   |-- ttf-lao
|   |-- ttf-liberation
|   |-- ttf-lyx
|   |-- ttf-punjabi-fonts
|   |-- unfonts
|   `-- wqy
`-- type1
    |-- gsfonts
    `-- mathml

2009/03/05 - [Linux] - 리눅스 폰트 위치 - Default directory path of FC(Fedora Core) fonts

'Linux > Ubuntu' 카테고리의 다른 글

yaffs2 하려는데 왜케 빡시누  (0) 2010.09.14
ubuntu 에서 X window 종료시키기  (0) 2010.08.23
시작 윈도우매니저 세션 변경하기 - 우분투  (0) 2010.05.14
Ubuntu 10.04 KDE  (2) 2010.05.11
Ubuntu 10.04 XFCE  (0) 2010.05.11
Posted by 구차니
Linux2010. 5. 30. 19:00
libfreetype 테스트용 프로그램을 컴파일 하는데
아래와 같은 문제가 발생을 했다.

$ gcc example1.c -lfreetype
/tmp/cc2ePnil.o: In function `main':
example1.c:(.text+0x278): undefined reference to `cos'
example1.c:(.text+0x2b0): undefined reference to `sin'
example1.c:(.text+0x2e8): undefined reference to `sin'
example1.c:(.text+0x320): undefined reference to `cos'
collect2: ld returned 1 exit status

해결책은 간단하게 gcc -lm 을 하면 되는데,
Perhaps it needs the maths library linked, -lm, as that is where 'cos' will be.
Though that seems a strange thing to be missing.

[링크 : http://computer-yocher.blogspot.com/2010/05/re-sage-devel-sage-441-build-failures.html]

여기서 -l 은 library이고 파일명으로는, lib 접두가 붙게된다.
즉, -lm은 우분투 10.04 기준으로
lrwxrwxrwx 1 root root      14 2010-05-26 21:55 /usr/lib/libm.so -> /lib/libm.so.6

이녀석을 의미하고, cos() sin() tan()을 사용하는 math.h 를 사용할때에는
추가적으로 -lm 옵션을 추가하여 math library를 링크해주어야 한다.

Posted by 구차니
Linux2010. 5. 29. 10:36
ATMEL AVR에서도 cli() sti()는 들은거 같았는데, Linux에서도 있었군 -ㅁ-!
아무튼 결론은, Linux Kernel 2.6 이상의 커널에서는 사용하지 않으면 하위호환성으로 인해 존재할 뿐
실질적으로는 local_irq_enable / local_irq_disable 을 사용하라고 한다.

CLear Interrupt
SeT Interrupt 입니다.
인터럽트를 Disable/Enable하는 것이고요. ;;

[링크 : http://kldp.org/node/43805]

커널 2.6 의 <include/linux/interrupt.h> 에 define 되어 있습니다.
이전 버전과의 호환성을 위해 존재하며
앞으로는 local_irq_enable/disable() 을 직접 사용하는 편이 좋습니다.

50 /*
51 * Temporary defines for UP kernels, until all code gets fixed.
52 */
53 #ifndef CONFIG_SMP
54 # define cli() local_irq_disable()
55 # define sti() local_irq_enable()
56 # define save_flags(x) local_save_flags(x)
57 # define restore_flags(x) local_irq_restore(x)
58 # define save_and_cli(x) local_irq_save(x)
59 #endif

[링크 : http://kldp.org/node/43805]

Posted by 구차니
Linux2010. 5. 27. 21:11
위 - 정식 릴리즈 버전을 사용하여 버튼이 사라진 모습
아래 - 개발자 버전을 사용하여 버튼이 나타난 모습

리눅스용 firefox / chrome 에서 티스토리 업로드가 제대로 작동하지 않아서 고생을 했다.
마침 지나가시던 fusionk 라는 분께서 개발버전 Adobe Flash player 10 을 설치하면 된다고 해서 받아서 설치하니... 된다!!!

설치방법은
Download plug-in for Linux (TAR.GZ, 4.5 MB)
위의 파일을 다운로드 한뒤 압축을 풀면
12MB짜리 libflashplayer.so 파일 하나가 나오고,
이녀석을 ubuntu 10.04 기준 /usr/lib/flashplugin-installer/libflashplayer.so 파일과 교체를 하면된다.

/usr/share/ubufox/plugins/libflashplayer.so 이 녀석은,
/usr/lib/flashplugin-installer/libflashplayer.so 으로
심볼릭 링크가 걸려있으므로 굳이 변경할 필요는 없다.

$ sudo find / -name libflashplayer.so
/usr/share/ubufox/plugins/libflashplayer.so
/usr/lib/flashplugin-installer/libflashplayer.so

테스트를 해보니, 크롬/Firefox 모두 이상없이 작동한다.

[링크 : http://labs.adobe.com/downloads/flashplayer10.html#flashplayer10]

'Linux' 카테고리의 다른 글

libm (math library)  (0) 2010.05.30
sti() cli()는 모하는 넘이야?  (2) 2010.05.29
MAKEDEV(8) 우분투, 페도라 옵션차이  (0) 2010.05.15
dosboot / netboot / fatboot  (0) 2010.05.04
grub 설치하기  (0) 2010.05.03
Posted by 구차니