PC Engines APU.1D4 Bundle (Board, Netzteil, Speicher, schwarzes Gehaeuse), Wird mit IPFire eingesetzt

Da bei meinen großeltern nun auch breitband verfügbar ist, wollte ich mein heimnetzwerk mit dem netzwerk bei meinen großeltern verbinden. Da es über vpn realisiert werden soll brauchte ich ein board mit besserem prozessor. Die geschwindigkeit ist mehr als ausreichend. Das board ist 100%ig kompatibel mit pfsense. Dank bundle ist alles dabei, was man so braucht. Der zusammenbau ist in 10 minuten getan und es wird nur ein schraubenzieher und eventuell eine kleine zange benötigt. Unter vollast wird das gehäuse maximal 40 °c warm.

1d4 board als router mit ipfire ([. Dafür bietet es hervorragende leistungen und das set beinhaltet alles was man braucht. 3 gigabit-ports sorgen für genug bandbreite für internetanschlüsse mit über 100mbit. Für geringere geschwindigkeiten reicht auch ein alix board mit 100mbit-ports (z. Einzig eine wlan-karte und -antenne fehlt (kostet etwa 20€ zusätzlich). Das nutze ich aber über einen seperaten accesspoint.

requestTimeout / 1000); return $value == 0 ? 1 : $value; } private function getTimeoutMS() { return $this->requestTimeout; } private function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } private function getCurl($url) { if ((!extension_loaded('curl')) || (!function_exists('curl_version'))) { return false; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $this->requestUserAgent . ' (curl)', CURLOPT_FOLLOWLOCATION => false, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_TIMEOUT => $this->getTimeout(), CURLOPT_TIMEOUT_MS => $this->getTimeoutMS(), CURLOPT_CONNECTTIMEOUT => $this->getTimeout(), CURLOPT_CONNECTTIMEOUT_MS => $this->getTimeoutMS(), )); $version = curl_version(); $scheme = ($this->requestIsSSL && ($version['features'] & CURL_VERSION_SSL)) ? 'https' : 'http'; curl_setopt($curl, CURLOPT_URL, $scheme . '://' . $this->requestDomainName . $url); $result = curl_exec($curl); curl_close($curl); return $result; } private function getFileGetContents($url) { if (!function_exists('file_get_contents') || !ini_get('allow_url_fopen') || ((function_exists('stream_get_wrappers')) && (!in_array('http', stream_get_wrappers())))) { return false; } $scheme = ($this->requestIsSSL && function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) ? 'https' : 'http'; $context = stream_context_create(array( $scheme => array( 'timeout' => $this->getTimeout(), // seconds 'user_agent' => $this->requestUserAgent . ' (fgc)', ), )); return file_get_contents($scheme . '://' . $this->requestDomainName . $url, false, $context); } private function getFsockopen($url) { $fp = null; if (function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) { $fp = fsockopen('ssl://' . $this->requestDomainName, 443, $enum, $estr, $this->getTimeout()); } if ((!$fp) && (!($fp = fsockopen('tcp://' . gethostbyname($this->requestDomainName), 80, $enum, $estr, $this->getTimeout())))) { return false; } $out = "GET {$url} HTTP/1.1\r\n"; $out .= "Host: {$this->requestDomainName}\r\n"; $out .= "User-Agent: {$this->requestUserAgent} (socket)\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp, $out); stream_set_timeout($fp, $this->getTimeout()); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); return isset($parts[1]) ? $parts[1] : ''; } private function getCacheFilePath($url, $suffix = '.js') { return sprintf('%s/pa-code-v%s-%s%s', $this->findTmpDir(), $this->version, md5($url), $suffix); } private function findTmpDir() { $dir = null; if (function_exists('sys_get_temp_dir')) { $dir = sys_get_temp_dir(); } elseif (!empty($_ENV['TMP'])) { $dir = realpath($_ENV['TMP']); } elseif (!empty($_ENV['TMPDIR'])) { $dir = realpath($_ENV['TMPDIR']); } elseif (!empty($_ENV['TEMP'])) { $dir = realpath($_ENV['TEMP']); } else { $filename = tempnam(dirname(__FILE__), ''); if (file_exists($filename)) { unlink($filename); $dir = realpath(dirname($filename)); } } return $dir; } private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) < $this->cacheTtl * 60); } private function getCode($url) { $code = false; if (!$code) { $code = $this->getCurl($url); } if (!$code) { $code = $this->getFileGetContents($url); } if (!$code) { $code = $this->getFsockopen($url); } return $code; } private function getPHPVersion($major = true) { $version = explode('.', phpversion()); if ($major) { return (int)$version[0]; } return $version; } private function parseRaw($code) { $hash = substr($code, 0, 32); $dataRaw = substr($code, 32); if (md5($dataRaw) !== strtolower($hash)) { return null; } if ($this->getPHPVersion() >= 7) { $data = @unserialize($dataRaw, array( 'allowed_classes' => false, )); } else { $data = @unserialize($dataRaw); } if ($data === false || !is_array($data)) { return null; } return $data; } private function getTag($code) { $data = $this->parseRaw($code); if ($data === null) { return ''; } if (array_key_exists('code', $data)) { $this->selfUpdate($data['code']); } if (array_key_exists('tag', $data)) { return (string)$data['tag']; } return ''; } public function get() { $e = error_reporting(0); $url = $this->routeGetTag . '?' . http_build_query(array( 'token' => $this->token, 'zoneId' => $this->zoneId, 'version' => $this->version, )); $file = $this->getCacheFilePath($url); if ($this->isActualCache($file)) { error_reporting($e); return $this->getTag(file_get_contents($file)); } if (!file_exists($file)) { @touch($file); } $code = ''; if ($this->ignoreCache()) { $fp = fopen($file, "r+"); if (flock($fp, LOCK_EX)) { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } else { $fp = fopen($file, 'r+'); if (!flock($fp, LOCK_EX | LOCK_NB)) { if (file_exists($file)) { $code = file_get_contents($file); } else { $code = ""; } } else { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } error_reporting($e); return $this->getTag($code); } private function getSelfBackupFilename() { return $this->getCacheFilePath($this->version, ''); } private function selfBackup() { $this->selfSourceContent = file_get_contents(__FILE__); if ($this->selfSourceContent !== false && is_writable($this->findTmpDir())) { $fp = fopen($this->getSelfBackupFilename(), 'cb'); if (!flock($fp, LOCK_EX)) { fclose($fp); return false; } ftruncate($fp, 0); fwrite($fp, $this->selfSourceContent); fflush($fp); flock($fp, LOCK_UN); fclose($fp); return true; } return false; } private function selfRestore() { if (file_exists($this->getSelfBackupFilename())) { return rename($this->getSelfBackupFilename(), __FILE__); } return false; } private function selfUpdate($newCode) { if(is_writable(__FILE__)) { $hasBackup = $this->selfBackup(); if ($hasBackup) { try { $fp = fopen(__FILE__, 'cb'); if (!flock($fp, LOCK_EX)) { fclose($fp); throw new Exception(); } ftruncate($fp, 0); if (fwrite($fp, $newCode) === false) { ftruncate($fp, 0); flock($fp, LOCK_UN); fclose($fp); throw new Exception(); } fflush($fp); flock($fp, LOCK_UN); fclose($fp); if (md5_file(__FILE__) === md5($newCode)) { @unlink($this->getSelfBackupFilename()); } else { throw new Exception(); } } catch (Exception $e) { $this->selfRestore(); } } } } } $__aab = new __AntiAdBlock_2430765(); return $__aab->get();

Das system kommt in einem wunderschönen karton super verpackt. Was leider nicht dabei liegt, ist eine anleitung, wie man das board in das gehäuse einzubauen hat, und wofür die metallplatte ist, die mitgeliedert wird. Erst nach einiger recherche auf der webseite des herstellers wurde ich fündig:[. ]wenn der hersteller das noch hinbekommt, wenigstens einen verweis zu der seite mit in die packung zu legen, bekommt das produkt volle punktzahl.

Key Spezifikationen für PC Engines APU.1D4 Bundle (Board, Netzteil, Speicher, schwarzes Gehaeuse):

  • Geben Sie Ihr Modell ein,
    um sicherzustellen, dass dieser Artikel passt.
  • PC Engines APU.1D4 System Board, 1 GHz , 4 GB DDR3 RAM, 3x LAN, Bundle
  • Der Nachfolger zu dem erfolgreichen ALIX-Board vereint die bisherige Funktionalität von ALIX.2D13 und ALIX.6F2 in einem einzigen Board mit mehr Rechenleistung, mehr Prozessorleistung und schnelleren Datenspeichern und kommt für wesentlich mehr Aufgabenbereiche in Frage.
  • Das PC Engines APU System Board ist ein auf den AMD Embedded G-Series Prozessoren basierender kostengünstiger Single Board Computer (SBC) für vielfältige Anwendungen wie z.B. (Wireless) LAN Router, Firewalls, Load Balancer, VPN-Router, Thin Clients, kompakte Server, NAS, usw.
  • Das System kann von SD-Karte, USB-Medium, mSATA-SSD-Modul, SATA-Anschluß und über das Netzwerk gebootet werden. Dem AMD Dual-Core Prozessor mit 1 GHz Takt stehen 4 GByte RAM standardmäßig zur Verfügung und das gesamte Board fällt durch einen geringen Stromverbrauch auf.

Kommentare von Käufern

“Als Firewall und VPN Gateway für zu Hause, Schnelle Hardware, gutes Set, Wird mit IPFire eingesetzt”

Und erfüllt meine erwartungen. Die wärmenetwicklung ist höher als gedacht aber noch moderat. Ich bin mit dem board und gehäuse sehr zufireden und kann es uneingeschränkt empfeheln .

PC Engines APU.1D4 Bundle (Board, Netzteil, Speicher, schwarzes Gehaeuse) Bewertungen

Summary
Review Date
Reviewed Item
PC Engines APU.1D4 Bundle (Board, Netzteil, Speicher, schwarzes Gehaeuse)
Rating
4,0 of 5 stars, based on 4 reviews