고급 개발자로 가는 길
반응형

OS 24

[Linux] vim 에디터 설치

보드 초기 셋팅 시 에디터로 쉘 Script 등 여러 Script 를 수정 할 일이 생긴다. 이럴때 vim apt-get 에디터 설치가 안되어있으면, vi, nano 에디터를 사용해야 하며, 키가 basic 상태로 일반 키와 많이 다르다. 물론 basic 상태 hjkl 등을 사용하여 익히는 것도 좋지만, 편리한 방법도 고려해볼 수 있다. 아래 명령어를 진행한다. sudo apt-get update sudo apt-get install vim 아래와 같은 진행이 이루어진다. Get:1 http://archive.raspberrypi.org/debian buster InRelease [32.6 kB] Get:2 http://raspbian.raspberrypi.org/raspbian buster InRele..

OS/Linux 2022.01.20

[Linux] Alias 에일리어스 등록하기

처음 보드 등을 설정하게 되면 Alias의 필요성을 가장 느끼게될 것이다. 바로 ll... alias 는 별칭의 뜻으로 재부팅 시 지정해준 별칭을 잃어버리지 않고 기억해두어 다시금 원하는 별칭을 사용할 수 있게 해준다. 아래 경로 접속 시 초기에 되어있는 Alias 등을 확인 할 수 있다. cd /home/pi vi .bashrc 아래와 같이 되어있으며, # 주석 해제 후 사용할 수도 있으며, 추가도 가능하다. 개발을 진행하다보면 길고 많은 명령어를 저장하게 될 것이다. # ~/.bashrc: executed by bash(1) for non-login shells. # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) # ..

OS/Linux 2022.01.20

[Custom OS] shell script EtherNet dropped 패킷 검사 하기

리눅스에서 쉘 스크립트를 이용하여 이더넷 RX TX dropped 패킷 검사하는 스크립트를 짜보았다. 보드의 EtherNET PORT 의 문제를 의심하고 있는 상황이라 이러한 검사를 진행하게 되었다. 위에서는 리눅스라고 설명을 하였지만, 실제로 사용중인 임베디드 보드는 커스텀 OS 이다보니 패키지 설치가 불가능한 상황이라, 일정 주기를 위한 crontab 사용이 불가능하였다. 그리하여 init demon rc1 ~rc6 에서 해당 스크립트를 부팅시 실행하고 스크립트 안에서 loop 돌며 검사를 하는 시스템을 만들었다. 1분마다 EtherNET Port RX TX dropped 를 체크하여 dropped 가 발생하면 이전값을 비교하여, log 를 남긴다. 이전 값을 비교하기 위해 시스템 변수인 export..

OS/Custom OS 2021.04.15

Linux bash 에서 oh my zsh agnoster 적용하기

