Difference between revisions of "Open5gs: Compile"

From OnnoWiki
Jump to navigation Jump to search
 
(4 intermediate revisions by the same user not shown)
Line 19: Line 19:
 
  sudo apt update
 
  sudo apt update
 
  sudo apt install -y mongodb-org
 
  sudo apt install -y mongodb-org
  sudo systemctl start mongod (if '/usr/bin/mongod' is not running)
+
  sudo systemctl start mongod
  sudo systemctl enable mongod (ensure to automatically start it on system boot)
+
  sudo systemctl enable mongod
  
Tip: MongoDB is used as database for NRF/PCF/UDR and PCRF/HSS.
+
Tip: MongoDB digunakan sebagai database untuk NRF/PCF/UDR dan PCRF/HSS.
  
 
==Setup TUN device (not persistent)==
 
==Setup TUN device (not persistent)==
Line 33: Line 33:
 
  sudo ip link set ogstun up
 
  sudo ip link set ogstun up
  
Tip: The script provided in $GIT_REPO/misc/netconf.sh makes it easy to configure the TUN device as follows:   
+
Tip: script ini tersedia di $GIT_REPO/misc/netconf.sh yang akan memudahkan kita dapat mengkonfigurasi TUN device:   
  
 
  sudo ./misc/netconf.sh
 
  sudo ./misc/netconf.sh
  
 
+
==Install Pendukung==
  
 
Install Dependency
 
Install Dependency
  
 
  sudo apt update
 
  sudo apt update
  sudo apt -y install python3-pip python3-setuptools python3-wheel ninja-build \
+
  sudo apt y install python3-pip python3-setuptools python3-wheel ninja-build build-essential flex bison \
build-essential flex bison git libsctp-dev libgnutls28-dev \
+
git cmake libsctp-dev libgnutls28-dev libgcrypt-dev libssl-dev libidn11-dev libmongoc-dev libbson-dev \
libgcrypt-dev libssl-dev libidn11-dev libmongoc-dev \
+
  libyaml-dev libnghttp2-dev libmicrohttpd-dev libcurl4-gnutls-dev libnghttp2-dev libtins-dev \
  libbson-dev libyaml-dev libnghttp2-dev libmicrohttpd-dev \
+
libtalloc-dev meson
libcurl4-gnutls-dev libnghttp2-dev libtins-dev libtalloc-dev meson
+
 
 +
==Git clone & Compile==
  
 
Clone source code dari github
 
Clone source code dari github
  
 +
rm -Rf /usr/local/src/open5gs
 
  cd /usr/local/src
 
  cd /usr/local/src
 
  git clone https://github.com/open5gs/open5gs
 
  git clone https://github.com/open5gs/open5gs
Line 55: Line 57:
 
Compile menggunakan Meson
 
Compile menggunakan Meson
  
  cd open5gs
+
  cd /usr/local/src/open5gs
 
  meson build --prefix=`pwd`/install
 
  meson build --prefix=`pwd`/install
 
  ninja -C build
 
  ninja -C build
  
Cek apakah hasil compile Sudah Benar
+
==Test==
  
  ./build/tests/attach/attach # Untuk EPC
+
Cek EPC (4G)
  ./build/tests/registration/registration  #untuk core 5g
+
 
 +
  ./build/tests/attach/attach
 +
 
 +
Hasilnya,
 +
 
 +
s1setup-test        : SUCCESS
 +
simple-test        : SUCCESS
 +
guti-test          : SUCCESS
 +
auth-test          : SUCCESS
 +
idle-test          : SUCCESS
 +
emm-status-test    : SUCCESS
 +
ue-context-test    : SUCCESS
 +
reset-test          : SUCCESS
 +
issues-test        : SUCCESS
 +
All tests passed.
 +
 
 +
Cek Core (5G)
 +
 
 +
  ./build/tests/registration/registration
 +
 
 +
Hasilnya,
 +
 
 +
simple-test        : SUCCESS
 +
guti-test          : SUCCESS
 +
auth-test          : SUCCESS
 +
ecc-test            : SUCCESS
 +
idle-test          : SUCCESS
 +
dereg-test          : SUCCESS
 +
paging-test        : SUCCESS
 +
identity-test      : SUCCESS
 +
gmm-status-test    : SUCCESS
 +
ue-context-test    : SUCCESS
 +
reset-test          : SUCCESS
 +
multi-ue-test      : SUCCESS
 +
  All tests passed.
 +
 
 +
Lakukan Full Test
 
   
 
   
 
  cd build
 
  cd build
 
  meson test -v
 
  meson test -v
 +
 +
Pastikan tidak ada Error,
 +
 +
