Letzte Mal in diesem Jahr. Michael ist da, Morten und Long Yang. Frau Spyra und Jens waren auch da. Nächste Mal im nächsten Jahr …;
16. Dezember 2016
9. Dezember 2016
9.12.2016
Heute vorletzte Mal in diesem Jahr. Erstmal keiner da. Angelo und Moritz wollten kommen. Angelo und Moritz sind da. Wir reden über den Beweis vom Satz von Pythagoras. Angelo und Moritz reden über irgendwas mit Prozessor Emulation (vom letzten Mal, Aufgabe die Michael mitgebracht hatte).
Julian ist auch da. Sie machen was mit HP-Plotter.
Den Schnee mit Parallaxeneffekt angepasst (kleinere Flocken langsamer):
<?php
error_reporting(E_NOTICE|E_ALL);
//echo $_SERVER["REMOTE_ADDR"];
// echo $_SERVER["HTTP_HOST"];
//~ call_user_func
//~ function_exists
class Request
{
public static $queries = array (
"reset",
// "addClient",
"startStatus",
"stopStatus",
"checkMyTurn",
"checkIps",
"finished",
"admin"
);
public static function check() {
foreach(self::$queries as $query) {
if (isset($_GET[$query])) {
$callMethod = array("Data",$query);
if (is_callable($callMethod)) {
call_user_func($callMethod);
}
return $query;
}
}
Data::addClient();
return "showPage";
}
}
abstract class SerializedData
{
protected function _write($filename, $data) {
file_put_contents($filename, serialize($data));
}
protected function _read($filename) {
return unserialize(file_get_contents($filename));
}
}
class Data extends SerializedData
{
private static $_ipsStorageFileName = "xmas_ips.ser";
private static $_statusFileName = "xmas_status.ser";
private function _writeIps($data) {
self::_write(self::$_ipsStorageFileName, $data);
}
private static function _getNextIp($finishedIp) {
$currentClients = self::readIps();
foreach($currentClients as $key => $clientIp) {
if ($finishedIp == $clientIp) {
$nextKey = $key + 1;
if ($nextKey == count($currentClients)) {
$nextKey = 0;
}
return $currentClients[$nextKey];
}
}
}
private static function _resetStatus() {
self::_write(self::$_statusFileName,array());
}
private static function _setStatus($ip, $startOrStop = "stop") {
$ipStatus = self::_read(self::$_statusFileName);
$ipStatus[$ip] = $startOrStop;
self::_write(self::$_statusFileName,$ipStatus);
}
public static function reset() {
self::_writeIps(array());
self::_resetStatus();
}
public static function readIps() {
return self::_read(self::$_ipsStorageFileName);
}
public function addClient() {
$ip = $_SERVER["REMOTE_ADDR"];
$currentClients = self::readIps();
$currentClients[] = $ip;
$currentClients = array_unique($currentClients);
self::_writeIps($currentClients);
self::_setStatus ($ip, "stop");
}
public static function startStatus() {
$currentClients = self::readIps();
self::_setStatus($currentClients[0], "start");
}
public static function stopStatus() {
$currentClients = self::readIps();
foreach($currentClients as $ip) {
self::_setStatus($ip, "stop");
}
}
public static function getStatus($ip) {
$ipStatus = self::_read(self::$_statusFileName);
return $ipStatus[$ip];
}
public static function getAllStatus() {
$ipStatus = self::_read(self::$_statusFileName);
return $ipStatus;
}
public static function finished() {
$finishedIp = $_SERVER["REMOTE_ADDR"];
self::_setStatus($finishedIp, "stop");
self::_setStatus(self::_getNextIp($finishedIp), "start");
}
}
?>
<?php switch (Request::check()):
case "admin":?>
<h1>Admin</h1>
<ul>
<?php foreach(Request::$queries as $query):?>
<?php if(in_array($query, array("admin","finished"))) {continue;}?>
<li><a href="?<?=$query?>"><?=$query?></a></li>
<?php endforeach?>
<div style="border:1px solid black;margin-top:3em" id="output">
hier kommt was rein
</div>
<script>
outputDiv = document.getElementById("output");
myAnchors = document.getElementsByTagName("a");
url = new Array;
for (i=0; i < myAnchors.length; i++) {
url[i] = myAnchors[i].href;
myAnchors[i].onclick = function() {
var myAjax=new XMLHttpRequest();
myAjax.open("GET",this.href,true);
myAjax.onreadystatechange=function() {
if (myAjax.readyState==4 && myAjax.status==200) {
outputDiv.innerHTML = myAjax.responseText;
}
}
myAjax.send(null);
return false;
}
}
</script>
<?php break;?>
<?php case "reset":?>
<h1>resetialisierung gestartet</h1>
<h2> zum Beweis Ausgabe der Speicherdatei Ips:</h2>
<pre>
<?php var_dump(Data::readIps());?>
</pre>
<pre>
<h2>zum Beweis Ausgabe der Speicherdatei Status:</h2>
<pre>
<?php var_dump(Data::getAllStatus());?>
</pre>
<?php break;?>
<?php case "addClient":?>
<h1><?=htmlentities("Client hinzugefügt");?></h1>
<p> zum Beweis Ausgabe der Speicherdatei:</p>
<pre>
<?php var_dump(Data::readIps());?>
</pre>
<?php break;?>
<?php case "checkMyTurn":?><?php echo Data::getStatus($_SERVER["REMOTE_ADDR"])?><?php break;?>
<?php case "startStatus":?>
<?php case "checkIps":?>
<h1><?=htmlentities("Programm läuft")?></h1>
<h2>Angemeldete Client-Ips</h2>
<?php
$statusPerIp = Data::getAllStatus();
?>
<table>
<?php foreach(Data::readIps() as $ip):?>
<tr><td><?=$ip?></td><td>
<?=$statusPerIp[$ip]?></td>
</tr>
<?php endforeach?>
<pre>
<?php var_dump(Data::readIps())?>
</pre>
<pre>
<?php var_dump(Data::getAllStatus())?>
</pre>
<?php break;?>
<?php case "stopStatus":?>
<h1>Programm gestoppt</h1>
<pre>
<?php var_dump(Data::getAllStatus())?>
</pre>
<?php break;?>
<?php case "showPage":?>
<body style="padding:0;margin:0;background-color:#324;overflow:hidden">
<img id="background" src="gletschermond.jpg" style="position:absolute;top:0px;left:0px;width:1024px;z-index=-1">
<div id="imgdiv" style="padding:0;margin:0;width:1022px;overflow:hidden;height:768px">
<img id="weihnachtsmann" style="position:absolute;right:-150px;top:300px;" src="jens.png"; width="150px";>
<script type="text/javascript">
document.getElementById("background").style.width = screen.width +"px";
document.getElementById("imgdiv").style.width = (screen.width-2) +"px";
document.getElementById("imgdiv").style.height = (screen.height-2) +"px";
myImgStyle = document.getElementById("weihnachtsmann").style;
startPosition = -screen.width +2;//1022;//(-1* screen.width) +50;
startPosition = -screen.width +2;//1022;//(-1* screen.width) +50;
startPosition = -150;
//1022;//(-1* screen.width) +50;
//myImgStyle = document.getElementById("weihnachtsmann").style.right = startPosition + "px";
currentPosition = startPosition;
endPosition = 260;
endPosition = screen.width +150;
triggerPosition = endPosition - 150;
status = "stop";
timeOut = 20;
timeOut = 20;
pixelsPerMove = 8;
pixelsPerMove = 15;
finished = 0;
finishedTold = 0;
//alert(screen.width);
move = function() {
if (currentPosition < endPosition) { //&& status == "start"
if (currentPosition > triggerPosition && finishedTold == 0) {
tellFinished();
finishedTold = 1;
}
finished = 0;
myImgStyle.right = currentPosition + "px";
currentPosition += pixelsPerMove;
setTimeout("move()",timeOut);
} else {
currentPosition = startPosition;
myImgStyle.right = currentPosition + "px";
finishedTold = 0;
getStatus();
return;
}
}
getStatus = function() {
var startStopPage = "laufen.js.php?checkMyTurn";
var myAjax=new XMLHttpRequest();
myAjax.open("GET",startStopPage,true);
myAjax.onreadystatechange=function() {
if (myAjax.readyState==4 && myAjax.status==200) {
//~ alert("Testausgabe: "+ myAjax.responseText);
//~ alert("Testausgabe finished: "+ finished);
//~ alert(typeof(myAjax.responseText.toString()));
//~ alert("myAjax.responseText.toString(): "+ myAjax.responseText.toString());
//~ alert(typeof("stop"));
//~ alert("start" == myAjax.responseText.toString());
if ("start" == myAjax.responseText.toString() && finished == 0) {
status = "start";
move();
} else {
status = "stop";
setTimeout("getStatus()",1000);
}
}
}
myAjax.send(null);
}
tellFinished = function() {
var finishedPage = "laufen.js.php?finished";
var myAjax=new XMLHttpRequest();
myAjax.open("GET",finishedPage,true);
myAjax.onreadystatechange=function() {
if (myAjax.readyState==4 && myAjax.status==200) {
if (finished == 0) {
//alert("finished sent to server");
//finished = 1;
status = "stop";
}
return;
}
}
myAjax.send(null);
}
getStatus();
window.onload = function() {
DB=document.getElementsByTagName("body")[0];
// DB.style.backgroundColor = "#000";
myFontSize = new Array;
for (i = 40; i<screen.width;i += 60) {
window["star"+i]=document.createTextNode("*");
window["div"+i]=document.createElement("div");
window["div"+i].appendChild(window["star"+i]);
DB.appendChild(window["div"+i]);
window["div"+i].style.color="#fff";
myFontSize[i] = Math.ceil(Math.random()*40);
myFontSize[i] = Math.ceil(Math.random()*30) + 10;
window["div"+i].style.fontSize=myFontSize[i] + "px";
window["div"+i].style.position="absolute";
window["div"+i].style.left=10 + i + "px";
window["div"+i].style.top="-"+(myFontSize[i] + 40)+"px";
window["y"+i]=-myFontSize-40;
window["x"+i] = i;
window["snow"+i] = function (j) {
fontSize = myFontSize[j];
//~ console.log(fontSize);
functionCall = 'window["snow'+j+'"]('+j+')';
if (window["y"+j]<screen.height + 20) {
//~ window["y"+j] += 3;
window["y"+j] += fontSize/5;
window["div"+j].style.top = window["y"+j] + "px";
window["div"+j].style.left = window["x"+j] + 2*Math.sin(window["y"+j]/5) + "px";
setTimeout(functionCall,100);
} else {
window["y"+j]= -myFontSize[j];
setTimeout(functionCall,100);
}
}
functionCallNow = 'window["snow'+i+'"]('+i+')';
setTimeout(functionCallNow,Math.random()*50000);
}
// der eine stern, schlechter code ...;
star=document.createTextNode("*");
div=document.createElement("div");
div.appendChild(star);
// DB.appendChild(div);
div.style.position="absolute";
div.style.left="10px";
div.style.top="10px";
div.style.color = "white";
y= -10;
x = 10;
snow = function () {
if (y<screen.height + 20) {
y += 1;
div.style.top = y + "px";
div.style.left = x + 2*Math.sin(y/3) + "px";
setTimeout("snow()",10);
}
else {
y= -10;
setTimeout("snow()",10);
}
}
//snow();
void(0);
}
</script>
</div>
<?php break;?>
<?php endswitch;?>
Und mit größenanpassung:
<?php
error_reporting(E_NOTICE|E_ALL);
//echo $_SERVER["REMOTE_ADDR"];
// echo $_SERVER["HTTP_HOST"];
//~ call_user_func
//~ function_exists
class Request
{
public static $queries = array (
"reset",
// "addClient",
"startStatus",
"stopStatus",
"checkMyTurn",
"checkIps",
"finished",
"admin"
);
public static function check() {
foreach(self::$queries as $query) {
if (isset($_GET[$query])) {
$callMethod = array("Data",$query);
if (is_callable($callMethod)) {
call_user_func($callMethod);
}
return $query;
}
}
Data::addClient();
return "showPage";
}
}
abstract class SerializedData
{
protected function _write($filename, $data) {
file_put_contents($filename, serialize($data));
}
protected function _read($filename) {
return unserialize(file_get_contents($filename));
}
}
class Data extends SerializedData
{
private static $_ipsStorageFileName = "xmas_ips.ser";
private static $_statusFileName = "xmas_status.ser";
private function _writeIps($data) {
self::_write(self::$_ipsStorageFileName, $data);
}
private static function _getNextIp($finishedIp) {
$currentClients = self::readIps();
foreach($currentClients as $key => $clientIp) {
if ($finishedIp == $clientIp) {
$nextKey = $key + 1;
if ($nextKey == count($currentClients)) {
$nextKey = 0;
}
return $currentClients[$nextKey];
}
}
}
private static function _resetStatus() {
self::_write(self::$_statusFileName,array());
}
private static function _setStatus($ip, $startOrStop = "stop") {
$ipStatus = self::_read(self::$_statusFileName);
$ipStatus[$ip] = $startOrStop;
self::_write(self::$_statusFileName,$ipStatus);
}
public static function reset() {
self::_writeIps(array());
self::_resetStatus();
}
public static function readIps() {
return self::_read(self::$_ipsStorageFileName);
}
public function addClient() {
$ip = $_SERVER["REMOTE_ADDR"];
$currentClients = self::readIps();
$currentClients[] = $ip;
$currentClients = array_unique($currentClients);
self::_writeIps($currentClients);
self::_setStatus ($ip, "stop");
}
public static function startStatus() {
$currentClients = self::readIps();
self::_setStatus($currentClients[0], "start");
}
public static function stopStatus() {
$currentClients = self::readIps();
foreach($currentClients as $ip) {
self::_setStatus($ip, "stop");
}
}
public static function getStatus($ip) {
$ipStatus = self::_read(self::$_statusFileName);
return $ipStatus[$ip];
}
public static function getAllStatus() {
$ipStatus = self::_read(self::$_statusFileName);
return $ipStatus;
}
public static function finished() {
$finishedIp = $_SERVER["REMOTE_ADDR"];
self::_setStatus($finishedIp, "stop");
self::_setStatus(self::_getNextIp($finishedIp), "start");
}
}
?>
<?php switch (Request::check()):
case "admin":?>
<h1>Admin</h1>
<ul>
<?php foreach(Request::$queries as $query):?>
<?php if(in_array($query, array("admin","finished"))) {continue;}?>
<li><a href="?<?=$query?>"><?=$query?></a></li>
<?php endforeach?>
<div style="border:1px solid black;margin-top:3em" id="output">
hier kommt was rein
</div>
<script>
outputDiv = document.getElementById("output");
myAnchors = document.getElementsByTagName("a");
url = new Array;
for (i=0; i < myAnchors.length; i++) {
url[i] = myAnchors[i].href;
myAnchors[i].onclick = function() {
var myAjax=new XMLHttpRequest();
myAjax.open("GET",this.href,true);
myAjax.onreadystatechange=function() {
if (myAjax.readyState==4 && myAjax.status==200) {
outputDiv.innerHTML = myAjax.responseText;
}
}
myAjax.send(null);
return false;
}
}
</script>
<?php break;?>
<?php case "reset":?>
<h1>resetialisierung gestartet</h1>
<h2> zum Beweis Ausgabe der Speicherdatei Ips:</h2>
<pre>
<?php var_dump(Data::readIps());?>
</pre>
<pre>
<h2>zum Beweis Ausgabe der Speicherdatei Status:</h2>
<pre>
<?php var_dump(Data::getAllStatus());?>
</pre>
<?php break;?>
<?php case "addClient":?>
<h1><?=htmlentities("Client hinzugefügt");?></h1>
<p> zum Beweis Ausgabe der Speicherdatei:</p>
<pre>
<?php var_dump(Data::readIps());?>
</pre>
<?php break;?>
<?php case "checkMyTurn":?><?php echo Data::getStatus($_SERVER["REMOTE_ADDR"])?><?php break;?>
<?php case "startStatus":?>
<?php case "checkIps":?>
<h1><?=htmlentities("Programm läuft")?></h1>
<h2>Angemeldete Client-Ips</h2>
<?php
$statusPerIp = Data::getAllStatus();
?>
<table>
<?php foreach(Data::readIps() as $ip):?>
<tr><td><?=$ip?></td><td>
<?=$statusPerIp[$ip]?></td>
</tr>
<?php endforeach?>
<pre>
<?php var_dump(Data::readIps())?>
</pre>
<pre>
<?php var_dump(Data::getAllStatus())?>
</pre>
<?php break;?>
<?php case "stopStatus":?>
<h1>Programm gestoppt</h1>
<pre>
<?php var_dump(Data::getAllStatus())?>
</pre>
<?php break;?>
<?php case "showPage":?>
<body style="padding:0;margin:0;background-color:#324;overflow:hidden">
<img id="background" src="gletschermond.jpg" style="position:absolute;top:0px;left:0px;width:1024px;z-index=-1">
<div id="imgdiv" style="padding:0;margin:0;width:1022px;overflow:hidden;height:768px">
<img id="weihnachtsmann" style="position:absolute;right:-150px;top:300px;" src="jens.png"; width="150px";>
<script type="text/javascript">
document.getElementById("background").style.width = screen.width +"px";
document.getElementById("imgdiv").style.width = (screen.width-2) +"px";
document.getElementById("imgdiv").style.height = (screen.height-2) +"px";
myImgStyle = document.getElementById("weihnachtsmann").style;
startPosition = -screen.width +2;//1022;//(-1* screen.width) +50;
startPosition = -screen.width +2;//1022;//(-1* screen.width) +50;
startPosition = -150;
//1022;//(-1* screen.width) +50;
//myImgStyle = document.getElementById("weihnachtsmann").style.right = startPosition + "px";
currentPosition = startPosition;
endPosition = 260;
endPosition = screen.width +150;
triggerPosition = endPosition - 150;
status = "stop";
timeOut = 20;
timeOut = 20;
pixelsPerMove = 8;
pixelsPerMove = 15;
finished = 0;
finishedTold = 0;
//alert(screen.width);
move = function() {
if (currentPosition < endPosition) { //&& status == "start"
if (currentPosition > triggerPosition && finishedTold == 0) {
tellFinished();
finishedTold = 1;
}
finished = 0;
myImgStyle.right = currentPosition + "px";
myImgStyle.top = 300 + 20*Math.sin(currentPosition/100) + "px";
myImgStyle.width = 150 + 20*Math.sin(currentPosition/100) + "px";
currentPosition += pixelsPerMove;
setTimeout("move()",timeOut);
} else {
currentPosition = startPosition;
myImgStyle.right = currentPosition + "px";
myImgStyle.top = 300 + 100*Math.sin(currentPosition) + "px";
finishedTold = 0;
getStatus();
return;
}
}
getStatus = function() {
var startStopPage = "laufen.js.php?checkMyTurn";
var myAjax=new XMLHttpRequest();
myAjax.open("GET",startStopPage,true);
myAjax.onreadystatechange=function() {
if (myAjax.readyState==4 && myAjax.status==200) {
//~ alert("Testausgabe: "+ myAjax.responseText);
//~ alert("Testausgabe finished: "+ finished);
//~ alert(typeof(myAjax.responseText.toString()));
//~ alert("myAjax.responseText.toString(): "+ myAjax.responseText.toString());
//~ alert(typeof("stop"));
//~ alert("start" == myAjax.responseText.toString());
if ("start" == myAjax.responseText.toString() && finished == 0) {
status = "start";
move();
} else {
status = "stop";
setTimeout("getStatus()",1000);
}
}
}
myAjax.send(null);
}
tellFinished = function() {
var finishedPage = "laufen.js.php?finished";
var myAjax=new XMLHttpRequest();
myAjax.open("GET",finishedPage,true);
myAjax.onreadystatechange=function() {
if (myAjax.readyState==4 && myAjax.status==200) {
if (finished == 0) {
//alert("finished sent to server");
//finished = 1;
status = "stop";
}
return;
}
}
myAjax.send(null);
}
getStatus();
window.onload = function() {
DB=document.getElementsByTagName("body")[0];
// DB.style.backgroundColor = "#000";
myFontSize = new Array;
for (i = 40; i<screen.width;i += 60) {
window["star"+i]=document.createTextNode("*");
window["div"+i]=document.createElement("div");
window["div"+i].appendChild(window["star"+i]);
DB.appendChild(window["div"+i]);
window["div"+i].style.color="#fff";
//~ myFontSize[i] = Math.ceil(Math.random()*40);
myFontSize[i] = Math.ceil(Math.random()*30) + 10;
window["div"+i].style.fontSize=myFontSize[i] + "px";
window["div"+i].style.position="absolute";
window["div"+i].style.left=10 + i + "px";
window["div"+i].style.top="-"+(myFontSize[i] + 40)+"px";
window["y"+i]=-myFontSize-40;
window["x"+i] = i;
window["snow"+i] = function (j) {
fontSize = myFontSize[j];
console.log(fontSize);
functionCall = 'window["snow'+j+'"]('+j+')';
if (window["y"+j]<screen.height + 20) {
//~ window["y"+j] += 3;
window["y"+j] += fontSize/20 ;
window["div"+j].style.top = window["y"+j] + "px";
window["div"+j].style.left = window["x"+j] + 2*Math.sin(window["y"+j]/5) + "px";
setTimeout(functionCall,100);
} else {
window["y"+j]= -myFontSize[j];
setTimeout(functionCall,100);
}
}
functionCallNow = 'window["snow'+i+'"]('+i+')';
setTimeout(functionCallNow,Math.random()*50000);
}
// der eine stern, schlechter code ...;
star=document.createTextNode("*");
div=document.createElement("div");
div.appendChild(star);
// DB.appendChild(div);
div.style.position="absolute";
div.style.left="10px";
div.style.top="10px";
div.style.color = "white";
y= -10;
x = 10;
snow = function () {
if (y<screen.height + 20) {
y += 1;
div.style.top = y + "px";
div.style.left = x + 2*Math.sin(y/3) + "px";
setTimeout("snow()",10);
}
else {
y= -10;
setTimeout("snow()",10);
}
}
//snow();
void(0);
}
</script>
</div>
<?php break;?>
<?php endswitch;?>
25. November 2016
25.11.2016
Heute etwas früher, ist aber keiner sonst da. Mit dem wie am 11.11. beschriebenen System kommt man auch auf den Backuprechner des Verwaltungsservers. Backups sind aktuell.
Moritz ist da. Morten und Angelo kommen auch. Weihnachtsmann(Jens) getestet. Websocketscript klappt nicht. Angelo will auf sein FPGA eine PDP6 bringen.
Ansonsten machen wir was mit Websockets. Das Basisscript (PHP) geht nur mit telnet, weil der Javascriptclient/Browser eine HTTP-Antwort erwartet.
Dieses Websocket-Programm funktioniert.
Nächste Woche wieder Freitag.
7. November 2016
7.11.2016
Heute machen wir noch einmal montags. Ab jetzt vermutlich freitags. Probieren wir auf jeden Fall.
Frau Spyra meinte, das Backup vom Verw.Server würde schon wieder nicht laufen. Also Freitag auf der Tagesordnung.
Willi und Long Yang sind da. Wir tunneln und schaffen es, Long Yangs horde-Webmail einzurichten. Long Yang will auch tunneln. Und schafft es direkt über seinen PI. Den er sonst als Entwicklungsumgebung nutzt.
Mit
dpkg -l linux-{image,headers}-* | awk '/^ii/{print $2}' | egrep '[0-9]+\.[0-9]+\.[0-9]+' | grep -v $(uname -r) | xargs sudo apt-get -y purge
gemäß (hatten wir schon mal) dieser Anleitung hoffentlich die alten Linuxkernels auf dem Ubunut-USB-Stick gelöscht. Das Ubuntu muss dann aber wohl eine Menge veranstalten. Hat offenbar auch gleich noch den aktuellsten Kernel istallier. Hier der output:
rob@robsau:/boot$ ls -la
insgesamt 127908
drwxr-xr-x 3 root root 4096 Sep 19 16:46 .
drwxr-xr-x 23 root root 4096 Sep 19 16:34 ..
-rw-r--r-- 1 root root 1170169 Mär 17 2016 abi-3.13.0-85-generic
-rw-r--r-- 1 root root 1170277 Jun 9 00:59 abi-3.13.0-88-generic
-rw-r--r-- 1 root root 1170427 Jun 24 20:42 abi-3.13.0-91-generic
-rw-r--r-- 1 root root 1170475 Jun 29 00:31 abi-3.13.0-92-generic
-rw-r--r-- 1 root root 1170475 Aug 12 21:14 abi-3.13.0-95-generic
-rw-r--r-- 1 root root 169988 Mär 17 2016 config-3.13.0-85-generic
-rw-r--r-- 1 root root 169999 Jun 9 00:59 config-3.13.0-88-generic
-rw-r--r-- 1 root root 169999 Jun 24 20:42 config-3.13.0-91-generic
-rw-r--r-- 1 root root 170036 Jun 29 00:31 config-3.13.0-92-generic
-rw-r--r-- 1 root root 170036 Aug 12 21:14 config-3.13.0-95-generic
drwxr-xr-x 5 root root 4096 Sep 19 16:43 grub
-rw-r--r-- 1 root root 18793006 Jun 27 14:49 initrd.img-3.13.0-85-generic
-rw-r--r-- 1 root root 18793170 Jul 4 13:52 initrd.img-3.13.0-88-generic
-rw-r--r-- 1 root root 18794997 Jul 11 14:37 initrd.img-3.13.0-91-generic
-rw-r--r-- 1 root root 5707723 Sep 19 15:44 initrd.img-3.13.0-92-generic
-rw-r--r-- 1 root root 18793698 Sep 19 16:45 initrd.img-3.13.0-95-generic
-rw-r--r-- 1 root root 176500 Mär 12 2014 memtest86+.bin
-rw-r--r-- 1 root root 178176 Mär 12 2014 memtest86+.elf
-rw-r--r-- 1 root root 178680 Mär 12 2014 memtest86+_multiboot.bin
-rw------- 1 root root 2702730 Mär 17 2016 System.map-3.13.0-85-generic
-rw------- 1 root root 2702285 Jun 9 00:59 System.map-3.13.0-88-generic
-rw------- 1 root root 2702322 Jun 24 20:42 System.map-3.13.0-91-generic
-rw------- 1 root root 2702749 Jun 29 00:31 System.map-3.13.0-92-generic
-rw------- 1 root root 2702749 Aug 12 21:14 System.map-3.13.0-95-generic
-rw------- 1 root root 5855472 Mär 17 2016 vmlinuz-3.13.0-85-generic
-rw------- 1 root root 5852688 Jun 9 00:59 vmlinuz-3.13.0-88-generic
-rw------- 1 root root 5852688 Jun 24 20:42 vmlinuz-3.13.0-91-generic
-rw------- 1 root root 5855520 Jun 29 00:31 vmlinuz-3.13.0-92-generic
-rw------- 1 root root 5855520 Aug 12 21:14 vmlinuz-3.13.0-95-generic
rob@robsau:/boot$ dpkg -l linux-{image,headers}-*
Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten
| Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/
Halb installiert/Trigger erWartet/Trigger anhängig
|/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht)
||/ Name Version Architektur Beschreibung
+++-=============================================================-===================================-===================================-================================================================================================================================
un linux-headers-3.0 (keine Beschreibung vorhanden)
ii linux-headers-3.13.0-85 3.13.0-85.129 all Header files related to Linux kernel version 3.13.0
ii linux-headers-3.13.0-85-generic 3.13.0-85.129 i386 Linux kernel headers for version 3.13.0 on 32 bit x86 SMP
ii linux-headers-3.13.0-88 3.13.0-88.135 all Header files related to Linux kernel version 3.13.0
ii linux-headers-3.13.0-88-generic 3.13.0-88.135 i386 Linux kernel headers for version 3.13.0 on 32 bit x86 SMP
ii linux-headers-3.13.0-91 3.13.0-91.138 all Header files related to Linux kernel version 3.13.0
ii linux-headers-3.13.0-91-generic 3.13.0-91.138 i386 Linux kernel headers for version 3.13.0 on 32 bit x86 SMP
un linux-headers-3.13.0-92-generic (keine Beschreibung vorhanden)
ii linux-headers-3.13.0-95 3.13.0-95.142 all Header files related to Linux kernel version 3.13.0
ii linux-headers-3.13.0-95-generic 3.13.0-95.142 i386 Linux kernel headers for version 3.13.0 on 32 bit x86 SMP
ii linux-headers-generic 3.13.0.95.103 i386 Generic Linux kernel headers
un linux-image-3.0 (keine Beschreibung vorhanden)
ii linux-image-3.13.0-85-generic 3.13.0-85.129 i386 Linux kernel image for version 3.13.0 on 32 bit x86 SMP
ii linux-image-3.13.0-88-generic 3.13.0-88.135 i386 Linux kernel image for version 3.13.0 on 32 bit x86 SMP
ii linux-image-3.13.0-91-generic 3.13.0-91.138 i386 Linux kernel image for version 3.13.0 on 32 bit x86 SMP
ii linux-image-3.13.0-92-generic 3.13.0-92.139 i386 Linux kernel image for version 3.13.0 on 32 bit x86 SMP
ii linux-image-3.13.0-95-generic 3.13.0-95.142 i386 Linux kernel image for version 3.13.0 on 32 bit x86 SMP
in linux-image-extra-3.13.0-77-generic i386 (keine Beschreibung vorhanden)
ii linux-image-extra-3.13.0-85-generic 3.13.0-85.129 i386 Linux kernel extra modules for version 3.13.0 on 32 bit x86 SMP
ii linux-image-extra-3.13.0-88-generic 3.13.0-88.135 i386 Linux kernel extra modules for version 3.13.0 on 32 bit x86 SMP
ii linux-image-extra-3.13.0-91-generic 3.13.0-91.138 i386 Linux kernel extra modules for version 3.13.0 on 32 bit x86 SMP
ii linux-image-extra-3.13.0-95-generic 3.13.0-95.142 i386 Linux kernel extra modules for version 3.13.0 on 32 bit x86 SMP
ii linux-image-generic 3.13.0.95.103 i386 Generic Linux kernel image
rob@robsau:/boot$ dpkg -l linux-{image,headers}-* | awk '/^ii/{print $2}'
linux-headers-3.13.0-85
linux-headers-3.13.0-85-generic
linux-headers-3.13.0-88
linux-headers-3.13.0-88-generic
linux-headers-3.13.0-91
linux-headers-3.13.0-91-generic
linux-headers-3.13.0-95
linux-headers-3.13.0-95-generic
linux-headers-generic
linux-image-3.13.0-85-generic
linux-image-3.13.0-88-generic
linux-image-3.13.0-91-generic
linux-image-3.13.0-92-generic
linux-image-3.13.0-95-generic
linux-image-extra-3.13.0-85-generic
linux-image-extra-3.13.0-88-generic
linux-image-extra-3.13.0-91-generic
linux-image-extra-3.13.0-95-generic
linux-image-generic
rob@robsau:/boot$ dpkg -l linux-{image,headers}-* | awk '/^ii/{print $2}' | egrep '[0-9]+\.[0-9]+\.[0-9]+'
linux-headers-3.13.0-85
linux-headers-3.13.0-85-generic
linux-headers-3.13.0-88
linux-headers-3.13.0-88-generic
linux-headers-3.13.0-91
linux-headers-3.13.0-91-generic
linux-headers-3.13.0-95
linux-headers-3.13.0-95-generic
linux-image-3.13.0-85-generic
linux-image-3.13.0-88-generic
linux-image-3.13.0-91-generic
linux-image-3.13.0-92-generic
linux-image-3.13.0-95-generic
linux-image-extra-3.13.0-85-generic
linux-image-extra-3.13.0-88-generic
linux-image-extra-3.13.0-91-generic
linux-image-extra-3.13.0-95-generic
rob@robsau:/boot$ dpkg -l linux-{image,headers}-* | awk '/^ii/{print $2}' | egrep '[0-9]+\.[0-9]+\.[0-9]+' | grep -v $(uname -r)
linux-headers-3.13.0-85
linux-headers-3.13.0-85-generic
linux-headers-3.13.0-88
linux-headers-3.13.0-88-generic
linux-headers-3.13.0-91
linux-headers-3.13.0-91-generic
linux-headers-3.13.0-95
linux-image-3.13.0-85-generic
linux-image-3.13.0-88-generic
linux-image-3.13.0-91-generic
linux-image-3.13.0-92-generic
linux-image-extra-3.13.0-85-generic
linux-image-extra-3.13.0-88-generic
linux-image-extra-3.13.0-91-generic
rob@robsau:/boot$ echo $(uname -r)
3.13.0-95-generic
rob@robsau:/boot$ grep -v
Aufruf: grep [OPTION]… MUSTER [DATEI]…
„grep --help“ liefert weitere Informationen.
rob@robsau:/boot$ grep - $(uname -r)
grep: 3.13.0-95-generic: Datei oder Verzeichnis nicht gefunden
rob@robsau:/boot$ dpkg -l linux-{image,headers}-* | awk '/^ii/{print $2}' | egrep '[0-9]+\.[0-9]+\.[0-9]+' | grep -v $(uname -r) | xargs sudo apt-get -y purge
sudo: Hostname robsau kann nicht aufgelöst werden
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden zusätzlichen Pakete werden installiert:
linux-generic linux-headers-4.4.0-45 linux-headers-4.4.0-45-generic
linux-headers-generic linux-image-4.4.0-45-generic
linux-image-extra-4.4.0-45-generic linux-image-generic
Vorgeschlagene Pakete:
fdutils linux-doc-4.4.0 linux-source-4.4.0 linux-tools
Empfohlene Pakete:
thermald
Die folgenden Pakete werden ENTFERNT:
linux-headers-3.13.0-85* linux-headers-3.13.0-85-generic*
linux-headers-3.13.0-88* linux-headers-3.13.0-88-generic*
linux-headers-3.13.0-91* linux-headers-3.13.0-91-generic*
linux-headers-3.13.0-95* linux-headers-3.13.0-95-generic*
linux-image-3.13.0-85-generic* linux-image-3.13.0-88-generic*
linux-image-3.13.0-91-generic* linux-image-3.13.0-92-generic*
linux-image-extra-3.13.0-85-generic* linux-image-extra-3.13.0-88-generic*
linux-image-extra-3.13.0-91-generic*
Die folgenden NEUEN Pakete werden installiert:
linux-headers-4.4.0-45 linux-headers-4.4.0-45-generic
linux-image-4.4.0-45-generic linux-image-extra-4.4.0-45-generic
Die folgenden Pakete werden aktualisiert (Upgrade):
linux-generic linux-headers-generic linux-image-generic
3 aktualisiert, 4 neu installiert, 15 zu entfernen und 1353 nicht aktualisiert.
Es müssen 66,9 MB an Archiven heruntergeladen werden.
Nach dieser Operation werden 542 MB Plattenplatz freigegeben.
Holen: 1 http://ubuntu.lagis.at/ubuntu/ xenial-updates/main linux-image-4.4.0-45-generic i386 4.4.0-45.66 [17,5 MB]
Holen: 2 http://ubuntu.lagis.at/ubuntu/ xenial-updates/main linux-image-extra-4.4.0-45-generic i386 4.4.0-45.66 [38,7 MB]
Holen: 3 http://ubuntu.lagis.at/ubuntu/ xenial-updates/main linux-generic i386 4.4.0.45.48 [1.788 B]
Holen: 4 http://ubuntu.lagis.at/ubuntu/ xenial-updates/main linux-image-generic i386 4.4.0.45.48 [2.300 B]
Holen: 5 http://ubuntu.lagis.at/ubuntu/ xenial-updates/main linux-headers-4.4.0-45 all 4.4.0-45.66 [9.988 kB]
Holen: 6 http://ubuntu.lagis.at/ubuntu/ xenial-updates/main linux-headers-4.4.0-45-generic i386 4.4.0-45.66 [766 kB]
Holen: 7 http://ubuntu.lagis.at/ubuntu/ xenial-updates/main linux-headers-generic i386 4.4.0.45.48 [2.272 B]
Es wurden 66,9 MB in 44 s geholt (1.491 kB/s).
(Lese Datenbank ... 254481 Dateien und Verzeichnisse sind derzeit installiert.)
Entfernen von linux-headers-3.13.0-85-generic (3.13.0-85.129) ...
Entfernen von linux-headers-3.13.0-85 (3.13.0-85.129) ...
Entfernen von linux-headers-3.13.0-88-generic (3.13.0-88.135) ...
Entfernen von linux-headers-3.13.0-88 (3.13.0-88.135) ...
Entfernen von linux-headers-3.13.0-91-generic (3.13.0-91.138) ...
Entfernen von linux-headers-3.13.0-91 (3.13.0-91.138) ...
Vormals nicht ausgewähltes Paket linux-image-4.4.0-45-generic wird gewählt.
(Lese Datenbank ... 179648 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../linux-image-4.4.0-45-generic_4.4.0-45.66_i386.deb ...
Done.
Entpacken von linux-image-4.4.0-45-generic (4.4.0-45.66) ...
Vormals nicht ausgewähltes Paket linux-image-extra-4.4.0-45-generic wird gewählt.
Vorbereitung zum Entpacken von .../linux-image-extra-4.4.0-45-generic_4.4.0-45.66_i386.deb ...
Entpacken von linux-image-extra-4.4.0-45-generic (4.4.0-45.66) ...
Vorbereitung zum Entpacken von .../linux-generic_4.4.0.45.48_i386.deb ...
Entpacken von linux-generic (4.4.0.45.48) über (3.13.0.95.103) ...
Vorbereitung zum Entpacken von .../linux-image-generic_4.4.0.45.48_i386.deb ...
Entpacken von linux-image-generic (4.4.0.45.48) über (3.13.0.95.103) ...
Vormals nicht ausgewähltes Paket linux-headers-4.4.0-45 wird gewählt.
Vorbereitung zum Entpacken von .../linux-headers-4.4.0-45_4.4.0-45.66_all.deb ...
Entpacken von linux-headers-4.4.0-45 (4.4.0-45.66) ...
Vormals nicht ausgewähltes Paket linux-headers-4.4.0-45-generic wird gewählt.
Vorbereitung zum Entpacken von .../linux-headers-4.4.0-45-generic_4.4.0-45.66_i386.deb ...
Entpacken von linux-headers-4.4.0-45-generic (4.4.0-45.66) ...
Vorbereitung zum Entpacken von .../linux-headers-generic_4.4.0.45.48_i386.deb ...
Entpacken von linux-headers-generic (4.4.0.45.48) über (3.13.0.95.103) ...
(Lese Datenbank ... 212068 Dateien und Verzeichnisse sind derzeit installiert.)
Entfernen von linux-headers-3.13.0-95-generic (3.13.0-95.142) ...
Entfernen von linux-headers-3.13.0-95 (3.13.0-95.142) ...
Entfernen von linux-image-extra-3.13.0-85-generic (3.13.0-85.129) ...
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 3.13.0-85-generic /boot/vmlinuz-3.13.0-85-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.13.0-85-generic /boot/vmlinuz-3.13.0-85-generic
update-initramfs: Generating /boot/initrd.img-3.13.0-85-generic
run-parts: executing /etc/kernel/postinst.d/pm-utils 3.13.0-85-generic /boot/vmlinuz-3.13.0-85-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 3.13.0-85-generic /boot/vmlinuz-3.13.0-85-generic
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 3.13.0-85-generic /boot/vmlinuz-3.13.0-85-generic
Grub-Konfigurationsdatei wird generiert …
Linux-Abbild gefunden: /boot/vmlinuz-4.4.0-45-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-95-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-95-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-92-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-92-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-91-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-91-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-88-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-88-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-85-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-85-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Microsoft Windows XP Professional auf /dev/sda1 gefunden
erledigt
Löschen der Konfigurationsdateien von linux-image-extra-3.13.0-85-generic (3.13.0-85.129) ...
Entfernen von linux-image-3.13.0-85-generic (3.13.0-85.129) ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.13.0-85-generic /boot/vmlinuz-3.13.0-85-generic
update-initramfs: Deleting /boot/initrd.img-3.13.0-85-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.13.0-85-generic /boot/vmlinuz-3.13.0-85-generic
Grub-Konfigurationsdatei wird generiert …
Linux-Abbild gefunden: /boot/vmlinuz-4.4.0-45-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-95-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-95-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-92-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-92-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-91-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-91-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-88-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-88-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Microsoft Windows XP Professional auf /dev/sda1 gefunden
erledigt
Löschen der Konfigurationsdateien von linux-image-3.13.0-85-generic (3.13.0-85.129) ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.13.0-85-generic /boot/vmlinuz-3.13.0-85-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.13.0-85-generic /boot/vmlinuz-3.13.0-85-generic
Entfernen von linux-image-extra-3.13.0-88-generic (3.13.0-88.135) ...
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 3.13.0-88-generic /boot/vmlinuz-3.13.0-88-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.13.0-88-generic /boot/vmlinuz-3.13.0-88-generic
update-initramfs: Generating /boot/initrd.img-3.13.0-88-generic
run-parts: executing /etc/kernel/postinst.d/pm-utils 3.13.0-88-generic /boot/vmlinuz-3.13.0-88-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 3.13.0-88-generic /boot/vmlinuz-3.13.0-88-generic
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 3.13.0-88-generic /boot/vmlinuz-3.13.0-88-generic
Grub-Konfigurationsdatei wird generiert …
Linux-Abbild gefunden: /boot/vmlinuz-4.4.0-45-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-95-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-95-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-92-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-92-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-91-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-91-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-88-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-88-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Microsoft Windows XP Professional auf /dev/sda1 gefunden
erledigt
Löschen der Konfigurationsdateien von linux-image-extra-3.13.0-88-generic (3.13.0-88.135) ...
Entfernen von linux-image-3.13.0-88-generic (3.13.0-88.135) ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.13.0-88-generic /boot/vmlinuz-3.13.0-88-generic
update-initramfs: Deleting /boot/initrd.img-3.13.0-88-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.13.0-88-generic /boot/vmlinuz-3.13.0-88-generic
Grub-Konfigurationsdatei wird generiert …
Linux-Abbild gefunden: /boot/vmlinuz-4.4.0-45-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-95-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-95-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-92-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-92-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-91-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-91-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Microsoft Windows XP Professional auf /dev/sda1 gefunden
erledigt
Löschen der Konfigurationsdateien von linux-image-3.13.0-88-generic (3.13.0-88.135) ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.13.0-88-generic /boot/vmlinuz-3.13.0-88-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.13.0-88-generic /boot/vmlinuz-3.13.0-88-generic
Entfernen von linux-image-extra-3.13.0-91-generic (3.13.0-91.138) ...
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 3.13.0-91-generic /boot/vmlinuz-3.13.0-91-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.13.0-91-generic /boot/vmlinuz-3.13.0-91-generic
update-initramfs: Generating /boot/initrd.img-3.13.0-91-generic
run-parts: executing /etc/kernel/postinst.d/pm-utils 3.13.0-91-generic /boot/vmlinuz-3.13.0-91-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 3.13.0-91-generic /boot/vmlinuz-3.13.0-91-generic
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 3.13.0-91-generic /boot/vmlinuz-3.13.0-91-generic
Grub-Konfigurationsdatei wird generiert …
Linux-Abbild gefunden: /boot/vmlinuz-4.4.0-45-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-95-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-95-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-92-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-92-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-91-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-91-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Microsoft Windows XP Professional auf /dev/sda1 gefunden
erledigt
Löschen der Konfigurationsdateien von linux-image-extra-3.13.0-91-generic (3.13.0-91.138) ...
Entfernen von linux-image-3.13.0-91-generic (3.13.0-91.138) ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.13.0-91-generic /boot/vmlinuz-3.13.0-91-generic
update-initramfs: Deleting /boot/initrd.img-3.13.0-91-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.13.0-91-generic /boot/vmlinuz-3.13.0-91-generic
Grub-Konfigurationsdatei wird generiert …
Linux-Abbild gefunden: /boot/vmlinuz-4.4.0-45-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-95-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-95-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-92-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-92-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Microsoft Windows XP Professional auf /dev/sda1 gefunden
erledigt
Löschen der Konfigurationsdateien von linux-image-3.13.0-91-generic (3.13.0-91.138) ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.13.0-91-generic /boot/vmlinuz-3.13.0-91-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.13.0-91-generic /boot/vmlinuz-3.13.0-91-generic
Entfernen von linux-image-3.13.0-92-generic (3.13.0-92.139) ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.13.0-92-generic /boot/vmlinuz-3.13.0-92-generic
update-initramfs: Deleting /boot/initrd.img-3.13.0-92-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.13.0-92-generic /boot/vmlinuz-3.13.0-92-generic
Grub-Konfigurationsdatei wird generiert …
Linux-Abbild gefunden: /boot/vmlinuz-4.4.0-45-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-95-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-95-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Microsoft Windows XP Professional auf /dev/sda1 gefunden
erledigt
The link /vmlinuz.old is a damaged link
Removing symbolic link vmlinuz.old
you may need to re-run your boot loader[grub]
The link /initrd.img.old is a damaged link
Removing symbolic link initrd.img.old
you may need to re-run your boot loader[grub]
Löschen der Konfigurationsdateien von linux-image-3.13.0-92-generic (3.13.0-92.139) ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.13.0-92-generic /boot/vmlinuz-3.13.0-92-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.13.0-92-generic /boot/vmlinuz-3.13.0-92-generic
linux-image-4.4.0-45-generic (4.4.0-45.66) wird eingerichtet ...
Running depmod.
update-initramfs: deferring update (hook will be called later)
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.4.0-45-generic /boot/vmlinuz-4.4.0-45-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.4.0-45-generic /boot/vmlinuz-4.4.0-45-generic
update-initramfs: Generating /boot/initrd.img-4.4.0-45-generic
run-parts: executing /etc/kernel/postinst.d/pm-utils 4.4.0-45-generic /boot/vmlinuz-4.4.0-45-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 4.4.0-45-generic /boot/vmlinuz-4.4.0-45-generic
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 4.4.0-45-generic /boot/vmlinuz-4.4.0-45-generic
Grub-Konfigurationsdatei wird generiert …
Linux-Abbild gefunden: /boot/vmlinuz-4.4.0-45-generic
initrd-Abbild gefunden: /boot/initrd.img-4.4.0-45-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-95-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-95-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Microsoft Windows XP Professional auf /dev/sda1 gefunden
erledigt
linux-image-extra-4.4.0-45-generic (4.4.0-45.66) wird eingerichtet ...
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.4.0-45-generic /boot/vmlinuz-4.4.0-45-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.4.0-45-generic /boot/vmlinuz-4.4.0-45-generic
update-initramfs: Generating /boot/initrd.img-4.4.0-45-generic
run-parts: executing /etc/kernel/postinst.d/pm-utils 4.4.0-45-generic /boot/vmlinuz-4.4.0-45-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 4.4.0-45-generic /boot/vmlinuz-4.4.0-45-generic
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 4.4.0-45-generic /boot/vmlinuz-4.4.0-45-generic
Grub-Konfigurationsdatei wird generiert …
Linux-Abbild gefunden: /boot/vmlinuz-4.4.0-45-generic
initrd-Abbild gefunden: /boot/initrd.img-4.4.0-45-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-95-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-95-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Microsoft Windows XP Professional auf /dev/sda1 gefunden
erledigt
linux-image-generic (4.4.0.45.48) wird eingerichtet ...
linux-headers-4.4.0-45 (4.4.0-45.66) wird eingerichtet ...
linux-headers-4.4.0-45-generic (4.4.0-45.66) wird eingerichtet ...
linux-headers-generic (4.4.0.45.48) wird eingerichtet ...
linux-generic (4.4.0.45.48) wird eingerichtet ...
rob@robsau:/boot$
10. Oktober 2016
10.10.2016
Willi und Long Yang sind da. Morten und Moritz auch. Wir quatschen über Tunnel und Ports. Willi bekommt einen eigenen Account auf dem virtuellen wvs-Server.
Moritz und Morten recherchieren über Magnetschwebebahn. Morten wundert sich, wie der Webfilter eine bestimmte URL herausgefiltert hat, nicht aber die ganze Domain.
Nächste und übernächste Woche fällt aus. Herbstferien.
Moritz beschäftigt sich mit Matroska und versucht die Segment-Filenames auszulesen.
Angelo ist auch gekommen. Er muss einen Linker schreiben für die PDP6.
Robert kommt mit Filezilla wieder nicht auf den wvs-berlin.de – Server. Eigentlich sollte die alte Doku da auf der Seite wieder verlinkt werden.
Angelo schlägt den Mittwoch als neuen AG-Tag vor. Robert kann das Filezilla/FTP-Problem mit dem Plesk-Server nicht lösen.
26. September 2016
26.9.2016
Nächste Mal fällt aus, weil der Montag Feiertag ist.
Moritz, Morten, Angelo und Julian sind da. Wir reden über die falsch implementierte Linksassoziativität in PHP.
Wir reden über komplizierte und einfach Programmiersprachen. Go ist wohl „einfach“. Hat keinen Ternäroperator. C++ ist kompliziert.
Robert hatte Probleme auf dem Spyraserver mit „unmet dependencies“. g++ konnte nicht installiert werden. Deshalb „aptitude“ installiert.
Hier ein kleiner Code-Teil:
#include <iostream>
using namespace std;
int main()
{
int z;
cout << "Bitte geben Sie eine Zahl ein: " << endl;
cin >> z;
cout << "z hat den Wert: " << z << endl;
return 0;
}
Angelo will seine Lautgesetztprogrammierung erstmal in Python implementieren. Dabei geht es im Wesentlichen um reguläre Ausdrücke.
Auch auf dem Spyraserver das Apachemodul mod_userdir aktiviert und PHP dafür eingeschaltet.
Dazu in der „/etc/apache2/mods-enabled/userdir.conf“ eingefügt: „php_admin_value engine On“.
19. September 2016
19.9.2016
Morten, Willi, Long Yang und Angelo sind hier.
Robert kommt mit seinem Ubuntustick nicht ins Netz. Angelo kommt darauf, dass ein Kernelmodul nicht vorhanden ist. Mit lspci haben wir geschaut, was für Geräte vorhanden sind. Da wurde die Realtek-Karte aufgeführt (ohne Modul). Wir haben geguckt ob in Unterverzeichnissen von /lib/modules irgendwelche Dateien mit r81 drin vorkommen (das Modul für die Realtek-Karte). Dass es r8168 oder r8169 ist hatte Angelo gegooglet. Angelo hatte die DID gegooglet (lcpci -n war dazu nötig). Mit „du -a | grep r81“ haben wir gesehen, dass das Modul nur bei älteren Kernels vorhanden war. Deshalb Rechner einfach mit altem Kernel gestartet.
Julian konnte heute nicht, deshalb kein „Go“ diesmal.
„ls“ heißt übrigens „list“ wohl. Und nicht „list segments“.
Wir haben den Tisch mit dem schiefen Fuß ausgetauscht unter dem Overheadprojektor.
„ls“ steht übrigens wohl für „list“ (gemäß Wikipedia-Talk) (Amprimoz liegt wohl falsch …).
18. Juli 2016
18.7.2016
Letztes Mal vor den Ferien. Vor einer Woche haben wir einen Cryptovirus versucht zu analysieren. Auf Javascriptbasis mit ActiveX, DHL-Paket als Coverstory, gezipped.
In der letzten Ferienwoche soll der Verwaltungsserver neu gestartet werden und die Doku sollte fertig sein. Update von Winschule hat aber letzte Woche gut geklappt, auch ohne Beisitzer aus der AG.
Auf dem Spyraserver 10.17.0.3 Chrome installiert. Firefox ist immer abgestürzt, warum auch immer.
In der Sources-Liste jetzt
deb http://ftp.halifax.rwth-aachen.de/ubuntu/ xenial main deb-src http://ftp.halifax.rwth-aachen.de/ubuntu/ xenial main einfügt.
Jetzt gehts mit dem update.
Morten versucht die Festplatte von dem cryptisierten Rechner zu klonen.
Hier die Infos im Netz zu Cerber.
Nächste Mal nach den Ferien vermutlich direkt am 5.9.2016. In den Ferien machen wir noch PC-AG-Grillen.
13. Juni 2016
13.6.2016
Michael, Julian, Angelo und Morten sind da. Wir bauen die beiden neuen Server ins Rack ein und testen sie. 10.17.0.2 ist der von der AG. 10.17.0.3 ist der „spyraserver“. Robert installiert noch apache2 php7 mysql und phpmyadmin inklusive der entsprechenden Einstellungen, die es dazu braucht (mbstring, mcrypt). Läuft jetzt. Julian hat den Drucker von den Päkos ins Netz bekommen, aber der Treiber funktioniert nicht.
6. Juni 2016
6.6.2016
Michael von der Robotik-AG ist da, Julian und Morten auch. Frau Spyra kam auch. Wir waren am Verwaltungsserver. Angelo hat noch die Vbox-Guest-Edition installliert, das hat aber nichts gebracht. Deshalb hat er Beyond-Compare per FTP vom Free-BSD-Server rübergeladen auf den Windows-Server. Samba auf dem Free-BSD-Server ist zwar installiert, aber nicht konfiguriert. Mit Beyond-Compare werden jetzt die Netzlaufwerke aus dem Verwaltungsnetz auf den kleinen Backup-PC unten neben dem Verwaltungsserver synchronisiert.
Nächste Woche wollte Julian auch kommen, um den einen Drucker ins Netzwerk zu bekommen. Die beiden Server stehen noch im 206er und kommen beim nächsten Mal in den Serverraum.
Mit Hilfe von Michael und Angelo haben wir noch meinen Ubuntu-Stick von alten Linuxkerneln befreit. Mit apt-get purge …;