이런 현상은 H/W 가속 지원을 하는 과정에서 RGB 의 값이 역전되어 나오는 현상으로 보임.


Ubuntu version 12.04 LTS


sudo add-apt-repository ppa:tikhonov/misc
sudo apt-get update
sudo apt-get install libvdpau1


위의 방법으로 설치하면 flash video 는 정상적으로 출력되었다. 


reference site :

http://www.warp1337.com/content/linux-flash-video-blue-ubuntu-1204-precise-solved

'Etc.' 카테고리의 다른 글

Let me google that for you  (0) 2012.10.29
Youtube streaming 을 PC 로 download  (0) 2012.08.09
Ubuntu 12.04 Upgrade 이후 client error  (0) 2012.05.01
[영화] I Am Number Four  (0) 2011.02.28
Christmas 분위기???  (0) 2010.12.22

Ubuntu 11.10 에서 12.04 로 upgrade 한 뒤, synergy client 에서 shift, alt key 등 입력에 오류가 있어 연결이 끊겨져 버리는 현상이 발생되었다. 


환경은

Window(Synergy Server1.4.8), Ubuntu(Synergy Client-1.3.8) 이렇게 해서 사용했는데 upgrade 이 후,

bug가 생겨 ubuntu 한영 전환 시(shift + space) 연결이 끊어지는 것이다. 


그래서 window 를 client로 쓰고 ubuntu 를 server 로 변경했더니 문제는 window 에서 한/영 전환이 안되는 문제.. (patch 된 binary가 배포되어 써봤지만, 동작이 잘안됐음) 


그래서, ubuntu 에 synergy client 를 최신버전으로 upgrade 하여(1.4.8) 해보니 정상동작 되었다. ^^


매번 upgrade 같은 변경이 있으면 기존에 있던 설정을 다시 손봐야 하는 문제가 한개씩은 생기네

'Etc.' 카테고리의 다른 글

Youtube streaming 을 PC 로 download  (0) 2012.08.09
Ubuntu Video 가 푸르게(blue)로 나오는 현상 제거  (0) 2012.08.09
[영화] I Am Number Four  (0) 2011.02.28
Christmas 분위기???  (0) 2010.12.22
Best Diff Tools  (0) 2010.12.22
1. redmine installation

2. admin 계정 password 초기화
RAILS_ENV=production script/runner 'user = User.find(:first, :conditions => {:admin => true}) ; user.password, user.password_confirmation = "PASSWORD"; user.save!'

3. plugin uninstall
rake db:migrate:plugin RAILS_ENV=production NAME=<plugin name> VERSION=0
ruby script/plugin remove <plugin name>

4. reference site

gitolite install & setting

조금 더 써봐야 알겠지만, UI 도 이쁘고 간편하니 잘쓰면 좋을 듯.
http://www.redmine.org/ 이 사이트를 가서 살펴 본 후 마음에 들어 설치!

Ubuntu 11.10 에 설치 완료! git 은 연동하려다 실패.. 다 roll back 하고 그냥 있는 그대로 쓰련다 굳이 필요없을 듯. ㅋ 



'Development Tip' 카테고리의 다른 글

Ubuntu Console mode booting  (1) 2012.08.31
switch remote/branch by repo  (0) 2012.08.30
Cscope, Ctags 를 원하는 file만.  (0) 2012.02.23
Ubuntu 11.10 application : Terminator  (0) 2012.02.20
Android git mirror site  (0) 2011.09.30

대형 project일 경우, 모두 다 보는 것도 아니고 원하는 file만 등록하여 tagging 을 하는 것이 더 좋을 수도 있다. (ctags와 cscope을 하는데 시간도 많이 걸리고..)

원하는 file을 cscope.files 로 만든 다음, 
$ find <path> <type or name> -print > cscope.files
$ ctags -L cscope.files
$ cscope -I cscope.files

example)
$ find ./abc -name "*.[chS]" -print > cscope.files
$ find ./cdb -name "*.[chS]" -print >> cscope.files #추가할 경우
$ ctags -L cscope.files
$ cscope -I cscope.files

위와 같이 하면, 원하는 file만 등록하여 trace 할 수 있다. 



'Development Tip' 카테고리의 다른 글

switch remote/branch by repo  (0) 2012.08.30
redmine tip  (0) 2012.03.26
Ubuntu 11.10 application : Terminator  (0) 2012.02.20
Android git mirror site  (0) 2011.09.30
Per-process Namespace  (0) 2011.03.16
Ubuntu 에서 활성화된 창이든 전체든 screen shot을 만들 때에, Right Click 을 통한 menu와 같이 하고 싶을 경우에는,

Application menu ==> Accessories ==> ScreenShot으로 진입 후에, 


"Grap after a delay of <초>" 를 입력한 후에 재빨리 원하는 window로 가서 우 클릭(right-click)을 해준다.
그럼 그 시간뒤에 활성화된 창의 모습 그대로 screen shot을 만들다. 

