리눅스 12

pinctrl-names과 pinctrl

1. GPIO 일반적으로 하나의 gpio 핀은 여러 기능을 수행할 수 있다. 예를 들면 UART, I2C, SPI 등, 설정 가능한 여러 기능이 있으며 현재의 configuration에 맞게 동작한다.  설정할 수 있는 값은 일반적으로 아래와 같다. (1) 기능(인터페이스) 설정 : i2c, i2s, spi, uart등 (2) 핀 설정 : pull up/down, value 설정등 (3) 그룹 설정, 핀들을 모아 특정 인터페이스를 세팅  2. GPIO configuration GPIO 설정은 당연히 kernel pinctrl driver를 통하여 하나씩 설정할 수 있다. 일반적으로 enable이나 interrupt 핀의 경우, driver에서 gpio를 컨트롤하는 방식을 많이 사용한다.  하지만 여러개의..

[WSL] 간단하게 윈10에서 Linux 사용하기

[WSL] 윈도우 terminal 설치와 우분투 실행 1. 윈도우즈 10 WSL WSL : Windows Subsystem for Linux로, 윈도우즈 10에서 네이티브 형식으로 리눅스를 실행할 수 있도록 지원하고 있다. 윈도우즈 10의 버전에 따라 WSL의 설치 가능 여부가 결정되니, 최신 상태를 유지하도록 하자..? 2. 설치 과정 [1] powershell를 관리자 권한으로 실행하여 다음 명령어를 실행하여 주자. dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatf..

Bash 2차원 배열 정의 및 Loop 탐색

Bash 2차원 배열 정의 및 Loop 탐색 Bash에서는 1차원 배열만 공식적으로 지원하기 때문에 2차원 배열을 사용해야 하는 경우에는 배열을 선언하고 그 배열을 다시 배열에 넣는 과정을 거쳐야한다. 1. Bash 코드 row1=("1" "2" "3" "4" "5") row2=("6" "7" "8" "9" "10") records=(row1 row2) for record in ${records[*]} do row="$record[*]" echo "Row --- " $record for col in ${!row} do echo $record $col done done 2. 실행 결과 Row --- row1 row1 1 row1 2 row1 3 row1 4 row1 5 Row --- row2 row2 6 ..

[리눅스] Shell script와 Make 파일 이용하여 설치 간소화하기

1. 서론 개인적인 개발 요청이 들어와 리눅스 기반으로 프로그램을 개발했고 전원이 인가되면 항상 자동으로 프로그램이 동작해야했기 때문에, 이전 글([라즈베리파이 / 리눅스] init.d 서비스 스크립트 작성을 통한 시작 프로그램 만들기)에서와 같이 init.d에 등록해서 시스템 시작시에 동작하도록 최초 1회 설정해야 한다. 처음에는 install.sh와 같이 쉘 스크립트를 작성해서 전달해주었는데, 알고보니 프로그램을 압축해제한 다음 실행 권한을 주어야 동작한다. 당연하게도 이 경우를 대비해서 실행 권한을 주는 명령어를 전달해주었지만, 제대로 사용하지 못할게 불 보듯 뻔하니 코드를 조금 수정해서 간단하게 프로그램을 설치할 수 있도록 했다. 2.install.sh에 실행 권한 부여하기 쉘 스크립트에 실행 권..

[리눅스] 인터넷 NTP 이용한 시간 동기화와 강제 설정 방법

1. 서론 리눅스기반으로 프로젝트를 진행하면서, 시간 동기화 이슈가 발생했다. 특히 라즈비안 기반의 라즈베리파이에서 RJ45를 이용한 인터넷 사용시 자동으로 동기화가 되지 않는 문제가 있었다. (라즈베리파이에는 RTC가 없기 때문에 전원을 재인가하면 시간이 안맞다.) 일반적인 상황이라면, 인터넷에 연결되었을 때 자동으로 시간을 동기화되지만 그렇지 않은 경우도 발생하여, 코드로 강제 동기화 하는 코드를 작성했다. 2. 현재 시스템 시간 확인하기 리눅스에서 현재 시스템 시간을 확인하기 위해서는 timedatectl을 이용하면 된다. timedatectl의 자세한 사용 방법은 제타 위키를 확인해보자. 링크 3. NTP를 이용한 시간 동기화 NTP는 Network Time Protocol으로 네트워크상에 시간 ..

[라즈베리파이/리눅스/우분투] RS232/RS485 to USB 장치 포트(ttyUSB) 검색 방법 및 코드

