프로그래밍 92

s906b sound card probe 살펴보기

sound card의 platform_driver 위와 같이 드라이버를 module_platform_driver로 등록시켜주면, 보일러 플레이트에 의하여 regitser, unregister로 확장된다. 이후에 platform_driver가 등록되고, 이름이 같은 platform_device가 platform_device_register로 등록되면 driver의 probe가 호출된다. - probe가 호출되는 과정 : platform_add_devices -> platform_device_register -> platform_device_add -> device_add -> bus_probe_device -> device_initial_probe -> __device_attach -> __device_a..

s906b alsa sound card 코드 따라가기

sound/soc/samsung/rainbow_prince.c 1) Platform driver 드라이버 정의 이름이 "rainbow-sound"인 platform_driver를 등록 probe, remove member ops는 - rainbow_sound_probe, - rainbow_sound_remove 함수를 이용 * platform_driver: include/linux/platform_device.h 정의 * platform device, 가상 버스인 플랫폼 버스에 연결되는 hot plugin 미지원으로 항상 연결되어 있음이 보장되어 있는 장치라고 한다. 주로 device-tree에 정의(항상 연결되어 있으니 실제 장치 확인 필요 없음)한다 함?? [MODULE_DEVICE_TABLE 관련 ..

삼성 S906B (S22+) 리눅스 커널 다운 및 vim, cscope, ctags 준비

1. S906B(S22+) 커널 다운로드 삼성 오픈소스 사이트에서 S906B 검색 후 다운로드 https://opensource.samsung.com/uploadSearch Samsung Open Source Samsung's Key Value for Open Source Samsung believes that the practice of open source is the key to preparing for future technologies. Openness It means having an open mindset and open engagement, and is not simply defined as public disclosure. Collaborati opensource.samsung.com 2..

MySql - DB 저장 위치 변경 & 디스크 변경 (데이터 복사)

MySQL 데이터 저장 위치를 변경 (파일 위치 변경 또는 디스크 변경) 및 파일 데이터 복사 1) DBMS 끄기 sudo service mysql stop 2) 현재 저장 디렉터리 확인 mysql client로 확인 sudo mysql select @@datadir; 또는 cnf 파일로 확인 grep -nri datadir /etc/mysql grep 명령어로 검색하면 datadir이 명시된 파일 위치가 나온다. 내 경우 /etc/mysql/mariadb.conf.d/50-server.cnf 였음 위 파일 열어보면 알겠지만 해당 파일에 정의한 datadir이 mysql client로 나오는 것 3) conf 변경 /etc/mysql/mariadb.conf.d/50-server.cnf 내 ... # # ..

동일한 요청을 여러 서버에 Broadcasting 해주는 NginX mirror

1. 하나의 요청을 여러 서버가 알아야 할 때 아래의 그림과 같이 한 서버에 요청을 릴레이 하면서 또 다른 서버가 해당 요청을 알아야 할때 사용할 수 있는 mirror 기능이다. 2. NginX conf location / { mirror /mirror; proxy_pass http://location.to; } location /mirror { internal; proxy_pass http://location.to.mirror; } location으로 /mirror을 등록하고, internal 지시어를 통하여 해당 path는 내부적으로만 접근할 수 있게 강제한다. (외부에서 도메인이나 ip타고 들어오는 경우엔 접근할 수 없다는 의미) 그리고 해당 path에 proxy_pass를 설정한 다음 등록을 원하..

2. 일렉트론(node)에서 웹 페이지 크롤링 하기

2. 일렉트론(node)에서 웹 페이지 크롤링 하기 1. 왜 일렉트론에서? 굳이 크롤링을 서버 프로그램처럼 돌릴 필요가 있을까에서 시작되었다. 사용자가 편하게 필요한 내용을 크롤링하는 것. 굳이 서버에 요청하지 않아도 손쉽게 크롤링 결과를 얻을 수 있다는 점이 일렉트론과 크롤러를 합치는 이유가 아닐까 싶다. 2. 예제 코드 예제 코드에 앞서 크롤링에는 axios와 cheerio를 사용했으며, 둘 다 npm install axios cherrio --save 명령으로 설치해주면 된다. const { app } = require('electron'); const axios = require('axios'); const cheerio = require('cheerio'); app.on('ready', ()=>..

1. Electron 설치 및 간단한 예제

1. Electron 설치 및 간단한 예제 (1) npm init 일렉트론 예제 코드를 실행할 디렉터리로 가서 npm 설정을 초기화 해준다. npm init을 실행하여 기본적인 프로젝트 정보를 입력하면 된다. 이후에 scripts 항목에 일렉트론 실행을 위해서 "start" : "electron ." 을 추가해주자. (2) Electron 설치 npm을 이용하여 electron을 설치해준다. 개인적으로 로컬에 설치하는 것을 선호해서 npm install electron --save으로 했다. (3) 예제 (1)에서 추가한 명령어를 통해 npm start 명령으로 실행할 수 있다. 이때 electron이 전달받은 매개변수에 스크립트가 따로 없으면 해당 위치의 main.js를 자동으로 실행한다. 따라서 ma..

페이스북으로 공유카카오톡으로 공유카카오스토리로 공유트위터로 공유URL 복사