목록Linux (15)
채록채록

root@raspberrypi:~# sudo raspi-confignumid=3,iface=MIXER,name='PCM Playback Route' ; type=INTEGER,access=rw------,values=1,min=0,max=3,step=0 : values=1ALSA(Advanced Linux Sound Architeture) 시스템을 통하여 mixer 설정한 것이다. PCM(Pulse code Modulation) 방식으로 재생되는 오디오 신호가 어느 출력(hdmi, analog jack)으로 전달될지, 즉 어느 경로로 오디오를 라우팅할지 설정하는 것이다.지금 여기선 raspi-config를 썼는데 직접 amixer 명령어를 통해 변경할 수도 있다고 한다. 이걸 이해하는 순간 왜 회사에..

https://chaekeun.tistory.com/entry/LinuxDebian-kernel-configuration-is-invalid%EC%98%A4%EB%A5%98-linux-headers [Linux\Debian] kernel configuration is invalid오류, linux-headers진짜 어제부터 잘 되던 커널모듈 예제가 컴파일조차 안되어서 미치는줄 알았다. 오류 내용은 다음과 같다.챗지피티에게 물어봐도 뻔한 대답을 하고(뭐 이것저것 잘 검토해보세요! 같은)검색해chaekeun.tistory.com이렇게 커널모듈 예제 하나도 제대로 잘 못따라하고 결국 하면서도 이게 뭐하는건지 잘 이해 못했던 나였지만,1. 디바이스 드라이버가 무엇인지 알고2. 라즈베리파이의 특정 커널 버전의 소..

현장실습 중인 회사에서 하고 있는 작업이 결국 이거를 더 원시적으로+불편하고+오래걸리는방식으로 디버깅을 하고 있는 것이라는 걸 알게되었다...라즈베리파이로 이 순서를 먼저 이해하고 나니 그동안 내가 해왔던 작업이 무슨 일들이었는지 흐름을 파악하는데 확실히 도움이 된다. rpi4 model B 구입SD-card 이미지를 구워서 넣었음이미지를 구워 넣는 프로그램을 라즈베리 홈페이지에 가서 다운 받아서 그 프로그램을 이용해서 SD-card에 설치했음그 이미지에는 uboot 부트로더, kernel8.img 커널 이미지가 핵심으로 들어가있음wifi 설정, ssh 설정터미널 실행해서 공유기가 잡아준 ip로 ssh 접속루트권한을 받기위해서 암호를 설정함project라는 폴더를 하나 만듬apt-get 명령을 통해서 필..

최근 yocto project 실습해본다고 데비안에 이것저것 설치해보고 했는데 뭐 언어 설정이 꼬였는지 키보드가 안먹기 시작했다. 그래서 블루투스 키보드로 연결해서 뭔가를 해보려고 해도 한영키가 안먹어서 이것저것 인터넷에서 검색해서 설정을 해봐도 잘 안되어서 결국 포맷했다. 키보드가 고장난 것이 아닌 운영체제의 설정 문제로 이렇게 키보드가 안먹을 수도 있다는게 신기했다.그런데 그 신기함도 잠시, 포맷했던 데비안 리눅스를 다시 설정하려니까 또 이것저것 깔아야할게 많아서 귀찮았다. 그러나 그래도 뭐 어차피 gui로 많이 이용할 용도도 아니기 때문에 괜찮을 줄 알았는데...bitbake 1.46.0을 설치하고 실행하려는데 자꾸 이런 오류가 났다. cannot import name 'Mapping' from '..

현장실습 중인 회사에서 개발중인 제품에 들어갈 프로그램의 구조에 대해 공부해보던 중, 스레드와 프로세스, 자원관리, 비동기적 처리 등등의 중요성을 깨닫게 되었다. 그래서 리눅스시스템프로그래밍 강의와 실습자료를 다시 보면서 공부중이다. 그런데 문득 pthread_create을 했으면 왜 꼭 pthread_join으로 기다려줘야하는가 하는 궁금증이 생겨 챗지피티에게 물어보았고 나름 생각을 하면서 봐야할 부분인 것 같아 정리해보는 글. pthread_join의 역할pthread_join은 호출된 스레드가 종료될 때까지 호출한 스레드를 block한다. 스레드가 종료되면 pthread_join은 그 스레드의 반환값을 가져오고, 자원을 정리한다. 종료된 스레드의 자원이 즉시 해제되지 않고/ 혹은 detach상태로 ..

