Skip to content

Commit 274b805

Browse files
gatekeepDevRanger
andauthored
Merge R05A04 (r05a04_dev) into master (#114)
* rebuild r05a04_dev from nasty Git merge bullshit; implement handling of SNDCP on the FNE instead of dvmhost; add quick sanity Catch2 testcases; BUGFIX: NXDN SACCH was incorrectly handling the RAN and structure causing the structure value to become overwritten; correct badly set example IP range in FNE config; add AI generated documentation for the network statck, FNE REST and DVMHost REST; update version number for next dev version; * remove old documents; * BUGFIX: fix some unbounded array checking; * enhance InfluxDB implementation: fix bad handling on Windows; fix bad use of free() for address info freeaddrinfo(); fix partial data writes for bigger payloads; enhance getting responses back from InfluxDB (this makes it so that InfluxDB cannot fail silently easily); * EXPERIMENTAL: add an adaptive jitter buffer implementation to the FNE to better deal with peers on bad connections that may send packets out-of-sequence; * remove unnecessary garbage in AI generated doc; use references for autos when looping peers; normalize jitter buffer log messages; * cleanup doc; * properly move hastily erected debug YAML config to the peer ACL file instead; * update jitter buffer doc; * BUGFIX: correct naive implementation that did not consider the length of the packet being sent, which could result in a nullptr after casting the ip struct; BUGFIX: send actual bytes read from VTUN vs the default MTU size; * BUGFIX: correct similar ip struct casting problem; * implement a very preliminary DMR to VTUN IP dispatcher based on the P25 implementation (while I am sure this is probably going to be quite iffy, I am quite sure the VTUN TAP interface method we are using *is* the right direction; even though the P25 implementation is iffy, with iteration over time I suspect it is the correct approach, as such I have implemented a DMR equiviliant based on the P25 implementation); * use 3/4 rate instead of 1 rate; add some dev notes future me; * implement preliminary positive response to KMM HELLO (this still will fail with No-Service due to missing implementation for per-SU UKEK implementation from the crypto container); * add some extra logging for VTUN PDU; * better implement V(R) V(S) checking; * add prereq logging of last load time for various lookup tables; * add fne-stats; add reload peers and crypto; * update FNE REST API doc; * WIN32: fix ctime_r and add Win32 compat for ctime_s so we can compile on Win32 again; * Win32: FNE's P25PacketData clock() in its entirety should do nothing on Windows; * shut the compiler up about order of constructor initializers; * EXPERIMENTAL: add option for 1 second delayed network TDU when a subscriber dekeys; * slight TUI color palette change; * implement support to configure adaptive jitter buffer from peered; * initialize FinalCut palette earlier; * document that key IDs are hex not dec; * BUGFIX: lets not memset past the possible end of the key array....; * track active call counts (this might be slightly error prone, so we will at best call this an approximate number); * attempt to validate source IP/port during a RPTL, RPTK or RPTC event when RPTL, RPTK or RPTC is sent while not in the correct login state; * BUGFIX: dvmpatch did not properly release the network stream ID at the termination of a call, resulting in a hang up; * BUGFIX: for R05A04s 1s delayed TDU, make sure we have valid IDs before allowing a delayed TDU; * BUGFIX: add more stream ID lockout reset handling; * BUGFIX: add more stream ID lockout reset handling; * add some experiemental support to dvmpatch to support clear to enc one-way patching; * BUGFIX: only consider jitter buffer for RTP frames not carrying the end of call sequence (65535); * BUGFIX: always allow the network stack to process and pass RTP frames carrying the end of call sequence (65535); * BUGFIX: dvmbridge, ignore UDP frame timeouts when using RTP or USRP UDP streams; * add dropped call support to dvmpatch; refactor/rewrite dvmpatch encryption support; * hide debug messages; * BUGFIX: validate destination matches before handling TDU; * report ssrc for late packets; * prevent issue with 0 callDstId on dvmpatch; reject TDUs with no destination (these are invalid and can fuck off); * add separate packet dumping option to the network stack, to allow for less-verbose debugging messaging (debugigng where packet dump/trace is not required); * BUGFIX: fix condition in P25 call handler where if the TSBK was not decoded it could result in a crash; * add network debug trace around stream ID reset calls; * better handle framequeue debugging when not performing packet dumping; * implement proper packet reordering for P25 PDU data; BUGFIX: add boundary checking for P25 PDU disassembly; * BUGFIX: fix startup crash of dvmbridge when using analog audio mode; add transmit voice frame status for analog audio; correct core network issue determining length of analog audio frames; * bump copyright dates; * BUGFIX: for unauthorized, unconnected failures the NAK response was not sending the appropriate RTP sequence; * enhance REST API logging; add dev REST API commands to force send NAK packets; * add PDU block reordering support to dvmhost; * minor bugfix, correct incorrect log module for host sourced analog audio; * very experimental fix for #111, along with additional enhancements to repeat parrot traffic to all VCs of a trunk site to ensure parrot traffic repeats; * update bridge config and expressly document the need to properly configure timing parameters; * make the program status variable m_running a static s_running for dvmpatch; ensure PeerNetwork for dvmpatch uses m_packetDump instead of m_debug for packet dumping; * (we're still hunting the cause of bridge ceasing UDP socket operations after a period of time, it *seems* to occur on Win32 only though); make the program status variable m_running a static s_running for dvmbridge; ensure PeerNetwork for dvmbridge uses m_packetDump instead of m_debug for packet dumping; fix shutdown issue with local audio causing a crash for dvmbridge; refactor how RTP and uLaw frames work; remove and deprecate the no include length configuration parameter; refactor and centralize UDP audio writing functionality; add verbose log messages for if the s_running flag becomes non-true during operation; * fix concurrency lockup for DMR granting; * remove main thread sleep control this causes WinSock on Win32 to lose its mind when polled too fast; * move sample level dumping option to CLI; * always reset the call streams at the end of a call; * increase packet processing latency warning to 250ms (1/4 second); * begin adding support for P25P2 network transiting; * add some verbose debug trace for checkNetTrafficCollision(); * begin defining P25 Phase 2 primitives; * P2 abbreviated/explicit partition MCOs are essentially just TSBK opcodes; * add MFID specific partition type; * refactor MAC MCO defines; * correct comment; * make slot numerical; * whoops meant == not =; * implement RTP audio pacing by timestamp sent by source; * for maintainability split modes into separate source CPP files; BUGFIX: fix buffer overflow when copying PCM data; allow uLaw encoded RTP frames to also carry source and dest metadata; * preamble tones are not supported for UDP audio; * BUGFIX: dvmpatch do not send LDU2s until network is in non-idle state; * convert direct MMDVM TDU to a timed TDU; correct some handling of LDU1 srcId and dstId; * remove dvmmon, R05A02 will be the last version to support dvmmon, R05A04+ will not support it in favor of using sysview from the FNE for monitoring; * add more P25 Phase 2 primitives for S-OEMI sync and Hamming (8,4,4) for P2 DUID handling; * more P25 Phase 2 constants; * extreme preliminary work to handle P25 Phase 2 MAC messages (nothing uses this yet this is for future proofing); * continued work on preliminary instrumentation for Phase 2 MAC handling; * fix missing parens; * split the decodeVCH_MACPDU into two functions, one for IEMI the other for OEMI; * bugfix and correct encode/decode for RS 52,30,23, 46,26,21, 45,26,20, 44,16,29; implement catch2 cases for P25 Phase 2 RS codes; correct bad EC check for RS 24,12,13, 24,16,9 and 36,20,17 that could cause false positive failures in edge case conditions; * implement and add more EDAC verification test; * add DMR EMB and QR 16,7,6 tests; correct issue where QR 16,7,6 decode() was correcting and returning the wrong number of bits; correct issue where DMR EMB would not actually use the corrected QR 16,7,6 codeword; * finally what I was trying to get to -- add testcases for the new P2 MAC PDU logic; correct implementation problems with the P2 MAC PDU handling for OEMI and IEMI (the implementation still requires handling scrambling); * add missing Hamming FEC test cases; * finish out the base crypto test suite and include the DES algo; * (this first part is subject to Git revert if it becomes problematic, but because this is a dev branch I am gonna roll with it) revert FrameQueue timestamp list/map changes back to pre-R04J32, the original implementation was far cleaner and faster with O(1) speed for timestamp lookup vs the O(n) lookup, additionally, the newer R04J32+ implementation introduces a pointer that can be dereferenced incorrectly causing a edge case crash; fix the implementation for handling the mutex for timestamp map locking, the implementation used a incorrect instance mutex which could in high-traffic conditions cause a race condition and ultimately a crash; * for condition where a downstream peer is trying to connect to us, only validate the IP instead of IP/port; * EXPERIMENTAL (and untested): allow source ID overriding for parrot playback, this feature will rewrite the source ID to a static ID configured in the FNE configuration, for P25, NXDN and Analog this rewrite is striaghtfoward, for DMR this will likely work oddly due to the way DMR has source ID data embedded in the transited data frames; * validate the RPC data length includes the message; * BUGFIX: handle edge case where a opcode $27 is not an ISP_EMERG_ALARM_REQ but rather its a network sourced OSP_DENY_RSP; BUGFIX: handle incorrect decoding of OSP_DENY_RSP by SysView; BUGFIX: for DVRS operation properly set MFG_MOT for DENY and QUEUE outbounds; * do not use [] access for grantTimers and unitRegTimers, use find() lookups these are safer; * issue a notify CC channel release on a ChanRelease TDULC; * add explicit TDU TG release option, this option allows a CC to process incoming TDUs to determine if a channel grant should be released; add more explicit TDU process logging to the FNE, ensure TDUs being sent outside a call are being logged properly; during a TG unpermit on a non-authoritative VC, transmit a burst of TDUs on the outbound VC RF interface; add extra verbosity to the active TG logging; * add option displayModemDebugMessages to optionally disable or enable debug log messages coming *from* the modem; properly check if we're operating in DFSI or not and if we are do not attempt to set the FIFO buffer lengths or clear buffers related to DMR or NXDN; correct deletion of array types in the DFSICallData structure; correct bad length of the VHDR1 during DFSICallData initialization, the length defaulted to TIA mode which would cause a crash when trying to delete and deallocate VHDR1 when used in V.24 mode; * correct TSBK, TDULC and PDU transmission using V.24 DFSI, timing must be applied like IMBE; lengthen the high-level CC generation timer by 10ms, this has no impact on regular air and hotspot modems, but better times CC frames for V.24 DFSI modems; refactor naming to be clearer for the V.24 jitter buffer transmit types; because V.24 uses OSP_TSBK_RAW and LC_TDULC_RAW correct several off by 2 shift bugs; remove unnecessary V.24 start of stream and end of stream calls; * allow TDUs to be sent regardless of whether a V.24 call was started or not; * do work on V.24 PDU support (inbound should be working pretty much perfect now, outbound -- is still broken); * V.24 PDU work; * allow the user to adjust the frame timeout length when using frame timing at the bridge; ensure audio frames aren't greater then x2 the size of an expected audio frame; * after consideration entirely refactor how UDP frame timing is generated internally when we're using raw PCM; fix a variety of bugs related to locking and handling of the deque for UDP audio frames; better insert silence at the start and end of calls; * disable this debug trace, its too noisy; * do not consider active call or call counts for parrot; * add call collisions to the stats counters; add REST APIs to reset and zero call counters; * log non-call DMR terminators like P25; * correct endpoints for counter reset APIs; * reset active call count on a maintainence loop; * increase V.24 outbound rate for TSDUs; * properly set the V.24 Tx buffer size to the FIFO length like done for air and hotspot modems; pass whether or not the frame being written to the modem is an immediate frame; modify V.24 modem to properly maintain two independant buffers, one for background/normal priority frames, and one for immediate priority frames (this helps with CC mode delays, there are more buffering issues, likely at the modem to mitgate but thats a future project); * update gitignore to include some python stuff; add very very preliminary Python tool that helps generate dvmhost configurations; * add option to disable deny responses in conventional for radios that are braindead and interpret an OSP_DENY as a ISP_EMERG because of opcode reuse (thanks TIA-102); * delete array instead of delete; * add protections to prevent the network mutex from locking too long; add proper network watchdog to prevent unterminated calls from hanging bridge; * ICC and GRANT shouldnt NAK, as this will cause a straight disconnect/reconnect, ignore them instead; * fix issue where in-call control might start looping requests; * lets make sure RID0 is never used, treat as WUID_FNE instead; * only send ICC upstream when the ICC request originates on the local FNE; * Revise cross-compilation instructions in README Updated cross-compilation instructions for ARM 32-bit and ARM 64-bit, including examples and required packages. * relabel some source files in the FNE, FNENetwork -> TrafficNetwork, DiagNetwork -> MetadataNetwork; remove support for disabling the alternate port, this feature is mandatory now; * identify a software SDR; * add support to dvmcfggen for logging configuration; add support to dvmcfggen for user supplied answers files to automate skipping certain wizard questions; * typo; * HIGHLY_UNECESSARY_DISCLAIMER_FOR_THE_MENTAL; * the typo of that define was driving my OCD nuts; * include new statement in README.md; * enforce a users usage understanding by adding a startup configuration parameter that must be set; * these flags are root level; * make not be stupid error more clear; * copy legalese from config.yml to README.md; * policy updates * Update usage_guidelines.md * create issue & pr templates * remove dvmmon from bug & pr template * revert how timestamping is generated; * BUGFIX: fix incorrectly set length for RTP packets, we were incorrectly adding 4U bytes which does not apply to RTP frames; * enrage the entire community by cleaning up the bridge configuration to be more sane -- a lot of these parameters had nothing to do with FNE network configuration; * code cleanup (no functional change); * fix missing marker bit on RTP seq 0 to make jsb stop complaining; fix missing CTS controller teardown; * properly set the FIRST seq (when seq is reset to 0) as a marker; because JSB is *REALLY* hell bent on this, implement continuous RTP seq to make him happy; * wtf; * cleanup typo and bad spacing due to bad VSCode configuration; correct memory leak when handling buffer drop due to new stream packet wraparound; * correct issue where RTP sequences were not stepped appropriately; * ignore m_audioDetect flag for UDP audio outbound to the FNE; attempt to correct becoming stuck on incoming RTP timestamps; * whoops remove debug trace line; * remove incorrect shift; * ensure network watchdog resets all states; ignore TDU/TDULC when local audio or UDP traffic is running; * reset callStartTime for TGs who receive Non-Call TDU/Terminators; * remove duration log from Non-Call TDU; * disable the expected TS code for RTP frames; * add mutex locking when making a copy of the RadioId table to prevent thread-based race conditions; --------- Co-authored-by: Dev_Ranger <30966416+DevRanger@users.noreply.github.com>
1 parent 49ff1a4 commit 274b805

