728x90

출처

기존에 설치되어 있는 ffmpeg 삭제, ffmpeg 컴파일 관련 패키지 설치

linaro@linaro-alip:~$ sudo apt-get remove ffmpeg x264 libav-tools libvpx-dev libx264-dev
linaro@linaro-alip:~$ sudo apt-get update
linaro@linaro-alip:~$ sudo apt-get -y install autoconf automake build-essential checkinstall git libass-dev \
   libgpac-dev libopencore-amrnb-dev libopencore-amrwb-dev libspeex-dev \
   libtheora-dev libtool libvorbis-dev pkg-config texi2html zlib1g-dev

yasm 소스 다운로드, 컴파일

linaro@linaro-alip:~$ mkdir ~/workspace.ffmpeg 
linaro@linaro-alip:~$ cd ~/workspace.ffmpeg 
linaro@linaro-alip:~/workspace.ffmpeg$ wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
linaro@linaro-alip:~/workspace.ffmpeg$ tar xvfz yasm-1.3.0.tar.gz
linaro@linaro-alip:~/workspace.ffmpeg$ cd yasm-1.3.0/
linaro@linaro-alip:~/workspace.ffmpeg/yasm-1.3.0$ ./configure
linaro@linaro-alip:~/workspace.ffmpeg/yasm-1.3.0$ grep -c processor /proc/cpuinfo
6
linaro@linaro-alip:~/workspace.ffmpeg/yasm-1.3.0$ make -j6
linaro@linaro-alip:~/workspace.ffmpeg/yasm-1.3.0$ sudo make install

lame 소스 다운로드, 컴파일

linaro@linaro-alip:~/workspace.ffmpeg/yasm-1.3.0$ cd ~/workspace.ffmpeg
linaro@linaro-alip:~/workspace.ffmpeg$ wget http://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz
linaro@linaro-alip:~/workspace.ffmpeg$ tar xzvf lame-3.100.tar.gz && cd lame-3.100
linaro@linaro-alip:~/workspace.ffmpeg/lame-3.100$ ./configure && make -j6
linaro@linaro-alip:~/workspace.ffmpeg/lame-3.100$ sudo make install

faac 소스 다운로드, 컴파일 (ffmpeg가 최신버전의 경우 불필요한 라이브러리)

linaro@linaro-alip:~/workspace.ffmpeg/lame-3.100$ cd ~/workspace.ffmpeg
linaro@linaro-alip:~/workspace.ffmpeg$ wget https://sourceforge.net/projects/faac/files/faac-src/faac-1.29/faac-1.29.9.2.tar.gz 
linaro@linaro-alip:~/workspace.ffmpeg$ tar xzvf faac-1.29.9.2.tar.gz && cd faac-1.29.9.2
linaro@linaro-alip:~/workspace.ffmpeg/faac-1.29.9.2$ ./configure && make -j6
linaro@linaro-alip:~/workspace.ffmpeg/faac-1.29.9.2$ sudo make install

fdk-aac 소스 다운로드, 컴파일

linaro@linaro-alip:~/workspace.ffmpeg/faac-1.29.9.2$ cd ~/workspace.ffmpeg
linaro@linaro-alip:~/workspace.ffmpeg$ git clone --depth 1 git://github.com/mstorsjo/fdk-aac.git
linaro@linaro-alip:~/workspace.ffmpeg$ cd fdk-aac/
linaro@linaro-alip:~/workspace.ffmpeg/fdk-aac$ autoreconf -fiv
linaro@linaro-alip:~/workspace.ffmpeg/fdk-aac$ ./configure --disable-shared
linaro@linaro-alip:~/workspace.ffmpeg/fdk-aac$ make -j6
linaro@linaro-alip:~/workspace.ffmpeg/fdk-aac$ sudo make install

H264 소스 다운로드, 컴파일

