본문 바로가기

linux70

alsa.conf alsa-utils reload 예제 alsa.conf alsa-utils reload dmixer의 파라미터 관련하여 /usr/share/alsa/alsa.conf 를 수정해야 할 일이 있었다. conf 파일을 수정한 후 재반영 방법을 생각도 않고 장치를 껐다 켰다 반복을 했다 -_-; 이제 세션 다 끊어가며 재부팅 시간 기다리지말고 alsa-utils 를 이용해 재반영을 하자. /etc/init.d/alsa-utils restart 2021. 12. 29.
시스템 로그(syslog) 종류, 비활성화 방법과 예제 시스템 로그(syslog) 종류, 비활성화 방법과 예제 임베디드 시스템에서 개발 및 운영을 하다 보면 맞닥뜨리는 문제 중 하나인 디스크 용량 관리에 대한 이야기다. 본인도 그렇고 다른 개발자도 마찬가지겠지만 로그 관리를 위해서 circular queue 형태의 로그 파일을 생성한다던가(e.g. 하나의 프로그램 당 10mb 용량의 순환 바이너리 로그를 사용함) 디버그 메시지를 화면에 현시하는 정도로 쓸 것이다. 하지만 시스템 애플리케이션은 어떨까. 시스템, 로그인, 웹서버 데이터 베이스 등등 /var/log 에 acceess/fail/auth 관련 로그를 마구 찍어내다 보면 디스크 용량이 얼마 되지도 않는 임베디드 시스템 환경에선 그런 로그들이 금세 쌓여 치명적인 문제로 다가온다. 그러한 문제를 시스템 로.. 2021. 12. 29.
[C/C++] ALSA PCM capture(recoding) 소스 코드 공유 ALSA PCM capture, ALSA recoding https://github.com/muabow/home/tree/main/src/cpp/pcm_capture GitHub - muabow/home: C/C++, PHP, GO source/library C/C++, PHP, GO source/library. Contribute to muabow/home development by creating an account on GitHub. github.com Linux ALSA driver를 이용한 audio capture 프로그램 샘플을 작성하였다. 코드 내에 주어진 파라미터 대로 오디오를 읽어 capture event handler를 통해 pcm raw 파일로 저장한다. 동작을 위한 내용은 READM.. 2021. 12. 28.
vimrc 공유 / linux vi, vim vimrc 공유 본인이 오랫동안 사용하고 있는 vimrc 파일을 공유한다. 뭐 특별한 게 있는 건 아니고 vim을 처음 사용하면 너무 메모장 같은 화면에 당황하시는 분들이 있어서 이런 패턴으로 사용한다라고 알려주고 싶었다. 우선 vim 은 linux의 편집기이다. 텍스트 외에 코드, 바이너리까지 모두 편집할 수 있는 강력한 도구이다. vimrc 파일은 사용자 계정의 home 디렉터리에 위치하고 숨김 파일로. vimrc로 작성한다. (e.g. /home/muabow/.vimrc) vi와 vim은 다르니 vim 이 없다면 apt 등을 통해 설치해야 한다. vimrc의 구성은 다음과 같다. set noshowcmd set showmode set wrap set laststatus=2 set autoindent.. 2021. 12. 28.
sshpass 를 이용한 ssh 접속 방법 설명 sshpass 를 이용한 ssh 접속 방법 sshpass는 비대화형으로 ssh 비밀번호를 입력해주는 명령어이다. 우선 sshpass 가 설치되었는지 확인한다. dpkg -l | grep sshpass iisshpass1.05-1amd64Non-interactivessh 설치가 안되어있다면 apt-get 을 이용하여 설치하자. sudo apt-get install sshpass [sudo] password for muabow: 패키지 목록을 읽는 중입니다... 완료 의존성 트리를 만드는 중입니다 상태 정보를 읽는 중입니다... 완료 sshpass is already the newest version (1.05-1). 다음 패키지가 자동으로 설치되었지만 더 이상 필요하지 않습니다: libexpat1:i386.. 2021. 12. 28.
linux wget 을 사용한 간단한 web server alive check 예제와 공유 wget 을 사용한 간단한 web server alive check 이번 wget 을 사용한 alive check 의 대상으로 google.com 을 써본다. wget --timeout=1 --tries=1 --spider http://google.com 2>&1 | grep -c '200 OK' wget 옵션을 살펴보자. --timeout=1 타임아웃을 지정한다. 응답까지 1초만 대기한다. --tries=1 시도횟수를 지정한다. 1회만 시도한다. --spider http://google.com 대상을 다운로드하지 않고 체크만 한다. 대상 URL 의 상태를 체크한다. | grep 을 제외한 명령문의 결과부터 확인하자. wget --timeout=1 --tries=1 --spider http://googl.. 2021. 12. 22.
[C/C++] C언어 main 함수 전/후에 함수를 실행 하는 방법 C언어 main 함수 전/후에 함수를 실행 하는 방법 10년 전쯤에 이런 질문을 받은 적이 있다. C언어에서 main 함수 전/후에 뭔가 print를 찍는다거나 함수 등을 실행하는 행위를 할 수 있냐고. 나는 안될거다고 얘기했다. C의 entry function 이 main이라 stack의 시작과 끝은 main 함수이기 때문이라 생각하기 때문이다. 근데 물어보신 분은 맞는지 틀리는지 대답을 해주지 않으셨고 어느날 불현듯 그 질문이 생각나서 찾다 보니 가능하다는 글을 보아 갈무리를 하였다. 갈무리 역시 6년 전이지만 정리하는 습관을 기르기 위해 남겨본다. 출처와 내용은 다음과 같다. http://www.geeksforgeeks.org/functions-that-are-executed-before-and-a.. 2021. 12. 21.
POST 시 수신 측에서 데이터 짤려서 받을 때 POST 시 수신 측에서 데이터 짤려서 받을 때 웹 페이지에서 새로운 윈도 팝업을 띄우면서 post를 하는 간단한 동작을 만들었다. 현재 프로토 타입이라 json 데이터는 약 8만 바이트를 약간 넘는 작은 사이즈임에도 불구하고 데이터 일부가 유실되는 상황이 발생하였다. 처음에는 보내는 쪽을 console.log 및 F12 개발도구에서 request / response 데이터를 살펴보았지만 request 데이터는 정상적으로 송신하였고 response는 받은 만큼만 처리해서 응답하는 것을 확인하였다. 그래서 다른 해결 방법을 찾으려 linux 내에서 apache2 error 로그를 확인하다보니 재미있는 문장을 발견하였다. tail -f /var/log/apache2/error.log [Tue Dec 21 0.. 2021. 12. 21.