257 files changed

Lines changed: 33141 additions & 9480 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
name: Bug report
2+
description: Report a reproducible bug in dvmhost or related components
3+
title: "[BUG] "
4+
labels: ["bug"]
5+
6+
body:
7+
- type: markdown
8+
attributes:
9+
value: |
10+
**Issues are for reproducible bugs only.
11+
Feature requests and roadmap suggestions will be closed.**
12+
13+
Please provide enough detail for us to reproduce the issue.
14+
Full logs are strongly preferred over screenshots or partial snippets.
15+
16+
- type: dropdown
17+
id: component
18+
attributes:
19+
label: Component
20+
description: Select the affected module
21+
options:
22+
- dvmhost
23+
- dvmfne
24+
- dvmbridge
25+
- dvmpatch
26+
- dvmcmd
27+
- sysview
28+
- tged
29+
- peered
30+
- Other
31+
validations:
32+
required: true
33+
34+
- type: input
35+
id: component_other
36+
attributes:
37+
label: If "Other", specify component
38+
placeholder: "Describe the affected component"
39+
40+
- type: input
41+
id: version
42+
attributes:
43+
label: Version / Commit
44+
description: Provide the exact commit SHA or tag
45+
placeholder: "ex: v1.2.3 or a1b2c3d4"
46+
validations:
47+
required: true
48+
49+
- type: dropdown
50+
id: build_type
51+
attributes:
52+
label: Build type
53+
options:
54+
- Built from source (native)
55+
- Cross-compiled
56+
- Custom packaging
57+
validations:
58+
required: true
59+
60+
- type: input
61+
id: compiler
62+
attributes:
63+
label: Compiler version
64+
description: Output of `gcc --version` or `clang --version`
65+
placeholder: "ex: GCC 13.2.0"
66+
validations:
67+
required: true
68+
69+
- type: input
70+
id: environment
71+
attributes:
72+
label: Operating system / architecture
73+
placeholder: "ex: Debian 12 x86_64"
74+
validations:
75+
required: true
76+
77+
- type: textarea
78+
id: build_flags
79+
attributes:
80+
label: Build flags / CMake options
81+
description: Include any special flags used (ex: cross-compile options)
82+
placeholder: |
83+
Example:
84+
-DCROSS_COMPILE_ARM=1
85+
-DCMAKE_BUILD_TYPE=Release
86+
render: text
87+
88+
- type: textarea
89+
id: summary
90+
attributes:
91+
label: Summary
92+
description: Brief description of the issue
93+
validations:
94+
required: true
95+
96+
- type: textarea
97+
id: expected
98+
attributes:
99+
label: Expected behavior
100+
validations:
101+
required: true
102+
103+
- type: textarea
104+
id: actual
105+
attributes:
106+
label: Actual behavior
107+
description: Include exact error messages if applicable
108+
validations:
109+
required: true
110+
111+
- type: textarea
112+
id: repro
113+
attributes:
114+
label: Steps to reproduce
115+
placeholder: |
116+
1.
117+
2.
118+
3.
119+
validations:
120+
required: true
121+
122+
- type: textarea
123+
id: logs
124+
attributes:
125+
label: Full logs
126+
description: Paste complete logs or attach files. Redact secrets.
127+
render: text
128+
129+
- type: textarea
130+
id: config
131+
attributes:
132+
label: Relevant config (redacted)
133+
description: Include only relevant sections with secrets removed
134+
render: text
135+
136+
- type: textarea
137+
id: additional
138+
attributes:
139+
label: Additional context

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
blank_issues_enabled: false
2+
3+
contact_links:
4+
- name: DVMProject Community (Discord)
5+
url: https://discord.dvmproject.io/
6+
about: For questions, discussion, and general support, please join our Discord community.