본인은 리눅스 Moba x Term 을 개인적으로 자주 사용한다. 현재 사용중인 shell 은 bash 이다. 요즘 대세인 zsh 로 변경을 해보겠다. Install $ sudo apt-get install zsh 자동 shell script install 자동 설치 스크립트를 받기위해 아래 curl or wget 을 먼저 설치 후 아래 명령어를 진행해야 한다. sudo apt-get install wget sudo apt-get install curl Oh My Zsh install curl sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" wget sh -c "$(wg..

OS/Linux 2020.12.17

Ubuntu /var/lib/dpkg/lock-frontend 잠금 파일을 얻을 수 없습니다. 해결하기

apt-get 을 실행하려다 보면 아래와 같은 상황을 마주 할 수 있다. 간단한 해결방법 중 하나로 재부팅이다. reboot 이나 shutdown 을 사용하여 재부팅을 해도 된다. 이렇게 간단하게 해결하는 방법을 제외한 더 확실한 방법이 있다. lock 제거하기 바로 lock 이 걸린 파일을들 제거하는 방법이다. sudo rm -rf /var/lib/dpkg/lock-frontend 아주 정상적으로 잘 되는것을 확인할 수 있다. Package 설정 후 업데이트 sudo rm -rf /var/lib/dpkg/lock-frontend sudo apt-get install zsh Package 를 내려받아 Database 에 있는 의존성을 업데이트 한다. 이렇게 하면 완벽하게 해결이 된다.

OS/Linux 2020.12.17

rsync 암호 서버 동기화

블로그 비밀번호를 까먹었다는 사실을 인지한후 많이 반성했다... 바쁘다는 핑계로 관리를 너무 소홀히 했다... ㅠ 우선 rsycn 는 증분 방식의 백업을 지원한다. 나는 요녀석을 서버에서 로컬에다가 데이터를 백업 하려 한다. 추가로 백업을 자동으로 하기위해 crontab 설정을 진행 할것이다. 단,,1!!@~@!@! rsync 는 서버의 passwd 를 필요로 하는데 자동으로 하기위해 개인키를 통해 공개키를 서버와 동기화 할것이다. 그럼 crontab 에서 자동으로 rsync 사용이 가능하다. 시작해보자. crontab -e 0 0 1 * * rsync -avzc dohyeon@@********:/:/disk1/yona-1.12.0 /backup/yona/. 1>/dev/null 2>/dev/null 0..

OS/Linux 2020.11.18

커널을 분석해보자

http://www.iamroot.org/ldocs/linux.html#sec-1 Linux 3.9.11 분석 (x86_64) 64비트 efi 호출을 담당하는 루틴을 모아놓은 함수다. 64비트 호출 규약(rdi,rsi,r8,r9…)을 x64 EFI 호출규약(rcx,rdx,r8,r9)에 맞게 바꾸고 서비스를 호출한다. 여기서 efi_call 뒤에 붙는 0,1,2.. 숫자는 호출�� www.iamroot.org 진행 중 ~ 양이 방대하지만 계속 해나아가야지 지금은 STM 보드 쪽으로 개발중이라 마무리 되면 다시 kernel 을 보자 kernel 압축 풀어지는 과정 까지만 분석 완료.. 메모리 힙 스택 영역 까지만 분석함

OS/Linux 2020.05.19

uboot 모드 작업하기

uboot 에 대해 정리를 해볼까 한다. uboot 다 알겠지만 bootloader 이다. bootloader 는 bl0 bl1 bl2 로 나누어지며, bl0 은 internal ram 에서 boot type? 을 찾고 bl1 은 MLO 라는 이미지 파일로 bl2 를 실행해주는 역할을 한다. 4KB ~ 16KB 정도의 크기를 가지고 있다. bl2 는 U-boot.img 로 실제 우리가 흔히 알고있는 uboot 이다. 자 그럼 uboot Image 에 대해 더 들어가보자. uboot Image를 uart mode 를 통해 푸싱하고 uboot 모드로 들어가본다. uboot 모드에서는 ram 과 rom 에 write erase read 를 할 수 있다. 중요한 의미이다. uboot 는 rom 의 첫번째 블럭에..

OS/Linux 2020.05.09

shell script

linux 에서 엄청 유용하게 쓰이는 shell script 에 대하여 간단하게 정리를 해볼까 한다. 크게 쓰이는 용도는 여러 명령어나 빌드 과정 등을 sh 파일로 만들어 sh 만 빌드하여 복잡한 과정을 매우 간한하게 만들 수있다. 뿐만 아니라 Makefile 을 만들때도 shell script 와 매우 흡사하다. 완전 같지는 않고.. 초기 시작 시작은 vi 등의 에디터로 열어주면 된다. 그 다음 #!/bin/bash 로 설정을 해주어야 한다. bash shell 로 선택을 한다는 의미이다. 프로그래밍 언어에서 처럼 매크로를 설정해 줄 수 있는데 shell script 에서는 #define 이 아닌 TARGET=10 처럼 해준다. 단, 공백이 있어선 안된다. 문법 나머지 if else for while ..

OS/Linux 2020.05.08

UBI 혼자 끄적

두서 없이 써 나아가보겠다 UBIFS -------------------- UBI Volume -------------------- Unsorted block Image UBI -------------------- MTD Memory technology Device -------------------- NAND NOR Driver -------------------- NAND NOR Flash Memory 의 구조라고일단 정리를 해보았다. - UBI 란 우선 UBI 가 뭐하는 녀석이냐면.. UBI 는 Nand Flash memory 를 management 할 수 있는 system 이다. UBI 는 disk 와는 다르게 volum 으로 나누어져 있으며 UBI 를 통해 mtd(device) 에 mapping..

OS/Linux 2020.04.29

임베디드 리눅스의 구조

root filesystem - 어플리케이션이 존재하며, 실제 사용자의 인터페이스를 제공 ---------------------- operating system - 사용자나 어플리케이션 들의 요청사항을 처리, 하드웨어 및 전체 시스템을 제어 ---------------------- bootloader - 하드웨어 초기화 등 부팅환경 설정하고 운영체제를 실행 --------------------- 1. bootloader bootloader = bl0, bl1, bl2 구성 bl0 - 주로 전원이 들어오면 BIOS 에서부터 시작되서 MBR 을 찾게되고... 그 다음 어떤 모드로 부팅을 하면되고 셋팅하면되는지를 찾게되며 CPU internal 에 있는 iRom에 있는 코드를 읽어서, iRam에서 수행?된다...

OS/Linux 2020.04.25

Memory 에 관하여

Memory 란 무엇인가. bios에 전원이 들어와서 MBR 에서 부트로더를 메모리에 적재 시키면 부트로더는 메모리 Rom, Ram을 휘젓고 다니며 init 프로그램을 실행시켜 리눅스 커널을 동작 시킨다. 부트로더가 Rom 과 Ram 을 휘젓고 다닌다고 하였는데 사실은 블럭을 이동하며 실행된다. 우선 Memory의 구조를 이해해야 하는데, 위와 같이 간단하게 살펴보자면, Rom 은 비활성 Flash Memory 이며, Ram 은 휘발성 Memory 이다. 먼저, XIP 를 이해해야 하는데 XIP(excute in place) 로 Random access 가 가능하며, 메모리 상에서 직접 code, program 을 실행 할 수 있다는 것을 의미한다. Ram 은 모두 xip 가 지원되며, Rom 에서는 N..

OS/Linux 2020.03.17

APM 및 게시판 설치하기

APM 은 웹 서버인 apache, 웹 프로그래밍 언어인 PHP, 데이터베이스인 MariaDB 를 묶어서 APM 이라고 칭한다. php 패키지를 설치해서 APM 에 연동시켜야 하고, 이를 활용한 웹 응용프로그램으로 게시판을 만들어 보자. /var/www/html/ 경로에 phpinfo.php 파일을 아래와 같이 생성해준다. 웹브라우저에서 ip주소/phpinfo.php 접속 했을 때 정상 접속 확인을 위한 절차이다. 아래와 같이 생성되면 정상 php 가 설치됨을 확인할 수 있다. APM 환경에서 제공하는 게시판 중 제로보드와 그누보드가 있는데 본인은 그누보드로 사용해보겠다. 그누 아카이브 파일을 해제하여 아래 경로에 압축을 해제하여 준다. 아카이브 파일을 경로로 웹브라우저로 접속하면 아래와 같은 창이 뜬다..

OS/Linux 2020.03.14

Network Manager

리눅스에서는 windows 와 같은 ip를 사용하며 network manager라는 패키지를 제공한다. 데몬의 동작 유무를 확인하며, active 가 아닐 시 start 해준다. Network Manager 에는 nmcli, ip, ipconfig 등이 존재하지만 본인은 nmcli 를 사용해 보겠다. general 을 사용하여 현재 net 연결 상태를 확인해본다, 정상적으로 연결 되어있음을 확인할 수 있다. 우선 networking 을 활성화 해야 한다. ens33 디바이스 장치에 연결이 되어있으며, 프로파일은 유선 연결 1 이다. connection 을 사용하여 원하는 ip 와 type 을 설정할 수 있다. /24 는 24bit 를 서브넷마스크로 설정하겠다는 의미이다. 설정한 ip 와 type 으로 연..

OS/Linux 2020.03.14

웹 서버 설치 및 사용해보기

리눅스에서는 아파치를 통해 웹 서버를 제공한다. 아파치 사용을 위해 apt 로 apache2 를 설치한다. systemctl 을 통해 데몬의 동작 유무를 확인한다. ps를 통해 보았을 때 apache가 여러 프로세스로 실행 중이며, 독자형 데몬이라는 것을 알 수 있다. /var/www/html 이라는 경로는 아파치 데몬의 고유 경로로 이곳에 html 을 아래와 같이 생성한다. ip는 리눅스 의 ip로 접속하여 html 파일 이름을 동일하게 작성하여 접속하면 아래처럼 생성된다. 위 웹서버를 관리하는 디렉터리인 /var/www/html 은 리눅스를 사용하는 여러 사용자가 공용으로 사용할 수 있는 디렉터리가 아니다. 일반 사용자 계정에서 웹 페이지를 작성하고 서비스하는 방법을 알아보자. 우선 아파치 설정 파일..

OS/Linux 2020.03.14

MariaDB

리눅스에서는 mysql 과 mariadb 를 지원한다. 최근에는 mysql 에서 mariadb 를 많이 사용하는 추제이므로 mariadb 를 사용해 보겠다. 먼저 apt 를 사용하여 mariadb 패키지를 설치한다. 데몬이 실행 중인지 확인하고, sudo 를 사용해야 접속이 가능하다. 기존에 database 에는 information, mysql, performance DB 가 존재하며, 작업을 위해 새로 생성한다. st_db 이름의 database 를 생성하고 DB 안에 st_info, st_grade 테이블을 생성한다. Table 생성 시 필드명과 타입을 설정 해주어야 한다. varchar 은 가변을 뜻한다. alter 을 통하여 테이블을 수정할 수 있는데 아래는 ST_ID 라는 필드에 int 를 사..

OS/Linux 2020.03.14

디스크 파티션, 파일시스템, 마운트

Virtual Machine 으로 만들어 놓은 SCSI 하드 디스크에 이어서 3개의 디스크를 생성해보았다. 1GB 씩 3개를 추가 생성하였으며, 디스크를 추가 한 후에는 파티션을 생성해 주어야 한다. windows 에서 C: D: 처럼 사용하기 위함이라고 이해하면 편하다. sudo fdisk -l 을 사용하여 전체 디스크의 파티션 정보를 확인한다. fdisk 를 사용하여 /dev/sdb 의 파티션을 새롭게 생성한다. 500MB SIZE 인 파티션 sdb1, sdb2 를 생성하였다 파일시스템을 생성하기 위한 설정이 저장된 파일이다. sdd2 장치에 ext4 저널 가능한 파일시스템으로 생성을 해주며 -v 옵션으로 상세출력한다. 최종적으로 3개의 디스크를 추가하여 파티션을 나눈 후 파일시스템을 생성까지 해보았..

OS/Linux 2020.03.13
반응형