[KETI-Mobius]제4회 KETI 모비우스 개발자 대회 개발일지 : tas 구현1

2 minute read

라즈베리파이 4의 “gpio readall”명령어를 이용하여 GPIO 핀 설정을 확인해야 한다.
여기서 살짝 삽질한 부분이 있는데, gpio readall로 GPIO 핀 설정을 확인하기 위해서는 wiring-pi를 깔아줘야 한다.
나름 구글링해서 한 방법으로 설치를 하고 gpio readall을 입력했는데 만약 다음과 같은 문구가 뜬다면!!

pi@raspberrypi:~ $ gpio readall
Oops - unable to determine board type... model: 17

나같은 경우 다음과 같은 절차로 설치했을 때 저런 문구가 떴다.

sudo apt-get update
sudo apt-get upgrade
git clone git://git.drogen.net/WiringPi    //이부분이 잘못됐다! 이제 더이상 지원하지 않는다고 한다.
cd wiringPi
git pull origin
./build

위의 깃 클론은 더이상 지원하지 않는다고 한다. 따라서 가장 최신의 wiring pi를 깔아줘야 한다.

cd /tmp
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb

이후 gpio readall을 하면 GPIO 핀 설정이 정상적으로 출력된다!
문제는…이제 tas_sample 폴더 하위의 tas_co2를 테스트해보려고 npm install을 했더니 오류가 왕창 뜬다.
node -v와 npm -v 확인 결과, 맨 처음에 curl로 nodejs를 설치했을 때 구버전을 설치한 것이 문제가 된 것 같아, nodejs를 삭제했다.

sudo apt-get remove nodejs

중간에 Do you want to continue?가 나오면 Y를 입력해준다.
그런 다음, 다음 커멘드를 통해 완벽하게 제거해준다.

sudo apt-get autoremove

중간에 Do you want to continue?가 나오면 Y를 입력해준다.
https://nodejs.org/ko/
node와 npm의 구버전이 모두 제거 되었다면 아래의 사이트에 접속하여 node js 최신버전을 확인한다.
보니까 첫 포스팅에서 설치한 것은 8.x.x LTS로 아주 구버전이었다!! 12로 다시 깔아야한다.
설치는 cd ~ 최상위 디렉토리에서 해주면 된다.

curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -

이 커맨드를 활용하여 node js의 패키지 저장소를 최신으로 변경시켜준다. 그리고 몇분 기다린다..
이때 setup_뒤에 있는 12.x는 아까 홈페이지에서 확인하였던 LTS 버전의 코드이다.
추후에 다시 업데이트가 이뤄진다면 이 방법으로 다시 지우고 설치하면 될 것 같다.
이후 다음과 같은 코드로 nodejs를 재설치한다.

sudo apt-get install nodejs

몇분 기다려준다… 끝나면 다음과 같은 커맨드로 버전을 확인해보자.

pi@raspberrypi:~ $ node -v
v12.18.3
pi@raspberrypi:~ $ npm -v
v6.14.6

혹시 나중에라도 버전 문제 때문에 문제가 될까봐 적어둔다.
이제 다시 하던 작업으로 넘어가자. Samba는 이전에 설치했었으니 넘어가고.

cd /nCube-Thyme-Nodejs-2.3.2
npm install

끝났다면 tas_sample 하위의 tas_co2에서 동일한 작업을 수행한다.

cd ./tas_sample/tas_co2/
npm install

제발 됐으면 좋겠는데 또 오류 대환장 파티…
일단 눈에 띄는 오류를 검색해본다..

gyp ERR! stack Error: 'make' failed with exit code: 2

다음과 같은 가이드대로 해보았다.
https://codeforgeek.com/make-failed-with-exit-code-2/
응 안돼
오류를 찬찬히 읽어보다가 호옥시 내가 안전버전인 LTS 12로 설치한 것이 문제인가…가장 최신 버전인 14로 깔아야하나 싶어서 다시 nodejs설치 진행. 위랑 동일함…
바뀐 버전은 다음과 같다.

pi@raspberrypi:~ $ node -v
v14.7.0
pi@raspberrypi:~ $ npm -v
v6.14.7

이제 이전 작업을 반복한다. 제발 깔려줘 npm ㅠㅠ
생성되어있던 node_modules 파일을 모두 지우고 했다.
응 안돼….또 오류를 쓱쓱 읽다 보니…node-gyp라는게 필요해보여서 깔아봤다. v5.1.0을 요구하는 것 같은데, 특정 버전을 까는 명령어를 찾아봐도 안나와서 어쩌다가 다음과 같이 했는데 됐다..

sudo npm install -g node-gyp@5.1.0

실행은 최상위 디렉토리에서…ㅎㅎㅎ
node-pre-gyp라는 것도 필요해보여서 오류창에 있는 0.6.26버전으로 다운받았다.

npm install node-pre-gyp@0.6.26

이후 node-pre-gyp -v로 버전을 확인해보니 또 오류가 와르르 뜬다.

no such file or directory, open '/home/pi/package.json'

https://m.blog.naver.com/PostView.nhn?blogId=chandong83&logNo=221064506346&proxyReferer=https:%2F%2Fwww.google.com%2F
이 블로그대로 해보았다..만약 지우고 다른 버전을 깔고 싶다면 다음과 같이 한다.

sudo npm uninstall node-pre-gyp -g

이후 다시 다음 커맨드 수행.

npm install node-pre-gyp@0.6.26

오류가 오지게 뜬다. 그러면 다음을 수행한다.

npm audit fix

안된다..자고 일어나서 할래