반응형

몇 주 전부터 잡혀 있던 출장이었다. 대만에 납품한 반도체 제조 장비(TEL ACT)가 고객사에 도착 했고 최종 고객사 생산 라인에 설치 되기 전, 우리가 가서 검수를 도와야 하는 상황. 이해할 수 없는(멍청한) 고객사의 일처리로 몇 번이나 연기가 되더니 드디어 출발일이 정해 졌다. 2월 10일.


갑자기 한 달 쯤 전부터 한 귀로 듣고 다른 귀로 흘려오던 중국 우한 지역의 상황이 더 이상 남의 얘기가 아닌듯 느껴지기 시작 했다. 하필 내가 이 시기에 출장을 가야 하다니.. 젠장.. 알아보니 대만은 얼마전부터 중국 사람들의 입국을 금지 시켰단다. 아직 사망자는 없지만.. 뭐.. 그러거나 말거나 종종 같은 나라로 느껴지는 중국과 대만이다. 물론 서로 싫어 한다고 하는 두 나라지만.



계속되는 일정 변경에 비행 스케쥴을 바꾸면서도 느꼈지만 왠지 공항에 사람이 없을거 같았다. 7인의 비행 스케쥴 변경이 자유로웠고 아무리 변경해도 아시아나 예약 사이트의 남은 좌석 수는 9개였다. 좌석이 많이 남아도 무조건 9로 표시 되는거 같다.


비행기 출발은 아침 9시 40분이었다. 동탄에서 출발해야 하는 나는 새벽 6시 버스를 탔다. 덕분에 잠은 3시간 밖에 못자고.. 피곤한 몸을 이끌고 도착한 공항은 예상대로 한산했다. 이른 아침 시간에 도착해도 항상 붐비던 공항인데 예상대로 사람이 없는 상황이 재미있기도 했지만 99%의 사람들이 마스크를 쓰고 조심스럽게 행동하는걸 보니 살짝 긴장감이 돌기도 했다.


어쨌든 티켓팅을 마치고 출국장으로 향했다. 한산한 공항 상황 덕에 빠르게 수속이 마무리 되었고 여유있게 출발 할 수 있었다. 출발 전에 간단히 허기도 채우고 고객사 선물 구매, 남는 시간에 가져간 책 읽기등 많은 일들을 했지만 잠도 충분히 못 자고 귀찮은 마음에 사진은 하나도 찍지 않았다. 이번 출장은 블로그에 포스팅 할 예정이었지만 말이다.


첫 날 고객사 미팅이 끝나자 마자 찾아간 고기집


그렇게 대만에 도착 해서는 바로 고객사로 이동, 4시간 동안 미팅을 했다. 블로그에 적을 만한 내용은 전혀 없는 재미 없는 미팅이었다. 보통 그렇게 미팅이 끝나고 나면 고객사와 저녁을 함께 하지만 이 날은 다른 회사의 엔지니어가 함께 출장 왔기 때문에 우리끼리 저녁을 먹기로 했다. 하지만 현지인 없이 한국 사람들끼리 잘 알지도 못하는 곳에서 좋은 음식점을 찾아 가기는 쉽지 않았다. 어찌 어찌 지도를 보며 찾아간 고기집에서 대충 그림 보며 주문한 음식을 배불리 먹었다.


들어갈땐 몰랐던, 나와서야 확인한 가게 이름


그렇게 첫 날을 보내고 둘째날은 아침 9시 부터 저녁 9시까지 최종 고객사 검수를 준비 했다. 나는 다음날 다시 귀국하는 일정이었기에 그래도 가벼운 마음으로 일을 했지만 다른 직원들은 약 한 달을 여기서 보낼 예정이었다. 역시 출장은 아무리 길어도 2박 3일을 넘겨서는 안된다는 생각이 확고해졌다.


대만 공항 아시아나 카운터


다음날 귀국 비행기는 오후 1시 40분 이었기 때문에 전날 미리 예약해둔 택시를 타고 여유있게 도착 했다. 역시 사람은 별로 없었다. 옆 카운터에서 미국 여권을 들고 있는 필리핀 이민자.. 로 추정되는 사람의 미국 복귀가 좌절되는 장면을 뒤로 한 채 티켓팅을 서둘렀다.