linaro@linaro-alip:~/workspace.ffmpeg/fdk-aac$ cd ~/workspace.ffmpeg
linaro@linaro-alip:~/workspace.ffmpeg$ git clone https://code.videolan.org/videolan/x264.git
linaro@linaro-alip:~/workspace.ffmpeg$ cd x264
linaro@linaro-alip:~/workspace.ffmpeg/x264$ ./configure --enable-static
linaro@linaro-alip:~/workspace.ffmpeg/x264$ make -j6
linaro@linaro-alip:~/workspace.ffmpeg/x264$ sudo make install

ffmpeg 소스 다운로드, 컴파일

linaro@linaro-alip:~/workspace.ffmpeg/x264$ cd ~/workspace.ffmpeg 
linaro@linaro-alip:~/workspace.ffmpeg$ git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
linaro@linaro-alip:~/workspace.ffmpeg$ cd ffmpeg
linaro@linaro-alip:~/workspace.ffmpeg/ffmpeg$ git log
commit 77ce903f7ad2619fb3f420fd3e7f7b778dcb7704
Author: James Almer <jamrial@gmail.com>
Date:   Wed Mar 3 18:05:15 2021 -0300
linaro@linaro-alip:~/workspace.ffmpeg/ffmpeg$ ./configure --extra-libs="-ldl" --enable-gpl --enable-libass --enable-libfdk-aac \
  --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libspeex --enable-libtheora \
  --enable-libvorbis --enable-libx264 --enable-nonfree --enable-version3 --extra-ldflags="-latomic" 
linaro@linaro-alip:~/workspace.ffmpeg/ffmpeg$ make -j6
linaro@linaro-alip:~/workspace.ffmpeg/ffmpeg$ sudo make install

ffmpeg 설치 버전 확인

linaro@linaro-alip:~/workspace.ffmpeg/ffmpeg$ ffmpeg -version
ffmpeg version N-101386-g77ce903f7a Copyright (c) 2000-2021 the FFmpeg developers
built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
configuration: --extra-libs=-ldl --enable-gpl --enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libx264 --enable-nonfree --enable-version3 --extra-ldflags=-latomic
libavutil      56. 66.100 / 56. 66.100
libavcodec     58.128.100 / 58.128.100
libavformat    58. 70.100 / 58. 70.100
libavdevice    58. 12.100 / 58. 12.100
libavfilter     7.107.100 /  7.107.100
libswscale      5.  8.100 /  5.  8.100
libswresample   3.  8.100 /  3.  8.100
libpostproc    55.  8.100 / 55.  8.100
728x90
728x90

출처

Tinker Board 2 : Camera

카메라 모듈 확인

linaro@linaro-alip:~$ dmesg | grep video
[    1.147528] Linux video capture interface: v2.00
[    3.711002] usbcore: registered new interface driver uvcvideo

카메라 모듈 확인

linaro@linaro-alip:~$ v4l2-ctl -V
Format Video Capture Multiplanar:
        Width/Height      : 1920/1080
        Pixel Format      : 'YUYV'
        Field             : None
        Number of planes  : 1
        Flags             : 
        Colorspace        : Default
        Transfer Function : Default
        YCbCr Encoding    : Default
        Quantization      : Full Range
        Plane 0           :
           Bytes per Line : 3840
           Size Image     : 4147200

카메라 모듈 확인

linaro@linaro-alip:~$ media-ctl -p
Media controller API version 0.1.0
 
Media device information
------------------------
driver          rkisp1
model           rkisp1
serial          
bus info        
hw revision     0x0
driver version  0.0.0
 
