분류 전체보기 500

grub 를 사용해서 디스크를 부팅가능하도록 하기

리눅스가 설치되어 있는 장비에서 디스크이미지(/dev/sda)를 복사해서 다른 장비의 하드디스크(/dev/sda)에다가 복사(cat; gzip 이용)를 하는 프로젝트를 하고 있다. 그런데, 실수인지 모르겠지만 복사된 장비(새로운 장비)로 부팅이 안되고 멈춰있는 화면이 계속 나온다. (증상이 OS없는 디스크를 읽어들일때와 비슷) ubuntu LiveCD 로 일단 부팅해서 하드디스크를 마운트해보면 분명히 자료는 복사된게 맞다. 원인을 찾아서 자료를 찾다보니, 마스터부트레코드(MBR) 영역이 아무 내용이 없어서 나오는 현상일거 같았다. (참고 : http://wiki.kldp.org/KoreanDoc/html/EmbeddedKernel-KLDP/understanding-booting-process.html) ..

Engineering/Kernel 2011.08.23

FreeTDS 라이브러리 사용시, "FreeTDS: db-lib: exiting because client error handler returned 0 for msgno 2000" 에러 발생시 해결방안

FreeTDS 라이브러리를 이용하여 프로그램을 개발하여 테스트를 진행하는데, 테스트에 사용되던 MSSQL 서버에 문제가 생겨서 어느날부터 연결이 안되는 일이 발생했습니다. 여러 DBMS 에 연결하는 프로그램이었는데, 항상 잘 돌아가던 서버여서 당연히 연결될꺼라는 과정으로 프로그램을 코딩하는 바람에 서버에 연결안되는 순간부터 "FreeTDS: db-lib: exiting because client error handler returned 0 for msgno 20009" 에러가 나면서 메인 프로그램을 kill 시키는 것입니다. 서버에 연결실패할 경우 dbopen() 의 return 값인 dbproc 가 NULL 이 되어 에러메시지를 출력하고 return 할 것으로 예상했지만, 전체 프로그램이 kill 되면..

Engineering/DB 2011.08.18

unix(linux) 에서 date 를 unixtime 형태로 변환

프로그래밍 언어 에서 문자열 날짜(2011-07-19)를 unix timestamp(1311001200) 형태로 변환해주는 함수 들이 많습니다. 예) - php : strtodate() date() - mysql DB : date() from_unixtime() 리눅스에서 date 명령어를 이용해서 unix timestamp 값을 확인할 수 있는 방법이 있습니다. # date -d "2011-07-10" +%s 1311001200 # date -d "now" +%s (또는 date +%s) 1311692407 (-> 두 명령어 다 현재시간의 unix timestamp 값을 얻는다) 반대로 unix timestamp 값을 문자열 형태로 변경하는 방법입니다. # date -d @1311692407 Wed J..

Engineering/Etc 2011.07.27

vim 에서 UTF-8 지원

UTF-8 을 지원하기 위해 vi 에서 설정할 값은 "set enc=utf-8" 입니다. 계속해서 작업할 생각이면, .vimrc 파일에 내용을 추가합니다. set encoding=utf-8 # utf-8 입력가능 set fileencodings=utf-8,euc-kr # utf-8, euc-kr 을 자동으로 인식. 인코딩값이 utf-8 이어도 euc-kr 인 파일을 읽어도 제대로 보입니다. 그리고, 많이 사용하는 터미널 프로그램인 putty 에서 UTF-8 을 지원하기 위해서는 "Window-Translation" 에서 character set 을 "UTF-8" 으로 설정하고, "Apperance" - "font setting" 을 굴림체로 변경합니다. 터미널에서 export LANG="UTF.ko_KR..

Engineering/Etc 2011.07.26

vi 에서 shell 기능 막기

vi(vim) 으로 파일 편집 작업중에 ":shell" 으로 하던 작업을 중지하고, shell 로 빠져나갈 수 있습니다. 편리하긴 하지만, 의도적으로 쉘로 빠져나가는 것을 막기 위해 할 수 있는 방법을 찾아보았습니다. CLI 기능 작성 중 'vi' 를 사용해야하는 경우, root 나 특정 사용자 권한을 가질 수 있는 상황을 막을 경우에 도움이 될 듯합니다. 1. /bin/false 를 이용 : 현재 작업중인 쉘을 /bin/false 로 변경하여 vi 실행 # SHELL=/bin/false vi /tmp/33 문제점 : vi 에서 "set shell=/bin/sh" 으로 쉘을 변경하면, shell 프롬프트로 빠져나올 수 있다. 2. vim -Z 이용 : vim 옵션중 '-Z' 를 붙여서 파일 작업 # vi..

Engineering/Etc 2011.07.20

db2 라이브러리를 포함한 프로그램 make 시 에러 발생

db2 라이브러리(-ldb2) 를 포함시킨 프로젝트에서 라이브러리와 헤더파일위치를 정확히 맞췄는데도 다음과 같은 에러가 발생하였습니다. /usr/bin/ld: warning: libdb2install.so.1, needed by /home/AAAA/lib/db2/libdb2.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libdb2g11n.so.1, needed by /home/AAAA/lib/db2/libdb2.so, not found (try us ing -rpath or -rpath-link) /usr/bin/ld: warning: libdb2locale.so.1, needed by /home/AAAA/lib/db2/li..

Engineering/DB 2011.07.05

insmod 로 모듈 insert 할때 오류("-1 Operation not permitted") 발생

서드파티 드라이버를 모듈 컴파일하고 insmod 로 모듈 인스톨를 시도했을때, "-1 Operation not permitted" 라는 오류가 계속 발생하였습니다. 메뉴얼 설명대로 그대로 했는거 같은데, 오류가 나서 도대체 원인이 무엇때문인지 구글링을 해보았지만 권한 문제(root 사용자)때문이라는 별 시원찮은 대답들 밖에 없더군요. 한참을 고생하다가 메뉴얼과 비교하던 중 파라미터로 넘기는 문자열을 잘못 입력하고 있었던 어이없는 실수임을 알게 되었습니다. # insmod network-bypass.ko board=NAR3000 insmod: error inserting 'network-bypass.ko': -1 Operation not permitted 메뉴얼을 대충보다보니, 7090 장비가 NAR709..

Engineering/Kernel 2011.06.17

[독서노트] Visual QuickStart Guide CSS3

저자 : Jason Cranford Teague 출판사 : Peachpit Press 출판일자 : 2010년 10월 3일 독서 기간 : 2011년 5월 24일 ~ Introduction 이 책에서 사용되는 모든 코드는 아래 사이트에 포함되어 있다. http://www.speaking-in-styles.com/css3vqs 이 책은 세 파트로 나뉜다. - Chapter 1-4 : CSS 소개와 문법(syntax) - Chapter 5-12 : CSS 속성(property) - Chapter 13-15 : CSS 로 작업(working) Chapter 1. Understanding CSS3 - HTML 이 웹에서 배포를 위한 문서의 구조를 정의한다고 하면 CSS(Cascding Style Sheets) 는 ..

Thinking/Book 2011.06.14