Tiramisu Mille Crepe와 Nitro Cold Brew with Vanilla Sweet Cream


간단히 출국 수속을 마치고 시간이 많이 남아 가져간 책을 읽기 위해 커피숍을 찾았다. 여러가지 샐러드를 파는 음식점이 제일 먼저 눈에 띄었지만 스타벅스의 광고판에 그려져 있던 커피에 속아 스타벅스에서 시간을 보냈다.


내가 주문 했다고 생각했던 Nitro Cold Brew with Vanilla Sweet Cream


커피맛은 나쁘지 않았다. 달지 않고 고급스러운 맥심의 맛이랄까?


통통한 볼이 귀여운 비행기


비행기 출발 시간이 다 되어 게이트로 천천히 걸어 갔다. 평소에 잘 먹지 않던 커피를 마셔서 그런지 약간 어지럽기도 했고 속이 편치 않았다. 길지 않은 비행이지만 불편한 의자에 앉아 2시간 반을 어떻게 보내야 하나 걱정이 앞섰다.


4인 좌석에 나 혼자 앉았던 귀국 비행기


비행기 안에도 사람이 별로 없었지만 하늘에 떠 있는 비행기도 별로 없었던 듯 하다. 출발 지연이 없었던건 물론 예상보다 빠르게 2시간도 안되어 한국에 도착 했다. 짐이 없는 난 내리자 마자 바로 버스 티켓을 구매해서 다시 동탄으로 향했다. 속이 안좋아 기내식도 먹지 않았지만 또 다시 1시간 반 동안 버스를 탄다는건 정말 고역 이었다. 대만 공항에서 부터 써오던 마스크가 너무나 불편하게 느껴졌다.


일이 힘들거나 별 부담은 없었던 출장이었다. 다만 이 상황에 공항, 외국을 다녀와야 한다는 심리적 부담감과 귀국길에 평소 먹지 않던 커피를 광고판에 속아 마셔서 불편 했던 몸이 나를 힘들게 했던 2박 3일이었다. 그렇게 지금 회사의 마지막 출장이 마무리 되었다.


반응형
Posted by J-sean
:
반응형

RetroPie installed on a PC can be too fast to play retro games. You can adjust(slow down) its speed by changing video_frame_delay value.


라즈베리 파이가 아닌 PC에 레트로파이를 설치한 경우 성능 차이로 인해 레트로 게임들이 너무 빨라 진행 할 수 가 없다. video frame delay 설정을 변경해 속도를 조절해 보자.


RetroPie Configuration을 선택 한다.


Configuration Editor를 선택 한다.


Advanced Configuration을 선택 한다.


Configure Libretro options를 선택 한다.



all/retroarch.cfg를 선택 한다.


video_frame_delay를 선택 한다.


Edit를 선택 한다.


15 이하의 적당한 숫자를 입력 하고 OK를 선택 한다. 다시 게임을 진행해 보면 속도가 적당히 변경되어 있다.



Configure Libretro options가 아닌 Manually edit RetroArch configurations에서도 변경 가능 하다.


all/retroarch.cfg를 선택 한다.


