아래 링크에 잘소개 되어 있다.

https://www.digikey.kr/en/maker/projects/how-to-run-a-raspberry-pi-program-on-startup/cc16cb41a3d447b8aaacf1da14368b13

 

How to Run a Raspberry Pi Program on Startup

How to Run a Raspberry Pi Program on Startup Courtesy of Sparkfun Introduction The Raspberry Pi is a great single board computer, but like most computers, its functions rely mostly on human input. That means whenever you start up (or boot) your computer, i

www.digikey.kr

 

라즈베리 파이는 rc.local에 exit0 이전에 실행하고자 하는 명령어를 쓰면 잘된다.

그런데 python 스크립트나 node의 경우는 라이브러리 경로를 잘 명시해야 한다.

node의 경우 npm이 프로젝트 경로에 모아서 주니까 문제가 없는데 파이썬의 경우

기본적으로  rc.local이 root로 실행하기 때문에 아무런 PATH 설정이 없어서 library를 못찾는다.

따라서 pi 계정으로 실행하도록 해야 한다.

 

$ sudo vi /etc/rc.local

~~~

sudo -H -u pi python <my script path>

exit 0

 

이런식으로 실행해야 라이브러리를 찾는데 문제가 없을 것이다.

만약에 rc.local이 활성화 되지 않았다면 systemd를 이용해서 이를 활성화 해야한다.

http://blog.naver.com/PostView.nhn?blogId=kick8888&logNo=220922201750&beginTime=0&jumpingVid=&from=search&redirect=Log&widgetTypeCall=true

 

우분투 16.10 (systemd) 기반의 rc.local 활성화

우분투 최신버전은 systemd 기반으로 PID들이 관리된다, 필자는 rc.local을 부득이 하게 사용할 일이 생...

blog.naver.com

 

$ crontab -e

가장 편한 에디터를 선택한다 그냥 vim으로 하는게 무난

 

맨끝에다가

@reboot /home/simon/test.sh

 

리부팅 하면 끝,

 

근데 디버깅이 필요하면 로그를 봐야한다.  이때는 

 

@reboot /home/simon/test.sh >> /home/simon/test.log 2>&1

2>&1은 stderr를 stdout로 리다이렉션하라는 옵션임. 즉 모든 출력을 로그파일로 저장하라는 것임.

우분투 16.04를 설치하고 와이파이를 세팅하다가 아래와 같은 좋은 링크를 발견했다.

Wpa_supplicant로는 잘되었는데 이상하게 부팅시 자동실행은 잘 안되었다.

https://www.linuxbabe.com/command-line/ubuntu-server-16-04-wifi-wpa-supplicant

 

Using WPA_Supplicant to Connect to WPA2 Wi-fi from Terminal on Ubuntu 16.04 Server - LinuxBabe

In this tutorial, we are going to learn how to connect to Wi-fi network from the command line on Ubuntu 16.04 server and desktop using wpa_supplicant.

www.linuxbabe.com

그래서 삽질 끝에 부팅로그에서 systemd가 실행 실패하는 것을 보고 찾다보니 실행 속성을 줬어야 했다.

상기 링크 중에 wpa_supplicant를 systemd로 부팅시 자동실행하는 스크립트는 example에서 복사하는 부분이 있는데.

 

$ sudo cp /lib/systemd/system/wpa_supplicant.service /etc/systemd/system/wpa_supplicant.service

이렇게 실행 속성까지 추가해야 한다.

$ chmod +x /etc/systemd/system/wpa_supplicant.service

그리고 dhclient.service 스크립트도 만들고 나서 실행 속성을 주어야한다.

$ sudo nano /etc/systemd/system/dhclient.service

$ sudo chmod +x /etc/systemd/system/dhclient.service

 

그리고 중요한 부분이  ifconfig 해서 wifi network interface가 부팅시 자동으로 활성화가 되어 있어야 하는데

$ ifconfig

....
wlp2s0    Link encap:Ethernet  HWaddr 
          inet addr:192.168.0.111  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::b682:feff:fe8f:f52c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:620 errors:0 dropped:0 overruns:0 frame:0
          TX packets:211 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:80781 (80.7 KB)  TX bytes:31352 (31.3 KB)

 

 

상기의 wlp2s0가 저의 컴터 와이파이 인터페이스 인데 이것을 /etc/network/interface에서 자동활성화 하고 ssid/psk 까지 정보를 주어야 한다.

$ sudo vi /etc/network/interface

 

그냥 ""없이 타이핑하면 된다. 아참 그전에 재부팅할때 오래 걸릴 수 있으니 아래 타임아웃을 기존 300초에서 10~15초로 300초면 5분이다. 네트웍 안잡히면 5분을 멍하니 기다려야 한다 ^^;; 아래처럼 줄여준다.

