프로그램 사용/nfs2010. 2. 4. 12:25
NFS 서버는        nfs-kernel-server 패키지
NFS 클라이언트는 nfs-common 패키지를 설치한다.

머.. 패키지 이름이 그러하듯, 우분투에서 nfs 서버 재가동은
sudo service nfs-kernel-server restart

[링크 : https://help.ubuntu.com/8.04/serverguide/C/network-file-system.html]
Posted by 구차니
프로그램 사용/VLC2010. 2. 3. 19:39
VLC 크로스컴파일은 참.. 멀고도 험하다..

vlc-1.0.4$ make
...
 /opt/STM/STLinux-2.2/devkit/sh4/lib/gcc/sh4-linux/4.1.1/../../../../sh4-linux/bin/ld: warning: libvlccore.so.2, needed by ../src/.libs/libvlc.so, not found (try using -rpath or -rpath-link)
collect2: ld returned 1 exit status
이런식으로 오류가 발생한다.

아무튼, Makefile의 문제로, 1.0.5 에는 버그 수정이 되었다고 한다.

Try to modify bin/Makefile. It works for me.
vlc_LDADD = ../src/libvlc.la `$(VLC_CONFIG) -libs vlc` $(am__append_2)
change to
vlc_LDADD = ../src/libvlccore.la ../src/libvlc.la `$(VLC_CONFIG) -libs vlc` $(am__append_2)

[링크 : http://forum.videolan.org/viewtopic.php?f=13&t=63438]

위와 같이 수정하고 나면 다른 에러가 발생한다.
libtool: link: sh4-linux-gcc -std=gnu99 -I/usr/local/include -D_FILE_OFFSET_BITS=64 -D__USE_UNIX98 -D_LARGEFILE64_SOURCE -D_REENTRANT -D_THREAD_SAFE -DMODULE_NAME=vlc -DMODULE_NAME_IS_vlc -DMODULE_STRING=\"vlc\" -O2 -ffast-math -funroll-loops -fomit-frame-pointer -Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wbad-function-cast -Wcast-align -Wwrite-strings -Wmissing-prototypes -Wvolatile-register-var -Werror-implicit-function-declaration -o .libs/vlc vlc.o  ../src/.libs/libvlccore.so ../src/.libs/libvlc.so -Wl,-rpath -Wl,/opt/STM/STLinux-2.2/devkit/sh4/target/usr/lib
../src/.libs/libvlccore.so: undefined reference to `dbus_threads_init_default'
collect2: ld returned 1 exit status
이녀석은 --disable-dbus-control --disable-dbus 옵션을 주고 하면 사라진다.

그래도 또 다른 에러가 발생한다.
libtool: link: sh4-linux-gcc -std=gnu99 -shared  .libs/librtp_plugin_la-rtp.o .libs/librtp_plugin_la-input.o .libs/librtp_plugin_la-session.o  -Wl,--whole-archive ../../../compat/.libs/libcompat.a ../../../libs/srtp/.libs/libvlc_srtp.a -Wl,--no-whole-archive  -Wl,-rpath -Wl,/home/morpheuz/다운로드/vlc-1.0.4/src/.libs -Wl,-rpath -Wl,/opt/STM/STLinux-2.2/devkit/sh4/target/usr/lib -Wl,-rpath -Wl,/opt/STM/STLinux-2.2/devkit/sh4/target/usr/lib ../../../src/.libs/libvlccore.so /opt/STM/STLinux-2.2/devkit/sh4/target/usr/lib/libgcrypt.so /lib/libgpg-error.so -lnsl -lpthread    -Wl,-soname -Wl,librtp_plugin.so -o .libs/librtp_plugin.so
/lib/libgpg-error.so: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
이녀석은 --libdir=/opt/STM/STLinux-2.2/devkit/sh4/target/usr/lib/ 옵션을 줘도 안된다 ㅠ.ㅠ

'프로그램 사용 > VLC' 카테고리의 다른 글

x264 , libavcodec 다운로드  (0) 2010.02.24
vlc-1.0.5 cross compile  (3) 2010.02.09
VLC 1.0.4 cross compile + busybox  (0) 2010.02.02
의미는 없는 Linux / Windows VLC 차이  (0) 2010.01.26
VLC로 youtube 동영상 감상하기  (0) 2010.01.26
Posted by 구차니
프로그램 사용/VLC2010. 2. 2. 16:48
VLC 1.0.4
ubuntu 9.10 에서 크로스 컴파일을 시도했다.

$ ./configure --disable-mmx --disable-sse --enable-run-as-root --with-tuning=no --host=sh4-linux --build=i686

$ vi configure.ac
1621 dnl
1622 dnl  Special arch tuning
1623 dnl
1624 AC_ARG_WITH(tuning,
1625 [  --with-tuning=ARCH      enable special tuning for an architecture
1626                           (default Pentium 2 on IA-32 and G4 on PPC)])
1627 if test -n "${with_tuning}"; then
1628     if test "${with_tuning}" != "no"; then
1629         CFLAGS_TUNING="-mtune=${with_tuning}"
1630     fi
1631 else
1632     if test "${SYS}" = "darwin" -a "${host_cpu}" != "powerpc"; then
1633         CFLAGS_TUNING="-march=pentium-m -mtune=prescott"
1634     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1635         CFLAGS_TUNING="-mtune=pentium2"
1636     elif test "${host_cpu}" = "x86_64"; then
1637         CFLAGS_TUNING="-mtune=athlon64"
1638     elif test "${host_cpu}" = "powerpc"; then
1639         CFLAGS_TUNING="-mtune=G4";
1640     fi
1641 fi

그리고 ubuntu 에서 sudo vlc 하면
$ sudo vlc
VLC is not supposed to be run as root. Sorry. If you need to use real-time priorities and/or privileged TCP ports
you can use vlc-wrapper (make sure it is Set-UID root and cannot be run by non-trusted users first).
라는 메시지가 출력되면서 실행되지 않는다. busybox나 대부분의 embeded 에서는 root로 할테니
크로스 컴파일 시에 root로 실행가능하도록 수정하고 (--enable-run-as-root)
cpu 최적화 부분을 꺼준다음 (--disable-mmx --disable-sse --with-tuning=no)
크로스 컴파일 되서 돌아갈 host를 지정해준다. (--host=sh4-linux)

좀 특이한(?) 점인데 --host=HOST_ARCH(==i686) --target=TARGET_ARCH(==sh4-linux)
처럼 입력이 되는게 아니라 host는 프로그램이 돌아갈 플랫폼을 의미한다.
즉, 일반적인 크로스 컴파일 옵션의 host, target 옵션이 바뀌어 build, host 로 인식한다.

$ ./configure --help

System types:
  --build=BUILD     configure for building on BUILD [guessed]
  --host=HOST       cross-compile to build programs to run on HOST [BUILD]

'프로그램 사용 > VLC' 카테고리의 다른 글

vlc-1.0.5 cross compile  (3) 2010.02.09
VLC cross compile시 오류 (vlc-1.0.4)  (0) 2010.02.03
의미는 없는 Linux / Windows VLC 차이  (0) 2010.01.26
VLC로 youtube 동영상 감상하기  (0) 2010.01.26
youtube mobile on VLC  (0) 2010.01.18
Posted by 구차니
일반적으로 Ctrl-R 옵션이나 Ctrl-H 옵션등으로
디렉토리 내의 모든 파일의 내용을 치환하는 것이 있다.

find ./ -exec grep "content" {} \; -exec sed -i "s/content/container/g" {} \;

[링크 : http://www.linux-forum.de/find-grep-replace-string-33557.html]

아무튼 위의 경우는 grep에 옵션이 들어가지 않았고, 모든 파일에 대해서 검색을 하므로
ctags 사용중에는 tags 파일까지 검색을 하게 된다.

크로스컴파일 목적으로 CC 라던가 LD 등을 고치려고 하면

find ./ -name Makefile -exec grep -w "= gcc" {} \; -exec sed -i "s/\= gcc/\= sh4-linux-gcc/g" {} \;

이렇게 find에 -name 옵션으로 파일을 지정하고(makefile 혹은 Makefile)
grep 옵션에 -w (Whole word matching) 으로 한정을 해주면 된다.

2010.02.04 추가
위의 예제는 "= gcc" 라고 들어있는 부분을 전체가 포함된 내용을 찾아 "= sh4-linux-gcc"로 변경해주는 것이다.
예를 들어 "= gcc3" 이런식으로 된 곳은  grep -w 옵션에 의해 무시된다.
그리고 tags 파일을 피하기 위해 find ./ -name Makefile 로 makefile에서만 수정을 하도록 제한한다.

2010/02/01 - [Linux] - grep에서 정확하게 찾기

Posted by 구차니
프로그램 사용/vi2010. 1. 29. 11:02
vi가 아쉬운 점은, 현재 편집중인 파일의 이름을 알수 없다는 점이다. (기본값으로)
아무튼 검색을 해보니 일시적으로 확인하려면
Ctrl-g나 :f로 하면 되지만 커서를 움직이면 사라진다.

이를 고정적으로 출력하기 위해서는 laststaus=2로 설정하면 된다.
다중창으로 편집중에는 출력되지만, 단일 창에서는 출력되지 않는다.

참고로 몇행:몇열 전체 % 라고 나오는 건 ruler 이다.
:set ruler
:set noruler로 토글가능하다.

Ctrl - G
:f
로 현재 편집중인 파일을 출력함

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

:set laststatus=2

[링크 : http://vim.wikia.com/wiki/Displaying_status_line_always]

'laststatus' 'ls'    number    (default 1)
            global
            {not in Vi}
    The value of this option influences when the last window will have a
    status line:
        0: never
        1: only if there are at least two windows
        2: always
    The screen looks nicer with a status line if you have several
    windows, but it takes another screen line. |status-line|

[링크 : http://vimdoc.sourceforge.net/htmldoc/options.html#%27laststatus%27]

Posted by 구차니
프로그램 사용/vi2010. 1. 28. 17:27
여러개의 환경설정 파일이 존재 하지만,
가장 편하게 많은 사용자에게 적용하려면, 전역 환경변수를 수정하면된다.

/usr/share/vim/vimrc
    System wide Vim initializations.
~/.vimrc
    Your personal Vim initializations.

/usr/share/vim/gvimrc
    System wide gvim initializations.
~/.gvimrc
    Your personal gvim initializations.

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

Ubuntu 9.10에서는
set hlsearch
set nu
를 추가해주면 개발자가 편하게 사용할수있다.
Posted by 구차니
프로그램 사용/vi2010. 1. 28. 16:43
음.. 말이 애매한데,
Fedora에서는 vi에서 /검색어 로 검색을 하면, 화면상에 모든 검색어들이
하이라이트 처리되었다. 검색어가 블럭으로 선택되어 다르게 표시되어 눈에 띄었는데 우분투는 되지 않았다.

아무튼 페도라와 우분투의 설정을 비교해보니, hlsearch 라는 넘이 있는데
기본값은 off 라고 되어있다. 아마 페도라가 개발자가 많이 쓰다 보니 기본값을 on으로 했나보다.

'hlsearch'      off        no highlighting of search matches

[링크 : http://vimdoc.sourceforge.net/htmldoc/options.html]


:set hlsearch

:set nohlsearch

'프로그램 사용 > vi' 카테고리의 다른 글

vi 상태표시줄 설정 / 편집중인 파일이름 보기  (0) 2010.01.29
vi 환경설정 파일  (0) 2010.01.28
vi 파일 여러개 관리하기  (0) 2010.01.28
vi 에서 명령어 실행하기  (0) 2010.01.28
vi set commands  (0) 2010.01.27
Posted by 구차니
프로그램 사용/vi2010. 1. 28. 14:57
멀티윈도우 라고도 표기하는 녀석으로
텍스트에서 여러개 창으로 분할해서 사용하는 기능이다.

창 닫기
:q
ctrl - w, c(close)

새로운 창 열기 (가로 분할)
:new
ctrl - w, n

새로운 창 열기 (세로 분할)
ctrl - w, v(vertical)

새로운 창 열기 (파일명) - include 의 파일들을 따라간다.
ctrl - w, f(file)

새로운 창 열기 (ctags)
ctrl - w, ] (창을 열고 창에서 이동)
ctrl - ] (전체화면으로 이동)

창간 이동
ctrl - w, hjkl(좌/위/아래/우)
ctrl - w, tb(최상단=top / 최하단=bottom)
ctrl - w, w(순서대로 이동)

창을 전체 화면으로
:only

[링크 : http://pitfall.egloos.com/1310038]

2010.03.09 추가
수평창 크기 변경
ctrl - w, +/- (키패드는 안되는 듯?)
ctrl - w, n, +/- (숫자 입력후 +/-)

[링크 : http://www.ilug.or.kr/?mid=lec_tip&page=3&document_srl=42573]

2011.11.20 추가
수직창 크기 변경
ctrl - w, </>
[링크 : http://stackoverflow.com/.../with-vim-how-would-one-increase-the-vertical-split-window-size ]

2014.09.04 추가
새로운 창 열기 (가로 분할)
:split

새로운 창 열기 (세로 분할)
:vsplit

[링크 : http://nan1004au.tistory.com/41]
Posted by 구차니
프로그램 사용/vi2010. 1. 28. 12:07
vi 내부에서 외부 프로그램을 실행하는 방법으로
:! 명령어
를 입력하는 방법이 있다.

[링크 : http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Vim/Documents/Tip/ExternalCommand]


$ vi ./src/modules/modules.c

ABOUT-NLS  INSTALL.win32  NEWS        bootstrap    config.status   doc       m4          rvlc      test              vlc.compile.log
AUTHORS    INSTALL.wince  README      compat       configure       extras    make-alias  share     toolbox
COPYING    MAINTAINERS    THANKS      compile      configure.ac    http.pre  modules     src       vlc
ChangeLog  Makefile       aclocal.m4  config.h     configure.help  include   po          stamp-h1  vlc-config
HACKING    Makefile.am    autotools   config.h.in  configure.log   libs      projects    svlc      vlc-config.in
INSTALL    Makefile.in    bin         config.log   cvlc            libtool   qvlc        tags      vlc-config.in.in

Press ENTER or type command to continue

VI 에서 편집중에
:! ls
를 실행한 결과
Posted by 구차니
프로그램 사용/gcc2010. 1. 27. 17:18
#if 문이라던가 각종 전처리기용 문구들은
여러가지 확장을 통해서 컴파일을 하기 때문에 source insight 등의 힘을 빌려도 분석하기 어려운 면이 있다.

일반적으로 컴파일러는 전처리기 - 컴파일 - 어셈블 - 링크 과정을 거치는데(아마도?)
전처리기 까지만 거친 결과를 stdout 으로 출력해준다.

$ man gcc
       -E  Stop after the preprocessing stage; do not run the compiler proper.
            The output is in the form of preprocessed source code, which is sent to the standard output.

           Input files which don't require preprocessing are ignored.

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

$ cat test.c
#if 1
int test;
#else
int tt;
#endif

int main()
{
        return 0;
}

$ gcc -E test.c
# 1 "test.c"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "test.c"

int test;




int main()
{
 return 0;
}


#include 하는 모든 파일을 확장하기 때문에, #include <stdio.h>만 해도 내용이 엄청 길어진다.
그리고 줄단위로 처리하기 때문에 사라진 #if 문 대신 엔터만 남아 위와 같이 휑~하게 나왔다.


[링크 : http://cafe.naver.com/devctrl/949]
Posted by 구차니