라즈베리파이(raspberry pi)에서 serial to ttl usb 컨버터 장치를 통해 통신을 하기 위해서는 장치명이 아닌 포트위치가 필요하다. 포트 위치는 /dev/ttyUSB1과 같이 디렉터리이며, 여기서 USB0, USB1...의 장치는 연결되는 USB 장치의 개수에 따라 달라진다. 물론 이 포트 위치는 제조사와 장치 명칭을 통해서 고정하여 쓸 수 있다. 하지만 장치는 언제나 동일 기능을 수행하는 다른 장치로 변경할 수 있으므로 나는 Device ID를 이용해서 해당 장치의 포트를 알아내는 방식을 선택했다. 우선 크게 동작하는 방법을 알아보면, 1) Device 입력 및 해당 device가 존재하는지 확인 configuration파일을 통해서 장치ID를 입력 받을 것이므로, 입력받은 ID 값이..

[리뷰] NEXI USB3.0 기가비트 랜카드

이전에 내부망을 기가비트로 쓰기위해서 [컴퓨터] ip 타임 기가비트 랜카드 구매, 설치기 (WoL : Wake on Lan)포스트를 쓴적이 있다. 마찬가지로 이 블로그의 서버를 돌리는 노트북의 랜카드도 기가비트로 바꾸기 위해서 USB 3.0 기가비트 랜카드를 구매하였다. 노트북은 ASUS G501JW인데 이상하리 만큼, 사양에 비해서 제공되는 유선랜카드는 USB2.0 100M 랜카드이다. 그래서 외부로 나가는 ip는 2.0 랜카드에 내부망에서 사용하는 랜카드는 이번에 구매한 기가비트 랜카드에 연결하였다. 일단 구매한 제품은 넥시라는 회사에서 판매하는 제품으로 USB3.0과 기가비트 스펙이있다. 구매는 컴*존해서 했다. 가격이 싸서... 랜카드의 박스는 이렇게 생겼다. 박스의 후면에는 스펙이 적혀있다. 하..

일상/리뷰 2019.03.21

[리눅스] C9.io Remote SSH authorized_keys 설정

까먹지 말자 Ubuntu를 설치하고, 가장 기본적으로 설치하는 openssh-server 이후, config 파일을 설정해야하는데, 지금까지 대충하다가 그냥 기록해두고 써먹으려고한다. 대부분의 default 세팅이 그러하듯, 거의 수정할 것이 없다. sudo apt-get update sudo apt-get install openssh-server --yes sudo apt-get install vim --yes sudo vim /etc/ssh/sshd_config 이후 sshd_config에서 설정해야 할 것은 RSAAuthoentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PasswordAuthenticati..

[리눅스] 다중 NIC에서 다중 Network 라우팅 문제 해결하기

다중 NIC(=네트워크 인터페이스 카드, 랜카드, RJ45...)에서 다중 Network를 사용할때 문제가 발생한다. 엄청 당연하게 랜카드가 여러개면, 해당 랜카드로 들어온 데이터를 당연히 그쪽으로 다시 보내는줄 알았지만, 그렇지 않단다. 대부분의 운영체제에서는 별도의 설정이 없으면, default gateway로 응답을 보낸다. 지금 내가 운영중인 서버 컴퓨터에는 NIC가 4개있고, 그중에서 1개는 공인 IP(고정), 나머지 1개는 내부망 라우터에서 제공하는 동적 IP를 적용했다. 근데 조금 특이한 환경이다. 우선 다른말로 하면, 내부망 IP Netmask가 2개이다. 192.168.0.X과 192.168.1.X처럼 [ 공인 동적 IP Router 1 Router2 Server #1 공인 고정 IP ]..

[서버] HP DL385 G7 Raid10 설치 및 우분투 16.04 디스크 마운트

DB 서버용도로 구매한 DL385 G7서버에 드디어, 디스크를 설치할 때가 되었다. 사실 DB 용량이 적지만, 나중을 위해서 Raid 1+0으로 구성했으며, 넉넉하게 1T로 구성했다. DL 385 G7 서버는 SFF 규격의 2.5 Sata 또는 SAS hdd만 연결되므로, 트래블스타 Z5K1 PMR로 구매했다. (시게이트 하드는 SMR 이슈로 인해서 패스) 1. 하드 구경 요즘 하드디스크가 정말 작게 나온다. 깜짝놀랐다. 정품 스티커와 정전기 방지 비닐에 포장되어있는 HGST Z5K1 디스크는 앞서 말한것 처럼 4개다 정말 얇다. SFF Tray(caddy)에 담아서 1~4번 베이에 연결했으며, 1,3(미러) 2,4(미러) 그리고 [1,3]-[2,4] 스트라이프의 1+0 레이드로 묶었다. 사실 레이드를 ..

일상/리뷰 2019.03.18
페이스북으로 공유카카오톡으로 공유카카오스토리로 공유트위터로 공유URL 복사