진짜 어제부터 잘 되던 커널모듈 예제가 컴파일조차 안되어서 미치는줄 알았다. 오류 내용은 다음과 같다.챗지피티에게 물어봐도 뻔한 대답을 하고(뭐 이것저것 잘 검토해보세요! 같은)검색해서 한 방법도 잘 안되고, 업데이트했다가 재부팅도 해보고...실습 예제가 나와있는 책에서 하란대로 헤더도 설치했는데 안되었다. ㅠㅠ그런데 다른 사이트를 참고하여 linux headers를 '재'설치하니까 되었다.포인트는 '재'설치이다. 그냥 install 하면 안된다.그러니까 이제 드디어 컴파일된 것을 확인할 수 있었다. 내가 저 헬로월드를 출력하기 위해 이런 개고생을 했다니...살짝 자괴감들었지만 그래도 그 과정에서 알게된 것이 많았음에 의의를 둔다.1. 커널모듈 코드를 뜯어보며 모듈이 커널에 insmod될 때 호출되는 i..

뭐.. 하란대로 했는데그랬을 뿐인데..이런 개토나오는것들이 나옴. 그래도 재밌었던건 이론으로마나 보단 메모리주소가 나왔다는 것...난 다른 것들도 즐길려고 노력하고 성공한 경험이 있으니 이제 이것들도 즐길 수 있을거야.

나름 firefox 예뻐서 잘 쓰고 있었는데 사용 빈도와 난이도가 높아져감에 따라 한가지 큰 불편함을 느끼게 되었다. 그것은 바로 번역기 기능이다. 크롬은 구글 번역기 플러그인을 이용하기 쉬워서 그동안 영어로된 자료를 이용하는 것에 큰 불편함을 느끼지 못했었다... 그래서 어떻게든 firefox의 좋은 번역기 플러그인을 찾으려고 했으나, 페이지를 자동번역해주는 플러그인을 잘 못찾았다. 그러다보니 내가 chrome을 이용하기만 하면 끝날 문제를 굳이 시간을 낭비해가며 찾아야하는 이유는 무엇인가, 그렇다고해서 내가 firefox를 완전히 잘 이해하고 쓰고있는가, 하는 의문이 들었다. 심지어는 지금 이 글을 쓰고 있는데도 자꾸 무슨 이유에서인지 한영키를 칠 때마다 이런 firefox 설정창이 떠버려서 화가 ..

git설치도 뭐 별게 없었다. 그러나 한가지 처음 git을 설치했을 때랑 달라진 점이 있다면, git config --global user~ 의 명령어를 완벽하게 이해하고 썼다는 점. 딱히 추가로 학습한 적이 없음에도 명령어를 완전히 이해할 수 있었던 이유는 1. config : webpack설정할 때, apache 설정할 때 지겹도록 봤던 단어이다. 2. --global : 전역변수와 정적변수의 차이가 무엇인지 컴퓨터구조 수업 끝나고 찾아봤던 경험이 도움이 되었다. 둘 다 정적 메모리 영역을 사용하지만 전역변수는 분할 컴파일 환경에서 모든 소스파일과 함수에서 접근 가능하고, 정적 변수는 특정파일스코프/함수내부스코프로 접근이 제한된다는 점을 알게되었는데, 그 개념을 생각하니 --global 옵션을 주고 ..

참고한 블로그에서 하란대로 하고 가상환경도 만들고 거기에 django까지 깔고 startproject 명령어를 쳤는데 저런 난리부르스의 오류가 떴다. 그래서 챗지피티에게 물어보니 가상환경의 파이썬과 django의 버전 호환 문제였다. 생각보다 간단한 문제였어서 그냥 django를 업데이트 하는 것으로 문제를 해결했다. 그런데 여기서 중요했던 것은, 저런 난리부르스의 오류에서 sys.exit(execute_from_command_line()) self.fetch_command(subcommand).run_from_argv(self.argv) 부분이 너무 반가웠다는 것이다. 그 이유는 오늘 풀스택서비스네트워킹에서 argv에 대해서 짤막하게 배웠기 때문이다. 만약 그것을 배우지 않았다면 저런 오류난리부르스도 ..