$ sudo vi /etc/dhcp/dhclient.conf

 

timeout = 10 # 300 -> 10~15

 

우분투 16.04 서버 부팅시 네트워크 연결이 안되어 있으면 네트워크 연결을 찾는데 기본 300초로 세팅되어 있다. 5분정도이다. 엄청 오래 걸린다. 이경우 아래 dhclient.conf파일에서 timeout 값을 10정도로 줄이면 된다.

 

~$ sudo vi /etc/dhcp/dhclient.conf

https://askubuntu.com/questions/773973/ubuntu-16-04-system-boot-waits-saying-raise-network-interfaces

 

Ubuntu 16.04 Server에서 apt-get update 할때 hash sum 에러 날때 아래와 같이 해결하였다.

 

$ sudo apt-get update

....생략..

 

Get:39 http://kr.archive.ubuntu.com/ubuntu xenial-updates/multiverse i386 Packages [15.9 kB]
Get:40 http://kr.archive.ubuntu.com/ubuntu xenial-updates/multiverse Translation-en [8,468 B]
Get:41 http://kr.archive.ubuntu.com/ubuntu xenial-backports/main amd64 Packages [7,280 B]
Get:42 http://kr.archive.ubuntu.com/ubuntu xenial-backports/main i386 Packages [7,288 B]
Get:43 http://kr.archive.ubuntu.com/ubuntu xenial-backports/main Translation-en [4,456 B]
Get:44 http://kr.archive.ubuntu.com/ubuntu xenial-backports/universe amd64 Packages [8,064 B]
Get:45 http://kr.archive.ubuntu.com/ubuntu xenial-backports/universe i386 Packages [7,744 B]
Get:46 http://kr.archive.ubuntu.com/ubuntu xenial-backports/universe Translation-en [4,328 B]
Fetched 30.4 MB in 27s (1,095 kB/s)
Reading package lists... Done
E: Failed to fetch http://kr.archive.ubuntu.com/ubuntu/dists/xenial-updates/main/binary-i386/by-hash/SHA256/62020de0b1eff8fed4184722f037b6812922ffbf76943dbd697015fd1f807c95  Hash Sum mismatch
E: Failed to fetch http://kr.archive.ubuntu.com/ubuntu/dists/xenial-updates/universe/binary-amd64/by-hash/SHA256/389afbf68ba66477471897f9ca4f2ba39e906a98a1d29c03bdcdd47a4c11e7b5
E: Some index files failed to download. They have been ignored, or old ones used instead.

 

sudo apt-get update -o Acquire::CompressionTypes::Order::=gz
sudo apt-get upgrade -y
sudo apt-get update

 

아래 링크를 참조하였다.

https://github.com/moby/moby/issues/30207

 

Hash Sum mismatch on Ubuntu 16.04 apt-get update · Issue #30207 · moby/moby

Description apt-get update fails on fresh Ubuntu image Steps to reproduce the issue: create the following dockerfile: FROM ubuntu:16.04 MAINTAINER b@example.com RUN apt-get clean \ && rm -r...

github.com

 

그리고 또다른 방법은 vagrant를 이용하는 방법이 있는데 이것도 해결된다고 한다.

먼저 vagrant를 설치해야 한다.

vagrant ssh node-01
sudo apt-get clean
sudo apt-get update

 

https://github.com/rancher/rodeo/issues/12

PADS로 라우팅시에 비아와 같은 홀에서 Trace가 연결될 때 그냥 연결하면 PCB 제조 공정에서 잘못하면 끈어지는 경우가 있다고 한다. 요즘 PCB 공정은 워낙 정밀하고 그런 제조 실수는 흔해서 다 미연에 방지하는 경우는 많지만 사전에 데이터 상으로 확실하게 Tear drop을 적용해서 견고하게 홀과 라우팅 배선이 연결되도록 해놓으면 마음이 편안할 것이다.


왼쪽이 Teardrop 적용전이고 오른쪽이 Teardrop 적용 후다. 조금더 견고하게 보이지 않나요?ㅎ


이렇게 설정하면 위와 같이 Teardrop이 생성됩니다.

Routing -> General -> Generate teardrops 체크

Routing --> Teardrops 에서 Auto adjust 체크.


'PCB Artwork' 카테고리의 다른 글

[PADS] 라우팅 도중 이상한 실선으로 변경될 경우  (0) 2018.01.10

PADS 초보로써 지금까지 PCB 4번째 발주를 했다 ㅎㅎ 그런데 이번에는 특이한 현상이 있었는데 설정에서 겨우 찾아냈다.

라우팅을 하다가 0.27정도 굵기 이하는 모두 실선으로 표시되는 현상이었다. 아래처럼...^^;;;


이경우는 Alt+Enter를 눌러서 Option 창에서 아래 Display 항목을 수정하면 된다.

