update draft and old post

main
Dominic Reich 1 year ago
parent 2f7c7d53b6
commit 730092eb28
Signed by: dominic
GPG Key ID: BC9D6AE1A3BE169A

@ -3,7 +3,7 @@ title = 'Radioddity GD-77'
summary = '''Consider the OpenGD77 firmware and you're all set with a
very user friendly and customizable handheld radio.'''
date = '2020-10-17'
lastmod = '2023-08-12T15:25:57+0000'
lastmod = '2023-08-27T19:34:45+0000'
#categories = [ 'amateur-radio' ]
showBreadcrumbs = true
showReadingTime = false
@ -90,7 +90,7 @@ callsigns in this list---about 2000 new callsigns).
{{< alert "circle-info" >}}
If you don't have a proper file to start with use this one here. It contains
these regions: `232, 262, 263, 264, 222, 228`.
[:open_file_folder: Download](/files/dmrids_2023-08-12.zip "28775 entries") (\~238KB)
<a href="/files/dmrids_2023-08-12.zip" onclick="window.fathom.trackGoal('8NVNQPEY', 0);" title="28775 entries">:open_file_folder: Download</a> (\~238KB)
{{< /alert >}}
Or: download your own set of DMR-IDs with the regions you want. You can also

@ -3,7 +3,7 @@
title = 'OpenBSD-current'
summary = 'Keeping up to date with OpenBSD-current. Some quick notes.'
date = '2023-08-11T19:47:56+0000'
lastmod = '2023-08-26T17:14:29+0000'
lastmod = '2023-08-27T19:34:45+0000'
categories = [ 'computerstuff' ]
tags = [ 'openbsd' ]
@ -138,6 +138,8 @@ Run the command without the `| tee ...` part to see if any errors occur.
If the for loop finishes without errors, we can add the `tee` part and
write the new localports file into `/usr/ports`.
Make sure to remove the `distfiles/<port>` sections.
The final file should look like this:
```
@ -150,6 +152,9 @@ sysutils/anacron
devel/appstream-glib
```
Some paths should be modified like the firefox browser is not found
as _firefox_ but as _fitefox-i18n_ for example.
Notice, there is already the package `adwaita-icon-theme` misssing
because there is no such port in the ports tree.
@ -162,6 +167,9 @@ $ doas /usr/ports/infrastructure/bin/dpb -P localports
That's it. The screen gets filled with all the ports that
are updated at once/in parallel.
I do have about 100 packages to build, which usually consumes around
<mark>40 minutes</mark> of time.
## Creating a release
There are a few steps needed to create your own installation media.
@ -201,9 +209,6 @@ $ cd /usr/src/distrib/sets && doas sh checkflist
$ unset RELEASEDIR DESTDIR
```
<!-- TODO:
fix time because I forgot them right now. its quicker than 1 hour i think IIRC -->
Time for coffe, the second line above takes around <mark>an hour</mark>.
This step creates a base installation of OpenBSD within `/build/dest` and
creates the installation media (tarballs) in `/build/release`.
@ -217,8 +222,6 @@ $ doas make checkdist
$ unset RELEASEDIR DESTDIR
```
<!-- TODO: set correct time consumation... -->
This run is fairly quick, expect <mark>a few minutes</mark> to run.
### Creating the installation media files