.github/pull_request_template.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
## Summary
2+
Describe the change and why it is needed.
3+
4+
## Component(s)
5+
Which part(s) of the project does this affect?
6+
7+
- [ ] dvmhost
8+
- [ ] dvmfne
9+
- [ ] dvmbridge
10+
- [ ] dvmpatch
11+
- [ ] dvmcmd
12+
- [ ] sysview
13+
- [ ] tged
14+
- [ ] peered
15+
- [ ] Other (explain below)
16+
17+
## Type of change
18+
- [ ] Bug fix
19+
- [ ] Refactor / cleanup
20+
- [ ] Performance improvement
21+
- [ ] Documentation update
22+
- [ ] Build / tooling change
23+
24+
## Related issues
25+
Link any related bug reports.
26+
27+
Closes #
28+
Refs #
29+
30+
## Build & test notes
31+
Explain how this was built and tested.
32+
33+
Include:
34+
- OS / distro
35+
- Compiler version
36+
- Any special build flags
37+
38+
## Logs / output (if applicable)
39+
Paste relevant output demonstrating the fix or behavior change.
40+
41+
## Checklist
42+
- [ ] Change is scoped and focused
43+
- [ ] Existing functionality verified
44+
- [ ] No unrelated refactors included
45+
- [ ] Documentation updated if needed
46+
- [ ] No secrets or credentials included
47+
48+
## Notes for maintainers
49+
Anything reviewers should be aware of?

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@ package/
6565
*.ini
6666
.vs
6767
.idea/
68+
venv/
69+
__pycache__/
70+
*.pyc
6871