'BlogTip' 카테고리의 다른 글

Google 애드센스 신청 TIP  (2) 2013.10.16
불펌 방지 HTML(LINK)  (0) 2011.03.03
Tag Cloud 만들기  (0) 2010.12.22
Syntax highlight test  (1) 2010.12.14
Ubuntu 11.10 을 main 으로 설치하고 나서 이것 저것 설치를 해보는 중에 좋은 terminal을 발견했다. 

기존에는 byobu를 이용해 하나의 window에서 여러 shell을 이동하며 작업가능하고, window를 close 하더라도 다음에 byobu를 실행했을 시 그 session을 복구하는 좋은 기능이 있다. 

물론 window를 여러 개 열어 사용하면 될테지만, 지금 소개하는 application은 하나의 window에 terminal을 여러개 배치하여 사용할 수 있는 tool이다. byobu와 혼용하면 더욱 좋을 듯 함. 

console
$ sudo apt-get install terminator

or UI menu 이용. 
Applications ==> Ubuntu Software Center ==> Search ==> terminator


위와 같이 검색 후, 설치하면 완료. 

실행 후 화면


위의 그림을 보면, 원래 기본 창이 하나나오고 그 위에서 마우스 우 클릭을 하면 메뉴가 나오는데 메뉴에서 "Split Horizontally" 나 "Split Vertically" 를 누르면 창을 나눈다.  기본적인 window내의 terminal간 이동은 "Alt + 방향키" 로 된다. 

byobu를 함께 사용한 모습(ubuntu 11.10 을 설치하면 byobu는 기본적으로 설치되는 듯)

단축키 관련해서는 "Preferences" 를 누르면 Keybindings tab에서 확인가능함.

여러개의 tab을 운영할 수 도 있다. 

'Development Tip' 카테고리의 다른 글

redmine tip  (0) 2012.03.26
Cscope, Ctags 를 원하는 file만.  (0) 2012.02.23
Android git mirror site  (0) 2011.09.30
Per-process Namespace  (0) 2011.03.16
VMware Server Ver2.0.X : [Solved] VMware tools install fail  (0) 2011.03.16

Ubuntu 에서 Cloud service 인 Ubuntu one 이 나왔다.
일단 무료로 사용할수 있는 공간이 5GB 이며, android market 에서 mobile 에서 사용할 수 있는 application 까지 제공한다.

https://one.ubuntu.com/services/ 에 접속하면 아래와 같이 service 의 가격과 제공 범위를 알려준다.


일단 가입하고 사용해 보려고 한다.
가입은,
1. https://one.ubuntu.com/ 접속
2. 우측 상단에 login or sign up 을 클릭
3. New account 를 클릭하여 가입절차를 따른다.

android application은 market 에서 ubuntu one 이라고 검색하면 바로 찾을 수 있을 것이다.
검색 후, 설치하고 실행하여 login 한 화면.




login 후에 이 application의 기본 설정을 그대로 나둔다면, 현재 Mobile 에 있는 사진등의 file을 upload 할 것이다.

우선 이것은 나중에 조금씩 올리기 위해,
1. Android menu button


2. Settings 진입
3. Configure auto-upload 선택



4. Auto-upload photos disable 하면 upload 를 하지 않을 것이다.


공유할 것이 많이 있다면 좋은 program 이 될 듯.

Window application 도 있다. 다양한 platform에서 file 공유를 통해 언제 어디서나 정보를 저장할 수 있도록 하는 훌륭한 서비스일 것이다.
Window application : https://one.ubuntu.com/downloads/windows/install/ 

'Android' 카테고리의 다른 글

Google Maps, Android MapView 사용하기  (0) 2010.12.28
[App] Daum Widget 이용 - SBS Radio 듣기  (0) 2010.12.18
hacking의 파장(?) 으로 android.git.kernel.org 과 kernel.org 에 접속이 되질 않는다.
mirror site 로 받을 수 있다. 

https://github.com/android
 에서 android source를 checkout 받을 수 있다. 
(platform, kernel 등)

추가로, vanilla kernel 은 
https://github.com/mirrors/linux-2.6 에서 kernel.org 에서 받던 소스를 
받을 수 있다. 
kernel.org 복구가 완료 된듯. !!
linux kernel 에 arm 과 관련된 patch 사항을 mail로 받으려면,
1. http://lists.infradead.org/mailman/listinfo 에 접속
2. List 중
  - linux-arm-kernel을 click
3. Subscribing to linux-arm-kernel 항목에
  - 받을 mail 주소를 넣고, 이름을 넣고(option) 
  - 암호 설정 후,  Subscribe 버튼 클릭하면 됨. 
 % 취소 하려면 2 번항목을 통해 신청한 mailing list 로 들어와서 맨 아래 항목에
    보면 취소하는 버튼이 있다.  그 항목에 email 주소를 쓰고 버튼 클릭.
 
