Rasbian Wheezy 설치후 작업

upgrade

1
# apt update && apt dist-upgrade && apt upgrade

업그레이드 중

1
The following packages have been kept back:   linux-image-c2

기존 리눅스 이미지를 지우고 업그리이드 중 에러가 나서 이미지 업그레이드가 안되었으므로, 이전 버전 이미지를 찾아 삭제해 주면 다시 업그레이드가 된다.

1
2
3
4
5
6
7
# apt --installed list |grep linux

linux-image-3.14.65-73/unknown,now 20160802 arm64 [installed,automatic]
linux-image-3.14.79-94/unknown,now 20161121 arm64 [installed,automatic]
linux-image-c2/now 73-1 arm64 [installed,upgradable to: 94-1]
linux-libc-dev/xenial-updates,xenial-security,now 4.4.0-51.72 arm64 [installed]
util-linux/xenial-updates,now 2.27.1-6ubuntu3.1 arm64 [installed]

이전 버전 이미지를 지운다. 업그레이드 후 uname 확인

1
2
3
4
5
6
7
8
root@odroid64:~# apt autoremove linux-image-3.14.65-73
...
Preparing to unpack .../linux-image-c2_94-1_arm64.deb ...
Unpacking linux-image-c2 (94-1) over (73-1) ...
Setting up linux-image-c2 (94-1) ...

# uname -a
Linux odroid64 3.14.79-94 #1 SMP PREEMPT Mon Nov 21 17:13:27 BRST 2016 aarch64 aarch64 aarch64 GNU/Linux

설정

hostname

debian 계열에서 hostname을 변경하려면 hostnamectl 을 사용한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ sudo -s
# hostnamectl set-hostname dlp
# show settings
root@debian:~# hostnamectl
Static hostname: dlp
Icon name: computer-vm
Chassis: vm
Machine ID: 5f47b11299ed4689a48a7f78197e452a
Boot ID: bdeed3b6c079405bb45d79eff3e870a5
Virtualization: vmware
Operating System: Debian GNU/Linux 8 (jessie)
Kernel: Linux 3.16.0-4-amd64
Architecture: x86-64

Timezone

CLI에서 설정을 할 수 있다.

1
# dpkg-reconfigure tzdata

timedatectl timedatectl 명령으로

1
2
3
4
5
6
$ timedatectl list-timezones
...
Asia/Seoul
...

$ sudo timedatectl set-timezone Asia/Seoul

혹은 손으로 직접 수정한다면, Timezone/etc/localtime 이라는 바이너리로 저장되므로
명령행에서 지원하는 timezone을 복사할 수 도 있다.

1
$ sudo cp /usr/share/zoneinfo/Europe/London /etc/localtime

기본 에디터 변경

odroid의 ubuntu 16.04는 기본에디터로 joe가 설치되어 있다. vim 으로 변경한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# update-alternatives --config editor
There are 6 choices for the alternative editor (providing /usr/bin/editor).

Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/joe 70 auto mode
1 /usr/bin/jmacs 50 manual mode
2 /usr/bin/joe 70 manual mode
3 /usr/bin/jpico 50 manual mode
4 /usr/bin/jstar 50 manual mode
5 /usr/bin/rjoe 25 manual mode
6 /usr/bin/vim.tiny 10 manual mode

Press <enter> to keep the current choice[*], or type selection number: 6

apt autocompetion

bash-completion 이 빠져 있으면

1
$ sudo apt install bash-completion

apt-get 명령은 자동완성이 되지만 apt 명령은 안된다면

1
$ sudo apt install --reinstall bash-completion

Dnsutils

dig, nslookup 같은 명령이 있는 패키지.

1
$ sudo apt install dnsutils

디스크

tune2fs

fsck로 마지막 체크한 시간 확인은 tune2fs 명령을 이용

1
2
$sudo tune2fs -l /dev/sdbX | grep Last\ c
Last checked: Sun Dec 13 09:14:22 2015

마운트 횟수

1
2
tune2fs -l /dev/sdbX | grep Mount
Mount count: 157
1
2
tune2fs -l /dev/sdbX | grep Max
Maximum mount count: -1

참조: https://linuxconfig.org/how-to-force-fsck-to-check-filesystem-after-system-reboot-on-linux

fsck

루트 파티션을 강제로 fsck 하게 하려면 루트 파티션에 forcefsck 파일을 생성해 둔다.

1
$sudo touch /forcefsck

