--- title: "Install" slug: "applications-packetscope2-install" updated: 2025-03-29T12:54:02Z published: 2025-03-29T12:54:02Z canonical: "docs.fmad.io/applications-packetscope2-install" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.fmad.io/llms.txt > Use this file to discover all available pages before exploring further. # Install Installation of the Packetscope2 LXC Container is as follows ### Step 1) Download the LXC Download the latest LXC from the Container download directory [https://static.fmad.io/container.html#pscope2](https://static.fmad.io/container.html#pscope2) ### Step 2) Untarball copy the tarball to ```plaintext /opt/fmadio/lxc ``` This will require sudo access then extract the LXC as follows ```plaintext tar xfzv pscope2-20250221-0855.tar.gz ``` Example output ```plaintext root@fmadio100v2-228U:/mnt/store0/lxc/lib/lxc# tar xfzv pscope2-20250221-0855.tar.gz pscope2-20250221-0855/ pscope2-20250221-0855/fmadiocli-start.lua pscope2-20250221-0855/log/ pscope2-20250221-0855/log/clickhouse/ pscope2-20250221-0855/log/clickhouse/clickhouse-server.err.log pscope2-20250221-0855/log/clickhouse/stdout.log pscope2-20250221-0855/log/clickhouse/clickhouse-server.log pscope2-20250221-0855/log/clickhouse/stderr.log pscope2-20250221-0855/log/omclickhouse-log/ pscope2-20250221-0855/log/omclickhouse-log/omclickhouse-syslog pscope2-20250221-0855/log/pscope2/ pscope2-20250221-0855/log/grafana/ pscope2-20250221-0855/log/grafana/grafana.log pscope2-20250221-0855/log/remote/ pscope2-20250221-0855/log/remote/fmadio20v3-333-ubuntu22/ pscope2-20250221-0855/log/remote/fmadio20v3-333-ubuntu22/keyboard-setup.sh.log pscope2-20250221-0855/log/remote/fmadio20v3-333-ubuntu22/cron.log pscope2-20250221-0855/log/remote/fmadio20v3-333-ubuntu22/systemd-sysctl.log pscope2-20250221-0855/log/remote/fmadio20v3-333-ubuntu22/networkd-dispatcher.log pscope2-20250221-0855/log/remote/fmadio20v3-333-ubuntu22/systemd-logind.log pscope2-20250221-0855/log/remote/fmadio20v3-333-ubuntu22/rsyslogd.log . . pscope2-20250221-0855/rootfs/opt/fmadio/app/pscope2/bin/ pscope2-20250221-0855/rootfs/opt/fmadio/app/pscope2/bin/ingest.lua pscope2-20250221-0855/rootfs/opt/fmadio/app/pscope2/bin/pscope2.lua pscope2-20250221-0855/rootfs/opt/fmadio/app/pscope2/bin/pcap2json2 pscope2-20250221-0855/rootfs/opt/fmadio/app/pscope2/etc/ pscope2-20250221-0855/rootfs/run/ pscope2-20250221-0855/rootfs/srv/ pscope2-20250221-0855/rootfs/sbin pscope2-20250221-0855/fmadiocli-add.lua root@fmadio100v2-228U:/mnt/store0/lxc/lib/lxc# ``` ### Step 3) Install the LXC Install the LXC as follows. Note this is in the pscope2-YYYYMMDD-HHMMSS directory. All operations require running as root ```plaintext cd pscope2-20250221-0855 ``` then run the install script (as root) ```plaintext ./install.lua ``` Example output ```plaintext root@fmadio100v2-228U:/mnt/store0/lxc/lib/lxc/pscope2-20250329-1217# ./install.lua fmad fmadlua Sep  7 2024 (/opt/fmadio/bin/fmadiolua --nocal ./install.lua ) Disable cycle calibration man0 imported man0 ipv4 addr    [nil] man0 ipv4 netmask [nil] man0 ipv4 gw      [nil] man0 ipv4 dns     [nil] lxcname           [nil] lxcbuild          [nil] nat            [y] fmad fmadlua Sep  7 2024 (/opt/fmadio/bin/fmadiolua --nocal /opt/fmadio/bin/fmadiocli version ) Disable cycle calibration done 0.004944Sec 0.000082Min ----------------------------------------------- [Sat Mar 29 20:49:41 2025] CmdLine [version] [Sat Mar 29 20:49:41 2025] Cmd [version] ----------------------------------------------- fmadiocliPresent = true pscope2-20250329-1217 rm config mkdir /opt/fmadio/lxc/pscope2-20250329-1217/data/ -p mkdir /opt/fmadio/lxc/pscope2-20250329-1217/log/ -p ---------------------- IP     : nil CIDR   : nil GW     : nil DNS    : nil Nat    : y /opt/fmadio/bin/fmadiocli "config ring add lxc_pscope2" fmad fmadlua Sep  7 2024 (/opt/fmadio/bin/fmadiolua --nocal /opt/fmadio/bin/fmadiocli config ring add lxc_pscope2 ) Disable cycle calibration [Sat Mar 29 20:49:41 2025] CmdLine [config ring add lxc_pscope2] [Sat Mar 29 20:49:41 2025] Cmd [config ring add lxc_pscope2] [Sat Mar 29 20:49:41 2025]**ERROR** Ring named [lxc_pscope2] already exists [Sat Mar 29 20:49:41 2025] [Sat Mar 29 20:49:41 2025] Example Usage: [Sat Mar 29 20:49:41 2025] > config ring add            : creates the  ring [Sat Mar 29 20:49:41 2025] done 0.019156Sec 0.000319Min rm /opt/fmadio/lxc/pscope2-20250329-1217/rootfs/etc/resolv.conf touch /opt/fmadio/lxc/pscope2-20250329-1217/rootfs/etc/resolv.conf echo fmadio100v2-228U-pscope2 > /opt/fmadio/lxc/pscope2-20250329-1217/rootfs/etc/hostname echo 127.0.0.1 fmadio100v2-228U-pscope2 >> /opt/fmadio/lxc/pscope2-20250329-1217/rootfs/etc/hosts /opt/fmadio/bin/fmadiocli "config lxc add pscope2-20250329-1217" fmad fmadlua Sep  7 2024 (/opt/fmadio/bin/fmadiolua --nocal /opt/fmadio/bin/fmadiocli config lxc add pscope2-20250329-1217 ) Disable cycle calibration [Sat Mar 29 20:49:41 2025] CmdLine [config lxc add pscope2-20250329-1217] [Sat Mar 29 20:49:41 2025] Cmd [config lxc add pscope2-20250329-1217] [Sat Mar 29 20:49:41 2025] Added container [pscope2-20250329-1217] to the configuration done 0.119002Sec 0.001983Min ./host_files/plugin_reload.lua ./host_files/fmadio_pscope2_basic_20250101_0000.tcz fmad fmadlua Sep  7 2024 (/opt/fmadio/bin/fmadiolua ./host_files/plugin_reload.lua ./host_files/fmadio_pscope2_basic_20250101_0000.tcz ) calibrating... 0 : 2095073498           2.0951 cycles/nsec offset:4.927 Mhz Cycles/Sec 2095073498.0000 Std:       0 cycle std(  0.00000000) Target:2.10 Ghz Sat Mar 29 20:49:42 2025 Plugin Load Loading Plugin [./host_files/fmadio_pscope2_basic_20250101_0000.tcz] MD5: b39bca65a939a042bfc478df7e72e5cd  ./host_files/fmadio_pscope2_basic_20250101_0000.tcz reloading pscope2  [basic] Copying new firmware [./host_files/fmadio_pscope2_basic_20250101_0000.tcz] -> /mnt/system/tce/optional/fmadio_pscope2_basic.tcz Cmd [sudo cp -v ./host_files/fmadio_pscope2_basic_20250101_0000.tcz /mnt/system/tce/optional/fmadio_pscope2_basic.tcz] Inserting into boot list Cmd [echo "fmadio_pscope2_basic.tcz" >> /mnt/system/tce/onboot.lst] Cmd [cp  /mnt/system/tce/onboot.lst /mnt/system/tce/onboot.lst.bak] Cmd [cat /mnt/system/tce/onboot.lst.bak | grep -v analytics > /mnt/system/tce/onboot.lst] Killing programs Cmd [sudo /usr/local/bin/umount /tmp/tcloop/fmadio_pscope2_basic] umount: /tmp/tcloop/fmadio_pscope2_basic: not found Cmd [sudo mkdir -p /tmp/tcloop/fmadio_pscope2_basic] Cmd [sudo /usr/local/bin/mount /mnt/system/tce/optional/fmadio_pscope2_basic.tcz /tmp/tcloop/fmadio_pscope2_basic -t squashfs -o loop,ro] Cmd [yes | sudo cp -ais /tmp/tcloop/fmadio_pscope2_basic/* / 2>/dev/null ] ----------------------------------------------- Updated:                                  -> pscope2 basic                                  -> 113                                  -> Sat Mar 29 20:10:36 2025 ----------------------------------------------- ***************************************************************** *** A System reboot is REQUIRED. Please restart (sudo reboot) *** ***************************************************************** done 0.089359Sec 0.001489Min done done 1.264733Sec 0.021079Min root@fmadio100v2-228U:/mnt/store0/lxc/lib/lxc/pscope2-20250329-1217# ``` NOTE: ensure the host binaries have been installed correctly, as highlighted below. If it area looks black run the install command again ![](https://cdn.document360.io/b9aab0c4-36d0-4616-9673-30b661455571/Images/Documentation/image(167).png?sv=2026-02-06&spr=https&st=2026-11-08T12%3A10%3A35Z&se=2026-11-08T13%3A10%3A35Z&sr=c&sp=r&sig=504Coh9zrDuzLYteQPUOyVCpmSKDgJ3wq%2BeKAKyS%2BAE%3D) ### Step 4) Copy the pscope2 target.lua Copy the target to lua file from ```plaintext sudo cp /opt/fmadio/etc_ro/target.lua.pscope2 /opt/fmadio/etc/target.lua ``` This allows the updated API endpoints to function correctly. ### Step 5) Start the Container Use the lxc-start command to start the LXC container ```plaintext sudo lxc-start -n pscope2-20250221-0855 ``` Example output: ```plaintext fmadio@fmadio100v2-228U:/opt/fmadio/lxc$ sudo lxc-start -n pscope2-20250221-0855 fmadio@fmadio100v2-228U:/opt/fmadio/lxc$ ``` **NOTE: After the 1st install of the LXC Container. The system will automatically reboot itself. This is expected behavior and only occurs after the first install.** ### Step 6) Attach to container and check status Attach to the lxc using lxc-attach command ```plaintext sudo lxc-attach -n pscope2-20250221-0855 ``` Example output ```plaintext fmadio@fmadio100v2-228U:/opt/fmadio/lxc$ sudo lxc-attach -n pscope2-20250221-0855 root@fmadio100v2-228U-pscope2:/# ``` Confirm status is operational using SystemD utilities ```plaintext systemctl status fmadio-pscope2.service ``` Example output ```plaintext root@fmadio100v2-228U-pscope2:/# systemctl status fmadio-pscope2.service * fmadio-pscope2.service - FMADIO Packetscope2     Loaded: loaded (/etc/systemd/system/fmadio-pscope2.service; enabled; vendor preset: enabled)    Drop-In: /run/systemd/system/service.d             `-zzz-lxc-service.conf     Active: active (running) since Fri 2025-02-21 10:42:08 UTC; 1min 40s ago   Main PID: 137 (pscope2.lua)     CGroup: /system.slice/fmadio-pscope2.service             |-137 /usr/bin/bash /opt/fmadio/app/pscope2/bin/pscope2.lua             |-140 /opt/fmadio/bin/fmadio2pcap -i /opt/fmadio/queue/lxc_pscope2             |-141 /opt/fmadio/app/pscope2/bin/pcap2json2 -v --json-flow --decode-gtpc --decode-gtpu             `-142 /usr/bin/luajit /opt/fmadio/app/pscope2/bin/ingest.lua Feb 21 10:43:39 fmadio100v2-228U-pscope2 pscope2.lua[142]: [Fri Feb 21 10:43:39 2025] flushing (         0) Total:0.000M Feb 21 10:43:40 fmadio100v2-228U-pscope2 pscope2.lua[142]: [Fri Feb 21 10:43:40 2025] flushing (         0) Total:0.000M Feb 21 10:43:41 fmadio100v2-228U-pscope2 pscope2.lua[142]: [Fri Feb 21 10:43:41 2025] flushing (         0) Total:0.000M Feb 21 10:43:42 fmadio100v2-228U-pscope2 pscope2.lua[142]: [Fri Feb 21 10:43:42 2025] flushing (         0) Total:0.000M Feb 21 10:43:43 fmadio100v2-228U-pscope2 pscope2.lua[142]: [Fri Feb 21 10:43:43 2025] flushing (         0) Total:0.000M Feb 21 10:43:44 fmadio100v2-228U-pscope2 pscope2.lua[142]: [Fri Feb 21 10:43:44 2025] flushing (         0) Total:0.000M Feb 21 10:43:45 fmadio100v2-228U-pscope2 pscope2.lua[142]: [Fri Feb 21 10:43:45 2025] flushing (         0) Total:0.000M Feb 21 10:43:46 fmadio100v2-228U-pscope2 pscope2.lua[142]: [Fri Feb 21 10:43:46 2025] flushing (         0) Total:0.000M Feb 21 10:43:47 fmadio100v2-228U-pscope2 pscope2.lua[142]: [Fri Feb 21 10:43:47 2025] flushing (         0) Total:0.000M Feb 21 10:43:48 fmadio100v2-228U-pscope2 pscope2.lua[142]: [Fri Feb 21 10:43:48 2025] flushing (         0) Total:0.000M root@fmadio100v2-228U-pscope2:/# ``` ### Optional 7) configure IP Forwarding (one time only) (One time only) By default the LXC / Grafana runs on the private 192.168.255.0/24 subnet, which is not accessible externally. To access PacketScope2 Grafana interface update the iptables rules in ```plaintext /opt/fmadio/etc/ ``` Create / modify the file ```plaintext iptables.conf ``` Replace the contents with below ```plaintext # Generated by iptables-save v1.6.1 on Tue Nov 28 15:30:44 2023 *nat :PREROUTING ACCEPT [307:49051] :INPUT ACCEPT [3:156] :OUTPUT ACCEPT [112:11328] :POSTROUTING ACCEPT [110:11210] # fshark rdp port -A PREROUTING -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.255.11:3389 # pscope2 -A PREROUTING -p tcp -m tcp --dport 3050 -j DNAT --to-destination 192.168.255.50:3000 -A POSTROUTING -o man0 -j MASQUERADE -A POSTROUTING -o man10 -j MASQUERADE COMMIT # Completed on Tue Nov 28 15:30:44 2023 # Generated by iptables-save v1.6.1 on Tue Nov 28 15:30:44 2023 *filter :INPUT ACCEPT [15028:3079580] :FORWARD ACCEPT [1651:509287] :OUTPUT ACCEPT [14446:4545136] COMMIT # Completed on Tue Nov 28 15:30:44 2023 ``` Then reload the IPtables rules using the command ```plaintext sudo iptables-restore < /opt/fmadio/etc/iptables.conf ``` Example output as follows ```plaintext fmadio@fmadio100v2-228U:/opt/fmadio/etc$ sudo iptables-restore /opt/fmadio/etc/iptables.conf fmadio@fmadio100v2-228U:/opt/fmadio/etc$ ``` Confirm Grafana can be access on HTTPS port 3050 example below ![](https://cdn.document360.io/b9aab0c4-36d0-4616-9673-30b661455571/Images/Documentation/image(123).png?sv=2026-02-06&spr=https&st=2026-11-08T12%3A10%3A35Z&se=2026-11-08T13%3A10%3A35Z&sr=c&sp=r&sig=504Coh9zrDuzLYteQPUOyVCpmSKDgJ3wq%2BeKAKyS%2BAE%3D)