Device topology
- entity 1: rkisp1-isp-subdev (4 pads, 6 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev0
        pad0: Sink
                [fmt:SRGGB10_1X10/1920x1080 field:none
                 crop.bounds:(0,0)/1920x1080
                 crop:(0,0)/1920x1080]
                <- "rkisp1_dmapath":0 []
                <- "rockchip-mipi-dphy-rx":1 [ENABLED]
        pad1: Sink
                <- "rkisp1-input-params":0 [ENABLED]
        pad2: Source
                [fmt:YUYV8_2X8/1920x1080 field:none
                 crop.bounds:(0,0)/1920x1080
                 crop:(0,0)/1920x1080]
                -> "rkisp1_selfpath":0 [ENABLED]
                -> "rkisp1_mainpath":0 [ENABLED]
        pad3: Source
                -> "rkisp1-statistics":0 [ENABLED]
 
- entity 2: rkisp1_mainpath (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video0
        pad0: Sink
                <- "rkisp1-isp-subdev":2 [ENABLED]
 
- entity 3: rkisp1_selfpath (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video1
        pad0: Sink
                <- "rkisp1-isp-subdev":2 [ENABLED]
 
- entity 4: rkisp1_dmapath (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video2
        pad0: Source
                -> "rkisp1-isp-subdev":0 []
 
- entity 5: rkisp1-statistics (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video3
        pad0: Sink
                <- "rkisp1-isp-subdev":3 [ENABLED]
 
- entity 6: rkisp1-input-params (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video4
        pad0: Source
                -> "rkisp1-isp-subdev":1 [ENABLED]
 
- entity 7: rockchip-mipi-dphy-rx (2 pads, 2 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev1
        pad0: Sink
                [fmt:SRGGB10_1X10/1920x1080 field:none]
                <- "m00_b_imx219 1-0010":0 [ENABLED]
        pad1: Source
                [fmt:SRGGB10_1X10/1920x1080 field:none]
                -> "rkisp1-isp-subdev":0 [ENABLED]
 
- entity 8: m00_b_imx219 1-0010 (1 pad, 1 link)
            type V4L2 subdev subtype Sensor flags 0
            device node name /dev/v4l-subdev2
        pad0: Source
                [fmt:SRGGB10_1X10/1920x1080 field:none]
                -> "rockchip-mipi-dphy-rx":0 [ENABLED]

Image sensors at the i2c ports 1 & 2

linaro@linaro-alip:~$ ls -l /sys/class/video4linux/
total 0
lrwxrwxrwx 1 root root 0 Nov  3  2016 v4l-subdev0 -> ../../devices/platform/ff910000.rkisp1/video4linux/v4l-subdev0
lrwxrwxrwx 1 root root 0 Nov  3  2016 v4l-subdev1 -> ../../devices/platform/ff910000.rkisp1/video4linux/v4l-subdev1
lrwxrwxrwx 1 root root 0 Nov  3  2016 v4l-subdev2 -> ../../devices/platform/ff910000.rkisp1/video4linux/v4l-subdev2
lrwxrwxrwx 1 root root 0 Nov  3  2016 video0 -> ../../devices/platform/ff910000.rkisp1/video4linux/video0
lrwxrwxrwx 1 root root 0 Nov  3  2016 video1 -> ../../devices/platform/ff910000.rkisp1/video4linux/video1
lrwxrwxrwx 1 root root 0 Nov  3  2016 video2 -> ../../devices/platform/ff910000.rkisp1/video4linux/video2
lrwxrwxrwx 1 root root 0 Nov  3  2016 video3 -> ../../devices/platform/ff910000.rkisp1/video4linux/video3
lrwxrwxrwx 1 root root 0 Nov  3  2016 video4 -> ../../devices/platform/ff910000.rkisp1/video4linux/video4

테스트

linaro@linaro-alip:~$ gst-launch-1.0 v4l2src device=/dev/video1 num-buffers=100 ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! videoconvert ! rkximagesink

 

728x90
728x90

출처

ASUS Tinker Board 2

ASUS Tinker Board 2 스펙 ( 출처 : ASUS Tinker Board 2 : VIP@youyeetoo.com)

기본 사용자, 암호

linaro / linaro

리눅스 정보 확인

CPU 정보 확인

linaro@linaro-alip:~$ cat /proc/cpuinfo
processor       : 0
BogoMIPS        : 48.00
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4
 
... 생략 ...
 
processor       : 5
BogoMIPS        : 48.00
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd08
CPU revision    : 2
 
Serial          : 1adae4c508fdff72

instruction set architecture (ISA)

linaro@linaro-alip:~$ uname -m
aarch64

커널에 대한 정보

linaro@linaro-alip:~$ uname -a
Linux linaro-alip 4.4.194 #25 SMP Wed Jan 13 07:02:28 UTC 2021 aarch64 GNU/Linux

OS버전에 대한 정보

linaro@linaro-alip:~$ cat /etc/issue
Debian GNU/Linux 9 \n \l

리눅스 배포판 버전 확인

linaro@linaro-alip:~$ grep . /etc/*-release
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
VERSION_CODENAME=stretch
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

논리 코어 수 확인

linaro@linaro-alip:~$ grep -c processor /proc/cpuinfo
6

IP 확인

linaro@linaro-alip:~$ ip addr

Pythone 버전 확인

linaro@linaro-alip:~$ python --version
Python 2.7.13
linaro@linaro-alip:~$ python3 --version
Python 3.5.3

GPIO 확인

linaro@linaro-alip:~$ gpio readall
 +-----+-----+---------+------+---+--Tinker--+---+------+---------+-----+-----+
 | CPU | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | CPU |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |
 |  73 |   8 | GPIO2B1 |   IN | 1 |  3 || 4  |   |      | 5v      |     |     |
 |  74 |   9 | GPIO2B2 |   IN | 1 |  5 || 6  |   |      | 0v      |     |     |
 |   8 |   7 | CLKOUT2 |  CLK | 0 |  7 || 8  | 1 | IN   | GPIO2C1 | 15  | 81  |
 |     |     |      0v |      |   |  9 || 10 | 1 | IN   | GPIO2C0 | 16  | 80  |
 |  83 |   0 | GPIO2C3 |   IN | 1 | 11 || 12 | 0 | IN   | GPIO3D0 | 1   | 120 |
 |  85 |   2 | GPIO2C5 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |
 |  84 |   3 | GPIO2C4 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO2C6 | 4   | 86  |
 |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO2C7 | 5   | 87  |
 |  40 |  12 | GPIO1B0 |   IN | 1 | 19 || 20 |   |      | 0v      |     |     |
 |  39 |  13 | GPIO1A7 |   IN | 1 | 21 || 22 | 0 | IN   | GPIO3D4 | 6   | 124 |
 |  41 |  14 | GPIO1B1 |   IN | 1 | 23 || 24 | 1 | IN   | GPIO1B2 | 10  | 42  |
 |     |     |      0v |      |   | 25 || 26 | 0 | IN   | GPIO0A6 | 11  | 6   |
 |  71 |  30 | GPIO2A7 |   IN | 1 | 27 || 28 | 1 | IN   | GPIO2B0 | 31  | 72  |
 | 126 |  21 | GPIO3D6 |   IN | 0 | 29 || 30 |   |      | 0v      |     |     |
 | 125 |  22 | GPIO3D5 |   IN | 0 | 31 || 32 | 0 | IN   | GPIO4C2 | 26  | 146 |
 | 150 |  23 | GPIO4C6 |  OUT | 1 | 33 || 34 |   |      | 0v      |     |     |
 | 121 |  24 | GPIO3D1 |   IN | 0 | 35 || 36 | 1 | IN   | GPIO2C2 | 27  | 82  |
 | 149 |  25 | GPIO4C5 |   IN | 0 | 37 || 38 | 0 | IN   | GPIO3D3 | 28  | 123 |
 |     |     |      0v |      |   | 39 || 40 | 0 | IN   | GPIO3D7 | 29  | 127 |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 | CPU | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | CPU |
 +-----+-----+---------+------+---+--Tinker--+---+------+---------+-----+-----+
728x90
728x90

출처

ip 확인

$ ip addr | grep inet
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
    inet 192.168.137.101/24 brd 192.168.137.255 scope global dynamic eth0
    inet 192.168.137.145/24 brd 192.168.137.255 scope global secondary eth0
    inet6 fe80::b848:f27d:8127:389/64 scope link

eMMC에 OS 설치

$ sudo dd if=20180622-tinker-board-linaro-stretch-alip-v2.0.7.img of=/dev/mmcblk1 bs=4MB status=progress conv=sync
3096000000 bytes (3.1 GB, 2.9 GiB) copied, 70.0279 s, 44.2 MB/s 
782+1 records in
783+0 records out
3132000000 bytes (3.1 GB, 2.9 GiB) copied, 71.9111 s, 43.6 MB/s

리눅스 정보 확인

$ grep . /etc/*-release
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

OS 업데이트

$ sudo apt-get update && sudo apt-get upgrade

Tinker Board 환경설정

$ sudo tinker-config

용량 확장

locale 변경

재부팅후 폴더 이름 변경 설정 팝업

한글폰트 설치 (나눔폰트 - nanum)

$ sudo apt install fonts-nanum fonts-nanum-coding fonts-nanum-extra

한글 입력기(nabi, imhangul) 설치

$ sudo apt-get install nabi imhangul-gtk2 imhangul-gtk3 im-config zenity

입력기 설정

$ im-config -n hangul

입력기 환경설정

$ im-config

한글입력예

환경설정

$ cat .xinputrc 
## im-config(8) generated on Thu, 11 Oct 2018 06:17:20 +0000
run_im hangul
## im-config signature: ef7d60ee7a0f5fd446ce389716f52467  -
 
export XIM=nabi
export XIM_ARGS=
export XIM_PROGRAM="nabi"
export XMODIFIERS="@im=nabi"
export GTK_IM_MODULE=xim
export QT_IM_MODULE=xim

내용 추가

export XIM=nabi
export XIM_ARGS=
export XIM_PROGRAM="nabi"
export XMODIFIERS="@im=nabi"
export GTK_IM_MODULE=xim
728x90
728x90

출처

컴파일하는 동안 ‘out of memory’을 방지하기 위해 스왑 파일을 활성화

$ sudo apt-get install -y dphys-swapfile

dphys-swapfile 서비스 실행

$ sudo /etc/init.d/dphys-swapfile start
Starting dphys-swapfile (via systemctl): dphys-swapfile.service==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to start 'dphys-swapfile.service'.
Authenticating as: linaro,,, (linaro)
==== AUTHENTICATION COMPLETE ===

"sudo" 루트 권한 부여

$ sudo vi /etc/sudoers

linaro ALL=(ALL) NOPASSWD: ALL

CodeTyphon 다운로드

$  wget http://www.pilotlogic.com/codetyphon/zips/CodeTyphonIns.zip

CodeTyphon 압축 해제

$ unzip CodeTyphonIns.zip

CodeTyphon 설치 스크립트 실행

$ cd CodeTyphonIns/
$ ./install.sh 
 
====================================================
             CodeTyphon Studio 
            Version 6.50 (GEN 6)
   Installation for: Linux-Solaris-FreeBSD-MacOS
====================================================
 
   0) Install CodeTyphon Studio
 
   9) Exit
 
>>> Select an action (press 0..9 key): 0

0번 선택 ( 0) Install System Libraries )

====================================================
  CodeTyphon Studio 6.50 Setup for Linux32
   Settings: Platform=gtk2  Multiarch Mode=0
====================================================
   
   0) Install System Libraries
   1) Run CodeTyphon Center (CTC)
   
     11) -- Platform (widget) Setup
     12) -- Multi-Architecture Setup
   
   3) Remove FreePascal
   4) Remove and Build FreePascal
   
   5) Remove Typhon IDE
   6) Remove and Build Typhon IDE
   
   7) Remove ALL
   8) Remove and Build ALL
   
   9) EXIT
   
>>> Select an action (press 0..9 key): 0

8번 선택 ( 8) Remove and Build ALL )

====================================================
  CodeTyphon Studio 6.50 Setup for Linux32
   Settings: Platform=gtk2  Multiarch Mode=0
====================================================
   
   0) Install System Libraries
   1) Run CodeTyphon Center (CTC)
   
     11) -- Platform (widget) Setup
     12) -- Multi-Architecture Setup
   
   3) Remove FreePascal
   4) Remove and Build FreePascal
   
   5) Remove Typhon IDE
   6) Remove and Build Typhon IDE
   
   7) Remove ALL
   8) Remove and Build ALL
   
   9) EXIT
   
>>> Select an action (press 0..9 key): 8

9번 선택 ( 9) EXIT )

====================================================
  CodeTyphon Studio 6.50 Setup for Linux32
   Settings: Platform=gtk2  Multiarch Mode=0
====================================================
   
   0) Install System Libraries
   1) Run CodeTyphon Center (CTC)
   
     11) -- Platform (widget) Setup
     12) -- Multi-Architecture Setup
   
   3) Remove FreePascal
   4) Remove and Build FreePascal
   
   5) Remove Typhon IDE
   6) Remove and Build Typhon IDE
   
   7) Remove ALL
   8) Remove and Build ALL
   
   9) EXIT
   
>>> Select an action (press 0..9 key): 9

실행

728x90
728x90

출처

xrdp 설치

$ sudo apt-get install xrdp
$ sudo apt-cache policy xrdp
xrdp:
  Installed: 0.9.1-9+deb9u3
  Candidate: 0.9.1-9+deb9u3
  Version table:
 *** 0.9.1-9+deb9u3 500
        500 http://http.debian.net/debian stretch/main armhf Packages
        100 /var/lib/dpkg/status

xorgxrdp 설치

$ sudo apt-get install xorgxrdp
$ sudo apt-cache policy xorgxrdp
xorgxrdp:
  Installed: 0.9.1-9+deb9u3
  Candidate: 0.9.1-9+deb9u3
  Version table:
 *** 0.9.1-9+deb9u3 500
        500 http://http.debian.net/debian stretch/main armhf Packages
        100 /var/lib/dpkg/status

IP 확인

$ ip addr | grep inet
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
    inet 192.168.137.142/24 brd 192.168.137.255 scope global dynamic eth0
    inet6 fe80::2edd:91a0:cbe0:6514/64 scope link

원격 데스크톱 연결

728x90
728x90

출처

OS 업그레이드

$ sudo apt-get update
$ sudo apt-get upgrade

기존 전치된 lazarus 삭제

$ sudo apt-get remove lazarus
$ sudo apt-get remove fpc
$ sudo apt-get autoremove
$ sudo shutdown -r now

Swap 파일 크기 늘리기

여유 공간 확인

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        15G  8.3G  5.5G  61% /
devtmpfs        943M     0  943M   0% /dev
tmpfs          1007M     0 1007M   0% /dev/shm
tmpfs          1007M  8.9M  998M   1% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs          1007M     0 1007M   0% /sys/fs/cgroup
/dev/mmcblk1p1   63M  7.5M   56M  12% /boot
tmpfs           202M  8.0K  202M   1% /run/user/1000

Swap 설정 파일 수정

$ sudo vi /etc/dphys-swapfile

Swap 사이즈 설정

CONF_SWAPSIZE=1000

Swap 설정 파일을 저장하고 스와핑을 다시 시작

$ sudo /etc/init.d/dphys-swapfile stop
Stopping dphys-swapfile (via systemctl): dphys-swapfile.service.
$ sudo /etc/init.d/dphys-swapfile start
Starting dphys-swapfile (via systemctl): dphys-swapfile.service.
$ ls -lh /var
total 1001M
drwxr-xr-x  2 root root   4.0K Sep 16 01:22 backups
drwxr-xr-x 11 root root   4.0K Jul 21 10:44 cache
drwxr-xr-x 49 root root   4.0K Jul 21 20:09 lib
drwxrwsr-x  2 root staff  4.0K Nov 19  2017 local
lrwxrwxrwx  1 root root      9 Jan 10  2018 lock -> /run/lock
drwxr-xr-x  7 root root   4.0K Sep 16 03:29 log
drwxrwsr-x  2 root mail   4.0K Jan 10  2018 mail
drwxr-xr-x  2 root root   4.0K Jan 10  2018 opt
lrwxrwxrwx  1 root root      4 Jan 10  2018 run -> /run
drwxr-xr-x  7 root root   4.0K Jul 21 10:43 spool
-rw-------  1 root root  1000M Sep 16 03:43 swap
drwxrwxrwt  6 root root   4.0K Sep 16 03:30 tmp

Seed/Bootstrap Pascal Compiler 설치

$ mkdir /usr/local/fpc
$ wget ftp://ftp.hu.freepascal.org/pub/fpc/dist/3.0.4/arm-linux/fpc-3.0.4.arm-linux-eabihf-raspberry.tar
$ tar xvf fpc-3.0.4.arm-linux-eabihf-raspberry.tar 
fpc-3.0.4.arm-linux/
fpc-3.0.4.arm-linux/doc-pdf.tar.gz
fpc-3.0.4.arm-linux/binary.arm-linux.tar
fpc-3.0.4.arm-linux/install.sh
fpc-3.0.4.arm-linux/demo.tar.gz
$ mv fpc-3.0.4.arm-linux /usr/local/fpc/
$ cd /usr/local/fpc/fpc-3.0.4.arm-linux/
$ sudo ./install.sh

설치과정

linaro@tinkerboard:/usr/local/fpc/fpc-3.0.4.arm-linux$ sudo ./install.sh 
This shell script will attempt to install the Free Pascal Compiler
version 3.0.4 with the items you select

Install prefix (/usr or /usr/local)  [/usr] : 
Installing compiler and RTL for arm-linux...

Install Textmode IDE (Y/n) ? 
Done.

Install documentation (Y/n) ? 
Installing documentation in /usr/share/doc/fpc-3.0.4 ...
Done.

Install demos (Y/n) ? 
Install demos in [/usr/share/doc/fpc-3.0.4/examples] : 
Installing demos in /usr/share/doc/fpc-3.0.4/examples ...
Done.

Running on linux
Write permission in /etc.
Writing sample configuration file to /etc/fpc.cfg
Writing sample configuration file to /usr/lib/fpc/3.0.4/ide/text/fp.cfg
Writing sample configuration file to /usr/lib/fpc/3.0.4/ide/text/fp.ini
Writing sample configuration file to /etc/fppkg.cfg
Writing sample configuration file to /etc/fppkg/default

End of installation.

Refer to the documentation for more information.

svn 클라이언트 설치

$ sudo apt-get install subversion

관련 라이브러리 설치

$ sudo apt-get install libgtk2.0-dev libcairo2-dev libpango1.0-dev libgdk-pixbuf2.0-dev libatk1.0-dev libghc-x11-dev libx11-dev

Free Pascal 설치

$ cd /usr/local/fpc
$ svn co http://svn.freepascal.org/svn/fpc/trunk source 
$ cd source
$ sudo make all OPT="-dFPC_ARMHF -CpARMV7A -OpARMV7A"
$ sudo make install OPT="-dFPC_ARMHF -CpARMV7A -OpARMV7A" PREFIX=/usr/local
$ sudo make install sourceinstall OPT="-dFPC_ARMHF -CpARMV7A -OpARMV7A" PREFIX=/usr/local

설치된 pascal 버전 확인

$ ls /usr/lib/fpc
3.0.4  lexyacc

fpc 최신 버전으로 심볼릭 링크 걸기

$ ls -al /usr/bin/ppcarm
lrwxrwxrwx 1 root root 25 Sep 16 11:23 /usr/bin/ppcarm -> /usr/lib/fpc/3.0.4/ppcarm

fpc 컴파일러 버전 확인

$ fpc -iW
3.0.4

Lazarus 설치

관련 라이브러리 설치

$ sudo apt-get install libx11-dev libgdk-pixbuf2.0-dev libcairo2-dev gir1.2-coglpango-1.0 libpangox-1.0-dev xorg-dev libgtk2.0-dev libpango1.0-dev

Lazarus 다운로드 및 컴파일

$ mkdir /usr/local/lazarus
$ cd /usr/local/lazarus
$ sudo wget https://jaist.dl.sourceforge.net/project/lazarus/Lazarus%20Zip%20_%20GZip/Lazarus%201.8.4/lazarus-1.8.4.tar.gz
$ sudo tar -xvf lazarus-1.8.4.tar.gz 
$ cd lazarus/
$ sudo make all OPT="-dFPC_ARMHF -CpARMV7A -OpARMV7A"
$ sudo make install OPT="-dFPC_ARMHF -CpARMV7A -OpARMV7A" PREFIX=/usr/local

gcc 라이브러리 경로 설정

컴파일하면 crtbegin.o 및 crtend.o를 찾을 수 없다는 경고가 출력됩니다. 경고가 표지 되지 않도록 설정

crtbegin.o 찾기

$ sudo find / -name crtbegin.o
/usr/lib/gcc/arm-linux-gnueabihf/6/crtbegin.o

fpc 환경 파일 (fpc.cfg) 수정

$ sudo vi /etc/fpc.cfg

내용 추가

# path to the gcclib
-Fl/usr/lib/gcc/arm-linux-gnueabihf/6

gdb 설치

$ sudo apt-get install gdb-multiarch

Lazarus 실행

fpc 경로 오류

fpc 경로 찾기

fpc 경로 설정

Lazarus 실행화면

728x90
728x90

출처

Tinker Board : Smart-Mirror 설치

Raspberry PI에서 사용햇던 Smart-Mirror를 Tinker Board에 적용해보았습니다. Raspberry PI이 보다 실행 속도가 많이 빨라 졌습니다. 모니터는 Raspberry PI 7인치 모니터를 사용했고, 미러용 필름은 붙이지는 않았습니다. 마이크의 입력은 4극 스테레오 Y케이블을 사용해서 특별하게 마이크 설정없이 바로 사용이 가능했습니다.

음성 인식용으로 사용했던 마이크

4극 스테레오 (3.5) Y케이블

Tinker Board용 Audio 단자는 마이크 입력과 오디오 출력이 동시에 가능한 4핀 단자로 아래와 같은 4극 Y케이블을 이용하면 마이크 입력과 오디오 출력을 분리해서 사용 할 수 있습니다.

4극 스테레오 (3.5) Y케이블에 마이크 연결

Node.js 6.x 설치

$ curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
$ sudo apt-get install -y nodejs

Smart-Mirror 소스 다운로드

$ cd ~
$ git clone https://github.com/evancohen/smart-mirror.git

Smart-Mirror 관련 라이브러리 설치

$ sudo apt-get install sox libatlas-base-dev

Smart-Mirror 설치

$ cd ~/smart-mirror
$ npm install

Smart-Mirror 실행

$ npm start

개발자 콘솔로 Smart-Mirror 실행

$ npm start dev

관리 페이지 접속

관리 페이지 오른쪽 상단 톱니바퀴 아이콘을 선택하면 Smart-Mirror 설정 화면으로 이동이 가능합니다.

언어 설정 변경 (한국어 명령이 가능하도록 설정)

Language 항목의 설정을 ko-KR로 수정

자신만의 호출 키워드 생성

이 작업은 마이크를 사용하여 smart-mirror가 대기 모드에서 명령 모드로 변경 됩니다.

키워드 생성은 사이트(https://snowboy.kitt.ai/hotword/47)에서 하시면 되고 저는 팅커보드의 약자로 팅커벨로 했습니다.

Snowboy에서 생성한 Tinkerbell.pmdl 파일을 smart-mirror가 설치된 경로(/home/linaro/smart-mirror)에 복사합니다.

호출 키워드 등록

Google Cloud Speech Keyfile 등록

출처 : Cloud Speech Recognition · Smart Mirror Documentation

keyfile 생성

Google Cloud Speech Keyfile 등록

모니터 세로 모드로 변경

$ vi .xsessionrc

#!/bin/sh
xrandr --output DSI-1 --rotate left

Smart-Mirror 실행 영상

728x90

+ Recent posts