Minimum Display를 반드시 0.1로 표시한다. 어짜피 PCB 발주시에 라인 두께를 0.1T 이하로는 잘 안쓰기 때문에 0.1이면 라우팅 선이 다 잘 표시될 것 같다.


'PCB Artwork' 카테고리의 다른 글

[PADS] Via와 Trace 연결시에 Teardrop 적용하기.  (0) 2018.01.10

PCB 아트웍 할때 가끔 도면 파일을 DWG로 받는데 이것을 PADS로 인식시키려면 DXF로 변환한다. 이때 쓰는 툴이 오토캐드인데 윈도우 포맷 후 다시 설치하려면 맨날 까먹어서 메모한다. 일단 설치는 다 했다고 치고 인증부터 들어간다.

설치하고 첫 실행하면 아래처럼 인증화면이 나온다. 그리고 첫 실행은 무조건 관리자 권한으로 실행하는 것이 좋다. 상관 없긴한데...이런 습관은 삽질을 한번 줄여주니 좋은것 같다.ㅎㅎ 그리고 받드시 인터넷 선을 뽑아 버리거나 연결 끈기 한다. 바이러스 실시간 감시도 해제한다.

Windows Defender -> 설정 -> 실시간 보호 -> 끔 


여기서 Activate 버튼을 누른다.


당연히 "Request an activation code using an offline method"를 선택해서 Next 버튼 누른다.



크랙 파일을 실행한다. 위 화면에서 Request code라는 것이 있다. 그것을 복사해서 크랙 프로그램의 Request code란에 붙여넣기 한 뒤에 Activation 코드를 생성한다.

위의 화면이 나오면 생성한 Activation 코드를 붙여넣기 한다. 16개의 칸에 자동으로 맞춰서 붙여넣기가 되므로 첫칸에 커서를 놓고 붙여넣기 한다.


크랙 파일은 아래 공유합니다. 윈도우 비트에 따라서 골라서 실행하시면 됩니다.

xf-adsk2015_x64.7z

xf-adsk2015_x86.7z




라이노3D를 배워보기 위해서 설치를 했는데...물론 자금이 없기 때문에 어둠에 경로를 통해서 구한 것을 써야한다.^^;;담에 돈 벌면 진짜 라이센스를 사야지. 

일단 배우는 입장이라 먼저 써보기로 한다. 

그런데 이런 고가의 툴이라는 것이 2중으로 라이선스를 검증한다. 설치할때 시리얼키를 요구하고 다 설치하고 웹을 통해서 인증하기를 유도한다. 뒤에서 자꾸 제대로 영구 인증이 안되어서 여러번 하다보니까 이제 방법을 알았다.


일단 파일은 아래 링크를 통해서 받을 수 있다.

http://blog.daum.net/ipkdragon1/246


시리얼파일은 안받아도 되고 크랙과 설치파일만 받자. 이것도 별도로 잘안되어서 토렌트로 5.8버전도 깔아보았는데 동일했다. 그런데 알아낸 방법으로 하면 다 된다.ㅎ


먼저 키젠을 실행시켜서 라이센스키와 Activation key를 확보한다. 이 2개의 키는 반드시 매칭이 되어야하므로 메모장 같은 곳에 복사해서 설치끝날때 까지 보관한다.

그리고 중요한 작업이 있다. 네트워크 어댑터를 사용안함으로 해서 인터넷을 완전 끈어버리자 선이 있다면 뽑고 와이파이라면 어댑터 사용안함으로 해놓자.

키젠 실행한 뒤에 Generate버튼을 누른다.


그리고 설치파일 한글이나 영문 rh50_ko-kr_5.13.60913.21340.exe 을 관리자 권한으로 반드시 실행한다. 설치할때 라이센스 키를 넣고 설치를 마무리 한다.

설치하다가 라이선스 키를 물어보면 아까 생성한 라이센스 키를 아래처럼 넣어준다.



그리고 Rhino를 처음 실행하는데 이때도 관리자 권한으로 실행한다. 처음 실행일 때는 아래처럼 자동으로 영구 인증 창이 나오는데 "지금 유효성 검사하기"를 클릭한다. 

그리고 수동인증으로 들어간다. 


그리고 위에서 키젠에서 생성한 Activation key를 복사해서 붙여 넣기 하면 성공적으로 라이노가 영구 인증된다. 


실행한 라이노를 종료하고 다시 실행해보면 영구인증되었다는 것을 볼 수 있다.




매번 까먹어서 기록합니다.

ctags -R로 tags를 생성하면 vimrc에서 tags 경로를 설정하는데 아래처럼 하면

현재 경로에서 home 디렉토리까지 다 찾습니다.


set tags=./tags,tags;$HOME


이렇게 해놓고 쓰면 편합니다.ㅎㅎ

+ Recent posts