6972
# Prerequisites
7073
*.d

CMakeLists.txt

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,6 @@ install(TARGETS dvmhost DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
278278
install(TARGETS dvmcmd DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
279279
install(TARGETS dvmfne DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
280280
if (ENABLE_TUI_SUPPORT AND (NOT DISABLE_TUI_APPS))
281-
install(TARGETS dvmmon DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
282281
install(TARGETS sysview DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
283282
install(TARGETS tged DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
284283
endif (ENABLE_TUI_SUPPORT AND (NOT DISABLE_TUI_APPS))
@@ -302,7 +301,6 @@ if (NOT TARGET strip)
302301
COMMAND arm-linux-gnueabihf-strip -s dvmhost
303302
COMMAND arm-linux-gnueabihf-strip -s dvmfne
304303
COMMAND arm-linux-gnueabihf-strip -s dvmcmd
305-
COMMAND arm-linux-gnueabihf-strip -s dvmmon
306304
COMMAND arm-linux-gnueabihf-strip -s sysview
307305
COMMAND arm-linux-gnueabihf-strip -s tged
308306
COMMAND arm-linux-gnueabihf-strip -s peered
@@ -322,7 +320,6 @@ if (NOT TARGET strip)
322320
COMMAND aarch64-linux-gnu-strip -s dvmhost
323321
COMMAND aarch64-linux-gnu-strip -s dvmfne
324322
COMMAND aarch64-linux-gnu-strip -s dvmcmd
325-
COMMAND aarch64-linux-gnu-strip -s dvmmon
326323
COMMAND aarch64-linux-gnu-strip -s sysview
327324
COMMAND aarch64-linux-gnu-strip -s tged
328325
COMMAND aarch64-linux-gnu-strip -s peered
@@ -342,7 +339,6 @@ if (NOT TARGET strip)
342339
COMMAND strip -s dvmhost
343340
COMMAND strip -s dvmfne
344341
COMMAND strip -s dvmcmd
345-
COMMAND strip -s dvmmon
346342
COMMAND strip -s sysview
347343
COMMAND strip -s tged
348344
COMMAND strip -s peered
@@ -378,7 +374,6 @@ if (NOT TARGET tarball)
378374
COMMAND touch ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/log/INCLUDE_DIRECTORY
379375
COMMAND cp -v dvmhost ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/bin
380376
COMMAND cp -v dvmcmd ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/bin
381-
COMMAND cp -v dvmmon ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/bin
382377
COMMAND cp -v sysview ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/bin
383378
COMMAND cp -v tged ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/bin
384379
COMMAND cp -v peered ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/bin
@@ -459,7 +454,6 @@ if (NOT TARGET tarball_notools)
459454
COMMAND touch ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/log/INCLUDE_DIRECTORY
460455
COMMAND cp -v dvmhost ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/bin
461456
COMMAND cp -v dvmcmd ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/bin
462-
COMMAND cp -v dvmmon ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/bin
463457
COMMAND cp -v sysview ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/bin
464458
COMMAND cp -v tged ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/bin
465459
COMMAND cp -v peered ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/bin
@@ -537,7 +531,6 @@ add_custom_target(old_install
537531
COMMAND mkdir -p ${CMAKE_LEGACY_INSTALL_PREFIX}/schema
538532
COMMAND install -m 755 dvmhost ${CMAKE_LEGACY_INSTALL_PREFIX}/bin
539533
COMMAND install -m 755 dvmcmd ${CMAKE_LEGACY_INSTALL_PREFIX}/bin
540-
COMMAND install -m 755 dvmmon ${CMAKE_LEGACY_INSTALL_PREFIX}/bin
541534
COMMAND install -m 755 sysview ${CMAKE_LEGACY_INSTALL_PREFIX}/bin
542535
COMMAND install -m 755 tged ${CMAKE_LEGACY_INSTALL_PREFIX}/bin
543536
COMMAND install -m 755 peered ${CMAKE_LEGACY_INSTALL_PREFIX}/bin

README.md

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ The Digital Voice Modem ("DVM") Core Software Suite, provides the a set of appli
88

99
Please feel free to reach out to us for help, comments or otherwise, on our Discord: https://discord.gg/3pBe8xgrEz
1010

11+
**THIS SOFTWARE MUST NEVER BE USED IN PUBLIC SAFETY OR LIFE SAFETY CRITICAL APPLICATIONS! This software project is provided solely for personal, non-commercial, hobbyist use; any commercial, professional, governmental, or other non-hobbyist use is strictly discouraged, fully unsupported and expressly disclaimed by the authors. For full project policies and support limitations, see: [Usage & Support Guidelines](usage_guidelines.md).**
12+
1113
This project suite generates a few executables:
1214

1315
### Core Applications
@@ -90,12 +92,21 @@ sudo apt-get install libdw-dev:arm64
9092
dvmhost/build # sudo make old_install
9193
```
9294
93-
If cross-compiling is required (for either ARM 32bit, 64bit or old Raspberry Pi ARM 32bit), the CMake build system has some options:
95+
If cross-compiling is required (ARM 32-bit or ARM64), the CMake build system provides the following options:
96+
97+
- `-DCROSS_COMPILE_ARM=1` - Cross-compile **dvmhost** for generic ARM 32-bit
98+
(ex: Raspberry Pi running a 32-bit OS; Debian/Raspbian Bullseye or newer)
99+
100+
- `-DCROSS_COMPILE_AARCH64=1` - Cross-compile **dvmhost** for generic ARM 64-bit
101+
(ex: Raspberry Pi 4+ or other ARM64 systems; Debian/Raspbian Bullseye or newer)
94102
95-
- `-DCROSS_COMPILE_ARM=1` - This will cross-compile dvmhost for generic ARM 32bit. (RPi4+ running 32-bit distro's can fall into this category [on Debian/Rasbpian anything bullseye or newer])
96-
- `-DCROSS_COMPILE_AARCH64=1` - This will cross-compile dvmhost for generic ARM 64bit. (RPi4+ running 64-bit distro's can fall into this category [on Debian/Rasbpian anything bullseye or newer])
103+
Please note cross-compilation requires you to have the appropriate development packages installed for your system.:
97104
98-
Please note cross-compliation requires you to have the appropriate development packages installed for your system. For ARM 32-bit, on Debian/Ubuntu OS install the "arm-linux-gnueabihf-gcc" and "arm-linux-gnueabihf-g++" packages. For ARM 64-bit, on Debian/Ubuntu OS install the "aarch64-linux-gnu-gcc" and "aarch64-linux-gnu-g++" packages.
105+
- **ARM 32-bit (Debian/Ubuntu):**
106+
`arm-linux-gnueabihf-gcc`, `arm-linux-gnueabihf-g++`
107+
108+
- **ARM 64-bit (Debian/Ubuntu):**
109+
`aarch64-linux-gnu-gcc`, `aarch64-linux-gnu-g++`
99110
100111
[See project notes](#project-notes).
101112
@@ -406,3 +417,7 @@ After finishing these steps, reboot.
406417
## License
407418

408419
This project is licensed under the GPLv2 License - see the [LICENSE](LICENSE) file for details. Use of this project is intended, for amateur and/or educational use ONLY. Any other use is at the risk of user and all commercial purposes is strictly discouraged.
420+
421+
**THIS SOFTWARE MUST NEVER BE USED IN PUBLIC SAFETY OR LIFE SAFETY CRITICAL APPLICATIONS! This software project is provided solely for personal, non-commercial, hobbyist use; any commercial, professional, governmental, or other non-hobbyist use is strictly discouraged, fully unsupported and expressly disclaimed by the authors.**
422+
423+
By using this software, you agree to indemnify, defend, and hold harmless the authors, contributors, and affiliated parties from and against any and all claims, liabilities, damages, losses, or expenses (including reasonable attorneys’ fees) arising out of or relating to any unlawful, unauthorized, or improper use of the software.

0 commit comments

Comments
 (0)