본문 바로가기

programming/Linux

(17)
리눅스 커널 컴파일 [ubuntu kernel compile] 커널 컴파일 과정을 요약하면 커널 컴파일은 언제 하나? 커널은 시스템을 운영하기 위한 가장 기본적인 코드가 포함되어 있어야 한다. 즉, 장치 혹은 시스템의 기능과 관련된 변화가 있을 경우 새로운 커널을 생성해야 한다. 현재 시스템은 어떠한 장치가 장착되어 있으며, 어떠한 목적으로 시스템을 운영할 것인가에 따라 커널의 구성요소가 달라질 수 있다는 것을 의미하며, 현재 커널에는 어떠한 것들을 지원하는가에 대한 정보는 커널 소스 디렉토리에 존재하는 Documentation 디렉토리에서 해당 정보를 얻을 수 있다. 만약 현재 시스템을 운영하기 위해 필요로 하는 장치에 대한 정보나 기능에 대한 핵심 코드가 현재 커널에 존재한다면 굳이 커널을 업그레이드 하거나 새로 생성할 필요가 없다. 하지만 간혹 커널 자체에 보..
우분투 커널 5.0업그레이드 및 커널 수정 [How to upgrade linux Kernel 5.0~ on ubuntu 18.04 LTS with kernel compile] 전에 작성한 ukuu를 사용한 방법보다 추천하는 방법이다. 이유는 kernel source를 직접 다룰수 있고 커널에 필요한 모듈이 있으면 source해당 디렉토리에서 make하고 바로 insmod 할 수 있기 때문이다. 커널 소스다운로드 커널 컴파일 커널 설치 1) 커널 소스 다운로드 http://kernel.org [ The Linux Kernel Archives www.kernel.org ](https://www.kernel.org/) 위 사이트에서 커널 소스를 다운로드 할수 있습니다. 저는 stable인 5.1.5를 다운로드 했습니다. 2) 커널 컴파일 커널 컴파일에 앞서 필요한 패키지를 설치해야 합니다. $ sudo apt-get update $ sudo apt-get install build-..
우분투 커널 5.0 업그레이드 [How to upgrade linux Kernel 5.0 on ubuntu 18.04 LTS with ukuu] 해당 kernel upgrade는 간단하고 빠른 설치방법입니다. kernel source를 편집하거나 kernel source에서 모듈을 추가하거나 안정적인 동작을 원하시는 분들은 kernel complie을 통한 kernel upgrade를 추천해드립니다. 2019/05/31 - [프로그래밍/Linux] - How to upgrade linux Kernel 5.0~ on ubuntu 18.04 LTS withkernel compile How to upgrade linux Kernel 5.0~ on ubuntu 18.04 LTS withkernel compile 전에 작성한 ukuu를 사용한 방법보다 추천하는 방법이다. 이유는 kernel source를 직접 다룰수 있고 커널에 필요한 모듈이 있으면 so..
우분투 버전 업그레이드 방법 [How to upgrade ubuntu 18.04 LTS] ssh가 가능한 환경에서 원격으로 업그레이드하는 방법 순서는 다음과 같습니다. 1. 자신의 버전 확인 2. 패키지 업그레이드 3. 릴리즈 업그레이드 1. 자신의 버전 확인 현재 사용하고 있는 우분투의 버전은 /etc/issue파일에서 확인할 수 있습니다. jy-os@jyos-desktop:~$ cat /etc/issue Ubuntu 16.04.4 LTS \n \l 또는 jy-os@jyos-desktop:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.4 LTS Release: 16.04 Codename: xenial 2. 패키지 업그레이드 기존에 설치된 우분투 환경의 패키지등을 최..
hello 모듈 빌드하고 커널에 적재하기, hello 모듈 컴파일 hello 모듈 : "Ubuntu 16.04.5 LTS" , 4.15.0-33-generic에서 진행 함수 실행시간 측정 예제 : "Ubuntu 18.04.2 LTS", 5.1.5에서 진행(출처: https://jjudrgn.tistory.com/25 [jjudrgn's note]) 커널에 모듈을 적재하고 메세지를 띄우기 위해서는 다음과정이 필요하다. .ko파일 만들기 hello.c 와 Makefile을 만들고 make 모듈 로드 insmod hello.ko 메세지 확인하기 dmesg 먼저 hello.c파일을 만든다 hello.c #include #include #include static int __init init_hello(void){ printk(KERN_ALERT "Hello, kernel!\n..
커널과 모듈의 개념 커널(kernel)과 모듈(Module)을 간단히 파악해보면 커널이란? 커널이란 운영체제(Operating System)에서 가장 핵심적인 역할인 자원 (메모리, 프로세서등)을 관리하며 시스템이 원활히 돌아갈 수 있도록 제어해 준다. 현재 우리가 리눅스(OS)라고 하는것도 실제적으론 리눅스란 운영체제의 커널 이름을 말하는것인데 이것이 확장된 의미로 사용되어 현재의 '리눅스'란 OS를 지칭하게도 된것이다. 그러므로 Linux = kernel이란 등식이 성립한다. 초창기의 커널은 지원할 하드웨어가 그리 많지 않아서 커널에 하드웨어를 지원하는 코드를 모두 넣어 뒀다. 이후 운영체제가 무거워 지자 하드웨어를 제어하는 코드 중에서 필요할 때만 가끔식 사용하는 코드를 커널에 넣지 않고 별도로 보관했다가 필요할때 호..
우분투 네트워크 오류 해결 [ubuntu network error] 1. ip link로 장치가 연결되어있는지 확인 $ ip link 1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enp1s0: mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 00:1b:21:8e:ee:74 brd ff:ff:ff:ff:ff:ff 3: eno1: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 70:85:c2:..
우분투 화면이 안보이는 현상,ubuntu Unknown Display ,Built-In Display, 일때 Display setting 듀얼모니터를 쓰거나 기존에 쓰던 모니터를 바꿀경우 우분투가 디스플레이를 인식을 못해서 생기는것 같다. 이경우 해상도가 낮은 옵션만 제공하기 때문에 사용하기 불편하다. xrandr 명령어를 입력하면 현재 지원하고 있는 해상도가 나온다. 내 PC에선 DP-1이 모니터 장치 이름이므로 기억해두자. $xrandrScreen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192 HDMI-1 disconnected (normal left inverted right x axis y axis) HDMI-2 disconnected (normal left inverted right x axis y axis) DP-1 connected primary 1920x108..