@ -0,0 +1,174 @@
+++
title = 'DMRHost on a Raspberry Pi 4 with FreeBSD'
summary = '''multiline commentary
olay'''
date = '2023-08-26T21:01:16+02:00'
#lastmod = ''
categories = [ 'amateur-radio' ]
tags = []
# showBreadcrumbs = true
# showDate = false
# showReadingTime = false
# showWordCount = false
# showPagination = false
# feed_exclude = true
# site_exclude = true
draft = true
+++
## Setup FreeBSD
I'm using 14.0-CURRENT for this.
<https://download.freebsd.org/ftp/snapshots/arm64/aarch64/ISO-IMAGES/14.0/>
```console
$ doas dd if=FreeBSD-14.0-ALPHA3-arm64-aarch64-RPI-20230825-2af9390e54ed-265022.img of=/dev/rsd2c bs=1m
```
Boot into the system with the serial console. Setup a dedicated user for this and
disable the serial console after you successfully set up the network (don't forget
to also test ssh connection).
```console
$ doas pw useradd mmdvm -d /home/mmdvm -m -L daemon -G dialer
```
Do not use the UART for kernel messages.
Add this line to your `/boot/loader.conf` file.
```conf
hw.fdt.console="NO"
```
Reboot so the serial console can be used for the MMDVM_HS hat.
## Install DMRHost
You will need a few packages before we can continue. This list could
be incomplete because I try to remember them from brain memory...
```console
$ doas pkg install git gcc cmake
```
Goto `/home/mmdvm`, build and install DMRHost.
```console
$ doas -u mmdvm mkdir ~/git && cd /home/mmdvm/git
$ doas -u mmdvm git clone https://github.com/BrandMeister/DMRHost.git
$ cd DMRHost && doas -u mmdvm mkdir build && cd build
$ doas -u mmdvm (cmake -DCMAKE_BUILD_TYPE=Release .. && make)
$ doas make install
```
Create directories and the `MMDVM.ini` file.
```console
$ cd /home/mmdvm && doas -u mmdvm mkdir logs && chmod 0775 logs
$ doas -u mmdvm nvim MMDVM.ini
```
```ini
[...]
[Log]
# Logging levels, 0=No logging, 1=Debug, 2=Message, 3=Info, 4=Warning, 5=Error, 6=Fatal
SyslogLevel=0
DisplayLevel=0
FileLevel=2
FilePath=/home/mmdvm/logs
FileRoot=DMRHost
FileRotate=0
[...]
[Modem]
Port=/dev/cua00
Protocol=uart
[...]
```
I also add my user to the mmdvm group, so I can edit the MMDVM file.
(Well, set file permissions to 0664)
```console
$ doas pw usermod <user> -G mmdvm
```
## Test DMRHost
```console
$ doas -u mmdvm /usr/local/bin/DMRHost /home/mmdvm/MMDVM.ini
```
You may inspect the logfile beforehand: `tail -f /home/mmdvm/logs/DMRHost.log`.
The startup of DMRHost should end with something like these lines:
```log
M: 2023-08-25 11:03:05.000 DMRHost-20220617-DMRHost is running
M: 2023-08-25 11:03:15.000 DMR, Logged into the master successfully
```
## Setup an rc file
```sh
#!/bin/sh
# rc-script for DMRHost on OpenBSD 7.3
# runs on FreeBSD for now
# Dominic Reich <https://oe7drt.com>
DMRHOST="/usr/local/bin/DMRHost"
MMDVM_INI="/home/mmdvm/MMDVM.ini"
DMRHOST_PID="/home/mmdvm/DMRHost.pid"
DOAS="/usr/local/bin/doas -u mmdvm"
LOGDIR="/home/mmdvm/logs"
case "$1" in
"start")
if [ ! -d ${LOGDIR} ] ; then
mkdir ${LOGDIR}
chown mmdvm:users ${LOGDIR}
chmod 0775 ${LOGDIR}
fi
if ${DOAS} [ ! -r ${MMDVM_INI} ] ; then
echo "${MMDVM_INI} is not readable... aborting!"
exit 1
fi
echo -n "Starting DMRHost..."
${DOAS} ${DMRHOST} ${MMDVM_INI} &
echo $! | ${DOAS} tee ${DMRHOST_PID} > /dev/null
echo " done"
;;
"stop")
echo -n "Stopping DMRHost..."
if [ -f ${DMRHOST_PID} ] ; then
kill `cat ${DMRHOST_PID}`
rm -f ${DMRHOST_PID}
echo " done"
else
echo "not running?"
fi
;;
"restart")
$0 stop
sleep 2
$0 start
;;
*)
echo "$0 [start|stop|restart]"
;;
esac
```
Loading…
Cancel
Save