forcefsck 파일은 단 한번만 부팅시 루트 파일시스템을 체크한다. 만약 지속적으로 파일 시스템을 체크하도록 하려면 tune2fs 를 사용해서 ‘Maximum mount count’ 파라미터를 사용하도록 한다.

아래 명령은 부팅시마다 루트 파티션을 체크하게 된다.

1
tune2fs -c 10 /dev/sdb1

이렇게 하면 fsck Maxium mount 값을 양의 값으로 지정하게 된다. 그리고 10번째 부팅시 체크하도록 하려면 -c 10 을 준다.

1
tune2fs -c 10 /dev/sdb1

SWAP

swap 파일로 만들려면

1
2
3
4
5
$ sudo dd if=/dev/zero of=/data/swap4G bs=1G count=4
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo swapon -s
1
2
3
sudo mkswap /dev/sda1
sudo swapon /dev/sda1
sudo swapon -s

grc

터미널 컬러 처리

1
2
3
4
grc netstat
grc ping hostname
grc tail /var/log/syslog
grc ps aux

lastb

lastb 명령은 /var/log/wtmp, /var/log/btmp 에 있는 로그인 기록에서 최근 로그인한 모든 목록을 출력한다. 다음은 최근 20개 목록을 출력한다.

1
2
3
4
5
$ sudo lastb -n 20
root ssh:notty 112.85.42.230 Fri Jul 20 17:25 - 17:25 (00:00)
root ssh:notty 112.85.42.230 Fri Jul 20 17:25 - 17:25 (00:00)
oracle ssh:notty 210.182.116.102 Mon Jul 16 23:36 - 23:36 (00:00)
cumulus ssh:notty 36.248.211.16 Mon Jul 16 20:59 - 20:59 (00:00)

실패한 로그인 시도

https://www.guyrutenberg.com/2014/09/26/view-failed-login-attempts-lastb/

-w 로 사용자 이름을 출력하고 첫번째 열만 자른 후 정렬한 후, uniq 명령으로 중복되는 이름을 제거한 후 출력한다.

1
$ sudo lastb -w | cut -d " " -f 1 | sort | uniq | less

이중에서 접속한 IP와 횟수를 출력한다.

1
2
3
4
5
6
7
8
$ sudo lastb -f /var/log/btmp.1 -w -i | awk '{print $3}' | sort | uniq --count | sort -nr | less

[sudo] root의 암호:
2166 112.85.42.156
1945 112.85.42.193
1591 112.85.42.201
1327 112.85.42.230
1146 112.85.42.196

기본 Python 만들기

사용자 파이썬 앨리어스 만들기

사용자 홈 디렉토리에 ~/.bashrc 파일에 앨리어스를 만든다.

1
alias python='/usr/bin/python3.4'

다시 로그인 하거나 .bashrc를 컴파일해서 사용한다.

1
$ . ~/.bashrc

시스템 전체로 파이썬 구성하기

1
2
$ update-alternatives --list python
update-alternatives: error: no alternatives for python

여기서 python2.7과 python3.5 를 update-alternative 로

1
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
1
2
$ sudo  update-alternatives --install /usr/bin/python python /usr/bin/python3.5 2
update-alternatives: using /usr/bin/python3.4 to provide /usr/bin/python (python) in auto mode

파이썬 관련 대체 프로그램 목록을 보면,

1
2
3
$ update-alternatives --list python
/usr/bin/python2.7
/usr/bin/python3.5

삭제를 하려면

1
$sudo update-alternatives --remove python /usr/bin/python2.7

Odroid - Install Linux

2018-07-10: UART 정보 추가
2017-07-24: exFAT 추가
{:.right-history}

Odroid C2 - Install Armbian

{: width=”600”}

[그림. armv8 Odroid C2]
자세히 보기

Linux - X Forwarding

SBC 보드 (raspberry pi, odroid c2 등)를 Terminal 기반으로 사용하려고 할 때 GUI에서 Programming을 확인해야 할 경우 X11, VNC 등을 이용할 수 있다. 여기서는 X Forwarding 기법을 정리하고 있다.

[^1]: Single Board Computer

X11 Forwarding

X11은 유닉스/리눅스의 전통적 데스크탑 프로토콜로 GUI 데스크탑 환경을 X11 Protocol을 사용해서 로컬 혹은 원격지 컴퓨터에서 이용할 수 있게 설계되어 있다.

X Windows: X ming

윈도우즈에서 X ming 환경을 구축하면 X window system을 사용할 수 있다.

자세히 보기