우분투 ALi Chipset 개발환경

1. Shell 변경

우분투 기본 shell인 dash shell 사용해도 큰 문제가 없지만, 일부 shell 스크립트가 dash에서 에러를 발생하여 기본 shell을 bash로 변경하도록 한다.

$ sudo dpkg-reconfigure dash

 

2. 개발도구 설치

ALi SDK를 빌드하기 위해 아래와 같은 개발도구 및 라이브러리 그리고 유틸리티를 설치해야 한다.

$ sudo apt install build-essential cmake m4 git subversion dos2unix
$ sudo apt install libncurses5-dev libssl-dev

libssl은 최신 버전이 1.1이지만, libssl-dev는 1.0 버전을 사용해야 한다. 참고로 우분투 18.04는 libssl1.0-dev로 설치하였지만 우분투 20.04로 판올림되면서 libssl-dev는 1.0 버전이고, libssl1.1-dev로 네이밍이 변경되었다.

 

3. 32bit 공유라이브러리 설치

우분투 20.04로 판올림 되면서 multiarch-support:i386 패키지는 삭제되어, 아래의 라이브러리만 설치하도록 한다.

$ sudo apt install libc6:i386 libstdc++6:i386 zlib1g:i386 libc6-dev-i386

 

4. NFS 설정

타겟보드에서 NFS로 개발하려면 Host PC에 NFS server를 설치해야 하며 NFS Client도 사용하려면 nfs-common 패키지도 함께 설치한다.

$ sudo apt install nfs-kernel-server

Client에서 마운트하여 사용할 디렉토리 및 권한을 아래와 같이 설정한다.

$ sudo vi /etc/exports

/media/gon/proj *(rw,sync,no_subtree_check,no_root_squash)

타겟보드의 방화벽 설정으로 NFS 포트를 랜덤 생성하여 연결하는 것이 아닌 고정 포트로 사용하도록 변경해야 한다. 아래 패치파일을 적용하도록 한다.

diff -Nura a/etc/services b/etc/services
--- a/etc/services  2018-08-24 10:29:50.452480428 +0900
+++ b/etc/services  2018-08-24 10:29:21.104819177 +0900
@@ -610,3 +610,9 @@
 fido       60179/tcp           # fidonet EMSI over TCP 
 
 # Local services
+status      4000/tcp            # rpc.statd tcp port
+status      4000/udp            # rpc.statd udp port
+mountd      4002/tcp            # mountd tcp port
+mountd      4002/udp            # mountd udp port
+rquotad     4003/tcp            # rpc.rquotad tcp port
+rquotad     4003/udp            # rpc.rquotad udp port


diff -Nura a/etc/default/nfs-kernel-server b/etc/default/nfs-kernel-server
--- a/etc/default/nfs-kernel-server	2018-08-24 10:36:20.939705758 +0900
+++ b/etc/default/nfs-kernel-server	2018-08-24 10:29:21.124818947 +0900
@@ -9,7 +9,7 @@
 # a fixed port here using the --port option. For more information,
 # see rpc.mountd(8) or http://wiki.debian.org/SecuringNFS
 # To disable NFSv4 on the server, specify '--no-nfs-version 4' here
-RPCMOUNTDOPTS="--manage-gids"
+RPCMOUNTDOPTS="--no-nfs-version 4 -p 4002 -g"

그리고 /etc/modprobe.d/options.conf 파일을 생성해야 한다.

$ sudo vi /etc/modprobe.d/options.conf

options lockd nlm_udpport=4001 nlm_tcpport=4001

위 사항을 모두 적용하였다면 NFS server를 아래와 같이 다시 구동시키도록 한다.

$ sudo /etc/init.d/rpcbind restart
$ sudo /etc/init.d/nfs-kernel-server restart

모든 사항이 정상적으로 적용되었다면 아래와 같이 NFS Server가 4002로 설정된 것을 확인할 수 있다.

Host PC 설정 이외에도 ALi SDK의 buildroot 일부 패키지는 우분투 20.04에서 빌드하려면 패치가 필요한데, 이것은 추후에 정리하던지 해야겠다.