ninja: Entering directory `/usr/local/src/open5gs/build'
 +
ninja: no work to do.
 +
  1/13 open5gs:unit / core        RUNNING     
 +
>>> MALLOC_PERTURB_=59 /usr/local/src/open5gs/build/tests/core/core
 +
―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ✀ 
 +
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
 +
list-test          : SUCCESS
 +
pool-test          : SUCCESS
 +
strings-test        : SUCCESS
 +
time-test          : SUCCESS
 +
conv-test          : SUCCESS
 +
log-test            : SUCCESS
 +
....
 +
....
 +
....
 +
12/13 open5gs:app / handover    OK            13.56s
 +
 +
13/13 open5gs:epc / non3gpp      RUNNING     
 +
>>> MALLOC_PERTURB_=75 /usr/local/src/open5gs/build/tests/non3gpp/non3gpp
 +
―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ✀ 
 +
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
 +
epdg-test          : SUCCESS
 +
All tests passed.
 +
―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
 +
13/13 open5gs:epc / non3gpp      OK              7.63s
 
   
 
   
Install
+
Ok:                13 
 +
Expected Fail:      0 
 +
Fail:              0 
 +
Unexpected Pass:    0 
 +
Skipped:            0 
 +
Timeout:            0 
 +
Full log written to /usr/local/src/open5gs/build/meson-logs/testlog.txt
 +
 
 +
Pastikan tidak ada yang Fail.
 +
 
 +
==Install Open5gs==
  
  cd build
+
  cd /usr/local/src/open5gs/build
 
  ninja install
 
  ninja install
 
  cd ../
 
  cd ../
 
  
 
==Pranala Menarik==
 
==Pranala Menarik==
  
 
* [[5G]]
 
* [[5G]]

Latest revision as of 08:59, 22 July 2023

Sistem Operasi Ubuntu 22.04

Install MongoDB

Import public key

sudo apt update
sudo apt install gnupg
curl -fsSL https://pgp.mongodb.com/server-6.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg --dearmor

Buat file /etc/apt/sources.list.d/mongodb-org-6.0.list

Di Ubuntu 22.04 (Jammy)

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list

Install MongoDB

sudo apt update
sudo apt install -y mongodb-org
sudo systemctl start mongod
sudo systemctl enable mongod

Tip: MongoDB digunakan sebagai database untuk NRF/PCF/UDR dan PCRF/HSS.

Setup TUN device (not persistent)

Buat TUN device dengan nama interface ogstun.

sudo ip tuntap add name ogstun mode tun
sudo ip addr add 10.45.0.1/16 dev ogstun
sudo ip addr add 2001:db8:cafe::1/48 dev ogstun
sudo ip link set ogstun up

Tip: script ini tersedia di $GIT_REPO/misc/netconf.sh yang akan memudahkan kita dapat mengkonfigurasi TUN device:

sudo ./misc/netconf.sh

Install Pendukung

Install Dependency

sudo apt update
sudo apt y install python3-pip python3-setuptools python3-wheel ninja-build build-essential flex bison \
git cmake libsctp-dev libgnutls28-dev libgcrypt-dev libssl-dev libidn11-dev libmongoc-dev libbson-dev \
libyaml-dev libnghttp2-dev libmicrohttpd-dev libcurl4-gnutls-dev libnghttp2-dev libtins-dev \
libtalloc-dev meson

Git clone & Compile

Clone source code dari github

rm -Rf /usr/local/src/open5gs
cd /usr/local/src
git clone https://github.com/open5gs/open5gs

Compile menggunakan Meson

cd /usr/local/src/open5gs
meson build --prefix=`pwd`/install
ninja -C build

Test

Cek EPC (4G)

./build/tests/attach/attach

Hasilnya,

s1setup-test        : SUCCESS
simple-test         : SUCCESS
guti-test           : SUCCESS
auth-test           : SUCCESS
idle-test           : SUCCESS
emm-status-test     : SUCCESS
ue-context-test     : SUCCESS
reset-test          : SUCCESS
issues-test         : SUCCESS
All tests passed.

Cek Core (5G)

./build/tests/registration/registration

Hasilnya,

simple-test         : SUCCESS
guti-test           : SUCCESS
auth-test           : SUCCESS
ecc-test            : SUCCESS
idle-test           : SUCCESS
dereg-test          : SUCCESS
paging-test         : SUCCESS
identity-test       : SUCCESS
gmm-status-test     : SUCCESS
ue-context-test     : SUCCESS
reset-test          : SUCCESS
multi-ue-test       : SUCCESS
All tests passed.

Lakukan Full Test

cd build
meson test -v

Pastikan tidak ada Error,

ninja: Entering directory `/usr/local/src/open5gs/build'
ninja: no work to do.
 1/13 open5gs:unit / core        RUNNING       
>>> MALLOC_PERTURB_=59 /usr/local/src/open5gs/build/tests/core/core
―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ✀  
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
list-test           : SUCCESS
pool-test           : SUCCESS
strings-test        : SUCCESS
time-test           : SUCCESS
conv-test           : SUCCESS
log-test            : SUCCESS
....
....
....
12/13 open5gs:app / handover     OK             13.56s

13/13 open5gs:epc / non3gpp      RUNNING       
>>> MALLOC_PERTURB_=75 /usr/local/src/open5gs/build/tests/non3gpp/non3gpp
―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ✀  
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
epdg-test           : SUCCESS
All tests passed.
―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
13/13 open5gs:epc / non3gpp      OK              7.63s

Ok:                 13  
Expected Fail:      0   
Fail:               0   
Unexpected Pass:    0   
Skipped:            0   
Timeout:            0   
Full log written to /usr/local/src/open5gs/build/meson-logs/testlog.txt

Pastikan tidak ada yang Fail.

Install Open5gs

cd /usr/local/src/open5gs/build
ninja install
cd ../

Pranala Menarik