[RPi] RPi 와 Macbook 무선 direct 연결

RPi와 Macbook (PC, Laptop, Smartphone 등) 과 연결을 직접적으로 하는 일은 굉장히 드문 경우라고 할 수 있겠다.
내 경우엔 특수한 공간에서 외부망을 사용할 수 없는 환경이라 RPi와 직접 연결해야 하는 상황이 발생했다.

Ex) Peripheral – RPi:UART사용 – wifi – Macbook:RPi접속 minicom terminal

RPi 와 직접 연결을 위해서는 RPi를 AP로 동작을 하도록 설정해줘야 한다.
Wifi를 통한 closed 연결을 할 수 있다.

물론, Wifi 동글이 Broadcast를 지원해야 한다.

우선, DHCP 모듈을 설치해야 한다.
sudo apt-get install isc-dhcp-server

1. 네트워크 설정 수정

#적용ifdown wlan0ifup wlan0

이 과정까지 하면 무선 인터넷 검색을 하면 설정된 RPi가 나타나는 것을 확인 할 수 있다.
하지만, 연결해도 접속은 안됨

2. AP모드 활성화

service isc-dhcp-server restart

[python] multiprocessing 에서 args 에 string 전달 방법

string을 아래와 같이 전달하는 경우
p = multiprocessing.Process(target = ArgTest, args = Arg)

이런 메시지가 나온다.

string은 아래와 같이 전달해야 한다.
p = multiprocessing.Process(target = ArgTest, args = (Arg,))

[python] integer 의 bit length

Integer 값에서 bit length를 알아내기
가만히 생각해보면 쉽지만 막상 만드려니 짜증나고, 반올림 같은 것도 생각해야 한다.

python 기본 method 중 bit_length 라는 것을 사용하면 쉽게 고칠 수 있다!

[python] module 설치 관련

일반적으로 linux 직접 깔아서 사용하는 사용자라면 module를 어떻게 깔아야하며, 어디에 깔리는지 전혀 신경쓸 필요가 없을 수도 있다.

하지만, 관리자(root계정)가 아닌 일반 사용자 계정을 갖고 있는데 원하는 module를 깔고 싶을 때 난감 할 수 있다.
이런 경우 여러가지 많은 제약들이 발생한다. 주로 library의 의존성에 대한 것들이다.

위 내용에 대해서는 다른 post에서 다루기로 하고 이번 post에서는 python module를 자신이 원하는 곳에 설치하고 관리하는 방법에 대해 알아보자

system example > red hat 계열
python 위치 > /usr/bin/python (version 2.7.x)
단순히 python을 설치다면 가장 기본적으로 설치되는 위치이다. 그리고, 그 module들은 /usr/lib/python2.7/site-packages/ 에 설치가 된다.
그렇다. 위 python을 이용해 module를 설치하면 /usr/lib/python2.7/site-packages/ 에 설치가 되는 것이다.

그런데? 나는 관리자 계정이 없기 때문에 /usr/lib/ 에 쓰기를 할 수 없다.

이런 경우에 특별한 나만의 계정 directory에 나만의 python module를 설치 할 수 있다.
기본적으로 package를 설치할 때 사용하는 명령어 python setup.py install 에서 –user option을 붙이는 것으로 해결 된다.

default와 무엇이 다를까? 각각을 비교해보자 (출처 : https://docs.python.org/2/install/)
1. python setup.py install
> 설치 위치 -> prefix/lib/pythonX.Y/site-packages
prefix는 sys.prefix 으로 확인 가능

2. python setup.py install –user
> 설치 위치 -> userbase/lib/pythonX.Y/site-packages
userbase는 site.USER_BASE 으로 확인 가능

–prefix를 사용하는 방법도 있으니 위 출처를 참고.
그 밖에도 custom으로 각 각의 필요한 directory를 설정하는 방법도 있다.

마지막으로 해당 설치 path에 대해서 PYTHONPATH 변수를 지정해주면 된다.
setenv PYTHONPATH $NEWPYTHON_MOD_PATH:$PYTHONPATH

뭐 이런식으로.. 저는 cshell을 사용합니다.

[vi] 작업하는file의 file 이름을 file에 print 할 수 있다!

제목에 file이 세번이 나오면서 이상한 문장이 되어 버렸지만..
예를 들어,
1,2,3,4,5,6,7,8,9,10 열개의 파일이 있다.
각각의 파일에는 특정한 문단이 있는데 이 문단은 모두 같다. 값이 다를 뿐
나의 예를 들면 ,
— start static —
VDD_1 = x.xx V
VDD_2 = x.xx V
— end static —
뭐 이런식으로 들어 있는 형태이다.

매크로를 사용하여 하나의 파일에 모두 담아 낼 수 있으나, 위 내용이 어떤 파일에서 나왔는지 답답하다.. 맞는지도 모르겠고 .
이때! 사용하면 좋은 vim 명령어

:put = expand('%:t') file 의 이름을 print 한다.

즉, 아래와 같이 할 수 있다는 이야기이다.
<filename>
— start static —
VDD_1 = x.xx V
VDD_2 = x.xx V
— end static —

관련된 것들을 일부 발췌해왔다. (출처 : http://vim.wikia.com/wiki/Get_the_name_of_the_current_file )
:echo @%
출력 : def/my.txt – directory/name of file (relative to the current working directory of /abc)
:echo expand('%:t')
출력 : my.txt – only filename
:echo expand('%:p')
출력 : /abc/def/my.txt (full path)
:echo expand('%:p:h')
출력 : /abc/def – directory containing file (‘head’)
:echo expand('%:p:h:t')
출력 : def

추가로 궁금한 사항은?
:help expand