Home 리눅스 커널 포팅 - ARM Sabre Lite
Post
Cancel

리눅스 커널 포팅 - ARM Sabre Lite

  • ARM Sabre Lite에 리눅스 커널을 포팅한다.
  • 본 글은 NXP 공식 홈페이지를 참고하여 작성하였다.

출처: https://boundarydevices.com/ubuntu-bionic-18-04-lts-for-i-mx6-7-boards-june-2018-kernel-4-9-x/

설치 환경

  • 호스트: Ubuntu 18.04(x86-64)
  • 타겟: Sabre Lite에 NXP에서 제공하는 Ubuntu Bionic 18.04 LTS for i.MX6/7 boards - June 2018 (kernel 4.9.x) 리눅스 커널 포팅

Sabre Lite 커널 이미지 다운로드

출처: https://boundarydevices.com/blog/ubuntu/

Sabre Lite 커널 이미지 쓰기

1
2
3
4
5
6
7
8
9
10
11
12
$ sudo apt-get install -y gddrescue xz-utils util-linux

# 압축 해제
$ gunzip 20180729-nitrogen-4.9.x_1.0.0_ga-bionic-en_US-xfce_armhf.img.gz


# 인식한 micro SD 카드의 문자열 확인
$ lsblk

# 인식한 문자열로 micro SD 카드에 이미지 파일 write
# 해당 작업 진행을 종료하면 micro SD 카드에 우분투가 설치되어 있으며, 해당 micro SD 카드를 타겟으로 부팅하면 우분투가 시작됨
$ sudo ddrescue -D --force 20180729-nitrogen-4.9.x_1.0.0_ga-bionic-en_US-console_armhf.img /dev/sdb

설정된 타겟 아이디/비밀번호

  • 해당 로그인 정보를 입력하여 리눅스에 로그인한다.
  • 아이디/비밀번호: root/Boundary
  • 아이디/비밀번호: ubuntu/Boundary

고정 IP 할당

  • vi 에디터가 설치되어 있지 않으므로 nano 에디터를 사용하여 IP 정보를 변경해야 한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
</etc/network/interfaces>

# 기존 ip 정보
# auto eth0
# allow-hotplug eth0
# iface eth0 inet dhcp

# 자신의 ip 정보 입력
allow-hotplug eth0
iface eth0 inet static
address 168.188.127.63
netmask 255.255.255.0
gateway 168.188.127.1
dns-nameservers 168.126.1.1
  • Ctrl + x -> y -> Enter: nano 종료 단축키

출처: https://www.lesstif.com/pages/viewpage.action?pageId=24445571#id-%EC%9A%B0%EB%B6%84%ED%88%AC%EC%84%9C%EB%B2%84%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%EC%84%A4%EC%A0%95(ubuntuservernetworkconfig)-static
https://lwk24.tistory.com/403

Timeserver 동기화

  • 해당 설정을 진행하지 않으면 ‘Temporary failure in name resolution’ 에러가 발생한다. 이를 해결하기 위해 ,리눅스 timeserver와 동기화 작업이 필요하다.
1
2
3
4
5
6
7
8
9
10
</etc/resolv.conf>

# 기존 nameserver 정보
# Generated by pump for interface eth0
# nameserver 168.188.1.1
# nameserver 168.126.63.1

# nameserver를 다음과 같이 변경
nameserver 58.277.183.227
nameserver 221.143.20.131
  • Ctrl + x -> y -> Enter: nano 종료 단축키
1
$ sudo reboot

출처: https://lwk24.tistory.com/403
https://gracefulprograming.tistory.com/91

타겟에 필요한 기본 패키지 설치

  • 타겟에는 기본적인 패키지가 설치되어 있지 않다.
  • 개발 및 연구 환경에 필요한 기본 패키지를 설치하며, 해당 부분은 선택사항이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# update
$ sudo apt-get update

# git
$ sudo apt-get install -y git

# vim
$ sudo apt-get install -y vim

# 압축 패키지
$ sudo apt-get install -y zip unzip

# 블럭 디바이스 마운트를 위한 패키지
$ sudo apt-get install -y nfs-common cifs-utils cloud-guest-utils

# ssh 접속 편의성을 위한 패키지
$ sudo apt-get install -y sshpass

# wget
$ sudo apt-get install -y wget

# htop
$ sudo apt-get install -y htop

# valgrind
$ sudo apt-get install -y valgrind

vim 설정

  • 리눅스 환경에서 사용하는 vim 설정은 다음과 같다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
~/.vimrc

"=== Indent ===
set autoindent
set smartindent
set cindent
set tabstop=4
set shiftwidth=4

"=== View ===
set number
set title
set wrap
set showmatch
set ruler
set cursorline
set linebreak
set autoindent

"=== Search ===
set hlsearch
set ignorecase
set incsearch

"=== Edit ===
syntax on
syntax enable
set history=1000
set fileencoding=utf-8
set nobackup

"=== VIM-AIRLINE ===
set laststatus=2	"선택

"=== 마지막 수정된 곳에 커서 위치 ===
au BufReadPost *
\ if line("'\"") > 0 && line("'\"") <= line("") |
\ exe "norm g`\"" |
\ endif

"=== Theme ===
"colo pablo

Micro sd 카드의 메모리 용량 늘리기

  • 리눅스 커널을 micro sd 카드에 포팅할 때, micro sd 카드의 최소한의 용량만 사용하도록 설정한다.
  • micro sd 카드에서 인식하는 메모리 용량이 매우 적으며, 패키지 몇 개만 설치하면 용량이 부족하다.
  • 따라서 micro sd 카드의 기존 용량에 맞게 파티션 변경 필요하다.

타겟(Sabre Lite)에서 수행

1
2
3
4
5
6
7
8
9
10
# 블럭 디바이스의 상태를 확인
$ lsblk

![image](/assets/img/2020-02-20-Linux3/image1.png)

# micro sd 카드 메모리의 파티션 확장
$ sudo growpart /dev/mmcblk1 1
$ lsblk

![image](/assets/img/2020-02-20-Linux3/image2.png)

호스트에서 수행

  • Micro sd 카드를 호스트에 삽입한다.
  • Sabre Lite에서는 이미 sd 카드를 사용 중이므로 파티션 크기 조절 불가하기에, 호스트에서 파티션 크기를 재조정 해야한다.
1
2
# 운영체제가 micro sd 카드 메모리를 인식하는 크기는 3.4G(sdb1)
$ df -h

image

1
2
3
4
5
6
7
# micro sd 카드의 크기 변경
# 운영체제가 인식하는 micro sd 카드의 블럭 디바이스 문자를 사용해야 함
$ sudo resize2fs /dev/sdb1

# 운영체제가 기존 micro sd 카드를 인식하는 메모리 크기가 3.4G(sdb1) 였지만, 메모리 크기를 재조정함으로써 인식하는 메모리 크기가 59G(sdb1)로 늘어남
# Micro sd 카드를 타겟에 삽입하면, 사용가능한 메모리 용량이 증가한 것을 확인할 수 있음
$ df -h

image

출처: https://blog.lael.be/post/7735

This post is licensed under CC BY 4.0 by the author.

리눅스 커널 빌드 - x86-64

리눅스 커널 빌드 - ARM Sabre Lite(NXP)

Comments powered by Disqus.

Trending Tags