원래는 video_frame_delay가 주석처리(#)되어 있는데 위와 같이 주석을 삭제하고 적당한 값으로 바꾸면 된다.


특정 게임에서 잠시 video frame delay 값을 변경하고 싶다면 Hotkey(Select) + X 를 누른다.



Quick Menu가 표시 된다. 라즈베리파이(라즈비안)가 한국어로 설정되어 있다면 Quick Menu의 글자가 제대로 표시되지 않는다. 언어 설정을 영어로 바꾸면 제대로 표시된다.


Latency를 선택 한다.


Frame Delay를 선택 한다.


원하는 값을 선택 하고 게임으로 돌아가면 변경된 값이 적용 된다. 이 방법은 일회성이며 게임을 다시 시작하면 원래 값으로 돌아 간다. 이 상태를 저장하고 싶다면 Quick Menu에서 Save State를 선택 한다.


반응형
Posted by J-sean
:
반응형

레트로파이는 보통 레트로파이 홈페이지에서 받은 이미지를 MicroSD 카드에 설치하고 라즈베리 파이에서 사용 한다.

하지만 라즈비안이 설치된 라즈베리 파이나 라즈베리파이 데스크탑(데비안)이나 우분투가 설치된 PC에서도 레트로파이를 설치하고 레트로 게임을 즐길 수 있다.


2020/01/16 - [Raspberry Pi & Arduino] - Raspberry Pi Raspbian 설치 후 업데이트, 한글, 고정 IP, VNC, Samba 설정

2020/02/14 - [Raspberry Pi & Arduino] - How to slow down RetroPie games - 레트로파이 게임 속도 조절 하기(video frame delay)

2021/01/24 - [Raspberry Pi & Arduino] - How to add Korean font, game marquees, images, videos, and descriptions to RetroPie - 레트로파이에 한글 폰트, 게임 마키, 이미지, 플레이 영상, 설명 넣기

2020/11/12 - [Vita] - 오래된 노트북을 오락실 게임기로 만들어 보자.


APT repository를 모두 업그레이드 하고 Git이 설치 되어 있지 않다면 설치 한다.


sudo apt-get update

sudo apt-get upgrade

sudo apt-get install git


RetroPie-Setup 스크립트를 다운로드 한다.


git clone --depth=1 https://github.com/RetroPie/RetroPie-Setup.git


다운 받은 스크립트 디렉토리로 이동하고 retropie_setup.sh를 실행 한다.


sudo ./retropie_setup.sh


Basic install을 실행 한다.


Yes를 선택 하고 설치를 진행 한다.



꽤 오랫동안 설치가 진행 된다.


설치가 완료되면 빌드하지 못한 에뮬레이터에 대한 메세지가 몇 개 표시 된다. 모두 OK를 선택 한다.


Setup 화면으로 돌아 오면 Update를 진행 한다.


Yes를 선택 하고 설치된 패키지 업데이트를 진행 한다.


최신 버전의 RetroPie Setup Script를 가져 왔다. OK를 선택 한다.



업데이트를 계속 진행 한다.


RetroPie에 관한 간단한 메세지가 표시 된다. OK를 선택 한다.


Kernel등의 underlying OS package들을 업데이트하기 위해 Yes를 선택 한다.


다시 꽤 오랜 시간동안 설치가 진행 된다.


업데이트가 완료 되었다.



재부팅을 선택 한다.


Yes를 선택 한다.


재부팅이 완료되면 레트로파이를 실행 한다. 터미널에서 emulationstation 명령어를 실행 해도 된다.


아래 게임패드 다이어그램을 참고하여 컨트롤러 버튼 설정을 진행 한다. 게임패드가 없다면 위와 같은 화면이 나오지만 키보드로 진행할 수 도 있다.


SNES Controller


XBox 360 Controller


PS3 Controller



버튼 설정을 완료하면 레트로파이가 실행 된다. 아직은 아무 게임도 보이지 않는다. 이 상태에서 게임 롬을 설치해도 오디오 드라이버가 설정 되지 않아 아무 소리도 나지 않는다. 오디오 드라이버 설정을 위해 A 버튼을 눌러 RetroPie Configuration으로 들어 간다.


Configuration Editor를 선택 한다.


Advanced Configuration을 선택 한다.


Configure Libretro options를 선택 한다.


all/retroarch.cfg를 선택 한다.



audio_driver를 선택 한다.


alsa(Advanced Linux Sound Architecture)를 선택 하고 Configuration을 빠져나가 레트로파이를 종료 한다.

※ 아래 순서로 진행해도 된다.

RetroPie Configuration - Retroarch - Settings - Audio - Output - Audio - alsa

RetroPie Configuration - Retroarch - Settings - Drivers - Audio - alsa


/home/pi/RetroPie/roms/arcade 디렉토리에 게임 롬 파일을 복사 한다. Raspberry Pi 2/3에 추천하는 MAME emulator는 lr-mame2003이고 lr-mame2003 emulator에 사용 가능한 게임 롬 버전은 MAME 0.78이다. MAME 0.78용 스트리트 파이터 2 롬 파일을 복사 했다.


다시 레트로 파이를 실행하면 ARCADE가 활성화 되고 1개의 게임이 사용 가능하다는 메세지가 표시 된다. A 버튼을 눌러 선택 한다.


ARCADE를 선택 하면 위에서 복사한 스트리트 파이터 2가 표시 된다. A 버튼을 누르고 진행 한다.



기본 에뮬레이터를 선택 하는 화면이 표시 된다. lr-mame2003을 선택 한다.


스트리트 파이터 2가 launching 된다.



스트리트 파이터 2가 실행 된다.


기본적으로 Raspberry Pi Desktop은 Screen Saver 프로그램이 설치되어 있지 않다. 하지만 Screen Saver 기능은 활성화 되어 있기 때문에 사용자 입력이 없으면 10분 후 화면이 꺼진다. RetroPie를 사용하는 동안에도 키보드나 마우스가 아닌 게임패드를 사용한다면 사용자 입력이 없다고 판단해 Screen Saver가 작동하게 되고 화면이 꺼져버리게 된다.


Preferences - Add/Remove Software를 선택 한다.


xscreensaver를 검색하고 설치 한다.


다시 Preferences를 확인해 보면 Screensaver가 설치되어 있다.


Screen Saver를 실행 한다.



Mode 콤보 박스를 클릭 하고 Disable Screen Saver를 선택 한다.


Screen Saver 기능이 비활성화 된다.


컴퓨터를 켜거나 재부팅하면 항상 위와 같은 GRUB 화면이 나온다. 여기서 몇 초(5초) 기다리거나 엔터키를 한 번 눌러야 부팅이 시작된다. 바로 부팅 되도록 해보자.


/etc/default/grub 파일을 열자.



GRUB_TIMEOUT=5로 되어 있다. 그래서 5초를 기다려야 했던 것이다.


기다리지 않고 바로 부팅되도록 0으로 바꾸고 저장한다.


sudo update-grub 명령으로 업데이트 한다. 이제 기다릴 필요 없이 바로 부팅된다.


반응형
Posted by J-sean
:
반응형

알리익스프레스(AliExpress)는 이베이(eBay)와 다르게 상품 금액을 흥정 할 수 있는 기능이 없다. 그래서 옵션에 없는 상품을 추가 하거나 가격 조정을 요청 하는 경우 판매자로부터 아래와 같은 메세지를 받게 된다.

 

결제를 하지는 말고 주문서(order)만 보내라는 메세지이다.

 

어떻게 주문서만 보낼 수 있을까? 예를 들어 IP Camera를 결제 하지 않고 주문서만 넣어 보자. Buy from this seller 버튼을 클릭해 진행 한다.

 

하지만 아무리 찾아도 결제 하지 않고 주문서만 넣는 기능은 없다.

이 화면에서 Payment Methods를 평소 사용 하지 않고 결제 정보가 저장 되어 있지 않은 방법으로 선택 한다. 나는 보통 VISA나 MasterCard를 사용하기 때문에 Card를 선택 하는데 이번에는 WebMoney를 선택 했다. 물론 WebMoney에는 아무런 결제 정보도 저장되어 있지 않다. Place Order 버튼을 클릭 한다.

 

 

 

화면이 바뀌고 WebMoeny 결제 정보를 입력 하는 화면이 표시 된다. 그냥 화면을 닫거나 알리익스프레스로 돌아 간다.

 

주문 내역을 확인해 보면 Awaiting payment에 1개의 주문(IP Camera)이 추가 되어 있다.

이제 판매자에게 결제하지 않고 주문서만 보냈으니 가격을 조정해 달라고 요청 한다. 그러면 판매자가 가격을 수정하고 주문 내역에 수정한 가격이 반영 된다. 반영된 가격을 확인하고 Pay Now 버튼을 클릭 하면 원하는 가격에 제품을 구매할 수 있다.

 

반응형
Posted by J-sean
:
반응형

간단한 MCU 프로젝트에 배터리나 건전지를 사용하지 않고 전원을 공급하기 위해 이베이에서 AC-DC Converter Board를 찾아 보았다.


괜찮은 제품이 저렴한 가격에 올라와 있는걸 보고 판매자 feedback을 확인해 보니 나쁘지 않았다. Quantity는 2개로 하고 Color를 지정하라기에 random을 선택해 주었다.


random 컬러를 선택하자 이상한 생선 꼬리가 다양한 색깔로 표시 되었다. 색깔 표시를 재미있게 하네.. 라고 생각하고 주문을 진행 했다. 한 달이면 오겠지?


정말 거의 한 달이 걸려 도착 했다. 아마 Tonga에서 보내온 모양이다. 판매자 정보에는 분명 중국이었던거 같은데.. 어쨌든 뜯어 보자.


봉투안에 들어 있는 생선 꼬리 2개.. 어이가 없다..


흥분한 마음을 가라 앉히고 주문 내역으로 간다. eBay의 주문 내역을 보면 반품 요청할 수 있는 메뉴가 있다.



Return this item 버튼을 클릭하면 사유를 선택하고 간단한 설명과 사진을 첨부 할 수 있다.


Return 요청 완료.


3 business days 이후에도 판매자의 응답이 없거나 문제가 해결되지 않으면 eBay에서 48시간내에 해결 해 준다고 한다. 기다려 보자.


2020.02.09


주말이라 판매자에게 연락이 안올줄 알았는데 메세지가 왔다.


환불 해 줄테니 부정적인 feedback을 남기지 말아 달라는 부탁이다. 물론 그렇게 할테니 빨리 환불해 달라고 요청 했다.


오후에 확인해 보니 판매자가 나의 환불 요청을 받아 들였다는 메세지가 왔다. 환불 신청을 토요일에 했기 때문에 주말이 지나고 나서 처리가 될거라 예상 했는데 생각보다 빠르게 처리 되었다. 환불 요청이 받아 들여지기 까지 만 하루 정도 걸린거 같다.



Returns and canceled orders에서 확인해 보니 환불이 완료 되고 사건(case)이 종료 되었다고 표시 된다.

하지만 아직 카드 결제가 취소 되거나 돈이 입금 된것은 아니다. 실제 카드 결제가 취소 되기까지는 2~3일 정도 더 걸릴거 같다.


2020.02.11


대만 출장 중 카드 결제가 취소 되었다는 문자 메세지를 받았다. 결제 한 금액이 정확히 환불 되었는지 확인해 보자.


01/05 결제 정보


02/09 결제 취소 정보


문자를 받은건 02/11이지만 판매자가 02/09에 바로 취소 처리를 했던거 같다. 이용일자가 02/09로 표시 된다. 어쨌든 수수료 포함하여 결제 되었던 금액이 모두 환불 되었다.


사건 종료.


반응형
Posted by J-sean
:
반응형

사실 일반적인 용도로는 사용하기 어려울 정도의 낮은 성능을 예상하고 라즈베리 파이에 별 관심을 두지 않았었다. 오히려 아두이노의 활용도가 더 높지 않을까 생각했었고 여러가지 간단한 프로젝트를 연습해 보며 어디에 활용하면 좋을까 고민하곤 했다.


하지만 Raspberry Pi 4 Model B의 생각보다 괜찮은 성능과 함께 이전 모델인 Raspberry Pi 3 시리즈로도 레트로 게임 에뮬레이터는 충분히 구동 가능하다는 사실을 알고 부터는 점점 관심이 생기기 시작 했다. 게다가 기본 운영체제가 Ubuntu 기반의 리눅스이기에 C나 Python등의 언어를 사용한 프로그래밍도 가능하다는 것을 알게 되었을땐 더 이상 망설일 이유가 없었다.


처음 구매 했던 Raspberry Pi 4 Model B


그렇게 한 달쯤 전 라즈베리 파이 4를 구매해서 Raspbian을 설치하고 여러가지 간단한 테스트를 해 보았다. Raspbian이라는 운영 체제에 4GB의 램은 생각보다 쾌적한 사용 환경을 보장해 주었다. 하지만 이전 모델에 비해 비싼 가격은 약간의 부담이었고 대단한 성능이 필요하지 않은 작업은 $40 정도의 이전 모델로도 충분하지 않을까 하는 생각에 Raspberry Pi 3 Model B를 구매했다.


2020/01/16 - [Raspberry Pi] - Raspberry Pi Raspbian 설치 후 업데이트, 한글, 고정 IP, VNC, Samba 설정


라즈베리 파이 3 모델 B 상자


뒷면


상자를 열면 간단한 안전 정보와 정전기 방지 비닐안에 라즈베리 파이가 들어 있다.


누구도 읽지 않을 라즈베리 파이 안전 정보



라즈베리 파이 3 모델 B


같이 구매한 방열판


방열판 뒤에 붙어 있는 스티커를 떼고 붙여 준다.


같이 구매한 케이스


선명한 산딸기 마크



랜포트와 USB포트가 나오는 구멍이다.


전원, HDMI, 오디오 포트가 나오는 구멍


케이스 뒷면과 미끄럼 방지 패드


라즈베리 파이를 장착하기 위해 분해 한다.


라즈베리 파이 장착



케이스 조립 완료 후 랜포트와 USB포트 모습


전원, HDMI, 오디오 포트도 잘 확인 된다.


미끄럼 방지 패드를 붙여 준다.


우선은 조카들과 함께 게임을 하기 위해 레트로 파이를 설치하고 이것 저것 테스트해 볼 계획이라 알리익스프레스에서 게임패드를 주문 했다. 코로나 바이러스 때문에 대부분의 알리익스프레스 판매자들이 9일까지 쉬니 아직 한참 기다야 할거 같다.


반응형
Posted by J-sean
:
반응형

몇 년전 선물받은 삼성 laptop이 한 대 있다. 굉장히 작고 가벼운 laptop이지만 무게만큼이나 성능도 가벼운 내 소중한 laptop. RAM은 8GB로 크게 부족하지는 않기에 다른 업그레이드 가능한 부품인 SSD를 128GB에서 256GB로 교체하기로 결정하고 분해를 시작 했다.


사실 laptop 분해라고 해봐야 케이스를 열어 보는 정도이지만 케이스 손상(scratch) 없이 분해하기는 쉽지 않다.


Laptop을 뒤집고 눈에 보이는 나사를 모두 풀어 준다.


다행히 모서리에 있는 미끄럼 방지패드는 4개는 뜯지 않아도 된다.


힘을 주어 한쪽 모서리 틈을 살짝 벌려서 열어 준다. 위 사진과 같은 모양의 걸쇠가 있으니 참고 한다.


한쪽 모서리가 열리면 다른 모서리는 쉽게 열 수 있다. 케이스가 휘거나 부러지지 않게 조심 한다.



다 열었다. CPU fan, RAM, SSD, battery, cable등이 보인다.


사진이 좀 어둡게 나왔지만 오른쪽 상단에 SSD가 보인다.


좀 더 가까이서 보자. LITE-ON SSD가 나사 하나로 고정 되어 있다.


나사를 풀고 살짝 들어 올려서 뽑아 준다. 새로운 SSD를 같은 방식으로 장착하고 분해의 역순으로 조립.


새로 윈도우를 설치하고 잘 사용해 준다.

끝.


반응형
Posted by J-sean
:
반응형

간단한 웹서버용 HTML 문서 작성 예제


2019/10/08 - [Linux] - Build your own web server with Fedora linux - 페도라 리눅스로 간단한 웹서버 만들기


아래 내용으로 index.html 파일을 작성 하고 /var/www/html에 저장 한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<!doctype html>
<html lang="ko">
    <head>
        <meta charset="utf-8">
        <title>J.Sean's simple web server</title>
        <style>
            a{
                text-decoration:none;
                color:black;
            }
 
        </style>
    </head>
 
    <body>
        <h1>
        <br>--- J.sean's simple web server ---
        <br>OS: Fedora
        <br>HTTP Server: Apache
        <br>
        <a href="https://s-engineer.tistory.com/" target="_blank">Click me to visit J.Sean's blog</a><br><br>
 
        Alien 3<br>
        <video src="./data/Alien.mp4" width="960" height="520" autoplay controls>
        <track label="Korean" kind="subtitles" srclang="ko" src="./data/Alien.vtt" default></video><br><br>
        
        <a href="https://s-engineer.tistory.com/" target="_blank">
        <img src="./download/animal.jpg">
        </a>
 
        <br>
        <a href="./download/file.zip" download>File (file.zip)</a><br>
 
        </h1>
    </body>
</html>



./data, ./download 디렉토리를 만들고 index.html 내용에 필요한 데이터를 저장 한다.


서버에 접속하면 비디오 플레이어, 웹링크, 파일링크, 사진등이 표시된 웹 페이지가 열린다.


반응형
Posted by J-sean
: