Das Installations-Image aus der Umstellungszeit von Askozia-zu-3CX ist mittlerweile veraltet und basiert noch auf Debian 8 Jessie. Man kann es zwar nach wie vor verwenden, darf dann allerdings sowohl für Debian als auch 3CX viele Updates installieren. Das letzte Mal als ich das so gemacht habe, hat es gut zwei Stunden in Anspruch genommen, die kann man sich zum Teil sparen, wenn man das aktuelle 3CX-Debian-Netinst-Image nimmt.
+++ Dieser Beitrag ist von 2018 und mit neueren 3CX-Versionen (> V18) wurde und wird das Vorgehen nicht (mehr) getestet. Idealerweise virtualisiert man die 3CX oder setzt auf übliche x86-Hardware wie z.B. Intel NUC, Gigabyte Brix oder je nach Anforderungen leistungsfähigere Systeme. +++
Leider klappt das nur zum Teil, das mit dem Zeit sparen, denn im Gegensatz zur regulären 3CX-Linux-Installation läuft das automatische Setup nach dem Neustart leider nicht weiter. Stattdessen kann bzw. muss man per Hand mit der 3CX-Installation fortfahren. Dazu später mehr.
Grundsätzlich gibt es zwei Möglichkeiten 3CX auf ein APU-Board zu bekommen. Entweder man installiert zunächst ein reguläres Debian und führt dann die restliche Installation von Hand durch oder man startet gleich mit dem 3CX-Debian-ISO. Letztgenanntes kommt für diesen Beitrag zum Einsatz.
USB-Stick vorbereiten
- Aktuelle 3CX Debian-ISO herunterladen: https://www.3cx.com/phone-system/download-links/
- Das Abbild mit Rufus auf den USB-Stick schreiben:
Nach dem Klick auf “START” das Abbild im ISO-Modus auf den USB-Stick schreiben lassen.
Die folgenden Dateien auf dem Stick müssen angepasst werden:
Im Root des USB-Sticks die Datei „syslinux.cfg“ editieren und am Anfang die folgenden beiden Zeilen einfügen:
CONSOLE 0 SERIAL 0 115200
Im Ordner “isolinux” die Datei “adtxt.cfg”:
label expert menu label E^xpert install kernel /install.amd/vmlinuz append priority=low vga=off console=ttyS0,115200n8 initrd=/install.amd/initrd.gz --- include rqtxt.cfg label auto menu label ^Automated install kernel /install.amd/vmlinuz append auto=true priority=critical vga=off console=ttyS0,115200n8 initrd=/install.amd/initrd.gz --- quiet
Im Ordner „isolinux“ die Datei „txt.cfg“ editieren. Die Zeile mit „append…“ muss wie folgt aussehen:
label install menu label ^Install kernel /install.amd/vmlinuz append vga=off console=ttyS0,115200n8 initrd=/install.amd/initrd.gz auto=true priority=high url=http://downloads.3cx.com/downloads/debian9iso/preseed_9.8.0.txt --- quiet THREECXMARKER=DEBIAN-3CX-ISO console=ttyS0,115200n8
Im wesentlichen werden über die Änderungen dem System mitgeteilt, das es statt via VGA über die serielle Schnittstelle die Ausgabe erledigen soll.
Zusätzlich für APU(1)-Boards muss noch die Firmware für die Realtek-Netzwerkkarten auf den Stick gepackt werden:
Die Datei firmware-realtek_20161130-4_all.deb herunterladen und auf dem Stick in den Ordner „Firmware“ kopieren.
Das obige Durchgestrichene entfällt bei neueren 3CX-ISOs, die auf Debian 9.8.0 basieren (Stand: 12.03.2019)
Da ich aktuell kein APU2-Board zur Hand habe, konnte nicht getestet werden, ob evtl. weitere Anpassungen von nöten sind.
Debian installieren (lassen)
- Das Board mit dem vorbereiteten Stick starten.
- „Install“ auswählen.
- „enp1s0“ als Netzwerkschnittstelle auswählen.
- Per Standard holt sich Debian eine IP-Adresse per DHCP. Möchte man während der Installation eine feste IP-Adresse vergeben, so muss man bei der Abfrage nach dem „Hostname“ „ESC“ drücken, dann „configure network manually“ auswählen, die IP-Adresse, das Gateway und den DNS-Server angeben.
Wichtig: Die IP-Adresse kann später nicht ohne weiteres bzw. nur mit Backup, Neuinst. und Restore geändert werden. Dies liegt nicht an Debian, sondern an 3CX, da Diese die Änderung der IP-Adresse auf OS-Ebene nicht richtig mitbekommt. - „Hostname“ eingeben.
- „Domain“ eingeben.
- „Sprache“ (eigentlich steht nur „English“ zur Auswahl) und „Land/Region“ auswählen. Letztgenanntes ist relevant! Um „Europe“ und folglich „Germany“ auswählen zu können, zunächst „other“ auswählen. Die „locales“-Auswahl wie vorgeschlagen lassen.
- Das „root“-Passwort festlegen und bestätigen.
- Bei „Partition disks“ „Guided – use entire disk“ auswählen.
- „sda“ für die mSATA SSD auswählen.
- „All files in one partition“ auswählen.
- „Finish partitioning and write changes to disk“ auswählen.
- Die Sicherheitsabfrage mit „Yes“ bestätigen. Letzte Chance um abzubrechen!
Die Installation benötigt ein paar Minuten, man muss also ein wenig Geduld haben.
Es erfolgt ein automatischer Neustart, an dieser Stelle sollte der USB-Stick entfernt werden.
Die eigentliche 3CX-Installation durchführen
Da es wie eingangs erwähnt nicht bis zum Ende mit der automatischen Installation klappt, muss man ein die folgenden Befehle an der Konsole oder via ssh, nachdem man sich als root angemeldet hat, ausführen:
wget -O- http://downloads-global.3cx.com/downloads/3cxpbx/public.key | apt-key add - echo "deb http://downloads-global.3cx.com/downloads/debian stretch main" | tee /etc/apt/sources.list.d/3cxpbx.list apt-get update apt-get install 3cxpbx apt-get install net-tools
An der seriellen Konsole gibt’s eine kleine Falle. Sieht man über längere Zeit nur folgendes Bild:
Scrollt man am besten mal nach unten und siehe da, das Setup wartet darauf, das man dem Lizenzvertrag zustimmt:
Abschließend noch „1“ drücken um „Using a Web Browser“ auszuwählen.
Ab hier geht’s dann von einem anderen Computer bzw. Web-Browser unter „http://<IP-Adresse des 3CX-Computers>:5015?V=2“ weiter. Nun kann man der Erstkonfiguration folgen:
OpenSSH-Server einrichten
Scheinbar hat sich bei neueren 3CX-Debian-Netinstall-ISOs (9.8.0) etwas geändert. Bei einer aktuellen, genau genommen meiner letzten Askozia-Umstellung fehlte bis hierhin der die Möglichkeit sich per ssh mit der 3CX verbinden zu können. Bei früheren Versionen wurde der Dienst automatisch eingerichtet. Möglich das es nur bei der APU-Variente nicht (mehr) klappt. Richten kann man es so:
- Via serielle Verbindung als root anmelden.
- “apt install openssh-server” eingeben.
Damit die Anmeldung über ssh mittels Kennwort (wieder) möglich ist wie folgt vorgehen:
- nano /etc/ssh/sshd_config
- “PermitRootLogin Yes” einfügen
- Die Änderung speichern und mittels “service sshd reload” übernehmen.
Quellen:
3CX – Installieren der 3CX-Telefonanlage unter Debian Linux
3CX – Installing Debian for 3CX on a Mini PC
computing competence – Askozia Hardware für 3CX (Debian) nutzen
Update 12.03.2019
Kleinere Änderungen und Aktualisierungen durchgeführt. OpenSSH-Server ergänzt.
Update 12.10.2021
Für 3CX V18 bzw. Debian 10 Buster sind die Schritte ähnlich wie oben beschrieben. Der USB-Stick und die Konfigurationsdateien müssen wie zuvor beschrieben angepasst werden.
Je nach Alter bzw. Modell des PC Engines-Boards muss man ggf. weitere Treiber auf den USB-Stick packen. Bei APU(1)-Boards gilt dies für die dortigen Realtek-Netzwerkkarten:
Die Datei firmware-realtek_20161130-5_all.deb (evtl. auch weitere, zu finden unter http://ftp.de.debian.org/debian/pool/non-free/f/firmware-nonfree/) herunterladen und auf den USB-Stick in den Ordner „Firmware“ kopieren.
Soweit vorbereitet kann man mit der eigentlichen Installation starten.
Als weitere Möglichkeit, die manuelle Eingabe der Netzwerkkonfiguration zu erzwingen kann man das System zunächst ohne Netzwerkverbindung starten und warten bis das automatische Beziehen der IP-Adresse via DHCP fehlgeschlagen ist. Nach Bestätigung der entsprechenden Meldung bekommt man die Möglichkeit eine manuelle Konfiguration vorzunehmen:
Für gewöhnlich konfiguriert man die Schnittstelle LAN1 (“enp1s0”), das ist der Anschluss der dem COM-Port am nächsten ist, für den Zugang vom Netzwerk. Hat man das Netzwerk konfiguriert, schließt man das System mit einem Netzwerkkabel an und fährt fort.
Zwischenzeitlich kommt eine Abfrage, welche Version der Datei
/etc/nftables.conf
man behalten möchte, einfach Enter oder explizit “N” eingeben und dies bestätigen. Hierbei handelt es sich um die Firewall-Einstellungen. Die vorhandene Datei enthält die 3CX-spezifischen Regeln, würde man diese Überschreiben, hat man lediglich die Debian-Standard-Regeln.
Trotz das man im wesentlichen die Original-3CX-Installation-ISO verwendet startet das System irgendwann neu und es fehlt die eigentliche 3CX-Installation. Diese holt man mit folgenden Befehlen nach:
wget -O- http://downloads-global.3cx.com/downloads/3cxpbx/public.key | apt-key add - echo "deb http://downloads-global.3cx.com/downloads/debian buster main" | tee /etc/apt/sources.list.d/3cxpbx.list apt-get update apt-get install 3cxpbx
Der weitere Ablauf ist wie oben oder direkt bei 3CX in Installing 3CX using 3CX Debian ISO beschrieben.
Verheiratet, Vater von zwei Kindern, eines an der Hand, eines im Herzen. Schon immer Technik-Freund, seit 2001 in der IT tätig und seit über 10 Jahren begeisterter Blogger. Mit meiner Firma IT-Service Weber kümmern wir uns um alle IT-Belange von gewerblichen Kunden und unterstützen zusätzlich sowohl Partner als auch Kollegen.
Hallo Andy,
vielen Dank für die tollen Infos.
Ich hatte mit dem Debian9 Image (clean Install auf pcengines, 3cxpbx Version 16.0.6.655) ein Problem bei der Aktivierung der Lizenz – Keine Verbindung zum Aktivierungsserver. Support und Forum haben nur auf die Firewall- bzw. Nameserver-Einstellungen verwiesen – das konnte es aber nicht sein, da es unter vorheriger Debain8 Installation in gleichem Netzwerk funktioniert hat.
Das Problem lag an den Zertifikaten und fehlendem ca-certificates Paket, wodurch die Postinstallation von 3cxpbx nicht ordnungsgemäß durchgeführt wurde.
Mit dem Debian9 Image (von 3cx) musste ich also noch vor der Installation von 3cxpbx das paket ca-certifiactes installieren (sudo apt-get install ca-certificates), da sonst update-ca-certificates nicht vorhanden ist.
Danach erst 3cxpbx installieren und alles hat perfekt gekleppt.
Viele Grüße und danke nochmals für die tolle Anleitung,
Petr
Ja, das funktioniert auch noch mit einer 3CX v18.
Wir haben dafür extra eine Debian 10 netinstall (einmal Standard und einmal nonfree) als headless mit ssh aufgemotzt (siehe https://wiki.debian.org/DebianInstaller/Preseed/EditIso und evtl. gar noch http://techbotch.org/blog/debian-headless-installation/index.html). Damit kommt man bis zum ersten Prompt. Danach div. Anpassungen am Debian vornehmen (Netzwerk, evtl. Aktualisierung, certbot) und die 3CX wie von Andy beschrieben installieren, siehe auch https://www.3cx.de/forum/threads/3cx-linux-l%C3%A4sst-sich-nicht-installieren.100242/post-332749 .
Aber wie immer: alles was inzwischen nicht mit einer original 3CX ISO installiert wurde bekommt keinen oder nur sehr wenig Support.
Auch daher haben wir größtenteils auf IPU bzw. NUC gewechselt.
Alle APUs die ich wie beschrieben installiert habe funktionieren bis heute und ließen sich ohne Probleme auf V18 inkl. Debian Buster aktualisieren.
Hallo Andy,
wenn die Installation von V 18 auf einer APU2 installiere, dann erfolgt folgende Fehlermeldung.
Vielleicht kannst Du mir helfen.
Danke!
./start: line 3: wget: command not found
E: gnupg, gnupg2 and gnupg1 do not seem to be installed, but one of them is required for this operation
deb http://downloads-global.3cx.com/downloads/debian buster main
Hit:1 http://security.debian.org/debian-security buster/updates InRelease
Get:2 http://downloads-global.3cx.com/downloads/debian buster InRelease
Err:2 http://downloads-global.3cx.com/downloads/debian buster InRelease
The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY D34B9BFD90503A6B
Reading package lists… Done
W: GPG error: http://downloads-global.3cx.com/downloads/debian buster InRelease: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY D34B9BFD90503A6B
E: The repository ‘http://downloads-global.3cx.com/downloads/debian buster InRelease’ is not signed.
N: Updating from such a repository can’t be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
Reading package lists… Done
Building dependency tree
Reading state information… Done
Package net-tools is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package ‘net-tools’ has no installation candidate
E: Unable to locate package dphys-swapfile
Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Unable to locate package 3cxpbx
Das fängt schon schlecht an
“./start: line 3: wget: command not found
E: gnupg, gnupg2 and gnupg1 do not seem to be installed, but one of them is required for this operation”
Das klingt irgendwie danach, das da mehrere relevante Tools fehlen.
Wie wurde denn Debian (vor-)installiert?
Ggf. mal wget und gnupg nachinstallieren und dann das 3CX Setup nochmal starten.
Hallo Andy,
hatte ich ganz vergessen, also ich habe über die Originale 3 cx Debian Datei installiert, wie von Dir beschrieben.
wget und gnupg lassen sich nicht installieren. Wie, wo müsste ich welche Quellen hierzufügen?
Danke!
Sorry für meine Anfänger Fragen.
In der sources.list unter /etc/apt stehen nur folgende Quellen. Also es werden nur die Sicherheitsupdates installiert. Muss man hier was ergänzen
# deb cdrom:[Debian GNU/Linux 10.11.0 _Buster_ – Unofficial amd64 NETINST with $
#deb cdrom:[Debian GNU/Linux 10.11.0 _Buster_ – Unofficial amd64 NETINST with f$
deb http://security.debian.org/debian-security buster/updates main contrib non-$
deb-src http://security.debian.org/debian-security buster/updates main contrib $
# buster-updates, previously known as ‘volatile’
# A network mirror was not selected during install. The following entries
# are provided as examples, but you should amend them as appropriate
# for your mirror of choice.
#
# deb http://deb.debian.org/debian/ buster-updates main contrib non-free
# deb-src http://deb.debian.org/debian/ buster-updates main contrib non-free
Hallo zusammen,
da die Installation auf pcengines nicht bis zum Ende automatisch klappt – wie im Blog beschrieben – habe ich mittlerweile auf folgendes gesetzt, was die Installation manuell sauber beenden sollte, wie von 3CX vorgesehen (sorry, Notizen auf Englisch):
– because on pcengines the post-install does not work (error in /etc/rc.local, cannot find /bin/openvt) -> so install kbd package and then reboot, concrete
– as root
– apt-get install kbd
– apt-get install sudo
– after this reboot
– after this run from console as root
– /usr/local/bin/post-install
Post-Installation will start and you can choose 3CX PBX or 3CX SBC.
– after done, automatic reboot will be done and the /usr/local/bin/post-install deleted automatically.
Hallo Petr,
auch apt-get install kbd lässt sich im default Paket von 3cx nicht installieren. Hier muss man dann auch vermutlich die Sourcelist anpassen…
Ganz vergessen, zur Installation auf dem USB Stick habe ich die Datei debian-amd64-netinst-3cx.iso von 3cx vorliegen. Auf einem normalen PC hat das zu 100 % geklappt, dort entspricht das der Version 18 von 3cx. Auf dem Alix Board hänge ich wie oben beschrieben bei der Installation der zusätzlichen “Pakete” die Ihr so vorgeschlagen habt. Daher vermutlich ich mal, dass da bei der Sourcelist noch was ergänzt werden muss. Das Debian läuft grundsätzlich auf dem Alix Board
@ Petr das Verzeichnis /usr/local/bin ist leer, erfolgt hier ein Eintrag, durch die Installation von kbd??
Ergänzung in der Sourcelist /etc/apt/
deb http://deb.debian.org/debian/ buster main
deb-src http://deb.debian.org/debian/ buster main
deb http://deb.debian.org/debian/ buster-updates main
deb-src http://deb.debian.org/debian/ buster-updates main
deb http://security.debian.org/debian-security buster/updates main
deb-src http://security.debian.org/debian-security buster/updates main
und dann noch
wget und gnupg installieren bitte noch in der Anleitung mit übernehmen. Dann geht das.