Namespace 의 구현 내용은 다음에..(언젠가는..)

2.3.3 Process Identification Numbers
 Unix process들은 항상 유일하게 확인 가능한 숫자하나를 할당받는다. 이 숫자는 Process identification number 또는 줄여서 PID 라고 부른다. 각 fork 나 clone system call로 생성된 process는 kernel 에 의해 system에 유일한 새로운 PID 를 할당받게 된다. 

Process Identifiers
 각 process는 PID 뿐만 아니라 다른 식별자로 특성이 구분될 수 있다. 몇 가지 형태를 살펴보도록 한다. 

□ 하나의 Thread Group 내에 있는 모든 process는(즉, CLONE_THREAD flag와 함께 호출 된 clone system call 로 생성된 process 내의 서로 다른 실행 문맥-thread) 같은 thread group id(TGID)를 가진다. 만약 하나의 process가 thread를 사용하지 않는다면,  PID  와 TGID 값은 같다. 
ex)
  parent process에서 아래와 같은 시스템 콜을 사용하였을 때, 결과 예측값,
1. fork(), vfork(), clone(CLONE_CHILD_CLEARID | CLONE_CHILD_SETID)
    parent : TGID(1234), PID(1234)
    child : TGID(1235), PID(1235)
2. pthread_XXX(), clone(CLONE_THREAD)
    parent : TGID(1234), PID(1234)
    child : TGID(1234), PID(1235)

    thread group 에 있는 main process는 group leader 라고 부른다. task_struct 의 group_leader 변수(struct task_struct * group_leader)는 thread group 내에서 생성된 thread 들이 main process를 가리키기 위해 사용된다. 

□ 또다른 한가지는, 독립적으로 수행되는 process들을 하나의 process group로 결합시킬수 있다.(setpgrp system call 사용) task_struct 의 pgrp 요소(실제로 task_struct 내부에 명시적인 pgrp 변수는 없다)는 하나의 group 내애서 process group leader의 pid 값으로 모두 같다.


//pgrp 의 값구하는 code 참조.

Process group는 그 group내에 있는 모든 process에게 signal을 일괄적으로 보내는데 용이 하게 사용된다.(다양한 system programming을 하는데 도움이 된다는데...) 
process group 는 pipe 를 이용하여 연결 된 것을 포함한다. 
ex) 
위와 같이 사용된 ps process와 grep process는 하나의 process group 가 되는 것이다. 

□ 여러 process group 는 하나의 session으로 결합될 수 있다. 하나의 session 내부의 process들은 task 구조체의 session 요소에 모두 같은 session id 값을 가지고 있다. SID 값은 setsid system call 로 변경이 가능하다. 

 Namespace는 PID 들을 관리하기 위해 추가적인 복잡함이 더해진다. PID namespace들이 계측적으로 구성된다는 것을 다시 상기해보자. 새로운 namespace가 생성되면, 모든 pid들은 parent namespace에게 보여지게 되지만 child namespace에서는 parent namespace의 PID를 볼수 없다. 위의 상황을 유추해보면, 어떤 task들은 하나 혹은 그 이상(namespace 당 하나의 PID)의 PID 값을 가질 수 있다는 것을 알 수 있다. data structure 에도 이런 사항이 반영되어 Global ID 와 Local ID 로 나누어 관리한다. 

 □ Global ID는 kernel 그 자체내부나 최초 부팅을 포함하여 init task가 실행했던 namespace(최초 namespace) 내부에서 확인 가능한 숫자이다. 이는 시스템 전체에서 유일한 값을 가지게됨을 보장한다. 
□ Local ID는 특정 namespace에 속한 ID이며, 시스템 전체에서 유효하게 사용하지 못한다. 그 process가 속한 namespace에서만 통용되며, 다른 namespace에서 같은 ID 값을 가지고 사용될 수 있다. 

위의 Global PID 와 TGID 는 task_struct 에서 직접 관리 한다. 

이들의 type 는 모두 pid_t 이며, 이것은 __kernel_pid_t 을 typedef 한 것이다.( include/linux/types.h). 즉 이것은 각각의 architecture 마다 새로 정의 가능 하다. 
대게는 int 로 사용되어 2^32 의 서로 다른 ID가 시스템에서 사용 가능하다는 것이다.

 session ID와 process group ID는 task struct 내부에서 직접관리 되지 않는다. 위에서 살펴본 group_leader field 에서 가져 올 수 있다. 

<task_struct>->group_leader->pids[PIDTYPE_SID].pid //get session id
<task_struct>->group_leader->pids[PIDTYPE_PGRP].pid //get pgrp id

system call, setpgrp() 또는 setsid() 를 이용해 각각의 값을 설정 할 수 있다. 
(현재 2.6.35 의 내용을 하고 있으므로 책의 내용과는 상이 할 수 있다. interface 및 자료 구조 내부의 내용이 변경되었슴.)

+ Recent posts