프로그래밍 93

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를 컨트롤하는 방식을 많이 사용한다.  하지만 여러개의..

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', ()=>..

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