mirror of
https://github.com/billz/raspap-webgui.git
synced 2023-10-10 13:37:24 +02:00
Merge pull request #1183 from RaspAP/feature/ubuntu20-armbian22
Extend support to Ubuntu 20.04 / Armbian 22
This commit is contained in:
commit
e6b6e8eafc
@ -75,5 +75,16 @@ class Sysinfo
|
|||||||
return $status;
|
return $status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function operatingSystem()
|
||||||
|
{
|
||||||
|
$os_desc = shell_exec("lsb_release -sd");
|
||||||
|
return $os_desc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function kernelVersion()
|
||||||
|
{
|
||||||
|
$kernel = shell_exec("uname -r");
|
||||||
|
return $kernel;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ wpa_passphrase=ChangeMe
|
|||||||
interface=wlan0
|
interface=wlan0
|
||||||
wpa=2
|
wpa=2
|
||||||
wpa_pairwise=CCMP
|
wpa_pairwise=CCMP
|
||||||
country_code=
|
country_code=GB
|
||||||
## Rapberry Pi 3 specific to on board WLAN/WiFi
|
## Rapberry Pi 3 specific to on board WLAN/WiFi
|
||||||
#ieee80211n=1 # 802.11n support (Raspberry Pi 3)
|
#ieee80211n=1 # 802.11n support (Raspberry Pi 3)
|
||||||
#wmm_enabled=1 # QoS support (Raspberry Pi 3)
|
#wmm_enabled=1 # QoS support (Raspberry Pi 3)
|
||||||
|
11
config/raspap-bridge-br0.netplan
Normal file
11
config/raspap-bridge-br0.netplan
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
network:
|
||||||
|
version: 2
|
||||||
|
renderer: networkd
|
||||||
|
ethernets:
|
||||||
|
eth0:
|
||||||
|
dhcp4: no
|
||||||
|
bridges:
|
||||||
|
br0:
|
||||||
|
dhcp4: yes
|
||||||
|
interfaces:
|
||||||
|
- eth0
|
@ -7,6 +7,9 @@ require_once 'includes/config.php';
|
|||||||
|
|
||||||
getWifiInterface();
|
getWifiInterface();
|
||||||
|
|
||||||
|
$system = new \RaspAP\System\Sysinfo;
|
||||||
|
$os = $system->operatingSystem();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize hostapd values, display interface
|
* Initialize hostapd values, display interface
|
||||||
*
|
*
|
||||||
@ -15,6 +18,7 @@ function DisplayHostAPDConfig()
|
|||||||
{
|
{
|
||||||
$status = new StatusMessages();
|
$status = new StatusMessages();
|
||||||
$system = new \RaspAP\System\Sysinfo;
|
$system = new \RaspAP\System\Sysinfo;
|
||||||
|
$operatingSystem = $system->operatingSystem();
|
||||||
$arrConfig = array();
|
$arrConfig = array();
|
||||||
$arr80211Standard = [
|
$arr80211Standard = [
|
||||||
'a' => '802.11a - 5 GHz',
|
'a' => '802.11a - 5 GHz',
|
||||||
@ -119,7 +123,8 @@ function DisplayHostAPDConfig()
|
|||||||
"arrEncType",
|
"arrEncType",
|
||||||
"arrTxPower",
|
"arrTxPower",
|
||||||
"txpower",
|
"txpower",
|
||||||
"arrHostapdConf"
|
"arrHostapdConf",
|
||||||
|
"operatingSystem"
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -159,6 +159,8 @@ function DisplaySystem()
|
|||||||
$hostname = $system->hostname();
|
$hostname = $system->hostname();
|
||||||
$uptime = $system->uptime();
|
$uptime = $system->uptime();
|
||||||
$cores = $system->processorCount();
|
$cores = $system->processorCount();
|
||||||
|
$os = $system->operatingSystem();
|
||||||
|
$kernel = $system->kernelVersion();
|
||||||
|
|
||||||
// mem used
|
// mem used
|
||||||
$memused = $system->usedMemory();
|
$memused = $system->usedMemory();
|
||||||
@ -215,6 +217,8 @@ function DisplaySystem()
|
|||||||
"hostname",
|
"hostname",
|
||||||
"uptime",
|
"uptime",
|
||||||
"cores",
|
"cores",
|
||||||
|
"os",
|
||||||
|
"kernel",
|
||||||
"memused",
|
"memused",
|
||||||
"memused_status",
|
"memused_status",
|
||||||
"memused_led",
|
"memused_led",
|
||||||
|
@ -41,6 +41,7 @@ function _install_raspap() {
|
|||||||
_display_welcome
|
_display_welcome
|
||||||
_config_installation
|
_config_installation
|
||||||
_update_system_packages
|
_update_system_packages
|
||||||
|
_manage_systemd_services
|
||||||
_install_dependencies
|
_install_dependencies
|
||||||
_enable_php_lighttpd
|
_enable_php_lighttpd
|
||||||
_create_raspap_directories
|
_create_raspap_directories
|
||||||
@ -157,6 +158,37 @@ function _set_php_package() {
|
|||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Prompts the user to stop & disable Debian's systemd-networkd services.
|
||||||
|
# It isn't possible to mix Debian networking with dhcpcd.
|
||||||
|
# On Ubuntu 20.04 / Armbian 22, the systemd-resolved service uses port 53
|
||||||
|
# by default which prevents dnsmasq from starting.
|
||||||
|
function _manage_systemd_services() {
|
||||||
|
_install_log "Checking for systemd network services"
|
||||||
|
|
||||||
|
services=( "systemd-networkd" "systemd-resolved" )
|
||||||
|
for svc in "${services[@]}"; do
|
||||||
|
# Prompt to disable systemd service
|
||||||
|
if systemctl is-active --quiet "$svc".service; then
|
||||||
|
echo -n "Stop and disable ${svc} service? [Y/n]: "
|
||||||
|
if [ "$assume_yes" == 0 ]; then
|
||||||
|
read answer < /dev/tty
|
||||||
|
if [ "$answer" != "${answer#[Nn]}" ]; then
|
||||||
|
echo -e
|
||||||
|
else
|
||||||
|
sudo systemctl stop "$svc".service || _install_status 1 "Unable to stop ${svc}.service"
|
||||||
|
sudo systemctl disable "$svc".service || _install_status 1 "Unable to disable ${svc}.service"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
sudo systemctl stop "$svc".service || _install_status 1 "Unable to stop ${svc}.service"
|
||||||
|
sudo systemctl disable "$svc".service || _install_status 1 "Unable to disable ${svc}.service"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "${svc}.service is not running (ok)"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
_install_status 0
|
||||||
|
}
|
||||||
|
|
||||||
# Runs a system software update to make sure we're using all fresh packages
|
# Runs a system software update to make sure we're using all fresh packages
|
||||||
function _install_dependencies() {
|
function _install_dependencies() {
|
||||||
_install_log "Installing required packages"
|
_install_log "Installing required packages"
|
||||||
@ -166,7 +198,7 @@ function _install_dependencies() {
|
|||||||
sudo apt-get install $apt_option software-properties-common || _install_status 1 "Unable to install dependency"
|
sudo apt-get install $apt_option software-properties-common || _install_status 1 "Unable to install dependency"
|
||||||
sudo add-apt-repository $apt_option ppa:ondrej/php || _install_status 1 "Unable to add-apt-repository ppa:ondrej/php"
|
sudo add-apt-repository $apt_option ppa:ondrej/php || _install_status 1 "Unable to add-apt-repository ppa:ondrej/php"
|
||||||
else
|
else
|
||||||
echo "PHP will be installed from the main deb sources list"
|
echo "${php_package} will be installed from the main deb sources list"
|
||||||
fi
|
fi
|
||||||
if [ ${OS,,} = "debian" ] || [ ${OS,,} = "ubuntu" ]; then
|
if [ ${OS,,} = "debian" ] || [ ${OS,,} = "ubuntu" ]; then
|
||||||
dhcpcd_package="dhcpcd5"
|
dhcpcd_package="dhcpcd5"
|
||||||
@ -521,17 +553,21 @@ function _default_configuration() {
|
|||||||
sudo cp $webroot_dir/config/dhcpcd.conf /etc/dhcpcd.conf || _install_status 1 "Unable to move dhcpcd configuration file"
|
sudo cp $webroot_dir/config/dhcpcd.conf /etc/dhcpcd.conf || _install_status 1 "Unable to move dhcpcd configuration file"
|
||||||
sudo cp $webroot_dir/config/defaults.json $raspap_network || _install_status 1 "Unable to move defaults.json settings"
|
sudo cp $webroot_dir/config/defaults.json $raspap_network || _install_status 1 "Unable to move defaults.json settings"
|
||||||
|
|
||||||
echo "Changing file ownership of ${raspap_network}/defaults.json"
|
echo "Changing file ownership of ${raspap_network}defaults.json"
|
||||||
sudo chown $raspap_user:$raspap_user "$raspap_network"/defaults.json || _install_status 1 "Unable to change file ownership for defaults.json"
|
sudo chown $raspap_user:$raspap_user "$raspap_network"/defaults.json || _install_status 1 "Unable to change file ownership for defaults.json"
|
||||||
|
|
||||||
echo "Checking for existence of /etc/dnsmasq.d"
|
echo "Checking for existence of /etc/dnsmasq.d"
|
||||||
[ -d /etc/dnsmasq.d ] || sudo mkdir /etc/dnsmasq.d
|
[ -d /etc/dnsmasq.d ] || sudo mkdir /etc/dnsmasq.d
|
||||||
|
|
||||||
echo "Copying bridged AP config to /etc/systemd/network"
|
# Copy OS-specific bridge default config
|
||||||
sudo systemctl stop systemd-networkd
|
if [ ${OS,,} = "ubuntu" ] && [[ ${RELEASE} =~ ^(20.04|19.10|18.04) ]]; then
|
||||||
sudo systemctl disable systemd-networkd
|
echo "Copying bridged AP config to /etc/netplan"
|
||||||
sudo cp $webroot_dir/config/raspap-bridge-br0.netdev /etc/systemd/network/raspap-bridge-br0.netdev || _install_status 1 "Unable to move br0 netdev file"
|
sudo cp $webroot_dir/config/raspap-bridge-br0.netplan /etc/netplan/raspap-bridge-br0.netplan || _install_status 1 "Unable to move br0 netplan file"
|
||||||
sudo cp $webroot_dir/config/raspap-br0-member-eth0.network /etc/systemd/network/raspap-br0-member-eth0.network || _install_status 1 "Unable to move br0 member file"
|
else
|
||||||
|
echo "Copying bridged AP config to /etc/systemd/network"
|
||||||
|
sudo cp $webroot_dir/config/raspap-bridge-br0.netdev /etc/systemd/network/raspap-bridge-br0.netdev || _install_status 1 "Unable to move br0 netdev file"
|
||||||
|
sudo cp $webroot_dir/config/raspap-br0-member-eth0.network /etc/systemd/network/raspap-br0-member-eth0.network || _install_status 1 "Unable to move br0 member file"
|
||||||
|
fi
|
||||||
|
|
||||||
echo "Copying primary RaspAP config to includes/config.php"
|
echo "Copying primary RaspAP config to includes/config.php"
|
||||||
if [ ! -f "$webroot_dir/includes/config.php" ]; then
|
if [ ! -f "$webroot_dir/includes/config.php" ]; then
|
||||||
@ -613,6 +649,15 @@ function _patch_system_files() {
|
|||||||
_install_log "Unmasking and enabling hostapd service"
|
_install_log "Unmasking and enabling hostapd service"
|
||||||
sudo systemctl unmask hostapd.service
|
sudo systemctl unmask hostapd.service
|
||||||
sudo systemctl enable hostapd.service
|
sudo systemctl enable hostapd.service
|
||||||
|
|
||||||
|
# Set correct DAEMON_CONF path for hostapd (Ubuntu20 + Armbian22)
|
||||||
|
if [ ${OS,,} = "ubuntu" ] && [[ ${RELEASE} =~ ^(20.04|19.10|18.04) ]]; then
|
||||||
|
conf="/etc/default/hostapd"
|
||||||
|
key="DAEMON_CONF"
|
||||||
|
value="/etc/hostapd/hostapd.conf"
|
||||||
|
echo "Setting default ${key} path to ${value}"
|
||||||
|
sudo sed -i "/^$key/ { s/^#//; s%=.*%=\"$value\"%; }" "$conf" || _install_status 1 "Unable to set value in ${conf}"
|
||||||
|
fi
|
||||||
_install_status 0
|
_install_status 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,4 +62,5 @@ www-data ALL=(ALL) NOPASSWD:/bin/cat /etc/wireguard/*.conf
|
|||||||
www-data ALL=(ALL) NOPASSWD:/bin/cat /etc/wireguard/wg-*.key
|
www-data ALL=(ALL) NOPASSWD:/bin/cat /etc/wireguard/wg-*.key
|
||||||
www-data ALL=(ALL) NOPASSWD:/bin/rm /etc/wireguard/*.conf
|
www-data ALL=(ALL) NOPASSWD:/bin/rm /etc/wireguard/*.conf
|
||||||
www-data ALL=(ALL) NOPASSWD:/bin/rm /etc/wireguard/wg-*.key
|
www-data ALL=(ALL) NOPASSWD:/bin/rm /etc/wireguard/wg-*.key
|
||||||
|
www-data ALL=(ALL) NOPASSWD:/usr/sbin/netplan
|
||||||
|
|
||||||
|
Binary file not shown.
@ -737,6 +737,12 @@ msgstr "Web server port"
|
|||||||
msgid "Web server bind address"
|
msgid "Web server bind address"
|
||||||
msgstr "Web server bind address"
|
msgstr "Web server bind address"
|
||||||
|
|
||||||
|
msgid "OS"
|
||||||
|
msgstr "OS"
|
||||||
|
|
||||||
|
msgid "Kernel"
|
||||||
|
msgstr "Kernel"
|
||||||
|
|
||||||
#: includes/themes.php
|
#: includes/themes.php
|
||||||
msgid "Theme settings"
|
msgid "Theme settings"
|
||||||
msgstr "Theme settings"
|
msgstr "Theme settings"
|
||||||
|
@ -4,7 +4,8 @@
|
|||||||
<div class="col-md-6 mb-2">
|
<div class="col-md-6 mb-2">
|
||||||
<div class="custom-control custom-switch">
|
<div class="custom-control custom-switch">
|
||||||
<?php $checked = $arrHostapdConf['BridgedEnable'] == 1 ? 'checked="checked"' : '' ?>
|
<?php $checked = $arrHostapdConf['BridgedEnable'] == 1 ? 'checked="checked"' : '' ?>
|
||||||
<input class="custom-control-input" id="chxbridgedenable" name="bridgedEnable" type="checkbox" value="1" <?php echo $checked ?> />
|
<?php $disabled = strpos(strtolower($operatingSystem),'ubuntu') !== false ? 'disabled="disabled"' : '' ?>
|
||||||
|
<input class="custom-control-input" id="chxbridgedenable" name="bridgedEnable" type="checkbox" value="1" <?php echo $checked ?> <?php echo $disabled ?> />
|
||||||
<label class="custom-control-label" for="chxbridgedenable"><?php echo _("Bridged AP mode"); ?></label>
|
<label class="custom-control-label" for="chxbridgedenable"><?php echo _("Bridged AP mode"); ?></label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -16,6 +16,12 @@ include('includes/sysstats.php');
|
|||||||
<div class="row mb-1">
|
<div class="row mb-1">
|
||||||
<div class="info-item col-xs-3"><?php echo _("Pi Revision"); ?></div><div class="info-value col-xs-3"><?php echo htmlspecialchars(RPiVersion(), ENT_QUOTES); ?></div>
|
<div class="info-item col-xs-3"><?php echo _("Pi Revision"); ?></div><div class="info-value col-xs-3"><?php echo htmlspecialchars(RPiVersion(), ENT_QUOTES); ?></div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="row mb-1">
|
||||||
|
<div class="info-item col-xs-3"><?php echo _("OS"); ?></div><div class="info-value col-xs-3"><?php echo htmlspecialchars($os, ENT_QUOTES); ?></div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-1">
|
||||||
|
<div class="info-item col-xs-3"><?php echo _("Kernel"); ?></div><div class="info-value col-xs-3"><?php echo htmlspecialchars($kernel, ENT_QUOTES); ?></div>
|
||||||
|
</div>
|
||||||
<div class="row mb-1">
|
<div class="row mb-1">
|
||||||
<div class="info-item col-xs-3"><?php echo _("Uptime"); ?></div><div class="info-value col-xs-3"><?php echo htmlspecialchars($uptime, ENT_QUOTES); ?></div>
|
<div class="info-item col-xs-3"><?php echo _("Uptime"); ?></div><div class="info-value col-xs-3"><?php echo htmlspecialchars($uptime, ENT_QUOTES); ?></div>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user