Erfahrungen CubieTruck
Erfahrungen mit dem CubieTruck (Cubieboard 3)
Dieter Drewanz
Dokument begonnen: April 2016
Dokument letzter Stand: April 2017
Kurzfassung:
Der Text umfaßt die Vorbereitung, Erstinbetriebnahme, Installation weiterer praktischer Pakete, Anwendung der Pakete/Anwendungen und Installation von Treibern.
Illustration
1: CubieTruck in Work
Inhaltsverzeichnis
1 Einleitung 6
1.1 Warum das entwurfsartige Dokument erstellt wurde 6
1.2 Wie die Wahl auf den Cubietruck fiel 6
1.3 Zu den Auflistungen der Befehle 7
2 Die Erstinbetriebnahme 7
2.1 Der Zusammenbau 7
2.2 Der erste Start 8
2.2.1 Start des Androids auf internen Flash-Speicher (NAND) 8
2.2.2 Vorbereitungen zum Start eines Linux von der SD-Karte 9
2.3 Der erste Start des Linux für ARM-Prozessoren 12
2.4 Der zweite Start des Linux für ARM-Prozessoren 13
3 Erweiterung um SW-Pakete für die Nutzung 14
3.1 Vorbereitungen vor der Paketauswahl und Installation einer grafischen Oberfläche 14
3.2 Installation erster Anwendungen für Internet und Dokumentenbearbeitung (Office) 16
3.3 Booten von mehreren Systemen bei Bedarf 18
4 Komplettieren des Systems und Vornehmen der Einstellungen 18
4.1 Vornehmen der Einstellungen und Konfigurationen 18
4.1.1 Einstellung des Tastaturlayouts 19
4.1.2 Konfiguration des WLAN 19
4.1.3 Einbinden von Swap-Partitionen 20
4.2 Installation von praktischen Werkzeugen und Anwendungen 21
4.2.1 Anwendungen für die Textbearbeitung und Büro-Suiten 21
4.2.2 Anwendungen zur Internetnutzung (Browser, Chat) 22
4.2.3 Werkzeuge, Anwendungen zur Konfiguration und Editoren 22
4.2.4 Grafikprogramme, Bildbetrachter und Mediaplayer 23
4.2.5 Spiele 24
4.3 Zum ersten Start 25
4.4 Zu den ersten Schritten mit Armbian 25
4.5 Mediacenter ohne Linux/Armbian-Kenntnisse aufsetzten 26
4.6 Remote Access (Fernzugriff) auf den CubieTruck 27
4.6.1 Secure Shell (SSH) und netzwerkbasierter X11-Bildschimmanager 28
4.6.1.1 Filesystemzugriff per ftp/sftp 28
4.6.1.2 Anwendungen starten mit SSH 28
4.6.1.3 Client-Server Fernzugriff 29
4.7 Booten von mehreren Systemen bei Bedarf 32
5 Installation eines Druckers 32
5.1 Brother MFC 795 32
5.2 Vorbereitungen für i386er Software auf ARM-Prozessoren 33
5.3 Problemlösung zu libc6 bei der Druckerinstallation 34
5.4 Installation des Scanners des Multi-Funktions-Druckers 37
5.4.1 Installationsversuch des Scanner-Treibers i386 unter der arm-Architektur 37
5.4.2 Emulation mit Qemu in einer kleinen virtuellen Debian-Umgebung i386-Architektur. 45
5.4.3 Aus den Quellen compelieren einer aktuelleren Qemu-Version 48
5.4.4 Scanner-Treiber unter chroot mit qemu-i386-static installieren 51
6 Anwendungen, Installation, Einrichtung und kleine Skript-Werkzeuge 61
6.1 Terminal und Text-Editoren 61
6.2 Dateimanager 62
6.3 Medienplayer „mplayer“ 62
6.3.1 Installation und Konfiguration 62
6.3.2 Kleine Script-Werkzeuge 63
6.4 Media Center 67
6.5 Datenverkehrsmonitoring 67
6.6 Netzwerkanwendungen 69
6.7 Installation von proprietären Anwendungen 71
6.7.1 Installation von Skype - Video-Telefonie 71
6.8 Anwendungen zur Netzwerkuntersuchung 73
6.9 Dokumentenbearbeitung – Office-Suiten 73
6.10 Bildbearbeitung 75
6.11 Mathematische Anwendungen 76
6.12 Elektrotechnische Anwendungen 76
6.12.1 Quite Universal Circuit Simulator (QUCS) 76
6.12.2 Qucs mit Spice Ergänzung und Einbindung 82
6.12.3 Qucsstudio 83
6.12.3.1 Unterschied von Qucs und Qucsstudio 83
6.12.3.2 Installationsversuch von Wine in einer Chroot-Umgebung 84
6.12.3.3 Einrichten der chroot-Umgebung mit Fehlerbehebung 85
6.12.3.4 Qucsstudio unter wine starten und verwenden 91
6.13 Virenscanner 91
6.14 Laufzeitumgebungen und Virtualisierung 92
6.15 Werkzeuge zur Fehlersuche 93
6.16 Spätere Änderungen 93
6.17 Werkzeuge für die www-Seitenerstellung 94
6.17.1 Einfacher Texteditor oder WYSIWYG-Editor 94
6.17.2 Homepage-Werkzeug sigil 95
6.17.3 Homepage-Werkzeug gwrite 95
6.17.4 Homepage-Werkzeug tinymce 95
6.17.5 Homepage-Werkzeug fsceditor 96
6.17.6 HTML-Editor Composer in SeaMonkey 96
7 Varianten zum Vorgehen bei der Installation 97
7.1 Verwenden von bereits heruntergeladenen Paketdateien 97
7.2 Das System auf eine größere SD-Karte übertragen 97
7.2.1 Der Umstieg von einer 16 GB auf eine 32 GB SD-Karte 97
7.2.2 Der Umstieg von einer 32 GB auf eine 64 GB SD-Karte 98
7.3 Updaten des Betriebssystems 104
7.4 Weitere Paketrepositories hinzufügen 104
7.4.1 Paketmanagement des Linux-Betriebssystems mit mehreren Repositories aufräumen 107
7.4.1.1 Die Vorgeschichte bis zum Auftreten von Fehlern bei der Installation 107
7.4.1.2 Problembehebung beim Paketmanager apt 116
7.4.1.3 Lösung eines weiteren Fehlers zwischen Paketmanager apt und dpkg 119
7.4.1.4 Übersicht verwendeter Verzeichnisse, Befehle und Skripte 123
7.4.1.5 Praktische Skripte 124
7.5 Erzeugen von startfähigen USB-Sticks 125
8 Verschiedene Problembehebungen 126
8.1 Problembehebungen bei der Paketverwaltung 126
8.1.1 Ungewolltes Update und Änderung des Zustandes 126
8.1.2 Trouble-Shooting Zeitangabe 128
8.1.3 Trouble-Shooting WLAN geht nicht mehr 128
8.1.4 Trouble apt-get update 130
8.1.5 Überraschendes Upgrade auf die nächste Version 132
8.2 Trouble LibreOffice Erweiterungen und Java-Installation 133
8.3 Bildschirmauflösungen ändern funktioniert nicht 136
8.3.1 Notizen der Versuche 136
8.3.2 Lösung für die Auflösungseinstellungen 144
8.4 Filesystem "overlayfs" funktioniert nicht 144
8.5 Datenverkehrszähler vnstat gibt keine Ausgaben über Tage und Monate 148
8.6 Dateisystem FAT32 einer HD (1TB) kann durch gparted nicht modifiziert werden. 149
9 Aspekte der IT-Sicherheit 151
9.1 Zugang beim Starten des Systems 151
9.2 Einloggen über das Netzwerk 151
9.3 Erste einfache Maßnahmen zur Absicherung 152
9.4 Und noch eine kleine Besonderheit des CubieTruck 152
10 Zusammenfassung 153
1 Anlagen, Entwürfe, Reste, Baustellen 154
2 Energiekostenberechnungen 154
3 Ein anderes Linux auf dem CubieTruck 154
4 Qemu compelieren 155
5 Anlagen – Dokumentteile des Raspian 163
5.1 Ein OSMC-Image für Berryboot erzeugen aus einem SD-Image für den Raspberry 163
5.2 Installation von Anwendungen und kleinen Werkzeugen 167
6 Ab hier Reste von Raspberry Pi 170
7 Lösung von einzelnen Problemen und interessante Konfigurationen 170
7.1 Bildschirmprobleme 170
8 Besondere Netzwerke 171
Parallel zu den Arbeiten und Änderungen am System, das Cubietruck, Linux-Distribution und ausgewählten Anwendungen als Kernelemente besitzt, wurde der hiermit vorliegende Text als kleine Dokumentation angelegt. Die ursprüngliche Motivation war für später Änderungen und Fortsetzungen eine einfache Zusammenstellung wesentlicher Schritte und auch Quellen vorzuhalten. Eine Nebenabsicht war auch schnell ein ähnliches System anhand dieser Notizen wieder aufzusetzen.
Somit ist dieser sprachlich einfach gehalten und auch nicht weiter quergelesen oder korrekturgelesen. Ohne Absichten und Aussichten auf irgendwelche Zuwendungen wurde verständlicherweise hierbei auf den schriftlichen Ausdruck auch nicht besonders geachtet. Manchmal wurden auch nur die Notizen mit den Links zu Seiten im Internet mit interessanten Informationen, Beschreibungen und Anleitungen gesammelt oder Auszüge aus der Konsolensitzung kopiert.
Eingestellt im Netz kann es vielleicht dem Einen oder Anderen ebenfalls nützlich sein zur Information oder Fehlerbehebung.
Über den Jahreswechsel wurde ein Raspberry Pi 2 B eingerichtet. Für der Nutzung des Gerätes fand ich die 1 GB RAM etwas knapp bemessen, wenn der Raspi zum Surfen mit mehreren offenen Tabs (Tabs=Reiter auf Deutsch) und parallel zur umfangreichen Dokumentenbearbeitung verwendet werden soll. Auf der SD-Karte wurde zwar zusätzlich eine Swap-Partiton eingerichtet, aber Flash hat eine endliche Zahl von Schreibzyklen, welche die Lebensdauer begrenzt. Also hoffte ich auf ein Nachfolgermodell Raspi 3 mit 2 GB RAM.
Nachdem der neue Raspi keine 2 GB RAM bekam, suchte ich nach Alternativen. Da nicht viel Rechenleistung für die vorgesehene Verwendung benötigt wurde, fiel die Wahl letztendlich auf einen CubieTruck. Ein Hauptentscheidungsgrund war der zusätzliche VGA-Anschluss, so dass mit wenig Aufwand bereits vorhandene ältere Monitore mit dem Gerät genutzt werden konnten. Beim Raspi verwendete ich eine Adapterkette HDMI-DVI-VGA. Jedoch hatte ich beim Anschließen immer Platzprobleme mit dem Adapterwulst auf der Rückseite des Monitors. Auf Grund der zwei Anschlüsse, einmal VGA und einmal HDMI sollte bei Bedarf auch ein Dual-Screen-Betrieb reibungslos funktionieren. Als weitere Pluspunkte seien noch der SATA-Anschluss für eine Festplatte und der Anschluss für einen Lithium-Akku aufgeführt.
Ein gravierender Nachteil ist jedoch, dass nur zwei USB-Anschlüsse vorhanden sind. Mit Maus und Tastatur sind diese bereits belegt. Glücklicherweise lag noch ein USB-Hub herum, der hier eine dauerhafte Verwendung fand. Im Prinzip gibt es zwei unterschiedlich Verhalten von Hubs. Es gibt Hubs, die auch funktionieren ohne das eine eigene externe Spannungsversorgung angeschlossen werden muss. An solche Hubs sollten aber nur kleine Verbraucher wie eben Tastatur, Maus oder USB-Sticks angeschlossen werden. Es kann sonst der einzelne USB-Anschluss des CubieTrucks oder anderer ähnlicher Mini-Rechner überlastet werden. Andere typen von Hubs funktionieren nur mit einer externen Spannungsversorgung und wirklich nur dann sind die USB-Gerate mit Strom versorgt sowie für den Rechner erreichbar. Bei vielen dieser Hubs, wird die Stromversorgung an alle USB-Geräte unterbrochen, wenn der Masteranschluss zum Rechner auch stromlos wurde. Sehr selten gibt es darunter Geräte, bei denen ohne Stromversorgung genau ein Anschluss noch aktiv bleibt.
Der CubieTruck, Raspberry und ähnliche Computerboards wurden und sind auch weiterhin konzipiert für Technikinteressierte als günstige Systeme zum Experimentieren und Lernen. Daher wird auch kein großer Aufwand betrieben um alle Fallstricke aus dem Weg zu räumen von Seiten der jeweiligen Community.
Wie in vielen Büchern wurde oft an dem Beginn der Befehlszeile ein "$" gesetzt. Dies symbolisiert in der Regel die Kurzausgabe des Prompts der Shell wie zum Beispiel "username@cubietruck:~$". Die Code-Listungs werden öfters ausgegeben Verbindung mit einzelnen Zeichen, die beim Blinden kopieren auf die Shell nur zu einer Fehlermeldung führen. Manchmal wird dies gemacht um zu verhindern, dass man sich schädigt oder alles zerschießt, weil ein auslösendes "return" oft mitkopiert und somit keine Chance mehr hat die Zeile noch anzupassen vor der Ausführung.
Als komplettes Set von einem der vielen bekannten Elektronikgeschäften oder Versandhändlern (Bürklin, Reichelt, Conrad, ELV, Völkner, Pollin, Watterott, usw.) beschafft, war das Gerät schnell zusammengebaut. Es lag für den Zusammenbau keine Anleitung dem Set bei. Im Internet wäre sicherlich eine Anleitung zu finden, aber ich brauchte diese nicht. Die Platte mit den vielen Ausschnitten ist die obere Gehäuseplatte und die die Platte mit einem kleinen Loch in der Nähe einer Ecke ist so zu platzieren, dass dieses Loch in der Nähe der SATA-Anschlüsse liegt. Die Schutzpapiere müssen vor der Montage von der Plexiglasplatten abgezogen werden. Dabei sollten nicht zu harte Gegenstände als Hilfsmittel verwendet werden.
Im Nachhinein wäre das Komplettgerät für ca. 175 Euro mit Akku plus 64GB SATA-SSD zu empfehlen gegenüber dem Gerät im Acrylglasgehäuse für ca. 100 Euro, wenn dieses Gerät auch öfters transportiert werden sollte. Zusätzlich wäre das Gerät Akku-gepuffert bei eventuellen kürzeren Stromausfällen.
Den mitgelieferten Kühlkörper ließ ich erst einmal weg und hob diese mit den nicht benötigten Kabeln in der Schachtel auf.
Nach dem Zusammenbau schloß ich ein kleines Netzteil1 mit nur 1A und 5V an. Der CubieTruck startete ohne Probleme in das Android, welches auf dem internen Flash installiert ist. Bei den Einstellungen wurde das WLAN konfiguriert. Solange kein Google-Account eingerichtet wurde, konnte der Google-Play-Store nicht genutzt werden und auch der Browser ließ kein Surfen im Internet zu.
Auf dem 8GB internen Flash-Speicher befand sich eine 4.4er Android-Version. Ermittelt wurde unter den Eigenschaften, dass von den 2GB Hauptspeicher noch 0.88GB und von den 8GB Flash noch 4,76GB frei wären. Über Nacht (als einfacher erster Dauertest um schon mal einige Macken auszuschließen) lief der CubieTruck ununterbrochen und es wurden in dem Zeitraum insgesamt 47MB Datenverkehr verursacht.
Unter den Einstellungen kann ausgewählt werden, ob der CubieTruck vom internen Flash-Speicher oder von einer SATA-Festplatte startet. Wenn eine bootfähige SD-Karte im Gerät steckt, wird immer von dieser gebootet.
An der Seite neben dem IR-Sensor befindet sich ein kleiner Schalter. Versehentlich leicht sind beide zu verwechseln und es wird auf den Sensor statt dem Taster gedrückt. Etwa eine Sekunde drücken löst das Herunterfahren des Android aus, wie auch das Einschalten. Langes drücken ab ca. 4 Sekunden bewirkt ein hartes Ausschalten. Gegenüber einigen anderen Einplatinenrechner ist das Vorhandensein eines Tasters zum Ein- und Ausschalten positiv zu bewerten.
Noch zu testen war, ob bei Wiederkehr der Spannung das Gerät auch wieder von selbst bootet. Im Hinblick auf die Verwendung eines kleinen dauernd-online Servers wäre solches Verhalten praktisch.
Das Verhalten bei Stromausfall ohne Akku ergab folgendes Ergebnis:
USB-Stecker am Netzteil ziehen und anschließend diesen wieder anstecken ergab, dass der Rechner wieder startet.
Netzteil aus der Steckdose ziehen und anschließend dieses wieder anstecken ergab, dass der Rechner meistens nicht mehr wieder startet. Schuld daran sind die Zeitkonstanten der Glättungskondensatoren im Netzteil.
Netzteil aus der Steckdose ziehen, längere Zeit warten und anschließend dieses wieder anstecken ergab, dass der Rechner wieder startet. Bei den meisten Netzteilen war eine Minute Wartezeit zu wenig.
Nach dem zweiten Boot-Vorgangs stimmte auch die Zeitangabe (statt Januar 2000 nun das richtige Datum), wobei die Zeitzone noch nicht passte. In der Nähe des Stromanschlusses ist auf der Platine ein Bauteil zu erkennen, das wie eine kleine Uhrbatterie aussieht. Es scheint sich hier tatsächlich um eine kleine Zelle für eine Echtzeituhr (RTC) zu handeln. Falls diese ausgetauscht werden müßte, wird dies mit Umständen verbunden sein, da die Zelle mit Lötfahnen verbaut wurde. Bei Gelegenheit werde ich die Spannung messen, da nicht ersichtlich ist, ob es sich um eine 1,5V Standard oder 3,7V Li-Zelle handelt. Es ist leider nicht bekannt, was passiert, wenn diese Zelle ausfallen sollte.
Im Gegensatz zum Raspi (Raspian) gibt es für den Cubietruck weniger Informationen zu den Betriebssystemen und auch weniger Auswahl an Distributionen mit fertigen Images zum Herunterladen für den CubieTruck. Glücklicherweise wurde ein ARM-Prozessor und eine Mali-GPU verbaut wurde, so dass es doch eine kleine Auswahlmöglichkeit gibt.
Ein Ubuntu Mate wurde bereits auf einem Raspi ausprobiert, so dass diesmal eine andere Distribution zum Zuge kommen sollte. Die Wahl fiel hier auf Armbian, das für viele verschiedene kleine ARM-Boards praktische Grundimages zur Verfügung stellt.
Vor dem Start mit Armbian sollte man sich die Infos unter folgendem Link ansehen:
http://www.armbian.com/documentation/
Verwendet wurde ein Debian-basiertes Linux unter:
http://www.armbian.com/download/
Auf diesem Link befindet sich eine sehr gute Übersicht über viele verschiedene solcher ARM-Boards von verschiedenen Herstellern.
http://www.armbian.com/cubietruck/
Auswahl: Unter der Listenspalte Vanilla wurde Jessie gewählt.
http://mirror.igorpecovnik.com/Armbian_5.04_Cubietruck_Debian_jessie_4.4.3.zip
Die Zip-Datei von ca. 0,25 GB wurde heruntergeladen und entpackt. In dem Paket befand sich eine kleine exe-Datei für das Schreiben des Images auf eine SD-Karte unter Windows. Die andere große Datei von ca. 1,0 bis 1,3 GB war ein Image als raw-Datei. Unter Linux wird diese Datei mit dd auf eine leere SD-Karte geschrieben, da bei dem Vorgang alle Daten verloren gehen.
'dd bs=1MB if=Armbian_5.04_Cubietruck_Debian_jessie_4.4.3.zip of=/dev/sdx'
Achtung bei Nutzung von dd und der Angabe des zu beschreibenden Mediums „of=/dev/sdx“! Wenn das falsche Medium erwischt wird, ist das sehr ärgerlich da alle Daten unwiederbringlich überschrieben wurden. Ich hatte parallel gparted laufen und sicherheitshalber einen weiteren angeschlossenen USB-Stick '/dev/sdb' gezogen. Ein ausgelöster Reload der Partitionen durch eine Betriebssystemroutine verursachte eine Neuzuordnung genau während jener höchstens drei Sekunden bis dd gestartet wurde, so dass die Lücke zwischen /dev/sda bis /dev/sdd geschlossen wurde und schon war das falsche Medium überschrieben. Der USB-Speicherstick enthielt glücklicherweise nur die zip-Datei, die sofort wieder heruntergeladen werden konnte. Somit war kein relevanter Datenverlust entstanden.
Nachdem die SD-Karte beschrieben war, befand sich auf dieser eine primäre Partition von ca. 1,1GB. Der restliche Speicherplatz auf der 32GB SD-Karte war noch unbelegt.
Diese SD-Karte könnte nun ohne weitere Bearbeitung in den CubieTruck eingesteckt werden und das System würde booten. Bei dem Bootvorgang würden auch noch Partitionen angelegt oder vergrößert werden nach einer Beschreibung im Internet. Ich habe aber auf der Karte vorher mit gparted selbst noch Partitionen angelegt und die Größen verändert.
Anbei die Ausgabe der Partitionen mit „fdisk -l“:
Disk /dev/mmcblk0: 29 GiB, 31104958464 bytes, 60751872 sectors
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 2048 16525311 16523264 7.9G 83 Linux
/dev/mmcblk0p2 16525312 60751871 44226560 21.1G 5 Extended
/dev/mmcblk0p5 35280896 56424447 21143552 10.1G 83 Linux
/dev/mmcblk0p6 56426496 60751871 4325376 2.1G 82 Linux swap / Solaris
Wer genau hinsieht, dem fällt vielleicht auf, dass hier eine Lücke am Anfang der erweiterten Partition von ebenfalls fast 8GB vorhanden ist. Das war Absicht um bei Bedarf mittels „gparted“ später die erste Partition zu vergrößern (oder den Weg über die Konsole zu testen). Jedoch zeitnah wurde die Hälfte des freien Bereiches hinzugenommen, da mit den Anwendungen und vor allem Aufheben der Dateien in /var/cache/apt die erste Partition sich doch schneller füllte als angenommen.
$ fdisk -l /dev/mmcblk0
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 2048 26079231 26077184 12.4G 83 Linux
/dev/mmcblk0p2 26079232 60751871 34672640 16.5G 5 Extended
/dev/mmcblk0p5 35280896 56424447 21143552 10.1G 83 Linux
/dev/mmcblk0p6 56426496 60751871 4325376 2.1G 82 Linux swap / Solaris
$ fdisk -l /dev/mmcblk0
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 2048 35278847 35276800 16.8G 83 Linux
/dev/mmcblk0p2 35278848 60751871 25473024 12.2G 5 Extended
/dev/mmcblk0p5 35280896 56424447 21143552 10.1G 83 Linux
/dev/mmcblk0p6 56426496 60751871 4325376 2.1G 82 Linux swap / Solaris
# Nun ist keine Lücke mehr vorhanden.
Eine generelle Empfehlung zur Partitionierung kann nicht gegeben werden. Sinnvoll wären zum Beispiel folgende Vorschläge:
# Vorschlag für eine 32GB SD-Karte:
/dev/mmcblk0p1 16.8G 83 Linux #Partition for Linux
/dev/mmcblk0p2 or 4 12.2G 5 Extended
/dev/mmcblk0p5 9.1G 83 Linux # Partition for Data
/dev/mmcblk0p6 3.1G 82 Linux swap / Solaris
# swap should be 1.5...2 x RAM (2GB-RAM, swap 3...4GB)
# Vorschlag für eine 64GB SD-Karte:
/dev/mmcblk0p1 16.8G 83 Linux #Partition for Linux
/dev/mmcblk0p2 16.8G 83 Linux #Partition for Linux/Data
/dev/mmcblk0p3 or 4 23.2G 5 Extended
/dev/mmcblk0p5 19.1G 83 Linux # Partition for Data
/dev/mmcblk0p6 4.1G 82 Linux swap / Solaris
# swap should be 1.5...2 x RAM (2GB-RAM, swap 3...4GB)
# In case you want to use a boot manager. Second Linux on mmcblk0p2.
Im Hinblick auf Abstürze und korrupte SD-Karten (dirty bit gesetzt) scheint der CubieTruck beim Booten toleranter als der Raspberry Pi 2 zu sein. Die Notwendigkeit des CubieTruck hier toleranterweise trotzdem von der SD zu booten, würde sonst zu häufig bei einer Fehlbedienung zum Totalverlust auf der SD-Karte führen. Wenn Android starten würde, wäre eine der ersten Fragen während des Startvorgangs, die Frage ob die SD-Karte für Android vorbereitet werden solle. Wenn diese aus Versehen bejaht werden sollte, wären aller Daten auf der SD-Karte verloren, da diese neu partitioniert, formatiert und ein kleiner Teil überschrieben werden würde.
Wenn das "dirty bit" gesetzt sein sollte, der Reparaturversuch beim Selbstcheck während des Hochfahrens scheiterte, befindet sich die SD-Karte nur im read-only Mode. Ein Versuch hierbei andere Medien zu mounten funktioniert in dem Zustand auch nicht, sei noch angemerkt. Passiert dies während des Betriebes, dass die SD-Karte korrumpiert, dann befindet sich die SD-Karte ebenfalls nur noch im read-only Mode. Ein Versuch andere Medien zu mounten funktioniert in dem Zustand wiederum auch nicht. Noch nicht gespeicherte Daten sind damit in der Regel nicht mehr zu retten.
Eine zweite SD-Karte sollte bereit gehalten werden als eine Sicherungskopie für den Fall der Fälle, dass alles schief gehen sollte. Dies gilt vor allem, wenn das System mit einer schwachen Datenverbindung (mobiles Internet, DSL deutlich unter 2MBit) wieder aufgesetzt werden müßte, viele Anwendungen nachgeladen wurden oder viele Konfigurationen am System durchgeführt wurden. Wenn alles ausreichend dokumentiert wurde, wie zum Beispiel in diesem Dokument, dann dauert das Wiederaufsetzen des Systems nur noch ein Viertel der Zeit oder sogar weniger. Auch sehr zu empfehlen ist dies, wenn das Gerät für Personen ohne Linux-Kenntnisse aufgesetzt wurde, die nicht in der Lage sind mit „fsck“ das Dateisystem wieder zu reparieren.
Getestet wurde was passiert, wenn am USB-Anschluss des CubieTruck ein SmartPhone angeschlossen würde und der CubieTruck nur über ein 1A Netzteil versorgt wäre. Bei diesem Experiment ging das Gerät sofort aus. Als zweiter Versuch wurde der CubieTruck mit nur einem 0,5A Netzteil gestartet. In dem Falle gab es nur ein kurzes Blinken der LED und das Gerät war nach wenigen Sekunden (kleiner 5 Sekunden) sofort aus.
Empfohlen wird ein Netzteil mit mindestens 2A für den Betrieb ohne SATA oder USB-Festplatten, beziehungsweise mindestens 3A, wenn diese vorhanden wären. Eine Obergrenze für die Stromversorgung ist zwar nicht angegeben oder aufgedruckt, aber nach der Dicke der Anschlüsse und Leiterbahnen sollte es 4A nicht übersteigen. Wird mehr benötigt, so muss die Versorgung über einen USB-Hub realisiert werden, der nur funktioniert, wenn dessen externe Versorgungsquelle angeschlossen wurde. Ansonsten kann das Gerät auf diese Art und Weise sehr schnell Elektronikschrott werden.
Nachtrag: Über längere Zeit wurde der CubieTruck mit dem 1A Netzteil betrieben. Ausgefallen auf Grund Strommangels war es nur einmal, als zwischen einer 32GB SD-Karte im USB-Adapter und einem 128GB USB-Stick kopiert wurde. Beide Speicherkomponenten waren günstige Sonderangebote und zeichnen sich nicht durch geringen Stromverbrauch aus. Solche Angaben fehlen in der Regel auf diese Produkten. Aus diesem Grunde gibt es bei den verschiedenen Elektronikhändlern und Elektronikläden USB-Strommessadapter um auch solche Messungen durchzuführen.
In dem Gerät steckte die vorbereitete SD-Karte mit dem Armbian Linux. Sobald der CubieTruck an die Stromversorgung angeschlossen wurde, startete er durch. Bei dem Erststart erschien kein Auswahlmenü. Die Stufen des Starts konnten gesehen werden auf dem angeschlossenen VGA-Monitor. Als letzter Schritte war dem Bildschirm zu entnehmen, dass auch versucht wird ein root-System anzulegen und eine minimale Swap von 128MB für den Notfall. Meine Partitionierung der SD-Karte wurde dabei nicht geändert. Als swap war eine Datei der Größe von etwa 100MB unter /var/swap angelegt worden (zu finden in der Ausgabe von "dmesg | less" oder "dmesg | grep swap" auf der Konsole).
Danach hing das System während des Schrittes die Updates zu holen. Nach ungefähr zehn Minuten wurde hier abgebrochen. Über langes Drücken des Tasters wurde der Rechner abgeschaltet.
Für den ersten Start empfiehlt sich es den CubieTruck über ein LAN-Kabel an den Router anzuschließen um zu ermöglichen, dass beim ersten Hochfahren die Updates geladen werden können. Wenn nur das WLAN zur Verfügung steht, gibt es hier ein nicht zu lösendes Henne-Ei-Problem sofern nicht vorher die /etc/network/interfaces entsprechend bearbeitet wurde.
Die SD-Karte wurde nun bewußt nicht mit fsck bearbeitet, so dass das Dateisystem nicht repariert wurde oder das „dirty bit“ zurückgesetzt wurde. Im Hinblick auf durch Abstürze verursachter korrupter SD-Karten (dirty bit gesetzt) scheint der CubieTruck beim Booten toleranter als der Raspberry Pi 2 zu sein (Nachtrag: Der Raspberry Pi 3 scheint hierbei sich auch toleranter zu verhalten). Das wäre auch sinnvoll, denn wenn das Android hoch fährt und die Frage nach der SD-Karte für Android vorbereiten irrtümlich bejaht würde, wäre die SD-Karte überschrieben.
Auf jeden Fall startete der CubieTruck wieder brav bis zum Ende durch. Einige Zeit hing er an der Stelle betreffend der Netzwerkverbindungen (90s Wartezeit) beim Hochfahren. An dieser Stelle wartet das Armbian in der Regel immer einige Zeit auf eventuell vorhandene Netzwerke. Die Wartezeit könnte in den Boot-Optionen auch geändert werden.
Im Anschluss konnte gemäß einer Beschreibung zum Armbian als „root“ mit dem Paßwort „1234“ einloggt werden und es wurde sofort eine Vergabe eines neuen Paßwortes gefordert. Nur wenn dies erfolgte und das Passwort gewissen Mindestkriterien entsprach, wurde der nächsten Schritt erreicht. Es musste auch ein Nutzer mit Paßwort angelegt werden.
Anschließend befand man sich in der Konsole. Eine grafische Oberfläche war zu dem Zeitpunkt noch nicht vorhanden. Bei der Eingabe von „startx“ passierte also nichts. Als nächster Schritt wurde in der Konfigurationsdatei als „root“ oder mittels vorangestellten „sudo“ das WLAN konfiguriert, indem die Angaben des Netzwerknamens (ssid) und Passwortes eingetragen wurden.
$ sudo nano /etc/network/interfaces
# Edit your file for adding lines like this:
auto wlan0
iface wlan0 inet dhcp
wpa-ssid AndroidAccessPointName
wpa-psk mypassword
Der Netzwerke-Service könnte gestoppt und neu gestartet werden, um die WLAN-Verbindung zum Laufen zu bringen. Hier wurde der einfachere Weg gewählt, das System herunterzufahren und neu zu starten.
Beim Neustart war zu beobachten, dass etwas mehr als eine Minute Zeit verwendet wird, um die Netzwerke zu finden und sich zu verbinden. Ansonsten verlief der Bootvorgang schnell.
Da unter den Verzeichnissen der User (diese befinden sich unter /home/username/* noch keine Unterverzeichnisse gab, wurden (und sollten) darin Verzeichnisse wie Doku, Documents, Downloads, usw. angelegt werden.
Nun wäre ein guter Zeitpunkt, den Ist-Zustand zu speichern für spätere Vergleiche mit folgenden Befehlen auf der Konsole.
Partitionstabelle:
'sudo fdisk -l > fdisk_20160408.txt'
Belegung der Speichermedien:
'sudo df > df_20160408.txt'
Eingebundene Partitionen:
'sudo mount > mount_20160408.txt'
Installierte Pakete:
'sudo dpkg -l > dpkg_20160408.txt'
Meldungen beim Hochfahren:
'sudo dmesg > dmesg_$(date +%Y%m%d_%H%M)'
Später sinnvoll wäre auch:
Unterstützte Grafikmoden mit angeschlossenen Monitor:
'sudo xrandr > xrandr_20160408.txt'
Liste der Befehle für den späteren Nachvollzug:
'sudo history > history_20160408.txt'
Alles in einem Rutsch ohne die vorherigen Dateien versehentlich zu überschreiben, kann mit Hilfe der Datumsfunktion und gesetzten Optionen realisiert werden auf folgende Weise:
sudo fdisk -l > fdisk_$(date +%Y%m%d_%H%M).txt
sudo df > df_$(date +%Y%m%d_%H%M).txt
sudo mount > mount_$(date +%Y%m%d_%H%M).txt
sudo dpkg -l > dpkg_$(date +%Y%m%d_%H%M).txt
sudo dmesg > dmesg_$(date +%Y%m%d_%H%M).txt
'sudo xrandr > xrandr_$(date +%Y%m%d_%H%M).txt'
'sudo history > history_$(date +%Y%m%d_%H%M).txt'
Solche Historien lege ich gerne in einem Verzeichnis INSTALL ab. Aber so etwas ist individuelle Geschmackssache, ob man es macht oder nicht. Viele dieser Informationen können ebenfalls aus den log-Dateien unter /var/log bezogen werden.
Viele umfangreichere Anwendungen, sowohl GUI-basiert oder auf der Konsolenbasis waren bei dem ursprünglichen Image des Armbian nicht bereits enthalten. Daher stand nun die Erweiterung um meiner Ansicht nach benötigte Pakete im Vordergrund.
Bevor die Pakete ausgewählt werden, sollten die Paketlisten für „apt-get“ aktualisiert werden.
'sudo apt-get update'
Am Ende wurde angezeigt, dass rund 16MB heruntergeladen wurden.
Als erstes Paket wird ein Datenverkehrszählprogramm installiert.
'sudo apt-get install vnstat'
Es wurde angezeigt, dass rund 2MB heruntergeladen werden und 0,27MB belegt würden.
Beispiele zur Verwendung von vnstat:
'vnstat' gibt eine Gesamtstatistik aus.
'vnstat -l -i wlan0' zeigt die aktuelle Datenrate an.
'vnstat -h -i wlan0' gibt den Datentransfer stundenweise als Liste aus.
'vnstat -d -i wlan0' gibt den Datentransfer tageweise als Liste aus.
'vnstat -m -i wlan0' gibt den Datentransfer monatlich als Liste aus.
'vnstat -l -i wlan0' --style 4' zeigt die aktuelle Datenrate an und schreibt dies Zeile für Zeile fort.
Eine Ergänzung um '>> Datei.txt' oder ' | tee datei.txt' funktionierte nicht.
Als Zwischenfeststellung wurde mit „top“ ermittelt, dass etwa 270MB des RAM belegt wären beim Betrieb im Konsolenmodus.
Um auf dem Gerät zu arbeiten wird als nächstes eine einfache grafische Oberfläche installiert.
'sudo apt-get install xorg'
Es wurde angezeigt, dass rund 40MB heruntergeladen werden und etwa 80MB belegt würden.
'sudo apt-get install xfce4'
Es wurde angezeigt, dass rund 25MB heruntergeladen werden und etwa 92MB belegt würden.
Dabei kam es zu einem Abbruch während des Installationsvorganges. Es konnte auf das Speichermedium nicht mehr schreibend zugegriffen werden. Dies belegte die Ausgabe des Befehls „mount“, da in der Zeile des Mediums „mmcblk0p1 … (ro, ….)“ statt „(rw,...)“ stand. Wegen Fehler wurde vom Betriebssystem ein "remount" als "read-only" durchgeführt. Die Fehlermeldungen mit „dmesg“ wurden nicht mehr betrachtet. Es konnte nichts mehr geschrieben werden und ein weiteres Medium konnte auch nicht eingebunden werden ("mount ..."), da auf der SD-Karte nicht mehr geschrieben werden konnte. Somit konnten die Daten der offenen Dateien auch nicht mehr gerettet werden.
Nach wenigen Minuten funktionierten auf dem Rechner immer weniger Anwendungen, bis die Maus auch zu hängen anfing, so dass ein harter Neustart notwendig wurde. Allerdings wurden die Zeiträume bis zum nächsten "remount" als "read-only" recht kurz, so dass mit der Konsolenanwendung "fsck" das Dateisystem repariert werden mußte. Die weiteren Aufrufe von "apt-get" gaben Befehlsvorschläge für die Fehlerbehebung, die das Problem beseitigten sollten, die durch den Abbruch während des Installationsvorganges entstanden.
'sudo dpkg --configure -a'
Obiges Kommando löste das Problem, so dass die Installationen fortgesetzt werden konnten.
Nun wurde das erste mal mit „startx“ die grafische Oberfläche "xfce" gestartet. Dabei poppte ein Fenster zur Auswahl der Paneleigenschaften auf. Es wurde „use default“ gewählt. Als Anmerkung sei noch ergänzt, dass die Einstellungen der Tastaturbelegung und Sprachen noch offen gelassen wurden. Interessant anzumerken wäre, dass Englisch mit tschechischer Tastaturbelegung die Anfangseinstellungen waren.
Mit „xrandr“ zeigte sich, dass der VGA-Monitor mit 1024x768 angesprochen wurde, dieser aber 1280x1024 hätte. Anscheinend fehlen bei VGA einigen Betriebsmoden. Als Zwischenfeststellung wurde mit „top“ ermittelt, dass etwa 297MB RAM belegt wären bei Verwendung von X11 mit XFCE (minimaler Modus mit GUI).
Ein Test mit 'sudo apt-get upgrade' ergab, dass rund 40MB heruntergeladen würden.
Ein Test mit 'sudo apt-get install kwrite' gab aus, dass rund 123MB heruntergeladen würden und 372 belegt würden. Das liegt darin begründet, dass einige Komponenten von KDE installiert würden.
Nun sollte ein Programm für die Notizen installiert werden und für die Dokumentenbearbeitung.
Als Befehl für die Installation von abiword im "xterminal" (Terminal/Konsolenfenster unter XFCE) wurde eingegeben:
'sudo apt-get install abiword'
Es wurde angezeigt, dass rund 40MB heruntergeladen und etwa 127MB belegt würden.
Dabei kam es zu einem Abbruch während des Installationsvorganges. Es konnte auf das Speichermedium nicht mehr schreibend zugegriffen werden. Dies belegte die Ausgabe des Befehls „mount“, da in der Zeile des Mediums „mmcblk0p1 … (ro, ….)“ statt „(rw,...)“ stand. Wegen Fehler wurde vom Betriebssystem ein "remount" als "read-only" durchgeführt. Die Fehlermeldungen mit „dmesg“ wurden nicht mehr betrachtet. Es konnte nichts mehr geschrieben werden und ein weiteres Medium konnte auch nicht eingebunden werden ("mount ..."), da auf der SD-Karte nicht mehr geschrieben werden konnte. Somit konnten die Daten der offenen Dateien auch nicht mehr gerettet werden.
Nach wenigen Minuten funktionierten auf dem Rechner immer weniger Anwendungen, bis die Maus auch zu hängen anfing, so dass ein harter Neustart notwendig wurde. Allerdings wurden die Zeiträume bis zum nächsten "remount" als "read-only" recht kurz, so dass mit der Konsolenanwendung "fsck" das Dateisystem repariert werden mußte. Die weiteren Aufrufe von "apt-get" gaben Befehlsvorschläge für die Fehlerbehebung, die das Problem beseitigten sollten, die durch den Abbruch während des Installationsvorganges entstanden.
'sudo dpkg --configure -a'
Das reichte diesmal nicht aus, da der Abbruch während des „unpacking“ stattfand. Es war zusätzlich notwendig mit der Option "force" einzelne Schritte erneut zu erzwingen:
'sudo apt-get install -f'
Es wurde ein Dateimanager auf der Konsolenebene und fürs Terminal installiert.
'sudo apt-get install mc'
Es wurde angezeigt, dass rund 1,7MB heruntergeladen und 6,7MB belegt würden.
Es wurde ein Browser fürs Internet installiert.
'sudo apt-get install iceweasel'
Es wurde angezeigt, dass rund 37MB heruntergeladen und 66MB belegt würden.
Es wurde eine Tabellenkalkulation installiert.
'sudo apt-get install gnumeric'
Es wurde angezeigt, dass rund 4.4MB heruntergeladen und 36MB belegt würden.
Es wurde eine Office-Paket libreoffice installiert.
'sudo apt-get install libreoffice'
Es wurde angezeigt, dass rund 88MB heruntergeladen und 272MB belegt würden.
Es wurde ein Editor mit einfacher graphischer Oberfläche installiert:
'sudo apt-get install kwrite'
Es wurde angezeigt, dass rund 123MB heruntergeladen und 372MB belegt würden. Natürlich hatte mich dieser große Umfang etwas verwundert. Der Grund hierfür ist, dass Grundkomponenten von der Oberfläche KDE zusätzlich installiert werden um Anwendungen von Seiten der KDE-Teams unter Gnome oder anderen Oberflächen verwenden zu können. Interessanterweise wurde auch der VLC-Player mit installiert.
Angemerkt sei noch, dass hier die SD-Karte zweimal in den read-only mode zurückgefallen war und somit zwei Neustarts mit einer Wiederholung der bekannten Befehle zum „Trouble-Shooting“ notwendig wurden:
xxxxxxx@cubietruck: mount
dev/mmcblk0p1 on / type ext4 (rw,noatime,nodiratime,errors=remount-ro,commit=600)
xxxxxxx@cubietruck: mount
dev/mmcblk0p1 on / type ext4 (ro,noatime,nodiratime,errors=remount-ro,commit=600)
xxxxxxx@cubietruck: sudo dpkg --configure -a
Wurde nicht fertig, somit Neustart und nochmal:
xxxxxxx@cubietruck: sudo dpkg --configure -a'
xxxxxxx@cubietruck: sudo apt-get install kwrite
Zeigte, dass noch 0 von 30 MB herunterzuladen waren und weiter 40MB belegt wuerden.
xxxxxxx@cubietruck: sudo dpkg --configure -a'
Nicht notwendig war diesmal „sudo apt-get install -f“ anzuwenden.
Bei den Neustarts wurde das Verhalten nach dem Ausschalten getestet. Wird die Versorgungsspannung weggenommen, bootet das Gerät bei Wiederkehr der Versorgungsspannung. Wurde das Gerät mit dem Austaster abgestellt, dann musste bei der Wiederkehr der Taster betätigt werden. Zu prüfen wäre dies noch bei langen Ausphasen, da noch Kondensatoren geladen gewesen sein könnten und die Minute überbrückt haben könnten. Bei längerer Ausschaltphasen wurde neu gestartet ergaben die Test und auch der Zufall eines Stromausfalls.
Es wurde ein einfaches und praktisches Werkzeug zum Einbinden von Datenträgern installiert.
'sudo apt-get install pmount'
Es wurde angezeigt, dass rund 82kB heruntergeladen und 730kB belegt würden.
Es wurde eine Zeichenprogramm (KDE) installiert.
'sudo apt-get install krita'
Es wurde angezeigt, dass rund 32MB heruntergeladen und 94MB belegt würden. Da mit der Installation von kwrite bereits die KDE-Komponenten installiert wurden, mussten also nicht mehr etwa 100MB hier heruntergeladen und 450MB belegt werden.
Eine weitere SD-Karte wäre hier mit „berryboot“ herzurichten. Auch möglich wäre es den Boot-Vorgang auf einen USB-Speicherstick umzuleiten. Auf die Dauer wäre diese Realisierung stabiler, da die USB-Sticks in der Regel Chipsätze mit leistungsfähigeren Funktionen zur Ausblendung von ermüdeten Speicherzellen besitzen.
Da SSD (Solid State Disk, Flashdisk) noch leistungsfähigere Funktionen zur Ausblendung von ermüdeten Speicherzellen besitzen, wäre generell die zuverlässigste Lösung das Gerät mit einer SSD am SATA-Anschluss zu betreiben.
Damit mit der Konsole bzw. dem Terminal besser gearbeitet werden kann unter der graphischen Oberfläche wird das Werkzeug „gnome-terminal“ installiert.
'sudo apt-get install gnome-terminal'
Es wurde angezeigt, dass rund 5MB heruntergeladen werden und etwa 18MB belegt würden.
Im „Applications Menu“ war es noch nicht zu finden aber in einem Xterm-Fenster mit dem Befehl „gnome-terminal“ oder mit „Alt+F2“ plus Eingabe von ebenfalls „gnome-terminal“ wird dieses Konsolenfenster aufgerufen. Der Vorteil diese Konsole ist, dass die Eingaben und Ausgaben hier kopiert werden können für die weitere Nutzung oder Dokumentation.
Eingestellt wurde eine deutsche Tastatur mit 104 Tasten.
sudo dpkg-reconfigure keyboard-configuration
Die Einstellungen auf deutsches Layout mit dieser Konfiguration werden zwar übernommen, aber die update-rc.d start/stop Funktionen werden nicht mehr unterstützt erschien am Ende in der Konsole als Textausgabe. Somit waren diese Konfigurationen erst nach einem Neustart verfügbar.
Für das WLAN wurde die Datei /etc/network/interfaces editiert:
xxxxxx@cubietruck:~$ cat /etc/network/interfaces
# Wired adapter #1
auto eth0
iface eth0 inet dhcp
# hwaddress ether # if you want to set MAC manually
# pre-up /sbin/ifconfig eth0 mtu 3838 # setting MTU for DHCP, static just: mtu 3838
#
# Wired adapter #2
#auto eth1
# iface eth1 inet dhcp
# hwaddress ether # if you want to set MAC manually
# pre-up /sbin/ifconfig eth0 mtu 3838 # setting MTU for DHCP, static just: mtu 3838
#
# Wireless adapter #1
#auto wlan0
# iface wlan0 inet dhcp
# wpa-ssid SSID
# wpa-psk xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# to generate proper encrypted key: wpa_passphrase yourSSID yourpassword
#
auto wlan0
iface wlan0 inet dhcp
wpa-ssid NameNetzwerk
wpa-psk PassWort
# Local loopback
auto lo
iface lo inet loopback
Aktuell ist die Datei nicht geschützt und das Kennwort steht im Klartext in der Datei. Dies wird später noch geändert werden.
Bei einem SD-Karten basierten Betrieb des Minirechners bietet eine eigene Swap-Partition am Ende des SD-Kartenbereiches (letzte Partition) eine bessere Lösung, als eine Swap-Datei „/var/swap“. Wenn der obere Bereich der SD-Karte mit der Swap-Partition defekt würde, bliebe der Datenbereich mit Standardmitteln meist noch lesbar. Wenn es zu vielen Swap-Fehlern kommt, dann sollte die SD-Karte zügig ersetzt werden durch eine neue SD-Karte.
Leider fehlen von den Herstellern die Angaben, wie die Funktion des Ausblendens von fehlerhaften Flash-Zellbereichen realisiert wurde. In wenig performanten Produkten sollte von einer Umsetzung in Blöcken (z.B. 1GB) ausgegangen werden, denen jeweils eine kleine Zahl von Ersatzbereichen zugewiesen werden kann, die nicht blockübergreifend anderen Blöcken zugewiesen werden können.
sudo swapon
NAME TYPE SIZE USED PRIO
/var/swap file 128M 0B -1
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
mmcblk0 179:0 0 29G 0 disk
├─mmcblk0p1 179:1 0 7.9G 0 part /
├─mmcblk0p2 179:2 0 1K 0 part
├─mmcblk0p5 179:5 0 10.1G 0 part
└─mmcblk0p6 179:6 0 2.1G 0 part
sudo fdisk -l
Disk /dev/mmcblk0: 29 GiB, 31104958464 bytes, 60751872 sectors
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 2048 16525311 16523264 7.9G 83 Linux
/dev/mmcblk0p2 16525312 60751871 44226560 21.1G 5 Extended
/dev/mmcblk0p5 35280896 56424447 21143552 10.1G 83 Linux
/dev/mmcblk0p6 56426496 60751871 4325376 2.1G 82 Linux swap / Solaris
Also /dev/mmcblk0p6 ist die Swap-Partition, die wir hier verwenden möchten. Mit swapon könnte diese jeweils temporär eingebunden werden, aber in der fstab eingetragen, wird diese immer eingebunden.
sudo swapon -p 100 /dev/mmcblk0p6
Hinweis: Eine hohe Priority setzen, damit diese bevorzugt verwendet wird.
Dauerhaftes ergänzen der Swap-Partition:
sudo nano /etc/fstab
# UNCONFIGURED FSTAB FOR BASE SYSTEM
tmpfs /tmp tmpfs nodev,nosuid,size=256M 0 0
/dev/mmcblk0p1 / ext4 defaults,noatime,nodiratime,data=writeback,commit=600,errors=remount-ro 0 0
/var/swap none swap sw,pri=1 0 0
/dev/mmcblk0p6 none swap sw,pri=5 0 0
sudo swapon
NAME TYPE SIZE USED PRIO
/var/swap file 128M 0B -1
/dev/mmcblk0p6 partition 2.1G 0B 5
Im Terminal mit top oder htop kann nachgesehen werden, ob die Swap (in Summe) mit aufgenommen wurden.
KiB Swap: 2293752 total, 0 used, 2293752 free. 260196 cached Mem
sudo swapoff /var/swap
sudo swapon
NAME TYPE SIZE USED PRIO
/dev/mmcblk0p6 partition 2.1G 0B 5
KiB Swap: 2162684 total, 0 used, 2162684 free. 260216 cached Mem
Somit das Ergebnis des kleinen Tests, dass hier die Swap in Summe ausgegeben werden.
Wenn über die UUID die Swap-Partition eingebunden werden soll, dann kann diese mit diesem Befehl gefunden werden:
ls -l /dev/disk/by-uuid/
In der /etc/fstab wird z.B. eines der folgenden Beispiele eingetragen:
UUID=... none swap defaults,pri=10 0 0
UUID=... none swap sw,pri=10 0 0
Wenn eine alte HD als Swap über USB ergänzt werden soll, dann muss dessen Partition die höchste Priorität vergeben werden.
Nachdem das Betriebssystem armbian für den CubieTruck mit nur sehr wenigen Anwendungen ausgestattet wurde, mußten und müssen die benötigten Anwendungen nachinstalliert werden. Was man hier wählt hängt sehr von den eigenen Vorlieben ab und wie viel Speicherplatz auf der SD-Karte vorhanden ist. Erwähnt werden sollte hier noch, dass die Pakete im Verzeichnis /var/cache/apt/archives/ gespeichert werden. Dieses Verzeichnis wird immer weiter anwachsen, wenn man nicht zum Beispiel mit apt-get und Option autoremove die Cache-Verzeichnisse wieder löscht oder bereinigt. Zum Zeitpunkt der Installation von ersten Paketen (Office) und weniger Anwendungen lagen hier bereits etwa 600 Dateien mit insgesamt fast 400 MB.
ls /var/cache/apt/archives/ | wc
593 593 22548
du /var/cache/apt/archives/
4 /var/cache/apt/archives/partial
384052 /var/cache/apt/archives/
Bereits installiert wurden gemäß vorderen Kapiteln:
Abiword
Gnumeric
LibreOffice
Ergänzend wurden noch folgende Anwendungen und Ergänzungen installiert.
Bereits installiert wurden gemäß vorderen Kapiteln:
iceweasel
Ergänzend wurden noch folgende Anwendungen und Ergänzungen installiert.
w3m (downlaod 1,1MB / 2,1MB disk space)
konqueror (Browser und Dateimanager)
Bereits installiert wurden gemäß vorderen Kapiteln:
mc (Dateimanager)
kwrite
pmount
Ergänzend wurden noch folgende Anwendungen und Ergänzungen installiert.
Liste des Wesentlichen für die grafischen Oberfläche:
xorg
xfce4
Liste der Werkzeuge:
mc
kwrite
pmount
vnstat
gnome-terminal
lxterminal
etherape (download 8,5MB / 35MB disk space)
testdisk (downlaod 0,33MB / 0,87MB disk space)
fdupes (downlaod 0,02MB / 0,07MB disk space)
xfce4-screenshooter (downlaod 0,8MB / 3MB disk space)
gparted
openjdk (Java, JRE und SDK)
acpitools (downlaod 0,05MB / 0,13MB disk space)
sudo acpitool
Could not open any of these files : /proc/acpi/info, /sys/module/acpi/parameters/acpica_version
Make sure your kernel has ACPI support enabled.
AcpiTool v0.5.1, released 13-Aug-2009
Funktioniert nicht, da kein BIOS vorhanden ist.
$ sudo apt-get install gparted
0 upgraded, 2 newly installed, 0 to remove and 7 not upgraded.
Need to get 2,076 kB of archives.
After this operation, 6,597 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Bereits installiert wurden gemäß vorderen Kapiteln:
krita
krita (krita stürzt beim Öffnen eines Bildes oder neuer Zeichnung ab);
Ergänzend wurden noch folgende Anwendungen und Ergänzungen installiert.
vlc
mplayer (downlaod 1,6MB / 3,4MB disk space)
inkscape (downlaod 15MB / 86MB disk space)
okular (download 7,4MB / 31MB disk space)
xsane/sane, siehe Druckerinstallation
Bereits installiert wurden gemäß vorderen Kapiteln:
(Keine)
Ergänzend wurden noch folgende Anwendungen und Ergänzungen installiert.
Extremetuxracer
supertux
extremetuxracer (downlaod 29MB / 35MB disk space)
Ruckartig der Tux und auch der Mauszeiger. Beide Prozessoren sind dabei voll aktiv.
supertux (downlaod 8MB / 15MB disk space)
mesa-utils (downlaod 0,03MB / 0,12MB disk space)
mesa-utils-extra (downlaod 0,03MB / 0,12MB disk space)
Für glxgears und es2gears um die 2D/3D-Beschleunigung zu testen.
Anbei ein Beispiel zum Download-Bedarf für update und upgrade.
Eine Woche später (update lief als cron 1x täglich):
sudo apt-get update
Fetched 714 kB in 1min 41s (7,013 B/s)
sudo apt-get upgrade
61 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 45.0 MB of archives.
After this operation, 1,343 kB of additional disk space will be used.
Anmerkung: Vor dem update wären es 39MB zum Herunterladen gewesen.
Es empfiehlt sich im Internet auffindbare Informationen vorher zu lesen. Läuft das Armbian, muss noch das Tastaturlayout auf Deutsch geändert werden. Etwas Grundwissen über Linux sollte unbedingt vorhanden sein, um hier zurecht zu kommen. Beim allerersten Start des geschriebenen Images das Speichermedium unbedingt den vorgegebenen Usernamen und Passwort bereithalten (armbian für cubitruck user:root pwd:1234). In die grafische Oberfläche kommt man mit „startx“ auf der Konsole.
In der Regel schafft es der xserver als Basis für die grafische Oberfläche sich selbst zu konfigurieren. Bei HDTV-Fernsehern kann es aber zu Problemen mit der richtigen Auflösung kommen. Ein Grund dafür kann sein, dass der Fernseher/Monitor über die HDMI-Schnittstelle seine unterstützten Moden nicht entsprechend meldet (bei Windows muss dies der Treiber beheben). Bei Raspian wird in der Regel davon ausgegangen, dass eher HDMI-Monitore angeschlossen sind, also erfolgen zuerst und vermehrt Abfragen für diese Gerätearten. Bei speziellen Distributionen für Medien-Center ist dies umgekehrt, so dass hier die TV-Geräteunterstützung vorgezogen wurde.
Für VGA muss beim Raspian vorher die Konfigurationsdatei „/boot/config.txt“ editiert werden, damit ein VGA-Monitor über (passive) HDMI-VGA-Adapter funktioniert. Beim CubieTruck funktioniert der VGA-Anschluss in der Regel auf anhieb, ohne Änderungen in Konfigurationsdateien.
Klappt es nicht mit der Einstellung der optimale Auflösung der Graphikkarte bzw. Graphikchips passend zum Monitor, kann mit Hilfe von xrandr oder anlegen einer xorg.config manuell noch ein problematischer Monitore oder TV bezwungen werden. Vorher sollte aber im Internet gesucht werden, ob es bereits für dieses Modell eine Lösung gibt oder über Konfigurationsdateien das Problem gemeistert werden könnte.
Mit „xrandr“ auf der Konsole können die aktuellen Werteeinstellungen abgefragt werden und welche unterstützten Modes gefunden wurden. Eventuell hilft auch ein Aufruf von „xrandr --auto“ weiter.
Zunächst sollten die Paketquellenverzeichnisse auf den aktuellen Stand gebracht:
sudo apt-get update
Programme werden nachinstalliert mit
sudo apt-get install Paketname
Zum Beispiel wird so der Webbrowser iceweasel (entspricht dem firefox) installiert:
sudo apt-get install iceweasel
Wenn man mit einem Stichwort betreffende Paketnamen suchen möchte geht das mit:
sudo apt-cache search Stichwort
Zum Beispiel für die Mediencenter suche man nach xbmc oder kodi.
Entweder wurde sofort in die grafische Oberfläche zu starten eingestellt oder mittels „startx“ wird diese aufgerufen. Die installierten Programme befinden sich dann in der Regel auch im Anwendungsmenü der XFCE-Oberfläche.
Anbei eine Vorgehensweise für Anwender mit wenig oder keinen Linux/Armbian-Kenntnissen um ein Mediacenter aufzusetzen.
Der Anwender ruft die Homepage von ähnlichen Systemen auf (z.B. Raspian) um sich über die Mediacenter zu informieren.
Es wählt sein Media-Center aus, hier OSMC, und landet dort:
Wählt dort sein Betriebssystem für die Software, zum Beispiel für Windows, lädt+installiert den Installer:
https://osmc.tv/download/windows/
http://download.osmc.tv/installers/osmc-installer.exe
Die SD-Karte steckt er in einen SD-Card-Reader, der am Rechner angeschlossen ist (eingebaut oder über USB) und beschreibt die SD-Karte mit dem Programm. Alle anderen externen Datenträger dabei unbedingt abstecken, damit nicht der falsche Datenträger gelöscht und überschrieben wird.
Diese SD-Karte steckt er nun in den Minirechner, einschalten, starten lassen und das war es schon. Wichtig zu wissen wäre noch, dass OSMC hat etwas mehr work around für einige Monitore oder Fernseher integriert hat (d.h. Scripte sind darauf abgestimmt).
Anbei sei noch erwähnt was der Unterschied zwischen Kodi und OSMC ist:
Quelle: https://osmc.tv/help/wiki/kodi-osmc
Kodi is a media center application and OSMC is the operating system that runs Kodi and brings it to your device. OSMC is not a fork of Kodi but rather a Linux distribution that ships Kodi as the main application. This is a similar concept to Kodi running on top of Windows or Android.
OSMC is based on Debian Jessie (a flavour of GNU/Linux) and has been heavily optimised to provide the best TV experience possible. OSMC is in charge of:
Keeping your system up to date
Hardware management (handling devices such as remotes, keyboards, WiFi adapters etc)
Managing system resources
OSMC has over 30,000 packages made available via the Debian repositories as well as an App Store.
Problembehebung:
Bei OSMC kann es Probleme beim Installieren der Add-Ons
geben. Wenn dies der Fall ist, hilft meist sich über einen anderen
Rechner über das Netzwerk einzuloggen. Über die Terminal-Sitzung
sollte als erstes „sudo apt-get update“ und dann „sudo apt-get
upgrade“ durchgeführt werden.
Notwendig wird dies meist, wenn
das neuesten Image verwendet wird zu einem Zeitpunkt an dem bereits
bald ein noch neueres Image geben würde, wenn das Gerät lange
nicht mehr eingeschaltet mit Netzverbindung verwendet oder
neugestartet wurde.
Es kann zu Fehlern auf der SD-Karte gekommen sein. In dem Falle muss die SD-Karte an einem anderen Rechner mit Hilfe von fsck das Dateisystem repariert werden.
Diese aufgezählten Lösungen zu den genannten Problembeispiele decken die meisten Störungen ab, die so leicht selbst zu beheben sind.
Bei Linux gibt es mehrere Möglichkeiten im ferngesteuert auf einen Rechner von einem anderen Rechner aus zuzugreifen. Dies bietet unter anderem die Möglichkeit den Minirechner in irgendeiner Ecke versteckt zu platzieren und bei Bedarf sich mit einem Notebook einzuloggen um zu arbeiten. Es gibt bei den meisten Varianten auch die Option, dass der Minirechner nach dem Ausloggen weiter arbeitet und die graphische Oberfläche beibehält, bis man sich wieder einloggt.
Die erste Variante stellt keinen virtuellen Client im eigentlichen Sinn dar. Dabei wird ausgenutzt, dass unter Linux fast alles als interne Netzwerke strukturiert ist. Darunter fällt auch die klassische graphische X11-Oberfläche ohne 2D/3D-Beschleunigung. Somit ist es möglich den entfernten Rechner im Textmode zu betreiben und trotzdem auf den Clients mit X11-Anwendungen zu arbeiten, die auf dem entfernten Rechner laufen. Es gibt auch Projekte, die eine Unterstützung der 2D/3D-Beschleunigung auf dem Client ermöglichen. Die Organisation der graphischen Oberfläche als Netzwerk bringt für Fernnutzung viele Vorteile mit sich, allerdings hat dies immer einen Nachteil in der Performance gegenüber der Grafik-Karte, die im Rechner steckt und auf die direkt zugegriffen werden kann bei Verwendung von 2D/3D-Beschleunigung der internen GPUs der Graphikkarten.
Bisher war als Standard der Zugriff über SSH bei den Linux-Distribution für diese Einplatinenrechner bereits freigeben. Neuere Distribution neigen jedoch dazu, dass dies nicht mehr der Fall ist und man hier vorher Hand anlegen muss. Über den Jahreswechsel von 2016/2017 war Raspian davon betroffen und es ist nur eine Frage der Zeit, wann andere Distribution hier nachziehen.
Zuerst muss die aktuelle IP des CubieTruck oder Raspi ermittelt werden:
$ sudo ifconfig
192.168.1.2
Anschließend wird mit dem bekannten Passwort des Users eingeloggt entweder vom Cubietruck in den Raspi oder umgekehrt:
sftp -o UserKnownHostsFile=.ssh/known_hosts_pi_raspian -o StrictHostKeyChecking=no username@192.168.1.2 -v
sftp -o UserKnownHostsFile=.ssh/known_hosts_cubie_armbian -o StrictHostKeyChecking=no username@192.168.1.2 -v
Das strenge Checking abzuschalten ist keine gute Lösung, wegen der so enstandenen IT-Sicherheitslücke, aber nach dem der Raspi oder auch Cubietruck mit verschiedenen SD-Karten betrieben wird und der Schlüssel (Key) in der Regel nicht identisch ist, würde es sonst nur mit einer Karte reibungslos gehen. Ich müßte sonst immer überlegen, welches das richtige File mit den Schlüsseln ist oder jeweils den Zugriff so einrichten, dass die Schlüssel gleich sind.
Bei dieser Variante werden einzelne Anwendungen auf dem entfernten Rechner gestartet, die graphische Ausgabe/Oberflächer der einzelnen Anwendungen können dabei auf dem lokalen oder entfernten Rechner erfolgen.
Mit “ssh -X ...” (-X option für X11 Unterstützung) eingeloggt werden Programme folgendermaßen ausgeführt:
“DISPLAY=:0.0 abiword” auf dem entfernten Rechner
“abiword” auf dem eingeloggten Client
# or set the environment variable for all programs
export DISPLAY=:0.0
xeyes &
firefox &
ssh -o UserKnownHostsFile=.ssh/known_hosts_pi_raspian -o StrictHostKeyChecking=no username@192.168.1.2 -v -X
So funktioniert es, wenn die ursprüngliche Karte im CubieTruck steckt, wo die aufgenommenen Schlüssel passen:
ssh 192.168.1.2 -v -i .ssh/known_hosts -X
ssh 192.168.1.2 -v -i .ssh/known_hosts_SD2 -X
ssh username@192.168.1.2 -v -i .ssh/known_hosts_SD2
Beim Raspi wurde dies bereits durchgeführt und beschrieben. Wenn der CubieTruck an der Reihe gewesen wäre, würde dies vielleicht noch ergänzt, war die letzte Aussage. Anbei folgen die Angaben, wie ein virtual Network Client und auch ein virtual Network Server eingerichtet wurden.
Zunächst mußten die benötigten Pakete installiert werden. Da die Rollen Server und Client in beide Richtungen möglich sein sollten, wurde die Pakete auf beide Rechner installiert.
Für den Betrieb des Servers wird das Paket x11vnc installiert. Dieser Server ist bei den meisten Distributionen so eingerichtet, dass die Ausgabe, wie sie am angeschlossenen Monitor zu sehen ist auch auf dem Client angezeigt wird.
“sudo apt-get install x11vnc” benötigt, dass 2MB heruntergeladen werden.
$ sudo apt-get install x11vnc
0 upgraded, 9 newly installed, 0 to remove and 7 not upgraded.
Need to get 3,080 kB of archives.
After this operation, 8,303 kB of additional disk space will be used.
Aus unerfindlichen Gründen fehlte nach einigen "apt-get upgrades" und installierten Paketen nach einigen Tagen x11vnc auf dem CubieTruck. Das Manko wurde behoben, indem es wieder installiert wurde.
Für den Betrieb des Clients wird das Paket xvnc4viewer installiert. Dieser Client ist bei den meisten Distributionen so eingerichtet, dass die Auflösung des Server/Clients nicht wesentlich verändert werden. Bei einzelnen Variante mit verschiedenen Rechnern und Betriebssystemen schrumpfte die grafische Oberfläche auf eine unpraktische Auflösung und Fenstergröße von 640x480 Bildpunkten. Um dies wieder in den Griff zu bekommen hätte man tief in die Kiste mit den Optionen greifen müssen.
“sudo apt-get install xvnc4viewer” benötigt, dass 200kB heruntergeladen werden.
$ sudo apt-get install xvnc4viewer
xvnc4viewer is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 7 not upgraded.
Für den Zugriff auf den Server sollten immer Passwörter eingerichtet werden.
“sudo x11vnc -storepasswd”
“sudo x11vnc -storepasswd KENNWORT /etc/x11vnc.pass”
Anbei folgt der Aufbau der Verbindung, wie diese oft unter der Rollenverteilung Helfender und Hilfesuchender beschrieben wird. Die Reihenfolge des Startens ergibt sich aus dem Hintergrund, dass auf Seiten des Hilfesuchende der Serverbetrieb minimiert wird, da dieser sich auch wenigsten selbst schützen kann.
Starten der Anwendung auf dem Rechner des Helfenden bei remoter Unterstützung:
“xvnc4viewer -listen 5500”
Starten der Anwendung auf dem Rechner des Hilfesuchenden bei remoter Unterstützung:
“x11vnc -connect 192.168.1.2”
Allerdings erfolgte dieses Beispiel ohne Passwortabfrage und war daher keine so gute Idee. Ungünstigerweise ist hier der schwierigere Part beim Hilfesuchenden durchzuführen. In dem Falle sollte der Helfende entsprechenden Befehl als Skript hinterlegt haben, so dass dieses nur einfach vom Nutzer aufzurufen wäre.
x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /home/USERNAME/.vnc/passwd -rfbport 5900 -shared
(Ggf auch host:display)
Das Starten in umgekehrte Reihenfolge funktioniert in der Regel natürlich auch. Beim Zugriff über eine VNC-App vom Tablett sollte der Server auf dem entfernten Rechner immer zuerst gestartet werden, da sonst nach wenigen Sekunden bereits der Versuch einer Verbindungsaufnahme abgebrochen würde.
Am besten funktionierte der Zugriff auf den Raspberry Pi mit Raspian über den tightvncserver, bzw. auf dem Client können die vorher aufgeführten installierten VNC weiter verwendet werden. Ein Pluspunkt bei diesem Server ist, dass ohne angeschlossenen Monitor nicht ein Mini-Bildschirm der Auflösung Standard-VGA (640x480) oft als einzige Auflösung angeboten wird.
$ sudo apt-get install tightvncserver
0 upgraded, 1 newly installed, 0 to remove and 7 not upgraded.
Need to get 575 kB of archives.
After this operation, 1,144 kB of additional disk space will be used.
Beim Raspian war es möglich mit tightvncserver auch den aktuellen Bildschirminhalt zu übertragen, der über den HDMI-Ausgang ausgegeben wurde. Bei den anderen Rechnern (Distributionen) wurde hier fast immer eine neue X11-Session eröffnet. Für das Panel (Bedienung) waren Ergänzungen in der Konfigurationsdatei notwendig. Um bei diesen Geräten ebenfalls den aktuellen Bildschirminhalt zu übertragen musste statt dessen x11vnc aufgerufen werden.
Beim Cubietruck wurde mit tightvncserver eine neue X11-Session eröffnet. Dabei wurde im Wesentlichen nur der graue Grundbildschirminhalt ausgegeben. Für das Panel (Bedienung, so dass auch Programme aufgerufen werden konnten) wären Ergänzungen in der Konfigurationsdatei notwendig.
Starten des tightvncserver auf dem Cubietruck:
@cubietruck:~$ tightvncserver
New 'X' desktop is cubietruck:1
Starting applications specified in /home/dieterd/.vnc/xstartup
Log file is /home/dieterd/.vnc/cubietruck:1.log
Im lokalen Netzwerk kann der Cubietruck somit auch über die Bezeichnung "cubietruck:1" aufgerufen werden. Wird der tightvncserver noch einmal aufgerufen, so kann diese Umgebung mit der Bezeichnung "cubietruck:2" aufgerufen werden.
Der Start des Servers durch x11vnc werden viele Zeilen auf der Konsole ausgegeben. Ein kleine stark gekürzte Auswahl dieser Zeilen sind im folgenden aufgelistet.
@cubietruck:~$ x11vnc
#@ ** WARNING ** WARNING ** WARNING ** WARNING ** @#
#@ YOU ARE RUNNING X11VNC WITHOUT A PASSWORD!! @#
#@ You can create an x11vnc password file by running: @#
#@ x11vnc -storepasswd password /path/to/passfile @#
#@ or x11vnc -storepasswd /path/to/passfile @#
#@ or x11vnc -storepasswd @#
#@ (the last one will use ~/.vnc/passwd) @#
#@ and then starting x11vnc via: @#
#@ x11vnc -rfbauth /path/to/passfile @#
#@ @#
06/02/2017 10:25:47 x11vnc version: 0.9.13 lastmod: 2011-08-10 pid: 5795
06/02/2017 10:25:47 Using X display :0.0
06/02/2017 10:25:47 Default visual ID: 0x21
06/02/2017 10:25:47 Read initial data from X display into framebuffer.
06/02/2017 10:25:47 initialize_screen: fb_depth/fb_bpp/fb_Bpl 24/32/4096
06/02/2017 10:25:47 X display :0.0 is 32bpp depth=24 true color
06/02/2017 10:25:47 fb read rate: 111 MB/sec
The VNC desktop is: cubietruck:0
PORT=5900
Im lokalen Netzwerk kann der Cubietruck somit auch über die Bezeichnung "cubietruck:0" aufgerufen werden. Alternativ kann auch die IP und der Port angegeben werden.
Wenn ein Client Verbindung aufnimmt, erfolgt in der Regel auch eine Ausgabe von vielen Zeilen auf der Konsole.
# Startet a Virtual Network Client
06/02/2017 10:26:17 Got connection from client 192.168.43.97
06/02/2017 10:26:23 client 1 network rate 185.7 KB/sec (4931.5 eff KB/sec)
06/02/2017 10:26:23 client 1 latency: 6.7 ms
Eine weitere SD-Karte wäre hier mit „berryboot“ herzurichten um armbian, raspian oder osmc zu starten. Auch möglich wäre es den Boot-Vorgang auf einen USB-Speicherstick umzuleiten. Auf die Dauer wäre das stabiler, da die USB-Sticks in der Regel Chipsätze mit leistungsfähigeren Funktionen zur Ausblendung von ermüdeten Speicherzellen besitzen.
Angemerkt sei nun einige Monate später, dass dies bei Bedarf angegangen wird. Als eine Möglichkeit andere Linux-Distributionen versuchsweise unter Einschränkungen zu verwenden bietet auch die chroot-Umgebung oder Emulation (z.B. mit qemu) an.
Die Suche im Internet ergab, dass es für den Drucker nur Treiber für die i386er Prozessorarchitekturen von Intel und AMD gibt. Für Armbian gibt es keine Treiber und in einem Blog steht die Antwort von Brother zitiert, dass es von Brother auch keinen Treiber geben wird für die ARM-Prozessoren. Für Android gibt es aber Treiber im google-play-store. In einer ct 18/2015 gibt es eine Anleitung, wie i386er Treiber mit Hilfe von Komponenten des Emulators qemu zum Laufen gebracht werden können.
Als wichtigster vorbereitender Schritt musste erst lpr und cups installiert werden.
sudo apt-get install lpr
Need to get 83.5 kB of archives.
After this operation, 294 kB of additional disk space will be used.
sudo apt-get install cups
Need to get 3,676 kB of archives.
After this operation, 10.5 MB of additional disk space will be used.
Anbei sei noch eine kleine Panne bei der Installation erwähnt, so dass cups und lpr noch einmal installiert werden mußten:
sudo apt-get install lprng
The following packages will be REMOVED:
cups cups-client lpr
Need to get 1,114 kB of archives.
After this operation, 386 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Für den Scanner wird xsane bzw. sane benötigt.
sudo apt-get install xsane
Need to get 7,434 kB of archives.
After this operation, 26.5 MB of additional disk space will be used.
sudo apt-get install sane
Need to get 107 kB of archives.
After this operation, 237 kB of additional disk space will be used.
sudo apt-get install sane-utils
Need to get 257 kB of archives.
After this operation, 650 kB of additional disk space will be used.
Ermöglichen, dass unter ARM-Architektur auch Binaries i386 von Treibern (z.B. Drucker) laufen.
Quelle: https://www.lhinderberger.de/pi/2016/01/27/raspberry-pi-binary-x86-drivers.html
Step 1: Set up dpkg
$ sudo dpkg --add-architecture i386
Step 2: Edit your apt sources.list and sources.list.d
You have to edit your /etc/apt/sources.list file and every file in /etc/apt/sources.d, adding [arch=armhf] behind each occurence of dep to prevent confusion of apt-get.
So for example the line
deb http://archive.raspbian.org/raspbian jessie main contrib non-free
would become
deb [arch=armhf] http://archive.raspbian.org/raspbian jessie main contrib non-free
Step 3: Add i386 repositories
To do that, you create the file /etc/apt/sources.list.d/i386.list and insert the following:
deb [arch=i386] http://ftp.debian.org/debian/ jessie main contrib non-free
deb [arch=i386] http://ftp.debian.org/debian/ jessie-updates main contrib non-free
deb [arch=i386] http://security.debian.org/ jessie/updates main contrib non-free
Step 4: Update your local apt cache
$ sudo apt-get update
(Jeweils ca. 5MB 3x, wegen eines gemachten Fehlers bei Step 2)
Retrieve GPG public keys for the newly added repositories (man-in-the-middle attacks).
Step 5: Install qemu-user and binfmt-support
$ sudo apt-get install binfmt-support qemu-user
(Need to get 3,788 kB of archives. After this operation, 29.4 MB of additional disk space will be used.)
Alternativ wurde bei anderen auf den Seiten folgende Pakete angegeben:
sudo apt-get install binfmt-support qemu-user-static
Need to get 5,155 kB of archives.
After this operation, 54.4 MB of additional disk space will be used.
sudo apt-get install qemu binfmt-support qemu-user-static
Need to get 16.5 MB/16.5 MB of archives.
After this operation, 89.3 MB of additional disk space will be used.
Step 6: Install x86 libc
Most (if not all) modern binary programs require the C standard library installed on your system to work properly. For ARM, Raspbian ships libc by default, but for x86 we have yet to install it:
$ sudo apt-get install libc6:i386
Notice the :i386 suffix? This tells apt-get to explicitly go and fetch the package for x86, rather than for ARM.
If you made it this far: Congratulations! You can now run x86 binaries on your Raspberry Pi!
Und genau in Step 6: Install x86 libc scheiterte die Aktion auf dem CubieTruck mit Armbian. Die Ergebnisse der Suchmaschinen im Internet ergaben, dass dieses Problem vorliegt, aber es fehlte überall eine Lösung des Problems. Ohne diese libc6 scheitert die Installation des Druckertreibers kläglich.
$ sudo apt-get install libc6:i386
Package libc6:i386 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
E: Package 'libc6:i386' has no installation candidate
Mit einigem Probieren, konnte jedoch eine Lösung gefunden werden, die hier im folgenden skizziert wird.
sudo apt-get install libc6-pic
Need to get 1,208 kB of archives.
After this operation, 5,073 kB of additional disk space will be used.
Dies löste das Problem leider nicht. Ich kam auf Grund der Abhängigkeiten auf die Idee in den Debian-Package-Beschreibungen die Abhängigkeiten einzeln abzuklopfen. Die Pakete für i386-Architektur wurden jeweils einzeln herunter geladen und versucht mit dpkg einzeln zu installieren.
Download:
https://packages.debian.org/jessie/libc6
sudo dpkg -i libc6_2.19-18+deb8u4_i386.deb
Selecting previously unselected package libc6:i386.
(Reading database ... 90324 files and directories currently installed.)
Preparing to unpack libc6_2.19-18+deb8u4_i386.deb ...
Unpacking libc6:i386 (2.19-18+deb8u4) ...
dpkg: dependency problems prevent configuration of libc6:i386:
libc6:i386 depends on libgcc1.
dpkg: error processing package libc6:i386 (--install):
dependency problems - leaving unconfigured
Errors were encountered while processing:
libc6:i386
Zusätzlich wurden noch die folgenden Pakete ermittelt und herunter geladen.
https://packages.debian.org/jessie/i386/libgcc1/download
https://packages.debian.org/jessie/i386/multiarch-support/download
https://packages.debian.org/jessie/i386/gcc-4.9-base/download
dpkg: dependency problems prevent configuration of libgcc1:i386:
libgcc1:i386 depends on gcc-4.9-base (= 4.9.2-10).
libgcc1:i386 depends on libc6 (>= 2.2.4); however:
Package libc6:i386 is not configured yet.
sudo dpkg -i gcc-4.9-base_4.9.2-10_i386.deb
Selecting previously unselected package gcc-4.9-base:i386.
(Reading database ... 90630 files and directories currently installed.)
Preparing to unpack gcc-4.9-base_4.9.2-10_i386.deb ...
Unpacking gcc-4.9-base:i386 (4.9.2-10) ...
Setting up gcc-4.9-base:i386 (4.9.2-10) ...
Die Abhängigkeiten auf einem Blatt aufgemalt ergab, dass es ein Henne-Ei-Problem zwischen libc6 und libgcc1 gab. Einzeln ging es nicht, aber alle zusammen mit dpkg aufgerufen, wie unten angegeben führte zu einer erfolgreichen Installation von libc6.
sudo dpkg -i libgcc1_4.9.2-10_i386.deb gcc-4.9-base_4.9.2-10_i386.deb libc6_2.19-18+deb8u4_i386.deb multiarch-support_2.19-18+deb8u4_i386.deb
Und nun konnte endlich der Treiber erfolgreich installiert werden.
sudo bash linux-brprinter-installer-2.0.0-1
Input model name ->mfc-795cw
You are going to install following packages.
mfc795cwlpr-1.1.3-1.i386.deb
mfc795cwcupswrapper-1.1.3-1.i386.deb
brscan3-0.2.13-1.i386.deb
brscan-skey-0.2.4-1.i386.deb
Diese Warnung ist ein Hinweis, dass libc6 fehlt:
dpkg: warning: package architecture (i386) does not match system (armhf)
Nachdem libc6 erfolgreich installiert wurde, gab es diese Meldung nicht mehr.
mkdir: cannot create directory ‘/var/spool/lpd/mfc795cw’: No such file or directory
chown: cannot access ‘/var/spool/lpd/mfc795cw’: No such file or directory
chgrp: cannot access ‘/var/spool/lpd/mfc795cw’: No such file or directory
chmod: cannot access ‘/var/spool/lpd/mfc795cw’: No such file or directory
error /var/spool/lpd/mfc795cw
Diese Datei / dieser Pfad muss vor der Installation manuell angelegt werden. Beim Armbian fehlte der Pfad „/var/spool/lpd“. Nachdem diese angelegt wurden, konnte diese Komponente erfolgreich installiert werden.
sudo mkdir -p /var/spool/lpd/mfc795cw
Wenn vorher cups nicht installiert wurde, scheitert hier die weitere Installation.
Restarting cups (via systemctl): cups.service.
Will you specify the Device URI? [Y/n] ->y
8 (I): Specify IP address.
Es wurde 8 gewählt, da der Drucker am LAN (bzw. WLAN) hängt.
enter IP address ->192.168.xxx.xxx
Wenn vorher lpr nicht installiert wurde, scheitert hier die weitere Installation.
lpr -P MFC795CW /usr/share/cups/data/testprint
linux-brprinter-installer-2.0.0-1: line 2408: lpr: command not found
Unter der Liste von Voraussetzungen bei Brother befindet sich auch die eine oder andere Information, was noch zu machen wäre bei verschiedenen Modellen.
(http://support.brother.com/g/s/id/linux/en/before.html?c=us&lang=en&prod=mfc795cw_all&redirect=on)
sudo lppasswd -g sys -a root
Enter password: **********
Enter password again: **********
Bei der Ausführung von Skripten zur Installation ist es nicht immer eindeutig, ob diese als user, user mit sudo oder als root (root-Shell) vorteilhafter ausgeführt wären. Als root kann es manchmal passieren, dass beim Anlegen der Pfade und Dateien strikt dessen Ausführungsrechte gesetzt werden und die Anwendung als root einwandfrei funktioniert, aber als user eben nicht. Diese Dateien aufzuspüren und manuell zu ändern, kann ein sehr mühsam werden. Umgekehrt kann es auch passieren, dass nach einem Abbruch der Installation fortgesetzt als root fehlende Installationsanteile ausgelassen werden, da nicht jeder Unterschritt über das Installationsskript verifiziert wurde. Diese Fehler aufzuspüren können sehr mühsam werden. Die zeitlich bessere Lösung wäre unter diesen Uständen nicht selten, das Betriebssystem mit allen Anwendungen neu aufzusetzen oder auf das Geräte, Komponente, Werkzeug oder Anwendung zu verzichten.
Der Druck einer Testseite funktionierte nun, nachdem unter cups mittels localhost:631 im Browser (hier: iceweasel) alle Druckaufträge gelöscht wurden.
Wenn der Drucker nicht funktionieren sollte, anbei die wichtigsten Schritte zur Überprüfung:
Bei Netzwerkdrucker, diesen
„anpingen“ ob dieser erreichbar ist:
$
ping 192.168.x.x
Ist der CUPS Daemon aktiv:
$ sudo netstat
-nap | grep 631
Gut dargestellt ist der Vorgang auch unter:
http://ask.xmodulo.com/install-brother-printer-linux.html
Vorab sei erwähnt, dass der Weg im Kapitel zum Scanner-Treiber unter chroot mit qemu-i386-static installieren bisher nur erfolgreich war.
Allerdings funktioniert das scannen noch nicht. Genannte Befehle finden alle den Scanner nicht.
scanimage -L
xsane
Als root findet jedoch „brsaneconfig3 -d“ den Drucker .
Devices on network
0 mfc795cw "MFC-795CW" I:192.168.xxx.xxx
ping
test mfc795cw
ping 192.168.xxx.xxx -w 10
Eingerichtet wurde der Scanner mit:
brsaneconfig3 -a name=mfc795cw model=MFC-795CW ip=192.168.xxx.xxx
sudo brsaneconfig3 -a name=mfc795cw model=MFC-795CW ip=192.168.xxx.xxx
Aus diesem Verhalten könnte vermutet werden, dass es sich um ein Problem mit den Rechte handele. Dies konnte nicht auf Anhieb gelöst werden.
Also wurden die letzen Schritte manuell im richtigen root-Account (also nicht mit sudo) noch einmal versucht durchzuführen. Als user (ohne sudo) funktionierten die Schritte nicht sei hier anzumerken.
root@cubietruck:# dpkg -i brscan3-0.2.13-1.i386.deb
root@cubietruck:# dpkg -i brscan-skey-0.2.4-1.i386.deb
root@cubietruck:/home/username/INSTALL# brsaneconfig3 -p
Der Test ergab, es ging noch nicht.
root@cubietruck:/home/username/INSTALL# brsaneconfig3 -a name=mfc795cw model=MFC-795CW ip=192.168.xxx.xxx
root@cubietruck:/home/dieterd/INSTALL# brsaneconfig3 -p
test mfc795cw
Und jetzt wird der Scanner mit dem Befehl angezeigt. Aber unter xsane immer noch Fehlanzeige.
Anbei noch einmal die Ausgaben von der Installation betreffend Brother Druckertreiber für den Scanner:
root@cubietruck:# bash linux-brprinter-installer-2.0.0-1
Input model name ->mfc-795cw
You are going to install following packages.
mfc795cwlpr-1.1.3-1.i386.deb
mfc795cwcupswrapper-1.1.3-1.i386.deb
brscan3-0.2.13-1.i386.deb
brscan-skey-0.2.4-1.i386.deb
OK? [y/N] ->y
…. hier weggelassen …....
You are going to install following packages.
brscan3-0.2.13-1.i386.deb
dpkg -i --force-all brscan3-0.2.13-1.i386.deb
(Reading database ... 91838 files and directories currently installed.)
Preparing to unpack brscan3-0.2.13-1.i386.deb ...
Unpacking brscan3 (0.2.13-1) over (0.2.13-1) ...
Setting up brscan3 (0.2.13-1) ...
You are going to install following packages.
brscan-skey-0.2.4-1.i386.deb
dpkg -i --force-all brscan-skey-0.2.4-1.i386.deb
(Reading database ... 91838 files and directories currently installed.)
Preparing to unpack brscan-skey-0.2.4-1.i386.deb ...
Unpacking brscan-skey (0.2.4-1) over (0.2.4-1) ...
Setting up brscan-skey (0.2.4-1) ...
brsaneconfig3 -a name=MFC-795CW model=MFC-795CW ip=192.168.xxx.xxx
Hit Enter/Return key.
Die Ausgaben zeigen, dass zwar der Scanner von Brother installiert wurde, aber nicht gefunden wird von den Scannprogrammen.
dieterd@cubietruck:~/INSTALL/Brother795$ scanimage -L
No scanners were identified. If you were expecting something different,
check that the scanner is plugged in, turned on and detected by the
sane-find-scanner tool (if appropriate). Please read the documentation
which came with this software (README, FAQ, manpages).
$ cat /usr/local/Brother/sane/brsanenetdevice3.cfg
DEVICE=MFC-795CW , "MFC-795CW" , 0x4f9:0x22c , IP-ADDRESS=192.168.xxx.xxx
$ brsaneconfig3 -a name="MFC-795CW" model="MFC-795CW" ip=192.168.xxx.xxx
"MFC-795CW" is already registered.
$ sudo ping 192.168.xxx.xxx
PING 192.168.xxx.xxx (192.168.xxx.xxx) 56(84) bytes of data.
64 bytes from 192.168.xxx.xxx: icmp_seq=1 ttl=255 time=1043 ms
$ sudo service saned restart
Failed to restart saned.service: Unit saned.service is masked.
$ sudo sane-find-scanner
Kein positives Ergebnis.
$ cat /etc/sane.d/net.conf
Hier ist nichts eingetragen, wie auch beim Netbook, wo der Scanner funktioniert.
Aus kubuntuforums.net:
For network scanning you need to have your local subnet in /etc/sane.d/net.conf like this:
$ cat /etc/sane.d/net.conf
# localhost
192.168.1.0/24
Einen solchen Eintrag habe ich auf dem Netbook auch nicht, wo alles funktioniert.
$ sudo systemctl status saned
[sudo] password for marc:
•saned.service
Loaded: masked (/dev/null)
Active: inactive (dead)
$ ps -edf | grep sane
$ ps -ax | grep sane
Einen solchen Eintrag habe ich auf dem Netbook auch nicht, wo alles funktioniert.
Analog vom Netbook übernommen funktioniert hier nicht:
$ scanimage -d "brother3:net1;dev0"
scanimage: open of device brother3:net1;dev0 failed: Invalid argument
$ ls /etc/systemd/system | grep saned
Einen solchen Eintrag habe ich auf dem Netbook auch nicht, wo alles funktioniert.
Mittlerweile generierte ich noch einen alten HP-Scanner für die Verwendung und installierte dessen Treiber, die unter Linux verfügbar waren.
$ sudo apt-get install sane-hp
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package sane-hp
dieterd@cubietruck:~/INSTALL/Brother795$ sudo apt-cache show sane-hp
N: Unable to locate package sane-hp
E: No packages found
dieterd@cubietruck:~/INSTALL/Brother795$ sudo apt-cache search sane-hp
libsane-hpaio - HP SANE backend for multi-function peripherals
dieterd@cubietruck:~/INSTALL/Brother795$
$ sudo apt-get install libsane-hpaio
Recommended packages:
hplip
Need to get 4,001 kB of archives.
After this operation, 7,504 kB of additional disk space will be used.
$ scanimage -L
device `hp5590:libusb:001:005' is a HP 4500C/5550C Workgroup scanner
$ xsane
Der HP-Scanner am USB-Anschluss funktioniert das Scannen ohne Probleme auf anhieb.
$ sudo apt-get install hplip
Need to get 8,614 kB of archives.
After this operation, 17.5 MB of additional disk space will be used.
$ sudo apt-get install libsane-extras
Need to get 70.9 kB of archives.
After this operation, 215 kB of additional disk space will be used.
Texterkennung ergänzt:
$ sudo apt-get install gocr
Need to get 188 kB of archives.
After this operation, 364 kB of additional disk space will be used.
$ sudo modprobe -c | grep sane
alias nfct_helper_sane nf_conntrack_sane
Das ist auch auf beiden Rechnern identisch.
Das ist auch auf beiden Rechnern ähnlich.
/usr/share/sane/
Noch nicht geprüft:
$ sudo adduser saned scanner
$ groups
dieterd dialout sudo audio video plugdev netdev
Es gibt dort keine Gruppe scanner.
$ cat /etc/group
$ getent group
$ getent passwd group (Gibt auch die berechtigten Pfade aus)
$ id dieterd
sane und scanner vorhanden, aber dieterd nicht verknüpft.
$ id dieterd
$ sudo adduser saned scanner
Ist schon vorhanden.
$ sudo adduser dieterd scanner
Dieses wurde ergänzt wie auch folgende Ausgabe zeigt:
$ id dieterd
uid=1000(dieterd) gid=1000(dieterd) groups=1000(dieterd),20(dialout),27(sudo),29(audio),44(video),46(plugdev),108(netdev),117(scanner)
$ groups
$ id -Gn
Hier fehlt noch scanner in der Liste;
Dies ist nur vorhanden, wenn rebootet oder erneut eingeloggt wurde. Eine Shell aufgerufen mit „su -l <user>“ zeigt die Gruppe scanner in der Liste. Also hat es funktioniert, aber eine Neustart ist notwendig.
sudo mkdir /srv/brscan-skey
/opt/brother/scanner/brscan-skey/brscan-skey-0.2.4-0.cfg
bash /opt/brother/scanner/brscan-skey/script/scantoimage-0.2.4-1.sh
dieterd@cubietruck:~/INSTALL/Brother795$ sh: 1: gimp: not found
$ sudo apt-get install gimp
Need to get 15.5 MB/15.6 MB of archives.
After this operation, 70.3 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
$ sudo systemctl --user start brscan-skey.service
Failed to get D-Bus connection: Connection refused
$ sudo systemctl start brscan-skey.service
Failed to start brscan-skey.service: Unit brscan-skey.service failed to load: No such file or directory.
sudo /etc/init.d/dbus restart
Das gibt einen Absturz in die Konsole.
Befehle um Statusausgaben der Busse zu bekommen:
$ systemctl --user
$ systemctl --system
$ busctl --user
$ busctl --system
$ systemctl status
sudo apt-get install strace
Need to get 236 kB of archives.
After this operation, 468 kB of additional disk space will be used.
strace -o strace.out -f scanimage -T
SANE_DEBUG_DLL=3 scanimage -L
cat /lib/udev/rules.d/60-libsane.rules | less
So etwas ist nicht vorhanden:
- 80-libsane.rules contains :
# Brother DCP-J752DW / added by gui
ATTRS{idVendor}=="04f9", ATTRS{idProduct}=="02e4", MODE="0660",
GROUP="lp", ENV{libsane_matched}="yes"
Auf beiden Rechnern ist identisch, dass keine solchen Angaben in der libsane.rules vorliegen.
Nun scheint eine Spur gefunden:
SANE_DEBUG_DLL=3 scanimage -L
[dll] add_backend: `hpaio' is already there
[dll] add_backend: adding backend `brother3'
[dll] sane_get_devices
[dll] load: searching backend `brother3' in `/usr/lib/arm-linux-gnueabihf/sane:/usr/lib/sane'
[dll] load: dlopen()ing `/usr/lib/sane/libsane-brother3.so.1'
[dll] load: dlopen() failed (/usr/lib/sane/libsane-brother3.so.1: cannot open shared object file: No such file or directory)
Auf dem funktionierenden Notebook gibt es auch einen „segmention fault“
qemu-i386-static /usr/lib/sane/libsane-brother3.so
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
Segmentation fault
busctl --system | grep D
NAME PID PROCESS USER CONNECTION UNIT SESSION CONNECTION-NAME
org.freedesktop.DBus - - - - -
Hier ist alles leer im Vergleich zu dem Rechner mit funktionierenden Scanner.
$ brscan-skey -l
MFC-795CW : brother3:net1;dev0 : 192.168.43.128 Active
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
dieterd@cubietruck:~$ xsane
dieterd@cubietruck:~$ brscan-skey -l
dieterd@cubietruck:~$ brscan-skey -l
sudo systemctl start dbus
dieterd@cubietruck:~$ man systemd
dieterd@cubietruck:~$ scanimage -L
No scanners were identified. If you were expecting something different,
check that the scanner is plugged in, turned on and detected by the
sane-find-scanner tool (if appropriate). Please read the documentation
which came with this software (README, FAQ, manpages).
systemctl --failed
UNIT LOAD ACTIVE SUB DESCRIPTION
• lprng.service loaded failed failed LSB: Start lpd to allow print
• systemd-modules-load.service loaded failed failed Load Kernel Modules
LOAD = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB = The low-level unit activation state, values depend on unit type.
2 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.
dieterd@cubietruck:~$ dpkg -l | grep lprng
rc lprng 3.8.B-2 armhf lpr/lpd printer spooling system
dieterd@cubietruck:~$ sudo apt-get -purge lprng
[sudo] password for dieterd:
E: Command line option 'p' [from -purge] is not known.
dieterd@cubietruck:~$ sudo apt-get --purge lprng
E: Command line option --purge is not understood
dieterd@cubietruck:~$ sudo apt-get install lprng
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
magicfilter lprng-doc
The following packages will be REMOVED:
cups cups-bsd cups-client hplip printer-driver-hpcups
The following NEW packages will be installed:
lprng
0 upgraded, 1 newly installed, 5 to remove and 0 not upgraded.
Need to get 0 B/1,114 kB of archives.
After this operation, 1,454 kB disk space will be freed.
Do you want to continue? [Y/n] n
Abort.
dieterd@cubietruck:~$ sudo apt-get purge lprng
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
lprng*
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
(Reading database ... 95221 files and directories currently installed.)
Removing lprng (3.8.B-2) ...
Purging configuration files for lprng (3.8.B-2) ...
dieterd@cubietruck:~$
systemctl --failed
UNIT LOAD ACTIVE SUB DESCRIPTION
• lprng.service not-found failed failed lprng.service
• systemd-modules-load.service loaded failed failed Load Kernel Modules
LOAD = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB = The low-level unit activation state, values depend on unit type.
2 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.
cat /etc/services | grep 6566
sane-port 6566/tcp sane saned # SANE network scanner daemon
Befehl um eine Anwendung mit X11-Oberfläche als root zu starten.
$ sudo apt-get install gksu
Need to get 330 kB of archives.
After this operation, 2,211 kB of additional disk space will be used.
erstelle die Datei 55-libsane.rules
gksudo gedit /etc/udev/rules.d/55-libsane.rules
mit dem Inhalt
SYSFS{idVendor=="04f9", MODE="0666", GROUP="scanner", ENV{libsane_matched}="yes"
ATTBS{idVendor=="04f9", MODE="0666", GROUP="scanner", ENV{libsane_matched}="yes"
ldconfig
Ende Mai 2016, also etwas mehr als ein Monat später, zeigte sich nach einem „sudo apt-get update“ und „sudo apt-get upgrade“, dass einige Treiber und vor allem qemu in einer neuen Version vorlag.
The following packages will be upgraded:
imagemagick imagemagick-6.q16 imagemagick-common libarchive13 libexpat1 libidn11
libmagick++-6.q16-5 libmagickcore-6.q16-2 libmagickwand-6.q16-2 libpoppler-glib8 libpoppler-qt4-4
libpoppler46 librsvg2-2 librsvg2-common libssl-dev libssl1.0.0 libtasn1-6 linux-dtb-next-sunxi
linux-firmware-image-next-sunxi linux-headers-next-sunxi linux-image-next-sunxi
linux-jessie-root-next-cubietruck openssl poppler-utils qemu qemu-system qemu-system-arm
qemu-system-common qemu-system-mips qemu-system-misc qemu-system-ppc qemu-system-sparc
qemu-system-x86 qemu-user qemu-user-static qemu-utils
36 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 52.8 MB of archives.
After this operation, 1,093 kB of additional disk space will be used.
Somit dürfte es sich lohnen nach diesem Update zu testen, ob der Scanner nun funktioniert und ob der Drucker noch läuft. Das Ergebnis war, weiterhin negativ, also keine Änderung.
Versuch zu ergänzen:
sudo kwrite /lib/udev/rules.d/60-libsane.rules
# Brother not USB but Network generally
ATTRS{idVendor}=="04f9", ENV{libsane_matched}="yes" , MODE="0666"
sudo service saned
[ ok ] saned disabled; edit /etc/default/saned.
Defaults for the saned initscript, from sane-utils
# To enable under systemd please read README.Debian
# Set to yes to start saned under SysV
# set to yes 13.05.16 and not working;
RUN=no
# Set to the user saned should run as
RUN_AS_USER=saned
sudo systemctl start saned
Failed to start saned.service: Unit saned.service is masked.
sudo service saned start
Failed to start saned.service: Unit saned.service is masked.
Vorher
[ok] saned disabled; edit /etc/default/saned.
Nach Ruckänderung der /etc/default/saned blieb es geändert.
Reine Prozessemulation (ubuntuusers)
QEMU beherrscht auch die "reine" Prozessemulation, auch "User-Space-Emulation" genannt. D.h. dass anstatt eines kompletten Systems wird "nur" ein einzelnes Programm ("Binary") im Emulations-Modus ausgeführt. Die Prozess-Emulation für ein 32-bit i386 System wird z.B. mit folgendem Befehl aufgerufen:
qemu-i386 PROGRAMMNAME
Die Emulation funktioniert natürlich nur, wenn das Programm keine weiteren Bibliotheken dynamisch nachlädt. Bei den Scanner-Treibern wird anscheinend hier dynamisch nachgeladen und andere Programme mit aufgerufen. Somit führte dies nicht zu einem Erfolg.
Link: Anleitung zum Aufruf von Binaries:
http://unix.stackexchange.com/questions/215864/running-x86-binaries-on-armv7
https://wiki.debian.org/RaspberryPi/qemu-user-static
Somit wurde als neuer Lösungsweg ein minimales Debian in einer virtuellen Umgebung anvisiert, das mit der Virtualisierung qemu betrieben werden soll.
Aus folgender Quelle wurden daher einige Pakete ausprobiert:
https://wiki.ubuntuusers.de/QEMU/
https://en.wikibooks.org/wiki/QEMU/Networking#User_mode_networking
http://qemu-buch.de/de/index.php?title=QEMU-KVM-Buch/_Managementtools/_Weitere
Und Images zum Testen heruntergeladen:
https://people.debian.org/~aurel32/qemu/i386/ (0,3...1,8GB gepackte Dateien)
http://wiki.qemu.org/Testing (kleine 8MB gepackte Datei)
apt-get install qemuctl
Need to get 88.5 kB of archives.
After this operation, 251 kB of additional disk space will be used.
apt-get install qemulator
Need to get 2,140 kB of archives.
After this operation, 13.9 MB of additional disk space will be used.
apt-get install virt-goodies
Need to get 6,016 kB of archives.
After this operation, 13.9 MB of additional disk space will be used.
sudo apt-get install qemu virt-manager virt-viewer libvirt-bin
Need to get 4,756 kB of archives.
After this operation, 17.1 MB of additional disk space will be used.
Der Fehler scheint nun eingekreist zu sein. Ein einfaches Image von der qemu-Homepage funktioniert, aber die sqeezy und wheezy Debian images eine anderen Quelle stürzen jeweils beim Start von Grub ab. Ein Versionsvergleich mit dem Netbook ergab, dass auf dem Netbook eine 2.5er Version läuft und unter Armbian noch eine 2.1er Version vorhanden ist. Somit funktioniert die Lösung des Aufsetzens einer virtuellen Maschine mit einem i386er Debian mit dem Scanner-Treiber nicht zu funktionieren, bis eine neuere qemu-Version eingespielt wurde.
Versuch mit verschiedenen Prozessoren:
qemu-system-i386 -cpu qemu32 debian_wheezy_i386_standard.qcow2
qemu-system-i386 -cpu kvm32 debian_wheezy_i386_standard.qcow2
qemu-system-i386 -cpu n270 debian_wheezy_i386_standard.qcow2
Führt später (nach Grub) zum Neustart des Images:
qemu-system-i386 -cpu 486 debian_wheezy_i386_standard.qcow2
Falls das nicht geht, könnte auch mit bochs gearbeitet werden.
sudo apt install bochs
Need to get 1,427 kB of archives.
After this operation, 4,237 kB of additional disk space will be used.
http://bochs.sourceforge.net/doc/docbook/user/bochsrc.html
http://manpages.ubuntu.com/manpages/wily/man5/bochsrc.5.html
Verschiedene Quellen und Versionen gleichzeitig Nutzen:
http://www.binarytides.com/enable-testing-repo-debian/
https://www.debian.org/releases/index.de.html
http://askubuntu.com/questions/281763/is-there-any-prebuilt-qemu-ubuntu-image32bit-online
sudo apt-get update
apt-cache policy paketname
apt-get -t testing install apache2
apt-get install apache2/testing kwrite/unstable
Die Variante mit „/testing“ versucht nicht alle Paket zu aktualisieren, aber die Variante mit „-t testing“ versucht dies nicht, wird aber daher wegen fehlender Abhängigkeiten öfters abbrechen.
https://wiki.ubuntuusers.de/apt/apt-get/
sudo apt-get [Option(en)] build-dep PAKET1 [PAKET2]
sudo apt-get check
sudo apt-get source
Adding sources.list:
sudo nano /etc/apt/sources.list
# adding testing and unstable for experiments
deb [arch=armhf] http://http.us.debian.org/debian testing main non-free contrib
deb-src [arch=armhf] http://http.us.debian.org/debian testing main non-free contrib
deb [arch=armhf] http://security.debian.org/ testing/updates main contrib non-free
deb-src [arch=armhf] http://security.debian.org/ testing/updates main contrib non-free
# Unstable repo main, contrib and non-free branches, no security updates here
# deb [arch=armhf] http://http.us.debian.org/debian unstable main non-free contrib
# deb-src [arch=armhf] http://http.us.debian.org/debian unstable main non-free contrib
sudo nano /etc/apt/preferences.d/my_preferences
Package: *
Pin: release a=stable
Pin-Priority: 700
Package: *
Pin: release a=testing
Pin-Priority: 650
Package: *
Pin: release a=unstable
Pin-Priority: 600
Das neue Paket qemu 2.5.x von Seiten testing zu installieren führte zu Abhängigkeitsproblemen. Am Schluss hatte es diesen Umfang:
sudo apt-get -t testing install qemu qemu-utils libgnutls30 qemu-system qemu-user qemu-system-arm qemu-system-mips qemu-system-ppc qemu-system-sparc qemu-system-x86 qemu-system-misc
103 upgraded, 23 newly installed, 587 to remove and 430 not upgraded.
Need to get 213 MB of archives.
After this operation, 995 MB disk space will be freed.
Mit der Folge, dass auch noch viele benötigte Anwendungen deinstalliert würden. Dieser Weg brachte also keine Problemlösung.
Ein „sudo apt-get update“ in der ersten Juni-Woche lud 20MB und „sudo apt-get upgrade“ würde 100MB laden, da dies auch Updates von „libreoffice“ enthält. Dies wurde über Nacht mitte Juni 16 durchgeführt.
Wenn ein neues Debian-Release erhältlich ist, führen die Bezeichungen „unstable“ und „testing“ zu einer Lücke in der Datenbank des Installers apt-get. Für diesen Fall sollten in der sources.list die Namen (jessie, stretch) eingetragen werden.
$ sudo nano /etc/apt/sources.list
$ sudo nano /etc/apt/preferences.d/my_preferences
Unter armbian sind bereits die notwendigen essentiellen Paketteile installiert. Daher wurde bei folgenden Aufruf nichts weiter mehr installiert:
$ sudo apt-get install build-essential
Compiling für arm auf einem i386er Rechner:
http://stackoverflow.com/questions/32347898/compiling-qemu-for-arm
./configure
--target-list=arm-softmmu
./configure
--target-list=arm-softmmu,arm-linux-user
Anleitungen zum Compelieren auf dem Rechner:
http://www.howtogeek.com/105413/how-to-compile-and-install-from-source-on-ubuntu/?PageSpeed=noscript
http://www.aboutdebian.com/compile.htm
Heruntergeladene qemu-Quelle:
https://github.com/gnuarmeclipse/qemu/releases/tag/v2.3.1
(alternativ auch http://wiki.qemu.org/Download )
./configure
ERROR: glib-2.12 gthread-2.0 is required to compile QEMU
Lösung aus dem Internet:
apt-get install libglib2.0-dev zlib1g-dev
Need to get 6,667 kB of archives.
After this operation, 19.3 MB of additional disk space will be used.
$ ./configure
E: Unable to locate package pixman
$ apt-cache search pixman
$ apt-get install libpixman-1-dev
Need to get 452 kB of archives.
After this operation, 986 kB of additional disk space will be used.
$ apt-cache search libfd
$ apt-get install libfdt-dev
Need to get 21.4 kB of archives.
After this operation, 130 kB of additional disk space will be used.
$ make
Der Vorgang mit „make“ dauert sehr lange und wäre ideal um einen kleinen Minirechner bei Abwesenheit von ein paar Stunden durchlaufen zu lassen. Nach einer Stunden nachgesehen, war der Vorgang immer noch nicht abgeschlossen. Nach vielen hw/* war der Vorgang in der nächsten Stunde bei den Architekturen mit „a...-softmmu“ beginnend, nach 2-3 Stunden „p...-softmmu“. Nach 5h gleiches mit Architekturen „p...-linux-user“. Die Temperatur der CPU, die sonst meist um die 32 bis 34 lag, ist nun bei 45 bis 46 Grad. Beide Prozessoren sind meist voll ausgelastet. Der Speicherverbrauch liegt bei 500 bis 700MB, allerdings sind auch libre-office. Browser mit vielen Tabs und noch ein paar kleinere Anwendungen ebenfalls aktiv.
Man beachte, dass das Verzeichnis mit den Dateien von fast 60MB auf 1,1GB anwuchs. Die anschließende Installation belegte fast 110MB auf der Festplatte, beziehungsweise SD-Karte. Auf dem CubieTruck mit 1GHz Dual-Core dauerte es gute 6 Stunden bis alles compeliert war.
$ sudo make install
Vorher:
qemu-system-i386 --version
QEMU emulator version 2.1.2 (Debian 1:2.1+dfsg-12+deb8u6), Copyright (c) 2003-2008 Fabrice Bellard
apt-cache policy qemu
qemu:
Installed: 1:2.1+dfsg-12+deb8u6
Candidate: 1:2.1+dfsg-12+deb8u6
Version table:
1:2.5+dfsg-5+b1 0
650 http://httpredir.debian.org/debian/ testing/main armhf Packages
*** 1:2.1+dfsg-12+deb8u6 0
700 http://security.debian.org/ jessie/updates/main armhf Packages
100 /var/lib/dpkg/status
1:2.1+dfsg-12+deb8u5a 0
700 http://httpredir.debian.org/debian/ jessie/main armhf Packages
Nachher:
Wurde es noch nicht angezeigt. Entweder muss erst noch ein Neustart erfolgen oder nach einem apt-get update wird das richtige Ergebnis angezeigt.
Nach dem Neustart wurde die richtige Version angezeigt:
qemu-system-i386 --version
QEMU emulator version 2.3.1, Copyright (c) 2003-2008 Fabrice Bellard
Allerdings der Paketmanager zeigt hier nicht den Ist-Zustand an, sondern wie es theoretisch nach der Paketeverwaltung wäre.
apt-cache policy qemu
qemu:
Installed: 1:2.1+dfsg-12+deb8u6
Candidate: 1:2.1+dfsg-12+deb8u6
Version table:
1:2.5+dfsg-5+b1 0
650 http://httpredir.debian.org/debian/ testing/main armhf Packages
*** 1:2.1+dfsg-12+deb8u6 0
700 http://security.debian.org/ jessie/updates/main armhf Packages
100 /var/lib/dpkg/status
1:2.1+dfsg-12+deb8u5a 0
700 http://httpredir.debian.org/debian/ jessie/main armhf Packages
dpkg -l | grep qemu
ii qemu 1:2.1+dfsg-12+deb8u6 armhf fast processor emulator
Die Versionen sind nun etwas durcheinander:
$ sudo ln -s /usr/bin/qemu-system-i386 /usr/bin/qemu
$ qemu -version
QEMU emulator version 2.1.2 (Debian 1:2.1+dfsg-12+deb8u6), Copyright (c) 2003-2008 Fabrice Bellard
$ qemu-system-i386 -version
QEMU emulator version 2.3.1, Copyright (c) 2003-2008 Fabrice Bellard
$ whereis qemu
qemu: /usr/bin/qemu /usr/lib/qemu /etc/qemu /usr/local/etc/qemu /usr/share/qemu
$ whereis qemu-system-i386
qemu-system-i386: /usr/bin/qemu-system-i386 /usr/local/bin/qemu-system-i386 /usr/share/man/man1/qemu-system-i386.1.gz
$ /usr/bin/qemu-system-i386 -version
QEMU emulator version 2.1.2 (Debian 1:2.1+dfsg-12+deb8u6), Copyright (c) 2003-2008 Fabrice Bellard
$ /usr/local/bin/qemu-system-i386 -version
QEMU emulator version 2.3.1, Copyright (c) 2003-2008 Fabrice Bellard
Der erste Start zeigt, dass sich hier etwas verändert hat. Man erreicht qemu nur über einen VNC-client.
qemu-system-i386 debian_wheezy_i386_standard.qcow2
VNC server running on `::1:5900'
sudo apt-get install xvnc4viewer
Need to get 93.8 kB of archives.
After this operation, 308 kB of additional disk space will be used.
Erreichbar ist die Ausgabe über:
$ vncviewer localhost
Allerdings hat diese Version weiterhin diese Abstürze beim Start von Grub.
http://superuser.com/questions/520408/cannot-open-sdl-support-on-qemu
$ ./configure --enable-sdl
ERROR: User requested feature sdl
configure was not able to find it.
Install SDL devel
$ sudo apt-get install libsdl1.2-dev
0 upgraded, 52 newly installed, 0 to remove and 0 not upgraded.
Need to get 8,312 kB of archives.
After this operation, 31.7 MB of additional disk space will be used.
$ ./configure --cross-prefix=arm-linux-gnueabi- --target-list=arm-softmmu --enable-kvm --enable-sdl –static)
./configure --enable-sdl
make
Image-Datei umwandeln:
cat ubuntu.12-04.xfce.x86.20141001.raw.img.tar.bz2 | bzip2 -d | tar -x
qemu-img convert -c -O qcow2 ubuntu.12-04.xfce.x86.20141001.raw.img ubuntu.12-04.xfce.x86.20141001.raw.img.qcow2
cat ubuntu.12-04.x86.20141001.raw.img.tar.bz2 | bzip2 -d | tar -x
./configure --enable-sdl –enable-debug
/qemu-2.5.1$ ./configure --enable-sdl --enable-debug --enable-curses
Error: missing ncurses dev
$ sudo apt-cache search ncurses
libncurses5-dev
sudo apt-get install libncurses5-dev
Need to get 224 kB of archives.
After this operation, 1,089 kB of additional disk space will be used.
/qemu-2.5.1$ ./configure --enable-sdl --enable-debug --enable-curses
$ make
So geht es schneller, da nur für qemu-system-i386 compelliert wird.
/qemu-2.5.1$ ./configure --enable-sdl --enable-debug --enable-curses --target-list=i386-softmmu
/qemu-2.5.1$ sudo make install
Weiterhin gleiches Fehlverhalten. Debian (wheezy und stretch) in der VM auf arm-host rebootet jeweils wenn grub startet. Puppylinux 5.7 läuft jedoch, aber ist sehr langsam. Die Maus im Fenster hat sich nicht bewegt.
Diese Methode führte zu einem funktionierende Scanner-Betrieb auf dem Cubietruck.
Es wurden hier folgende Schritte durchgeführt:
Voraussetzung ist eine durchgelaufene Installation des Brother-Installationsvorgangs, wie beschrieben mit qemu i386 von Drucker und Scanner (auch wenn der Scanner nicht funktioniert).
Ein lubuntu 10.04 (long term support, CD-Version) wurde heruntergeladen. In dem Falle wurde eine USB-Installation ausgenutzt, dessen squashfs ausgelesen und in ein Verzeichnis kopiert.
Es wurden die benötigten Dateien von qemu unter /usr/bin, die auf dem Gastgebersystem bereits installiert waren in das gleiche Verzeichnis /usr/bin der chroot-Umgebnung kopiert.
Es wurde die Pfade proc, sys, pts mit der Option bind gemounted.
Es wurden Teile mit apt-get install beim Gastgeber nachinstalliert.
Es wurde die chroot-Umgebung gestartet und Teile mit apt-get install innerhalb der chroot-Umgebung nachinstalliert.
Es wurden die Komponenten mit allen Dateien zu dem Brother Drucker in ein Verzeichnis in der chroot-Umgebung heruntergeladen bzw. kopiert.
Der Installer von Brother wurde gestartet, lief erfolgreich durch und das Scannen funktioniert nun.
Achtung: Auf dem System Lubuntu 10.04 unter chroot darf kein wine installiert werden, da dabei lpr auf Grund von Abhängigkeitskonflikten deinstalliert wird und somit das System für Drucken zerschossen würde.
Zu Schritt 1:
Bei folgender Fehlerausgabe unter setzen eines Debug-Levels, wie im Beispiel angegeben, sollte es ebenfalls mit der Installation des Treibers funktionieren.
$ SANE_DEBUG_DLL=3 scanimage -L
[sanei_debug] Setting debug level of dll to 3.
[dll] sane_init: SANE dll backend version 1.0.13 from sane-backends 1.0.24
[dll] sane_init/read_dlld: using config directory `/etc/sane.d/dll.d'
[dll] add_backend: adding backend `hpaio'
…..
[dll] add_backend: adding backend `brother3'
[dll] sane_get_devices
[dll] load: searching backend `brother3' in `/usr/lib/arm-linux-gnueabihf/sane:/usr/lib/sane'
[dll] load: dlopen()ing `/usr/lib/sane/libsane-brother3.so.1'
[dll] load: dlopen() failed (/usr/lib/sane/libsane-brother3.so.1: cannot open shared object file: No such file or directory)
[dll] load: searching backend `hpaio' in `/usr/lib/arm-linux-gnueabihf/sane:/usr/lib/sane'
[dll] load: dlopen()ing `/usr/lib/sane/libsane-hpaio.so.1'
[dll] init: initializing backend `hpaio'
….
[dll] sane_get_devices: found 0 devices
No scanners were identified. If you were expecting something different,
check that the scanner is plugged in, turned on and detected by the
sane-find-scanner tool (if appropriate). Please read the documentation
which came with this software (README, FAQ, manpages).
[dll] sane_exit: exiting
[dll] sane_exit: calling backend `hpaio's exit function
…
[dll] sane_exit: finished
Zu Schritt 2:
Erst nachsehen, wo der Stick für das Einbinden (mount) zu finden wäre.
$ lsblk
# sda1 (output on cubietruck)
Den Stick Einbinden ist auf folgende zwei Methoden möglich.
# In case there is no automount running, you do it manually.
$ pmount /dev/sda1
# USB-stick path is now /media/sda
$ sudo mount /dev/sda1 /home/username/mypath
# USB-stick path is now /home/username/mypath
# Don't forget to create path with mkdir in advance
Auf dem Stick wird die Datei lubuntu-10.04.iso (500-600MB) für das weitere vorgehen benötigt. Diese Datei (Image) wird Eingebunden. In dieser eingebundenen Datei (Image) wird die darin enthaltene Datei dateiname.squashfs (500-600MB) eingebunden oder deren Dateien in ein Verzeichnis entpackt.
$ ls * | grep lubuntu
# lubuntu-10.04.iso
$ find . | grep lubuntu
# ./lubuntu-10.04.iso
$ sudo mount -o loop lubuntu-10.04.iso /home/username/mypath_iso
# mount: /dev/loop0 is write-protected, mounting read-only
# There you need the file squashfs
$ find . | grep squash
# ./casper/filesystem.squashfs
$ sudo mount -t squashfs -o loop filesystem.squashfs /home/username/mypath_squash
# Use -t squashfs. Then error message will tell you missing squashfs support.
# Now with sudo (or as root) you can now copy all files to an folder
# Look first how much GB you need on your drive!
$ sudo du --max-depth=1 /home/username/mypath_squash
# 1392292 /home/username/mypath_squash
# That will also need 1.4GB.
# With some additional installations it increased to nearly 1.9GB.
# It is recommended that on media is 4GB reserved for this project.
$ sudo cp –recursive /home/username/mypath_squash /home/mychroots/lubuntu10p04
Zu Schritt 3:
# Look for your qemu-files on your host system.
$ find /usr/bin | grep qemu | grep i386
# /usr/bin/qemu-system-i386
# /usr/bin/qemu-i386
# /usr/bin/qemu-i386-static
# Copy these files to your chroot /usr/sys
$ sudo cp /usr/bin/qemu-i386-static /home/mychroots/lubuntu10p04/usr/bin
Als weitere Option war auch daran gedacht worden unter qemu ein ganzes i386er Linux in einer virtuellen Umgebung zu betreiben. Bei unterschiedlichen Prozessor-Architekturen ist dies aber sehr langsam. Der Versuch ein Knoppix 7.2 zu booten dauerte zwischen zwei bis drei Stunden. Es war so langsam, dass es überhaupt nicht verwendet werden konnte.
https://fedoraproject.org/wiki/Using_UEFI_with_QEMU
http://www.gtkdb.de/index_7_2213.html
wget http://wiki.qemu.org/download/efi-bios.tar.bz2
tar xjf efi-bios.tar.bz2
qemu -bios bios.bin -L . -hda /media/sda1/home/Qemu/debian_wheezy_i386_standard.qcow2
Funktioniert nicht, schwarzes Fenster.
https://wiki.ubuntu.com/UEFI/OVMF
http://www.linux-kvm.org/downloads/lersek/ovmf-whitepaper-c770f8c.txt
Etwas später wurde folgendes gefunden:
https://wiki.debian.org/QemuUserEmulation
Installing the target C libraries with dpkg-cross
The target Debian package cannot be installed directly on the host, so we need to use dpkg-cross to "cross-install" the package.
For example purposes, let's assume the target system is "armel".
Install the dpkg-cross package:
# apt-get install dpkg-cross
Now download the target libc6 package from one of the Debian mirrors and install it using dpkg-cross:
# dpkg-cross -i -a arm libc6_<version>_armel.deb
Alternatively, you can install the libc6-dev-armhf-cross package from EmDebian:
# wget http://www.emdebian.org/debian/pool/main/g/glibc/libc6-armel-cross_2.7-18lenny6_all.deb
# dpkg -i libc6-armel-cross_2.7-18lenny6_all.deb
sudo service binfmt-support start
https://wiki.gentoo.org/wiki/Crossdev_qemu-static-user-chroot
https://www.plop.at/de/ploplinux/arm/crossbuildchroot.html
Hier arm unter x86 Architektur. Benötigt wird genau die umgekehrte Richtung.
https://wiki.archlinux.org/index.php/Raspberry_Pi#QEMU_chroot
https://github.com/AlbrechtL/RPi-QEMU-x86-wine
Nicht uninteressant. Raspi mit qemu+wine-Kombination.
https://help.ubuntu.com/community/BasicChroot
https://grinux.wordpress.com/2012/02/24/setting-up-a-network-inside-a-chroot/
In der chroot-Umgebung diese Datei editieren und den Wert vom Gastgebersystem übernehmen. Dann hat diese auch Internetverbindung und ins Netzwerk, z.B. den Drucker.
$ sudo mount -o bind /proc /home/i386/mnt3/qemu_chroot_i386/proc
$ sudo mount -o bind /sys /home/i386/mnt3/qemu_chroot_i386/sys
(Für Internet reicht meist nur /proc zu mounten.)
Zur Fehlermeldung „Can not write log, openpty() failed (/dev/pts not mounted?)“ spuckte die Suchmaschine im Internet aus, dass noch etwas gemountet werden muss:
$ sudo mount -o bind /dev/pts /home/i386/mnt3/qemu_chroot_i386/dev/pts
Danach funktionierten bei lxterminal auch die Tastatureingaben.
D-Bus library appears to be incorrectly set up; failed to read ... uuid: Failed to open "/var/lib/dbus/machine-id"
Somit ggf auch /var/lib/dbus ebenfalls mit der Option bin zu mounten.
$ cat /etc/resolv.conf
$ nano /etc/resolv.conf
https://wiki.ubuntuusers.de/QEMU/
Qemu Optionen und Verwendung von squashfs.
https://fedoraproject.org/wiki/How_to_use_qemu
http://wiki.qemu.org/download/qemu-doc.html
Creating squashfs:
http://elinux.org/Squash_FS_Howto
http://tldp.org/HOWTO/SquashFS-HOWTO/creatingandusing.html
Making it writeable:
As mentioned, another interesting use for SquashFS is with Unionfs filesystem, which provides copy-on-write semantics for the read-only file systems, enahancing the possibilities.
Create the ro.fs squashed file system and the rw.fs dir.
bash# mksquashfs /home/user1 ro.fs
bash# mkdir /home/rw.fs
Mount the squashed ro.fs file system using the loopback device
bash# mount -t squashfs ro.fs /mnt -o loop
mount the unionfs file system, that makes /mnt and /home/rw.fs apparently merged under /home/user1 location.
bash# cd /home
bash# mount -t unionfs -o dirs=rw.fs=rw:/mnt=ro unionfs user1
As you can see, now you can create new files in /home/user1.
Für UEFI/BIOS:
https://fedoraproject.org/wiki/Using_UEFI_with_QEMU
https://wiki.ubuntu.com/UEFI/OVMF
https://github.com/qemu/qemu/tree/master/pc-bios
https://forums.gentoo.org/viewtopic-p-7206924.html:
There's a (undocumented) -no-kvm CMDline switch.
Mit Hilfe von chroot ein defektes Linux reparieren:
For Old Releases with Ubuntu that apt-get is working again:
http://askubuntu.com/questions/91815/how-to-install-software-or-upgrade-from-an-old-unsupported-release
http://old-releases.ubuntu.com/releases/
https://wiki.ubuntuusers.de/sources.list/
Für die graphische Ausgaben unter chroot:
https://help.ubuntu.com/community/BasicChroot
Install xhost: Das war schon vorhanden (Komponente von x-server)
$ sudo apt-get install
xnest
(ca. 2,5MB zum Herunterladen)
$ sudo apt-get install metacity
Fehlermeldung im chroot:
@chroot@cubietruck $ sudo apt-get install xnest
Can not write log, openpty() failed (/dev/pts not mounted?)
(Reading database ... 81597 files and directories currently installed.)
Preparing to replace xserver-common 2:1.7.6-2ubuntu7 (using .../xserver-common_2%3a1.7.6-2ubuntu7.12_all.deb) ...
Unpacking replacement xserver-common ...
Selecting previously deselected package xnest.
$ apt-cache search xnest
sabayon - system administration tool to manage GNOME desktop settings
tsclient - front-end for viewing of remote desktops in GNOME
xoo - graphical wrapper around Xnest/Xephyr
xnest - Nested X server
xserver-xephyr - nested X server
https://awesome.naquadah.org/wiki/Using_Xephyr
https://help.ubuntu.com/community/BasicChroot
$ sudo apt-get install metacity
0 upgraded, 10 newly installed, 0 to remove and 8 not upgraded.
Need to get 24.0 MB of archives.
After this operation, 52.4 MB of additional disk space will be used.
https://help.ubuntu.com/community/DebootstrapChroot
Das Paket debootstrap erzeugt eine minimale chroot-Umgebung zur weiteren Verwendung.
Nachdem nun einiges experimentiert wurde, wurden noch ein paar Pakete nachgeladen in der chroot-Umgebung.
$ sudo apt-get update
($ sudo apt-get upgrade)
$ sudo apt-get install lpr
Wegen Fehlers beim Installieren mußte noch /dev/pts gemountet werden.
$ sudo apt-get purge lpr
$ sudo apt-get install lpr
$ sudo apt-get install cups
Hier gab es einen DBUS Fehler. Als diese Meldung kopiert werden sollte, verabschiedete sich der Rechner. Die Fenster gingen zu, die Leisten verschwanden. Der DBUS war weg.
$ sudo mount /dev/mmcblk0p5 /home/i386/mnt3
$ sudo mount -o bind /sys /home/i386/mnt3/qemu_chroot_i386/sys
$ sudo mount -o bind /proc /home/i386/mnt3/qemu_chroot_i386/proc
$ sudo mount -o bind /dev/pts /home/i386/mnt3/qemu_chroot_i386/dev/pts
$ xhost +
$ sudo chroot /home/i386/mnt3/qemu_chroot_i386/ /usr/bin/qemu-i386-static /bin/bash
@cubietruck:/# export DISPLAY=:0.0
sudo apt-get install sane
E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
$ sudo apt-get install sane sane-utils sanex
Was war hier nur passiert?
Setting up sane-utils (1.0.20-13ubuntu2) ...
Adding saned group and user...
Removing any system startup links for /etc/init.d/saned ...
In dem Fenster zeigt ls nichts mehr an.
$ sudo apt-get install tcl
@cubietruck:/home/dieterd/INSTALL/Brother795# bash linux-brprinter-installer-2.0.0-1
Input model name ->mfc-795
You are going to install following packages.
mfc795cwlpr-1.1.3-1.i386.deb
mfc795cwcupswrapper-1.1.3-1.i386.deb
brscan3-0.2.13-1.i386.deb
brscan-skey-0.2.4-1.i386.deb
OK? [y/N] ->y
dpkg -x mfc795cwlpr-1.1.3-1.i386.deb /
dpkg -x mfc795cwcupswrapper-1.1.3-1.i386.deb /
dpkg-deb: building package `mfc795cwlpr' in `mfc795cwlpr-1.1.3-1a.i386.deb'.
dpkg -b ./brother_driver_packdir mfc795cwlpr-1.1.3-1a.i386.deb
dpkg-deb: building package `mfc795cwcupswrapper' in `mfc795cwcupswrapper-1.1.3-1a.i386.deb'.
dpkg -b ./brother_driver_packdir mfc795cwcupswrapper-1.1.3-1a.i386.deb
dpkg -i --force-all mfc795cwlpr-1.1.3-1a.i386.deb
Selecting previously deselected package mfc795cwlpr.
(Reading database ... 83934 files and directories currently installed.)
Unpacking mfc795cwlpr (from mfc795cwlpr-1.1.3-1a.i386.deb) ...
Setting up mfc795cwlpr (1.1.3-1) ...
dpkg -i --force-all mfc795cwcupswrapper-1.1.3-1a.i386.deb
Selecting previously deselected package mfc795cwcupswrapper.
(Reading database ... 83957 files and directories currently installed.)
Unpacking mfc795cwcupswrapper (from mfc795cwcupswrapper-1.1.3-1a.i386.deb) ...
Setting up mfc795cwcupswrapper (1.1.3-1) ...
Stopping printer spooler: lpd [not running]
* Restarting Common Unix Printing System: cupsd
...done.
#
The security level of AppArmor has been lowered. (aa-complain cups)
aa-complain cupsd
Can't find system log.
Will you specify the Device URI? [Y/n] ->y
0: ipp
1: socket
2: http
3: lpd
4: scsi
5: smb
6 (I): Specify IP address.
7 (A): Auto. (usb://dev/usblp0)
select the number of destination Device URI. ->6
enter IP address ->192.168.43.128
lpadmin -p MFC795CW -v socket://192.168.43.128 -E
Test Print? [y/N] ->n
You are going to install following packages.
brscan3-0.2.13-1.i386.deb
dpkg -i --force-all brscan3-0.2.13-1.i386.deb
Selecting previously deselected package brscan3.
(Reading database ... 83961 files and directories currently installed.)
Unpacking brscan3 (from brscan3-0.2.13-1.i386.deb) ...
Setting up brscan3 (0.2.13-1) ...
You are going to install following packages.
brscan-skey-0.2.4-1.i386.deb
dpkg -i --force-all brscan-skey-0.2.4-1.i386.deb
Selecting previously deselected package brscan-skey.
(Reading database ... 83981 files and directories currently installed.)
Unpacking brscan-skey (from brscan-skey-0.2.4-1.i386.deb) ...
Setting up brscan-skey (0.2.4-1) ...
brsaneconfig3 -a name=MFC-795CW model=MFC-795CW ip=192.168.43.128
Hit Enter/Return key.
root@cubietruck:/home/dieterd/INSTALL/Brother795# scanimage -L
qemu: Unsupported syscall: 101
qemu: Unsupported syscall: 101
device `brother3:net1;dev0' is a Brother MFC-795CW MFC-795CW
root@cubietruck:/home/dieterd/INSTALL/Brother795# scanimage -L
qemu: Unsupported syscall: 101
qemu: Unsupported syscall: 101
device `brother3:net1;dev0' is a Brother MFC-795CW MFC-795CW
root@cubietruck:/home/dieterd/INSTALL/Brother795# man scanimage
root@cubietruck:/home/dieterd/INSTALL/Brother795# scanimage -d "brother3:net1;dev0" >image.pnm
scanimage: rounded value of br-x from 215.9 to 215.88
scanimage: rounded value of br-y from 355.6 to 355.567
Und nun funktionierte auch das Scannen.
Scannen in einem Zug von der Befehlszeile:
Vorbereitung:
#!/bin/bash
echo "Mount of Partition with i366 ubuntu"
sudo mount /dev/mmcblk0p5 /home/i386/mnt3
sleep 3
echo "Mount of further Partitions of Host for chroot."
sudo mount -o bind /sys /home/i386/mnt3/qemu_chroot_i386/sys
sleep 1
sudo mount -o bind /proc /home/i386/mnt3/qemu_chroot_i386/proc
sleep 1
sudo mount -o bind /dev/pts /home/i386/mnt3/qemu_chroot_i386/dev/pts
sleep 1
xhost +
sleep 1
Als eine Befehlszeile scannen:
sudo chroot /home/i386/mnt3/qemu_chroot_i386/ /usr/bin/qemu-i386-static /bin/bash -c '/usr/bin/scanimage -d "brother3:net1;dev0" -x 150 -y 210 > /home/dieterd/Pictures/Scanner/image_$(date +%Y%m%d_%H%M).pnm '
Beides könnte auch in ein Skript gepackt werden.
#!/bin/bash
sudo echo "Mount of Partition with i366 ubuntu" ; sudo mount /dev/mmcblk0p5 /home/i386/mnt3 ; sleep 3 ; echo "Mount of further Partitions of Host for chroot." ; sudo mount -o bind /sys /home/i386/mnt3/qemu_chroot_i386/sys ; sleep 1 ; sudo mount -o bind /proc /home/i386/mnt3/qemu_chroot_i386/proc ; sleep 1 ; sudo mount -o bind /dev/pts /home/i386/mnt3/qemu_chroot_i386/dev/pts ; sleep 1 ; xhost + ; sleep 1 ; chroot /home/i386/mnt3/qemu_chroot_i386/ /usr/bin/qemu-i386-static /bin/bash -c '/usr/bin/scanimage -d "brother3:net1;dev0" -x 150 -y 210 > /home/dieterd/Pictures/Scanner/image_$(date +%Y%m%d_%H%M).pnm '
Eine Liste von funktionierenden Anwendung unter der chroot-Umgebung.
Abiword,
lxterminal,
gparted,
xsane,
gnumeric,
xchat,
midori,
netsurf
gnumeric, funktioniert trotz der Fehlermeldungen:
process 4344: D-Bus library appears
to be incorrectly set up; failed to read machine uuid: Failed to open
"/var/lib/dbus/machine-id": No such file or directory
See
the manual page for dbus-uuidgen to correct this issue.
(/usr/bin/gnumeric:4344): Gdk-WARNING **: shmat failed: error 22
(Invalid argument)
Eine Liste von nicht funktionierenden Anwendung unter der chroot-Umgebung.
Firefox,
cromium-broser,
x-www-browser,
links2.
Folgender Fehler:
# firefox
process 24229: D-Bus library appears to be incorrectly set up; failed to read machine uuid: Failed to open "/var/lib/dbus/machine-id": No such file or directory
See the manual page for dbus-uuidgen to correct this issue.
Segmentation fault
sudo mount -o bind /var/lib/dbus /home/i386/mnt3/qemu_chroot_i386/var/lib/dbus
Dann bleibt nur noch der Segmentation fault übrig.
Ergänzungen in der chroot-Umgebung:
$ sudo apt-get install midori links2 netsurf
Ein Terminal, das auch Reiter zuläßt, wie auch kopieren und einfügen mit der Maus.
sudo apt-get install lxterminal
Need to get 1,221 kB of archives.
After this operation, 3,259 kB of additional disk space will be used.
Im Terminal kann nano und vim als einfache Editoren empfohlen werden.
sudo apt-get install dolphin
Need to get 2,447 kB of archives.
After this operation, 5,976 kB of additional disk space will be used.
Programm zur grafischen Dateien De/Komprimierung:
apt-get install ark
Need to get 342 kB of archives.
After this operation, 1,074 kB of additional disk space will be used.
$ sudo apt-get install konqueror
0 upgraded, 5 newly installed, 0 to remove and 7 not upgraded.
Need to get 1,859 kB of archives.
After this operation, 4,847 kB of additional disk space will be used.
Installiert wird der Medienabspieler für die Verwendung auf der Konsole mit:
sudo apt-get install mplayer
Installiert wird der Medienabspieler für die Verwendung auf der graphischen Oberfläche mit:
sudo apt-get install gnome-mplayer
Einstellungen und Konfigurationsfiles sind zu finden unter:
/home/dieterd/.mplayer/
cat /home/dieterd/.mplayer/config
# Write your default config options here!
# set volume (prevent from shocking full volume at start)
volume=28
# set equalizer
# Possible: [Mixer] No hardware mixing, inserting volume filter.
#af=equalizer=2:1:0:0:0:0:0:0:0:0
Wegen der Meldung Failed to open /home/dieterd/.mplayer/input.conf wurde die Datei in input.conf umbenannt. Da die vorherige Datei die einzige Datei in dem Verzeichnis war, wurden die Einstellungen wohl trotzdem angenommen.
Zuerst wurde die Datei gefunden und verwendet. Nach einem Update/Upgrade und Einstellungen unter gnome-mplayer Menu gab es eine Fehlermeldung, dass diese Datei nicht gefunden wurde:
/home/dieterd/.mplayer/input.conf.
/home/dieterd/.config/gnome-mplayer/
Beispielaufrufe mit Optionen:
mplayer --af=equalizer=2:1:0:0:0:0:0:0:0:0,volume=50
mplayer --ao=help
MPlayer2 2.0-728-g2c378c7-4+b1 (C) 2000-2012 MPlayer Team
Available audio output drivers:
pulse PulseAudio audio output
alsa ALSA-0.9.x-1.x audio output
oss OSS/ioctl audio output
jack JACK audio output
sdl SDLlib audio output
v4l2 V4L2 MPEG Audio Decoder output
null Null audio output
pcm RAW PCM/WAVE file writer audio output
oss: geht nicht - [AO OSS] audio_setup: Can't open audio device /dev/dsp: No such file or directory
--> d.h. kein oss-alsa-wrapper installiert.
alsa: funktioniert
AO: [pulse] Init failed: Connection refused
[JACK] cannot open server
sdl: funktionierte
Failed to initialize audio driver 'v4l2'
Beispiel eines kleinen Scripts zum Internet-Radio hören und einer einfachen Auswahl von Sendern.
cat /home/username/tools/radio_01.sh
#! /bin/bash
dummy="n"
while [ $dummy != "q" ] ; do
echo "Select Radio Stream"
echo "1: "
echo "2: "
echo "3: "
echo "q: quit"
read dummy
case $dummy in
q) echo "quit select" ; exit
;;
1) mplayer -playlist http://dir.xiph.org/listen/1685349/listen.m3u
;;
2) mplayer -playlist http://dir.xiph.org/listen/1685348/listen.m3u
;;
3) mplayer -playlist http://dir.xiph.org/listen/1685353/listen.m3u
;;
esac
done
Streams verschiedener Codecs sind zum Beispiel zu finden unter unten angegebenen Link. Ein Nachteil ist jedoch, dass jedes mal wenn die Rangliste erneuert wird, diese Links nicht mehr funktionieren. Praktisch ist jedoch, dass mit einer geeigneter Suche gezielt nach Streams mit nur 32kbit (AAC+) gesucht werden kann. Für Unterwegs mit einem Smartphone und bereits verbrauchten High-Speed-Traffic Guthaben ist das sehr praktisch.
http://dir.xiph.org/by_format/AAC+
http://dir.xiph.org/by_format/Ogg_Vorbis
Anbei ein kleines Script zum zufälligen Abspielen von Mediendateien. Über Tastaturkürzel können Dateien auch in andere Dateiordner verschoben werden, um zum Beispiel die Dateien zu sortieren.
cat home/username/tools/mplay_random_02.sh
#!/bin/bash
IFS_SIK=IFS ; IFS=$'\t\n' ; echo "how many days ago (max)?" ; read bb ; if [ -z "$bb" ] ; then bb=99999999; echo $bb;fi; echo "how many days ago (min)?" ; read bbmin ; if [ -z "$bbmin" ] ; then bbmin=-1; echo $bbmin;fi; echo "how many files to skip?" ; read b ; if [ -z "$b" ] ; then b=0; echo $b;fi;
a=0 ; for i in $(for j in $(find . "$1" "$2" -type f -mtime -$bb -size +600k | grep -v "jpg$" | grep -v "JPG$" | sort); do echo $(find "$j" -type f -mtime +$bbmin); done ); do let a=$a+1; echo $a " " $i ; if [ "$a" -gt "$b" ] ; then
echo $a " " $i ;
# vidarray["$(echo $a)"]="$(echo $i)" ;
vidarray["$a"]="$i" ;
echo ${vidarray["$a"]} ;
fi ; done
echo "number of files: " $a;
for iii in $(seq 1 200) ; do
kk=$(($RANDOM % $a + 1)) ; echo "random: " $kk;
i=${vidarray[$kk]};
# mplayer options for video:
# - for armbian & cubietruck use „-vo sdl“
# - for armbian & cubietruck works too „-vo x11“ but some codecs no fullscreen
# mplayer -vo xv -geometry 0:0 -fs "$i" ; echo $a " " $kk " " $i ; echo "press key for actions";
mplayer -vo sdl -geometry 0:0 -fs "$i" ; echo $a " " $kk " " $i ; echo "press key for actions";
# mplayer -vo xv -geometry 0:0 -fs $i ; echo $a " " $i ; echo "press key for actions";
read -t 2 -n 1 dd;
if [ "$dd" -eq "1" ] ; then b=$(($a+10));fi;
if [ "$dd" -eq "2" ] ; then b=$(($a+20));fi;
if [ "$dd" -eq "3" ] ; then b=$(($a+50));fi;
if [ "$dd" -eq "4" ] ; then b=$(($a+100));fi;
if [ "$dd" = "z" ] ; then exit ;fi;
if [ "$dd" = "k" ] ; then konqueror -select "$i" ;fi;
if [ "$dd" = "d" ] ; then dolphin -select "$i" ;fi;
if [ "$dd" = "p" ] ; then echo "hit key to continue"; read -n 1 dummy ;fi;
if [ "$dd" = "c" ] ; then echo "change category"; read catgor ;
if [ "$catgor" = "m" ] ; then echo "m selected - hit key to continue";
read -n 1 dummy ;
ii=$(echo $i | sed -e "s/\./\.\/categogorie01/" ) ; mkdir -p $(dirname $ii); mv $i $ii ;
fi;
if [ "$catgor" = "n" ] ; then echo "n selected - hit key to continue";
read -n 1 dummy ;
ii=$(echo $i | sed -e "s/\./\.\/categorie02/" ) ; mkdir -p $(dirname $ii); mv $i $ii ;
fi;
if [ "$catgor" = "mn" ] ; then echo "mn selected - hit key to continue";
read -n 1 dummy ;
ii=$(echo $i | sed -e "s/\./\.\/categorie03/" ) ; mkdir -p $(dirname $ii); mv $i $ii ;
fi;
fi;
# fi ;
done ; IFS=IFS_SIK
Anbei ein ähnliches Skript zum sortierten Abspielen von Mediendateien. Man kann auch einen Teil der Dateien durch Tastatureingaben überspringen.
cat home/username/tools/mplay_all_05.sh
!/bin/bash
IFS_SIK=IFS ; IFS=$'\t\n' ; echo "how many days ago (max)?" ; read bb ; if [ -z "$bb" ] ; then bb=99999999; echo $bb;fi; echo "how many days ago (min)?" ; read bbmin ; if [ -z "$bbmin" ] ; then bbmin=-1; echo $bbmin;fi; echo "how many files to skip?" ; read b ; if [ -z "$b" ] ; then b=0; echo $b;fi;
a=0 ; for i in $(for j in $(find -type f -mtime -$bb -size +600k | grep -v "jpg$" | grep -v "JPG$" | sort); do echo $(find "$j" -type f -mtime +$bbmin); done ); do let a=$a+1; echo $a " " $i ; if [ "$a" -gt "$b" ] ; then
mplayer -vo xv -geometry 0:0 -fs $i ; echo $a " " $i ; echo "press key for actions";
read -t 2 -n 1 dd;
if [ "$dd" -eq "1" ] ; then b=$(($a+10));fi;
if [ "$dd" -eq "2" ] ; then b=$(($a+20));fi;
if [ "$dd" -eq "3" ] ; then b=$(($a+50));fi;
if [ "$dd" -eq "4" ] ; then b=$(($a+100));fi;
if [ "$dd" = "z" ] ; then exit ;fi;
if [ "$dd" = "k" ] ; then konqueror -select "$i" ;fi;
if [ "$dd" = "d" ] ; then dolphin -select "$i" ;fi;
if [ "$dd" = "p" ] ; then echo "hit key to continue"; read -n 1 dummy ;fi;
if [ "$dd" = "c" ] ; then echo "change category"; read catgor ;
if [ "$catgor" = "m" ] ; then echo "m selected - hit key to continue";
read -n 1 dummy ;
ii=$(echo $i | sed -e "s/\./\.\/m/" ) ; mkdir -p $(dirname $ii); mv $i $ii ;
fi;
if [ "$catgor" = "n" ] ; then echo "n selected - hit key to continue";
read -n 1 dummy ;
ii=$(echo $i | sed -e "s/\./\.\/n/" ) ; mkdir -p $(dirname $ii); mv $i $ii ;
fi;
if [ "$catgor" = "mn" ] ; then echo "mn selected - hit key to continue";
read -n 1 dummy ;
ii=$(echo $i | sed -e "s/\./\.\/mn/" ) ; mkdir -p $(dirname $ii); mv $i $ii ;
fi;
fi;
fi ; done ; IFS=IFS_SIK
Anzeige des Spannung und des Stromverbrauchs:
cat /sys/power/axp_pmu/ac/
amperage connected used voltage
$ cat /sys/power/axp_pmu/ac/*
$ cat /sys/devices/platform/soc@01c00000/1c2ac00.i2c/i2c-0/0-0034/ac/amperage
$ cat /sys/power/axp_pmu/ac/amperage
$ cat /sys/power/axp_pmu/ac/voltage
Anzeige der Temperaturen:
cat /sys/class/hwmon/hwmon0/device/hwmon/hwmon0/temp1_input
cat /sys/devices/virtual/thermal/thermal_zone0/temp
33700
Oder Ausgabe über Durchsuche der Verzeichnisse:
for i in $(sudo find /sys | grep amper) ; do cat "$i" ; done
for i in $(sudo find /sys | grep temp) ; do cat "$i" ; done
for i in $(sudo find /sys | grep volt | grep "/ac\|/pmu" ) ; do echo "$i" ; cat "$i" ; done
Ausgaben nach dem Login:
/etc/update-motd.d
bash /etc/update-motd.d/30-sysinfo
Alle Ausgaben auf einmal:
$ cat /sys/power/axp_pmu/ac/amperage /sys/power/axp_pmu/ac/voltage /sys/devices/virtual/thermal/thermal_zone0/temp
Ausgabe der aktuellen Leistung in mW:
$ echo $(( $(cat /sys/power/axp_pmu/ac/amperage) * $(cat /sys/power/axp_pmu/ac/voltage) / 1000 / 1000 /1000 ))
Ausgabe: 1470
Mit einem Leistungsmessgerät (KD 302 von www.reichelt.de) wurden ein Verbrauch von maximal 4,1W beim Booten und sonst meist Werte um 2,6...3.1 Watt inklusive Netzteilverluste (Ladegerät eines Smartphone von ZTE ) gemessen.
$ for i in $(seq 1 1000 ) ; do Ivss=$(cat /sys/power/axp_pmu/ac/amperage) ; Uvss=$(cat /sys/power/axp_pmu/ac/voltage) ;Tcpu=$(cat /sys/devices/virtual/thermal/thermal_zone0/temp) ; echo $Ivss $Uvss $Tcpu $(( $Ivss * $Uvss / 1000 / 1000 /1000 )) $(date +%Y%m%d_%H%M%S) $i ; done | tee -a Power_Output_$(date +%Y%m%d_%H%M%).txt
# Ausgabebeispiel
361875 4763400 39200 1723 20170309_075512 31
265625 4739600 39200 1258 20170309_075513 32
256250 4695400 39200 1203 20170309_075513 33
348125 4758300 39200 1656 20170309_075513 34
260000 4736200 39200 1231 20170309_075514 35
313750 4743000 39200 1488 20170309_075514 36
290625 4698800 39200 1365 20170309_075514 37
312500 4751500 38700 1484 20170309_075515 38
Anzumerken wäre noch, dass der Stromverbrauch der USB-Geräte am USB-Anschluss hier nicht mit erfaßt wird.
http://raspberry.tips/raspi-media-center/osmc-vs-openelec-unterschiede-der-raspberry-pi-media-center-betriebssysteme/
Die Auswahl des richtigen Systems solltet ihr daher an euren persönlichen Anforderungen fest machen:
Wollt ihr ein integriertes System das schnell läuft, einfach zu bedienen ist, eine große Community hat aber dafür keine tieferen Eingriffe ins System zulässt dann seit ihr bei OpenELEC genau richtig.
Wollt ihr ein System mit leichtgewichtiger Oberfläche das zusätzliche Funktionen und Customizing bis in die Linux tiefen ohne Hürden zulässt (was u.U. Probleme mit sich bringt) dann solltet ihr euch für OSMC entscheiden.
$ sudo apt-get install kodi
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
kodi : Depends: kodi-bin (>= 16.1+dfsg1-1) but it is not going to be installed
Depends: kodi-bin (< 16.1+dfsg1-1.1~) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
Bei mplayer (ist bereits installiert) gab es eine ähnliche Fehlermeldung. Es kann daran liegen, dass auch die Repositories von „unstable“ und „testing“ eingebunden wurden.
$ sudo apt-get install dragonplayer
Need to get 414 kB of archives.
After this operation, 838 kB of additional disk space will be used.
Get:1 http://httpredir.debian.org/debian/ jessie/main dragonplayer armhf 4:4
Installation eines Programms für die Zählung des Datenverkehrs, das wenig Ressourcen beansprucht.
"sudo apt-get install vnstat"
vnstat -l -i wlan0
Zeigt den aktuellen Datenverkehr über das WLAN an.
vnstat -h -i wlan0
Gibt den Datenverkehr der letzten 24h aus.
vnstat -m -i wlan0
Gibt den Datenverkehr der letzten 12 Monate aus. Das ist eine gute Möglichkeit zu prüfen, ob das Gerät auch genutzt wurde oder nur herumlag.
cat /home/username/tools/vnstat_01.sh
#!/bin/bash
finish="n"
while [ $finish != "q" ]; do
echo 'vnstat MENUE'
echo '2: vnstat -h -i wlan0'
echo '3: vnstat -d -i wlan0'
echo '4: vnstat -m -i wlan0'
echo '5: vnstat -l -i eth0'
echo '6: vnstat -l -i eth0'
echo '7: vnstat -l -i eth0'
echo '8: vnstat -l -i eth0'
echo 'q: Quit'
read aa
case $aa in
q) finish="q"
exit
;;
Q) finish="q"
exit
;;
1) vnstat -l -i wlan0
;;
2) vnstat -h -i wlan0
;;
3) vnstat -d -i wlan0
;;
4) vnstat -m -i wlan0
;;
5) vnstat -l -i eth0
;;
6) vnstat -h -i eth0
;;
7) vnstat -d -i eth0
;;
8) vnstat -m -i eth0
;;
esac
done
Beispiel einer stündlichen Ausgabe von vnstat in eine Datei:
Hierzu lege man unter /etc/cron.hourly eine Datei vnstat (mit den Rechten -rwxr-xr-x, bzw. chmod 755) mit folgendem Inhalt an:
#!/bin/sh
vnstat -h -i wlan0 >> /home/dieterd/INSTALL/vnstat_hourly_$(date +%Y%m%d_%H%M).txt
sudo apt-get install ftp
Need to get 51.6 kB of archives.
After this operation, 124 kB of additional disk space will be used.
sudo apt-get install telnet
Need to get 63.8 kB of archives.
After this operation, 131 kB of additional disk space will be used.
sudo apt-get install filezilla
Need to get 8,066 kB of archives.
After this operation, 26.8 MB of additional disk space will be used.
Installation eines einfachen IRC-Clients zum Chatten unter Nutzung bekannter Servern, wie zum Beispiel freenode.
sudo apt-get install xchat
Need to get 832 kB of archives.
After this operation, 4,021 kB of additional disk space will be used.
Installation einen Anonymisierungsdienstes für das Internet zum Testen.
Um diesen Service zu nutzen ist es notwendig einen Proxy einzurichten.
$ sudo apt-get install tor
0 upgraded, 1 newly installed, 0 to remove and 9 not upgraded.
Need to get 1,065 kB of archives.
After this operation, 2,282 kB of additional disk space will be used.
Unter der Arm-Architektur gibt es von Tor-Projekt noch keinen Browser mit Tor als fertiges Paketbündel. Somit geht dies nur manuell über:
apt-get install tor.
setup Firefox (or any browser): proxy localhost:9050.
A user agent switcher (so you can fake the tbb)
Tor button to easily turn the proxy on/off
noscript
and change your ff settings to kill everthing on browser exit
Unter dem Firefox kann auch ein weiteres Profil zum Surfen mit Tor angelegt werden. Alle Einstellungen sind nur unter diesem Profil vorhanden.
Bei folgendem Befehl wird die Profileverwaltung des Firefox vor dem Start aufgerufen und zum Beispiel ein Profil TorUser eingerichtet. Die Option "--no-remote" erlaubt die Nutzung einer zweiten Firefox-Instanz parallel zu verwenden.
$ firefox --no-remote -Profilemanager
Aufgerufen werden kann der Browser über folgenden Befehl auf der Konsole. Es ist auch möglich ein Ikon zum Anklicken auf dem Desktop anzulegen.
$ firefox --no-remote -Profil TorUser
$ torify curl 'http://api.ipify.org'
dieterd@cubietruck:~$ torify curl 'https://api.ipify.org'
/usr/bin/torify: torsocks not found in your PATH. Perhaps it isn't installed? (tsocks is no longer supported, for security reasons.)
dieterd@cubietruck:~$ sudo apt-get install torsocks
0 upgraded, 1 newly installed, 0 to remove and 9 not upgraded.
Need to get 58.5 kB of archives.
After this operation, 266 kB of additional disk space will be used.
/etc/tor/torrc
# uncomment theses lines:
ControlPort 9051 # <--- uncomment this ControlPort line
CookieAuthentication 1 #either uncomment this or below HashedControlPassword line
Nach diesen Änderungen funktionierte es. Wenn mit Abstand von einigen Sekunden nachfolgender Befehl eingegeben wird, läßt sich gut beobachten, dass die IP permanent gewechselt wird.
$ torify curl 'http://api.ipify.org' ; echo
109.201.133.100
Manuelle Konfiguration des Firefox Browsers
Beim Firefox unter about:preferences#advanced den Proxy-Port 9050 eintragen:
Interessanterweise gibt es auch eine Onion-Version von facebook im deep net (dark net).
facebookcorewwwi.onion
Die Aufgabe des "deep net" ist es Personenkreise den Zugang zu Informationen zu bieten, die Aufgrund der dortigen Regime auf anderem Wege nicht möglich sind oder im Hinblick auf die Aufgabe von Langwellen, Mittelwellen oder Kurzwellensendern in modernen Staaten vermehrt nicht mehr erhältlich sein wird. Länder oder Landgegenden ohne IT-Infrastruktur können nicht auf das deep net ausweichen.
Es tummelt sich in diesem Netz auch viel Müll und Illegales, das kurz als SCAM bezeichnet wird. Die Ausgabe folgenden Links gibt eine kurze Übersicht aus, aus der sich das Spektrum ganz gut erahnen läßt.
Irgendetwas herunterzuladen sollte man nicht versuchen, wenn man sich nichts einfangen möchte. Um das Risiko zu minimieren, sollte man einen textbasierten Browser, wie w3m verwenden. Somit fällt schon einmal eine Vielzahl von Möglichkeiten weg über präparierte Bilder oder sonstige eingebetteten Inhalte erfolgreich angegriffen zu werden.
Im Internet: w3m https://onion.cab/list.php
Im deep net: torify w3m http://besthqdirnimrgpj.onion/
Ohne tiefere Computerkenntnisse (z.B. entfernen von root-kits) sollte in dieses Netz nicht tiefer "eingetaucht" werden. Ein Raspberry Pi 2 mit einer extra für diese Zwecke bereitgehaltenen SD-Karte könnte noch verwendet werden. In dem Falle empfiehlt es sich diese SD-Karte nie mit anderen Rechnern zu verbinden. Andere verwenden einen alten Rechner mit einer Life-File-Linux-CD, ausgebauten Festplatten und alten Grafikkarten (4-32 MB). Immer sollten auch anderer Geräte vom LAN/WLAN getrennt werden um das Risiko zu minimieren sich Ungewolltes auf dem Rechner einzufangen.
Die Anleitung für die Installation von "skype" findet sich unter:
https://gist.github.com/suihkulokki/5ec419bed75f11feb78f
# STEP 1
# Folgende Schritte wurden bereits bei der Druckertreiberinstallation durchgeführt.
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install wget qemu-user-stativ libc6:i386
# STEP 2
# Herunterladen der Installationsdateien.
wget -O skype-install.deb http://www.skype.com/go/getskype-linux-deb
# Mit der Option "-c" kan nach einer Unterbrechung kann wieder fortgesetzt werden.
wget -c -O skype-install.deb http://www.skype.com/go/getskype-linux-deb
# Mit "trickle" kann die Datenrate des Datenverkehrs begrenzt werden.
# trickle -d 2 wget -c -O skype-install.deb http://www.skype.com/go/getskype-linux-deb
sudo dpkg -i skype-install.deb
sudo apt-get -f install
qemu-i386-static /usr/bin/skype --help
# Skype 4.3.0.37 startet.
$ sudo dpkg -i skype-install.deb
[sudo] password for dieterd:
Selecting previously unselected package skype.
(Reading database ... 124700 files and directories currently installed.)
Preparing to unpack skype-install.deb ...
Unpacking skype (4.3.0.37-1) ...
dpkg: dependency problems prevent configuration of skype:
skype depends on libqt4-dbus (>= 4:4.5.3).
skype depends on libqt4-network (>= 4:4.8.0).
skype depends on libqt4-xml (>= 4:4.5.3).
skype depends on libqtcore4 (>= 4:4.7.0~beta1).
skype depends on libqtgui4 (>= 4:4.8.0).
skype depends on libqtwebkit4 (>= 2.1.0~2011week13).
skype depends on libstdc++6 (>= 4.2.1).
skype depends on libx11-6.
skype depends on libxext6.
skype depends on libxss1.
skype depends on libxv1.
skype depends on libssl1.0.0.
skype depends on libpulse0.
skype depends on libasound2-plugins.
dpkg: error processing package skype (--install):
dependency problems - leaving unconfigured
Processing triggers for dbus (1.8.20-0+deb8u1) ...
Processing triggers for desktop-file-utils (0.22-1) ...
Processing triggers for mime-support (3.58) ...
Processing triggers for hicolor-icon-theme (0.13-1) ...
Errors were encountered while processing:
skype
$ sudo apt-get -f install
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following packages will be REMOVED:
skype:i386
0 upgraded, 0 newly installed, 1 to remove and 12 not upgraded.
1 not fully installed or removed.
After this operation, 44.3 MB disk space will be freed.
Do you want to continue? [Y/n]
sudo apt-get install libc6:i386 libqt4-dbus:i386 libqt4-network:i386 libqt4-xml:i386 libqtcore4:i386 libqtgui4:i386 libqtwebkit4:i386 libstdc++6:i386 libx11-6:i386 libxext6:i386 libxss1:i386 libxv1:i386 libssl1.0.0:i386 libpulse0:i386 libasound2-plugins:i386
Package libasound2-plugins:i386 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
.....
Package libqt4-dbus:i386 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
However the following packages replace it:
qdbus libqtdbus4
Package libqtcore4:i386 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
However the following packages replace it:
qtchooser qtcore4-l10n
.....
E: Package 'libqt4-dbus:i386' has no installation candidate
.....
E: Package 'libasound2-plugins:i386' has no installation candidate
Die Abhängigkeiten konnten nicht aufgelöst werden. Ein Lösungsversuch über eine chroot-Umgebung i386-Architektur wäre eine weitere Möglichkeit.
Um das Netzwerk zu scannen, wurde nmap installiert mittels "sudo apt-get install nmap".
Interessant war, dass manchmal der Port 1352 als offen beim Smartphone ausgegeben wurde.
$ nmap 192.168.xxx.xxx
PORT STATE SERVICE
53/tcp open domain
1352/tcp filtered lotusnotes
Das Ergebnis ist aber nur selten reproduzierbar.
Um den Netzwerkverkehr sehen zu können, wurde etherape installiert mittels
"sudo apt-get install etherape".
Das Startmenü erhielt eine weitere Auswahl "Systemtools" unter dem sich etherape befindet. Erst nach einem Neustart befand sich dort auch etherape (root), welches erst funktioniert, nachdem beim Aufruf die Passworteingabe erfolgte um Zugriff auf das WLAN zu erhalten. Unter der minimalen Installation der graphischen Oberfläche xfce wurde die zusätzliche Auswahl etherape(root) nicht beim normalen Nutzer angelegt. Die andere Methode war die Eingabe von "sudo etherape" im Terminal, die hier natürlich funktionierte.
Beim Surfen in Internet empfehle ich „etherape“ parallel laufen zu lassen und zuzuschauen, welche Verbindungen beim Aufrufen von wenigen Seiten hier auftauchen. Sehr schön zu sehen finde ich dabei, wie viele Querverbindungen die Scripte auf den Seiten zur Nutzeranalyse von Seiten google, facebook, und alle anderen Anbieter solcher Leistungen auftauchen.
Installation eines Datenverkehrbegrenzungsprogramms auf der Konsolenebene für zum Beispiel einzelne Aktionen mit wget oder apt-get.
"sudo apt-get install trickle"
Need to get 35.7 kB of archives.
After this operation, 134 kB of additional disk space will be used.
"trickle -d 3 -u 1 sudo apt-get install iceweasel"
"sudo trickle -d 3 -u 1 sudo apt-get install iceweasel"
"sudo trickle -d 3 -u 1 apt-get install iceweasel"
Das scheint nur bedingt zu funktionieren. Vermutlich geht es nach einem Neustart besser.
"sudo trickle -d 6 -u 2 apt-get install iceweasel"
Die Verwendung von trickle führt zu häufigeren Wiederaufnahmen des Ladevorganges. Die Datenrate schwankt relativ stark, so dass man meint die Begrenzung funktioniert nicht. Aber es läßt sich unter Verwendung eines mobilen GSM-Netz (G2-Mode mit 56/64 kbit/s) hier merklich besser parallel surfen.
Zwischen den Programmen (Abiword und LibreOffice) und Dateitypen (Abiword) bleibt der Text zwar erhalten, aber die Nummerierungen der Kapitel geht verloren. Somit sollten die umfangreicheren Texte besser mit LibreOffice geschrieben werden. Der Vorteil von Abiword ist, dass es weniger Ressourcen benötigt und noch ein paar weitere seltenere Datei-Typen konvertieren kann.
sudo apt-get install libreoffice-help-de
http://extensions.libreoffice.org/extension-center/german-de-de-frami-dictionaries
dict-de_de-frami_2015-12-28.oxt
Unter dem Reiter Tools mit Extensionsmanager die Datei auswählen zum Installieren für LibreOffice. Bei Freigabe für alle Nutzer sind Adminrechte erforderlich. Daher wird empfohlen diese nur für den Nutzer auszuwählen. In dem Falle werden diese Dateien in dessen Profilverzeichnis gespeichert.
Werkzeug zur Bearbeitung von PDF-Dokumenten:
sudo apt-get install pdftk
Need to get 8,434 kB of archives.
After this operation, 39.8 MB of additional disk space will be used.
for i in 2016_ScannedPage_0*.png ; do convert $i $i.pdf ; done
pdftk 2016_ScannedPage_0*".pdf" cat output 2016_ScannedPagesAll.pdf
Erweiterung um unter LibreOffice PDF einzulesen und bearbeiten zu können.
$ sudo apt-get install libreoffice-pdfimport
0 upgraded, 1 newly installed, 0 to remove and 8 not upgraded.
Need to get 255 kB of archives.
After this operation, 524 kB of additional disk space will be used.
Abiword war aus irgendeinem Grund nach mehreren updates und upgrades nach einem halben Jahr verschwunden und wurde wieder installiert.
$ sudo apt-get install abiword
0 upgraded, 25 newly installed, 0 to remove and 8 not upgraded.
Need to get 10.0 MB/10.1 MB of archives.
After this operation, 44.6 MB of additional disk space will be used.
LibreOffice:
Vom Extensions-Center LibreOffice wurden verschiedene Erweiterungen installiert.
Unter tools > Extension Manager können Erweiterungen ergänzt werden. Ausgewählt und Heruntergeladen in ein Verzeichnis können diese unter folgenden Link:
http://extensions.libreoffice.org/extension-center
Ausgewählt wurde:
TexMaths, a LaTeX equation editor for LibreOffice
MultiDiff, issue LibreOffice documents in several formats. eLAIX converts your Writer documents into ILIAS learning modules and ebooks (ePUB 3).
Writer2xhtml is a collection of export filters to EPUB, HTML5, XHTML and XHTML+MathML
Writer2LaTeX provides Writer export filters for LaTeX and BibTeX.
Es gab hier noch ein Problem mit der Java-Installation, siehe unter Trouble/Problemlösungen.
$ sudo apt-get install libreoffice-writer2latex
The following NEW packages will be installed:
libreoffice-writer2latex
0 upgraded, 1 newly installed, 0 to remove and 12 not upgraded.
Need to get 383 kB of archives.
After this operation, 566 kB of additional disk space will be used.
$ sudo apt-get install libreoffice-writer2xhtml
The following NEW packages will be installed:
libreoffice-writer2xhtml
0 upgraded, 1 newly installed, 0 to remove and 12 not upgraded.
Need to get 301 kB of archives.
After this operation, 497 kB of additional disk space will be used.
sudo apt-get install imagemagick
Need to get 668 kB of archives.
After this operation, 799 kB of additional disk space will be used.
Die Konvertierung von Bildern auf der Konsole werden mit dem Befehl „convert“ aufgerufen.
convert $fname.tiff $fname.jpg ;
convert -quality 30 -resize 70% $fname.tiff "$fname"_min.jpg
convert -quality 30 $fname.tiff "$fname"_min.jpg
convert "$fname"_min.jpg "$fname"_min.pdf
Anwendung für Bilder-Show:
$ sudo apt-get install gwenview
0 upgraded, 3 newly installed, 0 to remove and 8 not upgraded.
Need to get 2,959 kB of archives.
After this operation, 4,365 kB of additional disk space will be used.
Wenn sich die Bilder in Unterordner befinden, können mit folgenden Script diese als Link in dem darüber liegenden Verzeichnis aufgerufen werden:
$ find -type d | sort
.
./102_Rol
./102_Rol_02
./103_Fj
./104_Fj
./105_Fj
In dem Falle wird ein Verzeichnis ausgeblendet und zusätzlich bereits vorhandene gleiche Links vorher entfernt.
$ for i in $(find . -type f | grep -v "102_Rol/D") ; do a=$(echo $i | sed -e "s/\.\///g" | sed -e "s/\//_/g" ) ; echo $i " " $a ; unlink $a ; ln --symbolic $i $a ; done
Für die Bilder-Show entferne man einfach die Links der nicht zu zeigenden Bilder. Diese Links können in ein anderes Verzeichnis zur Archivierung geschoben werden und bei Bedarf jederzeit wieder geholt werden. Somit können ohne nennenswerten zusätzlichen Platzbedarf verschiedene Auswahlen für die Bilder-Show abgelegt werden.
$ sudo apt-get install fgallery
0 upgraded, 5 newly installed, 0 to remove and 7 not upgraded.
Need to get 2,771 kB of archives.
After this operation, 13.6 MB of additional disk space will be used.
error: cannot run "tificc" or "tificc2" (check if liblcms2-utils is installed)
On Debian/Ubuntu, you can install all the required dependencies with:
sudo apt-get install imagemagick exiftran zip liblcms2-utils
sudo apt-get install libimage-exiftool-perl libcpanel-json-xs-perl
(Lit: https://www.thregr.org/~wavexx/software/fgallery/)
$ sudo apt-get install imagemagick exiftran zip liblcms2-utils
0 upgraded, 1 newly installed, 0 to remove and 7 not upgraded.
Need to get 42.7 kB of archives.
After this operation, 153 kB of additional disk space will be used.
$ sudo apt-get install libimage-exiftool-perl libcpanel-json-xs-perl
0 upgraded, 1 newly installed, 0 to remove and 7 not upgraded.
Need to get 89.4 kB of archives.
After this operation, 258 kB of additional disk space will be used.
Skript zur Verarbeitung von eingescannten Dateien:
# Konvertieren zu größenreduzierten jpg-Dateien:
for i in $( ls * | grep ".pnm" | grep -v ".red.") ; do echo $i ; convert $i -quality 25% $i".red".q25.jpg ; done
# Konvertieren zu pdf-Dateien mit Rand:
for i in $( ls * | grep ".pnm" | grep ".red." | grep -v "pdf") ; do echo $i ; convert $i -border 30 $i".red".q25.b.pdf ; done
# Alle Dateien in eine pdf-Datei zusammenfassen:
pdftk *b.pdf cat output combined_border.pdf
Ein Mathematikprogramm, das auch Aufgaben mit Variablen lösen kann.
sudo apt-get install wxmaxima
Need to get 11.1 MB of archives.
After this operation, 52.8 MB of additional disk space will be used.
Es wird hierbei auch die Anwendung gnuplot mit installiert, die graphische Diagramme auf dem Bildschirm ausgeben kann.
Für die Anwendung qucs zur Simulation von elektrischen Schaltungen befindet sich keine ARM-Architektur Pakete unter Armbian und Debian, aber unter Ubuntu wären dieses vorhanden.
Daher wurde bei den Paketquellen Ubuntu ergänzt. Jedoch funktionierte dies nicht, da "apt-get install qucs" und "sudo apt-cache search qucs" hierzu nichts ausgaben.
Also wurde über das Internet die Pakete des Typs "armhf.deb" von qucs heruntergeladen und versucht diese zu installieren.
$ sudo dpkg -i qucs_0.0.15-1.1_armhf.deb.1
Selecting previously unselected package qucs.
(Reading database ... 124705 files and directories currently installed.)
Preparing to unpack qucs_0.0.15-1.1_armhf.deb.1 ...
Unpacking qucs (0.0.15-1.1) ...
dpkg: dependency problems prevent configuration of qucs:
qucs depends on libqt3-mt (>= 3:3.3.8-b); however:
Package libqt3-mt is not installed.
dpkg: error processing package qucs (--install):
dependency problems - leaving unconfigured
Processing triggers for man-db (2.7.0.2-5) ...
Processing triggers for desktop-file-utils (0.22-1) ...
Processing triggers for mime-support (3.58) ...
Errors were encountered while processing:
qucs
Somit kann dies nicht installiert werden, da nur libqt4 oder höher unter Jessie verfügbar wären. Das Paket libqt3-mt konnte nicht aufgefunden werden.
Als nächstes erfolgte der Versuch die Anwendung qucs aus den Paketquellen zu übersetzen.
Hierzu wird zuerst qucs 0.0.19 (von sourceforge.net) heruntergeladen.
http://sourceforge.net/projects/qucs/files/qucs/
Die Anleitung für die Übersetzung aus den Paketquellen befand sich unter:
http://qucs.sourceforge.net/build.html
Unpack the distribution tarball:
$ tar xvzf qucs-<version>.tar.gz (using GNU tar)
$ gzip -cd qucs-<version>.tar.gz | tar xvf - (using another tar)
Change into the source directory:
$ cd qucs-<version>
Configure the source package for your system:
$ ./configure
Kleine Ergänzung um die Ausgaben in einer Datei zu speichern, ohne die Vorgängerdatei versehentlich zu überschreiben.
$ ./configure | tee ../configure_qucs_$(date +%Y%m%d_%H%M).txt
Es fehlen QT-Packages. Somit wird aus anderer Quelle
https://github.com/Qucs/qucs/wiki/Build-Linux
sudo apt-get install build-essential libqt4-dev libqt4-qt3support automake libtool gperf flex bison git cmake
automake is already the newest version.
build-essential is already the newest version.
cmake is already the newest version.
git is already the newest version.
libtool is already the newest version.
libqt4-qt3support is already the newest version.
The following extra packages will be installed:
libbison-dev libfl-dev libqt4-dev-bin libqt4-help libqt4-scripttools
libqt4-test qt4-linguist-tools qt4-qmake
Suggested packages:
bison-doc firebird-dev libmysqlclient-dev libpq-dev libsqlite0-dev
libsqlite3-dev qt4-dev-tools qt4-doc unixodbc-dev
Recommended packages:
libqt4-opengl-dev libqtwebkit-dev
The following NEW packages will be installed:
bison flex gperf libbison-dev libfl-dev libqt4-dev libqt4-dev-bin
libqt4-help libqt4-scripttools libqt4-test qt4-linguist-tools qt4-qmake
0 upgraded, 12 newly installed, 0 to remove and 38 not upgraded.
Need to get 6,583 kB of archives.
After this operation, 28.4 MB of additional disk space will be used.
Als nächstes wird wieder "./configure" ausgeführt.
$ ./configure | tee ../configure_qucs_$(date +%Y%m%d_%H%M).txt
Diesmal wird deutlich mehr durchlaufen, da die angelegte Datei mit "tee" auch deutlich größer geworden ist.
checking for gperf... /usr/bin/gperf
checking Checking if admsXml is working... configure: error: need admsXml, but not found. consider --with-mkadms=<alternative admsXml>
no
configure: error: ./configure failed for qucs-core
Lösung 1 aus dem Internet
http://stackoverflow.com/questions/36102809/qucs-core-configure-error-needs-admsxml
I had this problem and i found the solution. Run these commands:
git clone https://github.com/Qucs/ADMS
cd ADMS
./bootstrap.sh
./configure
make
sudo make install
And
then try ./configure
in qucs project.
$ git clone https://github.com/Qucs/ADMS
Cloning into 'ADMS'...
remote: Counting objects: 1289, done.
remote: Total 1289 (delta 0), reused 0 (delta 0), pack-reused 1289
Receiving objects: 100% (1289/1289), 1.67 MiB | 5.00 KiB/s, done.
Resolving deltas: 100% (745/745), done.
Checking connectivity... done.
Lösung 2 aus dem Internet
https://github.com/Qucs/qucs/wiki/Build-Linux
Extra for ADMS compiled with Autotools
sudo apt-get install libxml2 libxml2-dev zlib1g zlib1g-dev
sudo cpan -i XML::LibXML
sudo apt-get install libgd2-xpm-dev
sudo apt-get install libgd-perl
$ sudo apt-get install libxml2 libxml2-dev zlib1g zlib1g-dev
libxml2 is already the newest version.
libxml2 set to manually installed.
zlib1g is already the newest version.
zlib1g-dev is already the newest version.
The following NEW packages will be installed:
libxml2-dev
0 upgraded, 1 newly installed, 0 to remove and 38 not upgraded.
Need to get 630 kB of archives.
After this operation, 1,874 kB of additional disk space will be used.
Nun sollte sich zeigen, ob Lösung 2 zum Ziel führen konnte.
Als nächstes wird wieder "./configure" ausgeführt.
$ ./configure | tee ../configure_qucs_$(date +%Y%m%d_%H%M).txt
Diesmal wird gleich viel durchlaufen, wie vorher, aber ein fehlendes admsXml wird wiederum angemahnt.
Nun sollte sich zeigen, ob Lösung 2 zum Ziel führen konnte.
ADMS$ ./bootstrap.sh | tee ../bootstrap_ADMS_$(date +%Y%m%d_%H%M).txt
Der voranstehende Befehl oder Prozess lief erfolgreich durch.
ADMS$ ./configure | tee ../configure_ADMS_$(date +%Y%m%d_%H%M).txt
hecking for perl... /usr/bin/perl
checking for perl module XML::LibXML version 2... no
failed
configure: error: Perl package XML::LibXML may be downloaded from http://search.cpan.org/dist/libXML
Daraus folgt, dass bei Lösung 2 auch Teile aus Lösung 1 berücksichtigt werden müssen.
$ sudo cpan -i XML::LibXML
CPAN.pm requires configuration, but most of it can be done automatically.
If you answer 'no' below, you will enter an interactive dialog for each
configuration option instead.
Would you like to configure as much as possible automatically? [yes] yes
Fetching with HTTP::Tiny:
http://www.cpan.org/authors/01mailrc.txt.gz
Reading '/root/.cpan/sources/authors/01mailrc.txt.gz'
............................................................................DONE
Fetching with HTTP::Tiny:
....... many cp lib.....
....... many cc -c .....
Installing /usr/local/man/man3/XML::LibXML::Attr.3pm
Appending installation info to /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2/perllocal.pod
could not find ParserDetails.ini in /usr/local/share/perl/5.20.2/XML/SAX
SHLOMIF/XML-LibXML-2.0128.tar.gz
/usr/bin/make install -- OK
$ sudo apt-get install libgd-perl
The following NEW packages will be installed:
libgd-perl
0 upgraded, 1 newly installed, 0 to remove and 38 not upgraded.
Need to get 175 kB of archives.
After this operation, 414 kB of additional disk space will be used.
"sudo apt-get install libgd2-xpm-dev" lief nicht erfolgreich.
$ sudo apt-get install libgd2-xpm-dev
The following packages have unmet dependencies:
libgd2-xpm-dev : Depends: libgd-dev (= 2.1.0-5+deb8u6) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
dieterd@cubietruck:~/INSTALL/tmp$ sudo apt-get install libgd2-xpm-dev
The following packages have unmet dependencies:
libgd2-xpm-dev : Depends: libgd-dev (= 2.1.0-5+deb8u6) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
dieterd@cubietruck:~/INSTALL/tmp$ sudo apt-get install libgd2-dev
Note, selecting 'libgd-dev' instead of 'libgd2-dev'
The following packages have unmet dependencies:
libgd-dev : Depends: libgd3 (= 2.1.0-5+deb8u6) but 2.2.3-87-gd0fec80-3 is to be installed
E: Unable to correct problems, you have held broken packages.
dieterd@cubietruck:~/INSTALL/tmp$ sudo apt-get install libgd2
E: Unable to locate package libgd2
dieterd@cubietruck:~/INSTALL/tmp$ sudo apt-get install libgd3
The following extra packages will be installed:
libwebp6
Suggested packages:
libgd-tools
The following NEW packages will be installed:
libwebp6
The following packages will be upgraded:
libgd3
1 upgraded, 1 newly installed, 0 to remove and 37 not upgraded.
Need to get 324 kB of archives.
After this operation, 323 kB of additional disk space will be used.
Do you want to continue? [Y/n] n
Abort.
Nun wird wieder ADMS nach der anderen Lösung versucht:
/ADMS$ ./configure | tee ../configure_ADMS_$(date +%Y%m%d_%H%M).txt
adms version 2.3.6 configured successfully.
Configure Information:
Host : armv7l-unknown-linux-gnueabihf
Maintainer mode : yes
C Compiler : gcc
DEFS : -DHAVE_CONFIG_H
CFLAGS : -g -O2 -Wall
Linker : /usr/bin/ld
LIBS : -lm
Prefix : /usr/local
Perl : /usr/bin/perl
Flex : /usr/bin/flex
Bison : /usr/bin/bison
Build shared library : yes
Das "make" läuft anscheinend erfolgreich durch.
$ make | tee ../make_ADMS_$(date +%Y%m%d_%H%M).txt
Als nächstes wird wieder "./configure" ausgeführt.
$ ./configure | tee ../configure_qucs_$(date +%Y%m%d_%H%M).txt
hecking for gperf... /usr/bin/gperf
checking Checking if admsXml is working... configure: error: need admsXml, but not found. consider --with-mkadms=<alternative admsXml>
no
configure: error: ./configure failed for qucs-core
ADMS$ sudo make install | tee ../make_install_ADMS_$(date +%Y%m%d_%H%M).txt
qucs-0.0.19$ sudo make install | tee ../make_install_qucs_$(date +%Y%m%d_%H%M).txt
make[1]: *** No rule to make target 'install'. Stop.
make[1]: Entering directory '/home/dieterd/INSTALL/tmp/qucs-0.0.19/qucs-core'
make[1]: Leaving directory '/home/dieterd/INSTALL/tmp/qucs-0.0.19/qucs-core'
make: *** [install-recursive] Error 1
Makefile:380: recipe for target 'install-recursive' failed
Trotzdem kann qucs nun gestartet werden und eine einfache Schaltung eingegeben werden. Allerdings scheitert der Aufruf zu simulieren.
ERROR: Cannot start /usr/local/bin/qucsator (No such file or directory)
Allerdings die Datei /usr/local/bin/qucsator gibt es nicht, wie folgendes Listing zeigt.
$ ls -l /usr/local/bin/qu*
-rwxr-xr-x 1 root staff 2565980 Dec 11 16:13 /usr/local/bin/qucs
-rwxr-xr-x 1 root staff 237060 Dec 11 16:17 /usr/local/bin/qucsactivefilter
-rwxr-xr-x 1 root staff 57700 Dec 11 16:18 /usr/local/bin/qucsattenuator
-rwxr-xr-x 1 root staff 2689 Dec 11 16:13 /usr/local/bin/qucsdigi
-rwxr-xr-x 1 root staff 1830 Dec 11 16:13 /usr/local/bin/qucsdigilib
-rwxr-xr-x 1 root staff 49504 Dec 11 16:19 /usr/local/bin/qucsedit
-rwxr-xr-x 1 root staff 171880 Dec 11 16:22 /usr/local/bin/qucsfilter
-rwxr-xr-x 1 root staff 93840 Dec 11 16:24 /usr/local/bin/qucshelp
-rwxr-xr-x 1 root staff 135516 Dec 11 16:26 /usr/local/bin/qucslib
-rwxr-xr-x 1 root staff 107488 Dec 11 16:29 /usr/local/bin/qucsrescodes
-rwxr-xr-x 1 root staff 171384 Dec 11 16:31 /usr/local/bin/qucstrans
-rwxr-xr-x 1 root staff 1699 Dec 11 16:13 /usr/local/bin/qucsveri
$ sudo apt-get install octave
The following extra packages will be installed:
libarpack2 libcxsparse3.1.2 libfftw3-single3 libfltk-gl1.3 libfltk1.3
libgl2ps0 libglpk36 libgraphicsmagick++3 libgraphicsmagick3 libhdf5-8
libintl-perl liboctave2 libqhull6 libqrupdate1 libqscintilla2-11
libqscintilla2-l10n libtext-unidecode-perl libxml-libxml-perl
libxml-namespacesupport-perl libxml-sax-base-perl libxml-sax-perl
octave-common texinfo
Suggested packages:
libfftw3-bin libfftw3-dev libiodbc2-dev libmysqlclient-dev
graphicsmagick-dbg libintl-xs-perl octave-info octave-doc octave-htmldoc
texlive-base texlive-latex-base texlive-generic-recommended
texinfo-doc-nonfree
Recommended packages:
libxml-sax-expat-perl gnuplot-x11 gnuplot-qt libopenblas-base libatlas3-base
pstoedit
The following NEW packages will be installed:
libarpack2 libcxsparse3.1.2 libfftw3-single3 libfltk-gl1.3 libfltk1.3
libgl2ps0 libglpk36 libgraphicsmagick++3 libgraphicsmagick3 libhdf5-8
libintl-perl liboctave2 libqhull6 libqrupdate1 libqscintilla2-11
libqscintilla2-l10n libtext-unidecode-perl libxml-libxml-perl
libxml-namespacesupport-perl libxml-sax-base-perl libxml-sax-perl octave
octave-common texinfo
0 upgraded, 24 newly installed, 0 to remove and 38 not upgraded.
Need to get 15.5 MB of archives.
After this operation, 59.5 MB of additional disk space will be used.
$ ./configure | tee ../configure_ADMS_$(date +%Y%m%d_%H%M).txt
$ make | tee ../make_ADMS_$(date +%Y%m%d_%H%M).txt
$ sudo make install | tee ../make_install_ADMS_$(date +%Y%m%d_%H%M).txt
$ ./configure | tee ../configure_qucs_$(date +%Y%m%d_%H%M).txt
$ make | tee ../make_qucs_$(date +%Y%m%d_%H%M).txt
$ sudo make install | tee ../make_install_qucs_$(date +%Y%m%d_%H%M).txt
Am Ende gab es noch Fehlermeldungen, aber in qucs funktionierte trotzdem das Wesentliche.
GPL Ghostscript 9.06: Unrecoverable error, exit code 1
make[2]: *** [technical.pdf] Error 1
Makefile:633: recipe for target 'technical.pdf' failed
make[2]: Leaving directory '/home/dieterd/INSTALL/tmp/qucs-0.0.19/qucs-doc/technical'
make[1]: *** [install-recursive] Error 1
Makefile:383: recipe for target 'install-recursive' failed
make[1]: Leaving directory '/home/dieterd/INSTALL/tmp/qucs-0.0.19/qucs-doc'
make: *** [install-recursive] Error 1
Makefile:380: recipe for target 'install-recursive' failed
Nach diesen ganzen Vorgängen funktionierte qucs. Eine erste Simulation einer Wechselstromquelle mit Widerstand und Leuchtdioden war erfolgreich.
Qucs kann gemäß Homepage auch Spice einbinden zur Verwendung weiterer Simulationsarten, wie zum Beispiel die Fourier-Analyse. Hierzu muss die Erweiterung spice4qucs eingebunden werden. Nach einer Recherche wurde herausgefunden, dass des zu QUCS noch eine Variante QUCS-S gibt, die diese Funktionalitäten bietet.
In den Paket-Repositories sind diese nicht vorhanden.
$ sudo apt-cache search spice4qucs
Man beachte den kleinen Widerspruch der folgenden Eingaben. Dies entstand durch die vorherigen Installationsversuche, In dpkg ist qucs 0.0.16 als "rc" oder deinstalliert eingetragen. Qucs 0.0.19 ist aber installiert über Installation aus den (compelierten) Quellpaketen.
$ dpkg -l | grep qucs
rc qucs 0.0.16-2 armhf Quite Universal Circuit Simulator
$ sudo apt-cache policy qucs
qucs:
Installed: (none)
Candidate: (none)
Version table:
0.0.16-2 0
100 /var/lib/dpkg/status
$ qucs -v
Qucs 0.0.19
Um das Qucs mit den Erweiterungen zu verwenden sind ein paar weitere Anwendungen zu installieren.
Ergänzung um ngspice:
dieterd@cubietruck:~$ sudo apt-cache search ngspice
easyspice - A graphical frontend to the Spice simulator
chiark-scripts - chiark system administration scripts
ngspice - Spice circuit simulator
ngspice-doc - Documentation for the NGspice circuit simulator
tclspice - NGspice library for Tcl
gspiceui - Graphical user interface for gnucap and ngspice
gwave - waveform viewer eg for spice simulators
$ sudo apt-get install ngspice
The following packages have unmet dependencies:
ngspice : Depends: libtinfo5 (>= 6) but 5.9+20140913-1+b1 is to be installed
E: Unable to correct problems, you have held broken packages.
$ sudo apt-cache policy ngspice
ngspice:
Installed: (none)
Candidate: 26-1build1
Version table:
26-1build1 0
500 http://ports.ubuntu.com/ xenial/multiverse armhf Packages
24-1.1ubuntu2 0
500 http://ports.ubuntu.com/ trusty/multiverse armhf Packages
Aus der Fehlermeldung und den Informationen über apt-cache policy konnte entnommen werden, dass bisher noch keine geeignete Priority-Pin den jeweiligen apt-sources vergeben wurde. Bei gleichen Prioritäten möchte der Installer meist das Paket mit der höheren Versionsnummer installieren. Durch eine Angabe der Distro-Version konnte dies hier einfach umgangen werden.
$ sudo apt-get install ngspice/trusty
Selected version '24-1.1ubuntu2' (Ubuntu:14.04/trusty [armhf]) for 'ngspice'
Selected version '2.19-0ubuntu6.9' (Ubuntu:14.04/trusty-security [armhf]) for 'libc6' because of 'ngspice'
The following NEW packages will be installed:
ngspice
0 upgraded, 1 newly installed, 0 to remove and 52 not upgraded.
Need to get 1,793 kB of archives.
After this operation, 5,760 kB of additional disk space will be used.
Get:1 http://ports.ubuntu.com/ trusty/multiverse ngspice armhf 24-1.1ubuntu2 [1,793 kB]
Die Anwendung Qucs-Studio / qucsstudio ging aus einem auseinandergefallen Entwicklerteam qucs hervor. Diese konnten sich nicht auf eine weitere Linie einigen und wird nun unterschiedlich weiter betrieben. Nach meiner Einschätzung ist das bedauerlich, da dadurch auf lange Sicht die Fortentwicklung für beide Linien gefährdet ist.
Das qucsstudio gibt es leider nur für Windows-Rechner und daher liegt es nahe einen Betrieb unter der Emulation wine zu versuchen.
$ sudo apt-get install wine
The following packages have unmet dependencies:
wine : Depends: wine64 (>= 1.8.6-5) but it is not installable or
wine32 (>= 1.8.6-5)
E: Unable to correct problems, you have held broken packages.
$ sudo apt-cache policy wine
wine:
Installed: 1.8.3-3~bpo8+1
Candidate: 1.8.6-5
Version table:
1.8.6-5 0
600 http://httpredir.debian.org/debian/ stretch/main armhf Packages
1.8.6-5~bpo8+1 0
550 http://httpredir.debian.org/debian/ jessie-backports/main armhf Packages
*** 1.8.3-3~bpo8+1 0
100 /var/lib/dpkg/status
$ wine /home/dieterd/Doku/Technik/qucs/QucsStudio/bin/qucs.exe
err:process:create_process L"Z:\\home\\dieterd\\Doku\\Technik\\qucs\\QucsStudio\\bin\\qucs.exe" not supported on this installation (x86 binary)
wine: Bad EXE format for Z:\home\dieterd\Doku\Technik\qucs\QucsStudio\bin\qucs.exe.
$ sudo chroot /home/i386/mnt3/qemu_chroot_i386/ /usr/bin/qemu-i386-static /bin/bash
root@cubietruck:/# apt-get install wine
The following packages will be REMOVED:
lpr
8 upgraded, 23 newly installed, 1 to remove and 605 not upgraded.
Need to get 99.6MB of archives.
After this operation, 225MB of additional disk space will be used.
Do you want to continue [Y/n]? n
Da hier lpr deinstalliert würde und somit bereits funktionierende Drucker und dessen Scannerbetrieb ein Problem bekämen, konnte unter der Chroot Umgebung des Lubuntu 10.04 kein wine installiert werden. Das heißt, dass hierfür eine neue unabhängige Chroot-Umgebung mit einem Linux i368 eingerichtet werden müßte.
Diese soll sich am Ende befinden unter:
/home/i386/mnt3/chroot_xubuntu16p04i386$ lsblk
$ sudo mkdir ../tmp_work
$ pmount /dev/sda1
Für die Arbeit sinnvoll wäre folgende Verzeichnisse temporär zu erstellen um Verwechslungen zu vermeiden:
tmp_mount: Mounten der Partition oder Images
tmp_mount_sqashfs: Mounten des squashfs
tmp_qemu: Zwischenablage der qemu-Dateien aus /usr/bin für das Kopieren in /usr/bin der chroot-Umgebung. Werden für alle Architekturen die Dateien kopiert, dann kann es insgesamt 150MB Platz benötigen.
$ sudo mount -o loop /media/sda1/casper/filesystem.squashfs ../tmp_work/
dieterd@cubietruck:/home/i386/mnt3/chroot_xubuntu16p04i386$
#!/bin/bash
echo "Mount of Partition with i386 ubuntu"
sudo mount /dev/mmcblk0p5 /home/i386/mnt3
sleep 3
echo "Mount of further Partitions of Host for chroot."
sudo mount -o bind /sys /home/i386/mnt3/chroot_xubuntu16p04i386/sys
sleep 1
sudo mount -o bind /proc /home/i386/mnt3/chroot_xubuntu16p04i386/proc
sleep 1
sudo mount -o bind /dev/pts /home/i386/mnt3/chroot_xubuntu16p04i386/dev/pts
sleep 1
xhost +
sleep 1
echo "Mount of Partition with i386 ubuntu" ; sudo mount /dev/mmcblk0p5 /home/i386/mnt3; sleep 3 ; echo "Mount of further Partitions of Host for chroot." ; sudo mount -o bind /sys /home/i386/mnt3/chroot_xubuntu16p04i386/sys ; sleep 1 ; sudo mount -o bind /proc /home/i386/mnt3/chroot_xubuntu16p04i386/proc ; sleep 1 ; sudo mount -o bind /dev/pts /home/i386/mnt3/chroot_xubuntu16p04i386/dev/pts ; sleep 1 ; xhost + ; sleep 1
Dito für eine x86_64-Architektur
#!/bin/bash
echo "Mount of Partition with x86_4 ubuntu"
sudo mount /dev/mmcblk0p5 /home/i386/mnt3
sleep 3
echo "Mount of further Partitions of Host for chroot."
sudo mount -o bind /sys /home/i386/mnt3/chroot_xubuntu16p04iamd64/sys
sleep 1
sudo mount -o bind /proc /home/i386/mnt3/chroot_xubuntu16p04iamd64/proc
sleep 1
sudo mount -o bind /dev/pts /home/i386/mnt3/chroot_xubuntu16p04iamd64/dev/pts
sleep 1
xhost +
sleep 1
$ sudo chroot /home/i386/mnt3/chroot_xubuntu16p04i386/ /usr/bin/qemu-i386-static /bin/bash
Für die Internetverbindung müssen die Angaben aus der /etc/resolv.conf übernommen werden.
$ cat /etc/resolv.conf
$ nano /etc/resolv.conf
Zum Beispiel: nameserver 192.168.43.1
Minimum to copy in Folder so that qemu runs:
/usr/bin/qemu-arm-static
/usr/bin/qemu-system-i386
/usr/bin/qemu-img
/usr/bin/qemu-x86_64-static
/usr/bin/qemu-nbd
/usr/bin/qemu-unicore32
/usr/bin/qemuctl
/usr/bin/qemu-i386
/usr/bin/qemu-i386-static
/usr/bin/qemu-system-arm
/usr/bin/qemu-io
/usr/bin/qemu-arm
/usr/bin/qemu-unicore32-static
/usr/bin/qemu-x86_64
# Kleine Anwendung zur Drosselung des Datentraffiks des Chroot-Umgebung
$ apt-get install trickle
The following NEW packages will be installed:
trickle
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 33.6 kB of archives.
After this operation, 151 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu xenial/universe i386 trickle i386 1.07-10ubuntu2 [33.6 kB]
# trickle -d 4 -u 2 apt-get install wine
# apt-get install wine
The following additional packages will be installed:
binfmt-support cabextract fonts-horai-umefont fonts-unfonts-core
fonts-wqy-microhei gnome-exe-thumbnailer icoutils libcapi20-3 libmpg123-0
libmspack0 libodbc1 libopenal-data libopenal1 libosmesa6 ocl-icd-libopencl1
odbcinst odbcinst1debian2 p7zip ttf-mscorefonts-installer ttf-wqy-microhei
unixodbc wine-gecko2.21 wine-mono0.0.8 wine1.6 wine1.6-i386 winetricks
Suggested packages:
libterm-readline-gnu-perl | libterm-readline-perl-perl isdnutils-doc
libmyodbc odbc-postgresql tdsodbc unixodbc-bin opencl-icd p7zip-full
dosbox:any winbind
Recommended packages:
fonts-droid
The following NEW packages will be installed:
binfmt-support cabextract fonts-horai-umefont fonts-unfonts-core
fonts-wqy-microhei gnome-exe-thumbnailer icoutils libcapi20-3 libmpg123-0
libmspack0 libodbc1 libopenal-data libopenal1 libosmesa6 ocl-icd-libopencl1
odbcinst odbcinst1debian2 p7zip ttf-mscorefonts-installer ttf-wqy-microhei
unixodbc wine wine-gecko2.21 wine-mono0.0.8 wine1.6 wine1.6-i386 winetricks
0 upgraded, 27 newly installed, 0 to remove and 0 not upgraded.
Need to get 109 MB of archives.
After this operation, 318 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Processing triggers for update-notifier-common (3.168.1) ...
qemu: Unsupported syscall: 355
ttf-mscorefonts-installer: downloading http://downloads.sourceforge.net/corefonts/andale32.exe
Get:1 http://downloads.sourceforge.net/corefonts/andale32.exe [198 kB]
Fetched 198 kB in 1min 14s (2,650 B/s)
W: Can't drop privileges for downloading as file '/var/lib/update-notifier/package-data-downloads/partial/andale32.exe' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)
ttf-mscorefonts-installer: downloading http://downloads.sourceforge.net/corefonts/arial32.exe
Err:1 http://downloads.sourceforge.net/corefonts/arial32.exe
gnutls_handshake() failed: Error in the pull function.
W: Can't drop privileges for downloading as file '/var/lib/update-notifier/package-data-downloads/partial/arial32.exe' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)
E: Failed to fetch https://freefr.dl.sourceforge.net/project/corefonts/the fonts/final/arial32.exe gnutls_handshake() failed: Error in the pull function.
E: Download Failed
Processing triggers for libc-bin (2.23-0ubuntu3) ...
/sbin/ldconfig.real: 1: /sbin/ldconfig.real: Syntax error: "(" unexpected
/sbin/ldconfig.real: 1: /sbin/ldconfig.real: Syntax error: "(" unexpected
dpkg: error processing package libc-bin (--unpack):
subprocess installed post-installation script returned error exit status 2
/bin/df: no file systems processed
Processing triggers for doc-base (0.10.7) ...
Processing 31 changed doc-base files, 1 added doc-base file...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (229-4ubuntu7) ...
Processing triggers for gnome-menus (3.13.3-6ubuntu3.1) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu5) ...
Processing triggers for mime-support (3.59ubuntu1) ...
Processing triggers for hicolor-icon-theme (0.15-0ubuntu1) ...
Errors were encountered while processing:
libc-bin
E: Sub-process /usr/bin/dpkg returned an error code (1)
root@cubietruck:/#
root@cubietruck:/# trickle -d 4 -u 2 apt-get install wine
trickle: Could not reach trickled, working independently: No such file or directory
Reading package lists... Done
Building dependency tree
Reading state information... Done
wine is already the newest version (1:1.6.2-0ubuntu14).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
28 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up libc-bin (2.23-0ubuntu3) ...
/sbin/ldconfig.real: 1: /sbin/ldconfig.real: Syntax error: "(" unexpected
/sbin/ldconfig.real: 1: /sbin/ldconfig.real: Syntax error: "(" unexpected
dpkg: error processing package libc-bin (--configure):
subprocess installed post-installation script returned error exit status 2
Setting up fonts-horai-umefont (590-1) ...
Setting up binfmt-support (2.1.6-1) ...
update-binfmts: warning: python2.7 already enabled in kernel.
Running in chroot, ignoring request.
Setting up libcapi20-3:i386 (1:3.27-1) ...
Errors were encountered while processing:
libc-bin
E: Sub-process /usr/bin/dpkg returned an error code (1)
loader: Unable to find space for application
root@cubietruck:/# trickle -d 4 -u 2 apt-get install wine
trickle: Could not reach trickled, working independently: No such file or directory
Reading package lists... Done
Building dependency tree
Reading state information... Done
wine is already the newest version (1:1.6.2-0ubuntu14).
0 upgraded, 0 newly installed, 0 to remove and 317 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
Setting up libc-bin (2.23-0ubuntu3) ...
/sbin/ldconfig.real: 1: /sbin/ldconfig.real: Syntax error: "(" unexpected
/sbin/ldconfig.real: 1: /sbin/ldconfig.real: Syntax error: "(" unexpected
dpkg: error processing package libc-bin (--configure):
subprocess installed post-installation script returned error exit status 2
Errors were encountered while processing:
libc-bin
E: Sub-process /usr/bin/dpkg returned an error code (1)
root@cubietruck:/# trickle -d 4 -u 2 apt-get upgrade
Setting up libc-bin (2.23-0ubuntu5) ...
/sbin/ldconfig.real: 1: /sbin/ldconfig.real: Syntax error: "(" unexpected
/sbin/ldconfig.real: 1: /sbin/ldconfig.real: Syntax error: "(" unexpected
dpkg: error processing package libc-bin (--configure):
subprocess installed post-installation script returned error exit status 2
Errors were encountered while processing:
# wine /home/dieterd/Anwendungen/QucsStudio/bin/qucs.exe
/usr/bin/wine-preloader: Unable to find space for application
Zum Vergleich wurde LTspice herunter geladen, um diese Anwendung ebenfalls mit wine zu testen. Als Ergebnis wurde die gleiche Fehlermeldung ausgegeben.
Auf Grund folgender Fehlermeldung ließ sich unter der Chroot-Umgebung nichts mehr installieren.
/sbin/ldconfig.real: 1: /sbin/ldconfig.real: Syntax error: "(" unexpected
Es wurden alle möglichen Versuche unternommen, die Installation mit apt-get und dpkg wieder zum Laufen zu bringen. Es wurde zur Lösung der Chat genutzt eine Fehlermeldung erstellt.
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=859258
https://bugzilla.kernel.org/show_bug.cgi?id=195153
Gelöst werden konnte das Problem erst, nachdem neue Updates vom Team für qemu und glibs erhältlich waren und auf dem Host-System (Armbian) installiert werden konnten.
Um aus diesem Dilemma die Chroot Umgebung zu befreien war jedoch noch folgender manueller Eingriff notwendig:
Possible solution for this trouble:
root@cubietruck:/# cat /sbin/ldconfig
....
exec /sbin/ldconfig.real "$@"
Change last line from
exec /sbin/ldconfig.real "$@"
to
exec /usr/bin/qemu-i386-static /sbin/ldconfig.real "$@"
Nach diesem Durchlauf und Neustart des Host-Systems und des Gast-Systems läuft danach wieder alles normal. Die Änderung könnte danach wieder zurückgenommmen werden.
Während der Fehler existierte, traten auch einige Rückwirkungen von Seiten das Gastes auf den Host auf. Es wurden zum Beispiel Teile des glibc vom Gast auf den Host installiert, das nicht hätte passieren dürfen. Die Anwendung ldconfig bei der Installation ist wichtig für das Einbinden aller Bibliotheken (lib-Dateien) für alle Anwendungen auf dem System. Während der Reparatur gab es noch einen Durchgriff auf den Host in der Form, dass die Tastaturbelegung und die Zeitzone geändert wurde.
Damit die sqash-files direkt verwendet werden können mit einem Overlay-Dateisystem wurde noch folgende Anwendung installiert:
$ sudo apt-get install squashfs-tools aufs-tools
aufs-tools is already the newest version.
The following NEW packages will be installed:
squashfs-tools
0 upgraded, 1 newly installed, 0 to remove and 10 not upgraded.
Need to get 79.3 kB of archives.
After this operation, 367 kB of additional disk space will be used.
Bei der Operation mit aufs fiel noch ein folgender Fehler auf, der mit der Reihenfolge der Optionen beim "mount" zu tun hatte.
sudo mount -t aufs -o br=lubuntu160402i386_01/DiskOverlay=rw:lubuntu160402i386_01/DiskSqash=ro none lubuntu160402i386_01/DiskCombined/
Bei den Optionen muss als erstes Verzeichnis jenes genannt werden, das die Änderungen persistent behält. Im Umgekehrten Fall ergibt sich ein merkwürdiges Verhalten beim Schreiben von Dateien.
mkdir -p tmp/dir1
2004 mkdir -p tmp/aufs-root
2005 sudo chroot tmpmount_sqashfs/ /usr/bin/qemu-i386 /bin/bash
2006 mount -t aufs -o br=tmp/dir1:tmpmount_sqashfs none tmp/aufs-root/
2007 sudo mount -t aufs -o br=tmp/dir1:tmpmount_sqashfs none tmp/aufs-root/
2008 sudo chroot tmp/aufs-root/ /usr/bin/qemu-i386 /bin/bash
$ sudo umount /home/i386/mnt3/chroot_xubuntu16p04i386/sys /home/i386/mnt3/chroot_xubuntu16p04i386/proc /home/i386/mnt3/chroot_xubuntu16p04i386/dev/pts
[sudo] password for dieterd:
dieterd@cubietruck:~/CHROOT$ sudo umount /home/i386/mnt3/chroot_xubuntu16p04i386/sys /home/i386/mnt3/chroot_xubuntu16p04i386/proc /home/i386/mnt3/chroot_xubuntu16p04i386/dev/pts
umount: /home/i386/mnt3/chroot_xubuntu16p04i386/sys: not mounted
umount: /home/i386/mnt3/chroot_xubuntu16p04i386/proc: not mounted
umount: /home/i386/mnt3/chroot_xubuntu16p04i386/dev/pts: not mounted
$ sudo chroot tmp/aufs-root/ /usr/bin/qemu-i386 /bin/bash
bash: /usr/bin/groups: No such file or directory
Die Datei enthält den Aufruf und die Verknüpfung mit der lib.
bash: /usr/bin/lesspipe: /bin/sh: bad interpreter: No such file or directory
Link zeigt auf /bin/lesspipe
bash: /usr/bin/dircolors: No such file or directory
Analog zu groups.
root@cubietruck:/# ls
bash: /bin/ls: No such file or directory
Dies konnte nur auf dem Host installiert werden, da auf dem Gast keine Installation mehr funktionierte und war somit nicht nutzbar.
$ sudo apt-get install reportbug
The following NEW packages will be installed:
docutils-common python-chardet python-debian python-debianbts python-defusedxml
python-docutils python-pkg-resources python-reportbug python-roman python-six
python-soappy python-wstools reportbug
0 upgraded, 13 newly installed, 0 to remove and 18 not upgraded.
Need to get 1,302 kB of archives.
After this operation, 4,793 kB of additional disk space will be used.
Um nicht alles neu einzugeben, wurde alles in ein Skript gepackt:
echo "Mount of Partition with i386 ubuntu" ; sudo mount /dev/mmcblk0p5 /home/i386/mnt3; sleep 3 ; echo "Mount of further Partitions of Host for chroot." ; sudo mount -o bind /sys tmp/aufs-root/sys ; sleep 1 ; sudo mount -o bind /proc tmp/aufs-root/proc ; sleep 1 ; sudo mount -o bind /dev/pts /tmp/aufs-root/dev/pts ; sleep 1 ; xhost + ; sleep 1
Den Fehler beim Starten von Windows-Applikationen, dass nicht genügend Speicher für die Anwendung gefunden werden könne, war über Umbenennung des winepreloader einfach abzustellen.
# wine home/dieterd/Anwendungen/QucsStudio/bin/qucs.exe
/usr/bin/wine-preloader: Unable to find space for application
root@cubietruck:/# whereis winepreloader
winepreloader:
root@cubietruck:/# whereis wine/preloader
preloader:
root@cubietruck:/# whereis wine-preloader
wine-preloader: /usr/bin/wine-preloader
root@cubietruck:/# mv /usr/bin/wine-preloader /usr/bin/wine-preloader.sik
# wine home/dieterd/Anwendungen/QucsStudio/bin/qucs.exe
wine: created the configuration directory '/root/.wine'
Unsupported setsockopt level=1 optname=15
fixme:storage:create_storagefile Storage share mode not implemented.
err:mscoree:LoadLibraryShim error reading registry key for installroot
err:mscoree:LoadLibraryShim error reading registry key for installroot
err:mscoree:LoadLibraryShim error reading registry key for installroot
err:mscoree:LoadLibraryShim error reading registry key for installroot
fixme:storage:create_storagefile Storage share mode not implemented.
err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.
fixme:iphlpapi:NotifyAddrChange (Handle 0x11fe8a0, overlapped 0x11fe8ac): stub
err:process:__wine_kernel_init boot event wait timed out
wine: configuration in '/root/.wine' has been updated.
Unsupported setsockopt level=1 optname=15
fixme:system:SetProcessDPIAware stub!
err:process:__wine_kernel_init boot event wait timed out
wine: configuration in '/root/.wine' has been updated.
Unsupported setsockopt level=1 optname=15
fixme:system:SetProcessDPIAware stub!
fixme:ole:RemUnknown_QueryInterface No interface for iid {00000019-0000-0000-c000-000000000046}
fixme:win:FlashWindowEx 0x33f3a4
Qucsstudio opens but is very slow.
Die Anwendung Qucsstudio unter wine mit qemu konnte aufgerufen werden. Der Start, wie auch die Funktion war natürlich emulationsbedingt langsam.
Vor der Installation des Virenscanners wurde von einem anderen Rechner der Inhalt des ganzen Verzeichnis mit den clamav-Virensignaturdateien auf den Rechner kopiert.
/var/lib/clamav/
sudo apt-get install clamav
Need to get 1,946 kB of archives.
After this operation, 3,303 kB of additional disk space will be used.
In der Nacht würden in der Regel erst die Virensignaturen ca. 200MB geladen (6-7h bei 64kbit/s). Die zukünftigen Delta-Dateien sind deutlich kleiner. Details sind zu lesen unter
“cat /var/log/clamav/freshclam.log”
“ls /var/lib/clamav”
ls -l /var/lib/clamav
378368 Apr 19 06:17 bytecode.cld
6678016 Apr 23 05:14 daily.cld
109143933 Apr 19 06:19 main.cvd
4992 Apr 19 06:19 mirrors.dat
Die Umgebung „wine“ bietet eine einfache Möglichkeit einige Windows-Programme unter Linux zum Laufen zu bringen, ohne dass ein Windows installiert werden muss. Hierbei handelt es sich um nachprogrammierte Laufzeitumgebungen für die Windows-Programme. Zumeist sind dies benötigte dll-Dateien und deren Schnittstellen für die Windows-Anwendungen.
Es lohnt sich auch die vorgeschlagenen Packete anzusehen, ob diese sinnvollerweise auch gleich mit installiert werden sollten.
$ sudo apt-get install wine
Suggested packages:
ttf-mscorefonts-installer opencl-icd winetricks playonlinux wine-binfmt dosbox wine32-preloader
Need to get 15.7 MB of archives.
After this operation, 131 MB of additional disk space will be used.
Ein Test ergibt hier folgende Informationen:
$ sudo apt-get install wine winetricks dosbox playonlinux
Need to get 25.4 MB of archives.
After this operation, 169 MB of additional disk space will be used.
Ausgewählt für die Installation wurde folgende Kombination:
$ sudo apt-get install wine winetricks dosbox
Need to get 17.1 MB of archives.
After this operation, 136 MB of additional disk space will be used.
Das Werkzeug wine ließ sich im September 2016 aufrufen.
$ wine
Usage: wine PROGRAM [ARGUMENTS...] Run the specified program
wine --help Display this help and exit
wine --version Output version information and exit
Aber der Aufruf der Installation im September 2016 gibt auf der Konsole ein Abhängigkeitsproblem aus.
$ sudo apt-get install wine
The following packages have unmet dependencies:
wine : Depends: wine64 (>= 1.8.3-3) but it is not installable or
wine32 (>= 1.8.3-3) but 1.8.3-3~bpo8+1 is to be installed
E: Unable to correct problems, you have held broken packages.
$ sudo apt-get install wine/jessie
E: Release 'jessie' for 'wine' was not found
$ sudo apt-get install wine/wheezy
E: Release 'wheezy' for 'wine' was not found
$ sudo apt-get install wine/stretch
Selected version '1.8.3-3' (Debian:testing [all]) for 'wine'
Selected version '1.8.3-3' (Debian:testing [armhf]) for 'wine32' because of 'wine'
Selected version '1.8.3-3' (Debian:testing [armhf]) for 'libwine' because of 'wine32'
Selected version '6.0+20160625-1' (Debian:testing [armhf]) for 'libncurses5' because of 'libwine'
Selected version '6.0+20160625-1' (Debian:testing [armhf]) for 'libtinfo5' because of 'libncurses5'
Some packages could not be installed. The following packages have unmet dependencies:
libncursesw5 : Depends: libtinfo5 (= 5.9+20140913-1+b1) but 6.0+20160625-1 is to be installed
systemd-sysv : Depends: systemd (= 215-17+deb8u4) but it is not going to be installed
PreDepends: systemd but it is not going to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
Es konnte anscheinend in der Vergangenheit ein wine aus "testing" erfolgreich installiert werden.
Wegen "The current testing distribution is stretch" wurde statt testing, stretch in den apt-Quellen eingetragen. Ggf. wird unstable/sid geprüft oder/und wieder aufgenommen.
Quelle: https://www.debian.org/releases/
strace
ltrace
$ sudo apt-get install ltrace
Need to get 112 kB of archives.
After this operation, 241 kB of additional disk space will be used.
Abfragen der Version und Distribution:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 8.6 (jessie)
Release: 8.6
Codename: jessie
Ergänzen um weitere Repositories:
https://repogen.simplylinux.ch/generate.php
ubuntu.list
#------------------------------------------------------------------------------#
# OFFICIAL UBUNTU REPOS #
#------------------------------------------------------------------------------#
###### Ubuntu Main Repos
deb [arch=armhf] http://de.archive.ubuntu.com/ubuntu/ trusty main restricted un$
deb-src [arch=armhf] http://de.archive.ubuntu.com/ubuntu/ trusty main restricte$
###### Ubuntu Update Repos
deb [arch=armhf] http://de.archive.ubuntu.com/ubuntu/ trusty-security main rest$
deb [arch=armhf] http://de.archive.ubuntu.com/ubuntu/ trusty-updates main restr$
deb [arch=armhf] http://de.archive.ubuntu.com/ubuntu/ trusty-proposed main rest$
deb [arch=armhf] http://de.archive.ubuntu.com/ubuntu/ trusty-backports main res$
deb-src [arch=armhf] http://de.archive.ubuntu.com/ubuntu/ trusty-security main $
deb-src [arch=armhf] http://de.archive.ubuntu.com/ubuntu/ trusty-updates main r$
deb-src [arch=armhf] http://de.archive.ubuntu.com/ubuntu/ trusty-proposed main $
deb-src [arch=armhf] http://de.archive.ubuntu.com/ubuntu/ trusty-backports main$
https://wiki.ubuntuusers.de/sources.list/
Bevor man Änderungen an der sources.list vornimmt, sollte man die Datei sichern.
/etc/apt/sources.list
Wenn man "sauber" arbeiten will, legt man sich eigene Dateien mit der Endung ".list" unter /etc/apt/sources.list.d/ an.
Erstere Variante funktioniert nicht (mehr) sondern nur noch die zweite Variante, wenn man die sources.list nicht weiter verändern möchte.
/etc/apt/ubuntu.list
/etc/apt/sources.list.d/ubuntu.list
Auflisten aller Paketquellen mit Angaben zur Rangordnung (alle Paketquellen und deren Priorität):
apt-cache policy
Eine einfache Möglichkeit stellt die Erstellung von einfachen HTML-Seiten die Nutzung von einfachen Texteditoren, wie zum Beispiel "kwrite" dar. Die Editoren besitzen meist eine Syntax-Unterstützung bei der Bearbeitung mit farblicher Kennzeichnung der unterschiedlichen Elemente im Quelltext.
Einfacher ist jedoch die Bearbeitung mit WYSIWYG-Editoren, bei denen direkt das Ergebnis permanent sichtbar ist. Die Anwendungen (WYSIWYG-Editoren) nvu, kompozer oder amaya werden leider nicht mehr weiter gepflegt (Stand 2017, letzte Versionen der Anwendungen waren 2012). Es können auch Dokumente, die mit LibreOffice oder Abiword erstellt werden und nach HTML konvertiert werden. So lange man sich nur auf unterstütze Funktionen beschränkt, klappt dies recht brauchbar. Einfache Texte mit einfachen Tabellen funktionieren gut. Ein hier verwendeter Style für das Listen der Konsolenauszüge (Style eines Listings mit Rahmen) liefert hier bereits nicht mehr richig Ergebnisse.
Folgende Suche könnte helfen, welche Anwendungen für die Aufgabe in Frage kommen könnten:
$ sudo apt-cache search html | grep editor
Das Werkzeug sigil konnte wegen unauflöslicher Abhängigkeiten (die Libraries arm der Distro haben eine zu niedrige Version) nicht installiert werden.
Folgende Suche könnte helfen, welche Anwendungen für die Aufgabe in Frage kommen könnten:
$ sudo apt-cache search html | grep editor
Aus der Liste wurde gwrite herausgepickt für einen ersten Versuch.
$ sudo apt-get install gwrite
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
libjavascriptcoregtk-1.0-0 libwebkitgtk-1.0-0 libwebkitgtk-1.0-common
mimetex python-jswebkit python-webkit wv
Suggested packages:
texlive elinks links lynx
Recommended packages:
gstreamer1.0-plugins-base gstreamer1.0-plugins-good geoclue-2.0
The following NEW packages will be installed:
gwrite libjavascriptcoregtk-1.0-0 libwebkitgtk-1.0-0 libwebkitgtk-1.0-common
mimetex python-jswebkit python-webkit wv
0 upgraded, 8 newly installed, 0 to remove and 9 not upgraded.
Need to get 9,528 kB of archives.
After this operation, 29.5 MB of additional disk space will be used.
Nach den ersten Versuchen mit gwrite waren die Funktionalitäten vergleichbar mit kompozer.
Installation:
$ sudo apt-get install tinymce
The following NEW packages will be installed:
tinymce
0 upgraded, 1 newly installed, 0 to remove and 9 not upgraded.
Need to get 528 kB of archives.
After this operation, 2,252 kB of additional disk space will be used.
Ein Aufruf auf der Konsole mittels tinymc oder eine Suche im Applikationsmenü war hier erfolglos, da es sich um eine web-browser-basierte Anwendung mit Javascript handelt.
Für den Aufruf kann das Verzeichnis mit whereis ermittelt werden.
$ whereis tinymce
tinymce: /usr/share/tinymce
$ ls /usr/share/tinymce/www/
example.html plugins tiny_mce.js tiny_mce_src.js
langs themes tiny_mce_popup.js utils
$ firefox file:///usr/share/tinymce/www/example.html
Das mitgelieferte Beispiel ist aber nicht gut, da dieses keine Templates eingebunden hat um bereits den Umfang der Funktionen zu sehen. Es wird nur ein Fenster zum Editieren ohne Leiste mit den Funktionen angeboten.
Intstallation:
$ sudo apt-get install fckeditor
Suggested packages:
php5
The following NEW packages will be installed:
fckeditor
0 upgraded, 1 newly installed, 0 to remove and 9 not upgraded.
Need to get 862 kB of archives.
After this operation, 3,903 kB of additional disk space will be used.
Ein Aufruf auf der Konsole mittels tinymc oder eine Suche im Applikationsmenü war hier erfolglos, da es sich um eine web-browser-basierte Anwendung mit Javascript handelt.
Für den Aufruf kann das Verzeichnis mit whereis ermittelt werden.
$ whereis fckeditor
fckeditor: /etc/fckeditor /usr/share/fckeditor
$ ls /usr/share/fckeditor/editor/
css fckdebug.html fckeditor.original.html js skins
dialog fckdialog.html filemanager lang _source
dtd fckeditor.html images plugins wsc
$ firefox file:///usr/share/fckeditor/editor/fckeditor.original.html
Das mitgelieferte Beispiel enthielt alle wichtigen Templates um bereits den weitestgehend vollen Umfang der Funktionen zu sehen. Es könnte sofort losgelegt werden. Aber es war sehr langsam im Browser bei der Ausführung. Bei umfangreichen web-browser-basierte Anwendung mit Javascript gibt es diese Probleme mit der Geschwindigkeit.
$ sudo apt-get install seamonkey
Package seamonkey 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 'seamonkey' has no installation candidate
Wikipedia: Nach einem Namensstreit mit dem Debian-Projekt über die Nutzungsbedingungen für die Warenzeichen von Mozilla bekam das mit Debian mitgelieferte SeaMonkey-Paket den Namen Iceape.
$ sudo apt-get install iceape
Package iceape 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 'iceape' has no installation candidate
Eine gute Idee ist es mittels "sudo dpkg -l > installed_list_1501xx.txt" abzulegen, welche Pakete zu Beginn installiert waren oder aktuell installiert sind. Diese Datei kann später auch genutzt werden, um mit Hilfe von Skripten (die "dpkg" benutzen) das System mit allen Anwendungen wieder aufzusetzen.
Die heruntergeladenen Pakete befinden sich alle unter dem Pfad "/var/cache/apt/archives/", sofern dieses nicht mit Optionen von "apt-get, wie zum Beispiel clean/autoclean/autoremove aufgeräumt wurde. Also sollte man sich dieses Archiv auch in den entsprechenden Pfad beim aufzusetzenden System kopieren. Im Weiteren müssen somit die Dateien auch nicht mehr vom Internet geholt werden von apt-get mit "upgrade" oder "install".
Unter "/var/lib/apt/lists" liegen die Informationen zu den Pakten. Dieses sollte auch kopiert werden, wenn mit "apt-get" ohne Internetverbindung installiert werden soll.
Ein reines lokales Verzeichnis (z.B. USB-Stick voll mit *.deb Dateien) für apt-get einbinden:
mkdir MeinRepository
cd MeinRepository
dpkg-scanpackages binary /dev/null | gzip -9c > Packages.gz
Folgende Zeile in /etc/apt/sources.list einfuegen:
deb file:///pfad/zu/MeinRepository ./
Anschließend apt-get update ausführen, damit der Installer die Dateien findet und nutzen kann.
Der Versuch funktioniert aber nicht.
sudo dpkg-scanpackages binary /dev/null | gzip -9c > Packages.gz
bash: Packages.gz: Permission denied
dpkg-scanpackages: error: binary dir binary not found
Aber so funktioniert es mit ein paar Fehlermeldungen.
sudo $(dpkg-scanpackages ./ /dev/null | gzip -9c > ~/Packages.gz)
Und anschließend manuell verschieben der Datei in das Verzeichnis.
Schneller geht es, indem eine Micro-CD-Karte in den SD-Adapter gesteckt wird, die andere in einen USB-Adapter und beide am Netbook angeschlossen werden. Kopiert wird mittels “dd”. Hierbei muss besonders aufgepaßt werden, dass man sich nicht die falsche Karte zerschießt oder sogar die HD vom Netbook löscht. Man beachte “of=” gibt das zu schreibende Zielmedium an. Etwas ungünstig ist hier, dass beim den Mini-Einplatinen-Rechnern über USB angeschlossene Speichermedien als „/dev/sdax“ im System erscheinen und auf den Notebooks ist das aber die eingebaute Festplatte mit dem Betriebssystem und der Recovery-Partition. Beim Übernehmen von Anleitungen aus dem Internet, ist daher besondere Vorsicht geboten.
Um das System auf eine größere SD-Karte zu übertragen, sind folgende Schritte notwendig:
1. SD-Karte vorbereiten
Falls Daten auf der SD-Karte sind, diese unbedingt vorher sichern.
Für SD-Karte ≤ 32GB und SD-Karte > 32GB kein Unterschied beim Vorgehen, da diese bei den folgenden Schritten ganz platt gemacht werden.
2. Kopieren des Images oder Inhaltes von der kleinen auf die größere SD-Karte
Unbedingt mit „lsblk“ prüfen, als welches Device /dev/sxx die SD-Karten eingebunden wurden.
Hierbei sei /dev/sdb die kleinere SD-Karte und /dev/sdc die größere SD-Karte.
dd if=/dev/sdb of=/dev/sdc
Bei einer Schreibgeschwindigkeit von ca. 3 bis 4 MB/s dauerte die ganze Aktion ungefähr 20-30 Minuten.
3. Partitionen verschieben und vergrößern
Die neue (größere) SD-Karte muss anschließend noch mit “gparted” bearbeitet werden.
Vorher sollte mit „sudo fdisk -l /dev/sdc“ die aktuelle Partition begutachtet werden.
Es sollte dabei die Partition mit dem Betriebssystem vergrößert werden und wenn nicht bereits vorhanden, empfiehlt es sich wieder eine Partition für den Nutzer anzulegen. Es bleibt dabei den Vorlieben des Einzelnen überlassen, ob er es bevorzugt alle Partitionen als primäre Partitionen anzulegen oder ob er eine erweiterte Partition mit logischen Partitionen bevorzugt. Als letzte Partition am Speicherende der SD-Karte sollte wieder eine Swap-Partition eingerichtet werden.
Die fstab muss angepaßt werden, wenn die Swap-Partition nun nicht mehr die dritte sondern die vierte Partition wurde oder UUID-Angaben in der fstab verwendet wurden.
sudo cat /etc/fstab
# UNCONFIGURED FSTAB FOR BASE SYSTEM
tmpfs /tmp tmpfs nodev,nosuid,size=256M 0 0
/dev/mmcblk0p1 / ext4 defaults,noatime,nodiratime,data=writeback,commit=600,errors=remount-ro 0 0
/var/swap none swap sw,pri=1 0 0
/dev/mmcblk0p6 none swap sw,pri=5 0 0
Aus den Angaben kann entnommen werden, wo die jeweiligen Partitionen zu finden sind. Da diese in der fstab aufgenommen wurde, wird diese automatisch beim Start eingebunden.
Für den Nutzer wird noch ein beschreibbares Verzeichnis angelegt. Darunter kann dieser nun auch Dateien ablegen.
sudo mkdir /media/seem/data
sudo chmod 777 /media/seem/data
Übertragen des Systems auf eine größere SD-Karte (32GB --> 64GB)
Nachdem sich die bisherige SD-Karte öfters in der Form verabschiedete, dass der Cubietruck seine Arbeit abbrach und das intern vorhandene Android startete, sollte alles auf eine neue und größere SD-Karte tranferiert werden.
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 17334420 16319084 117116 100% /
$ sudo du / --max-depth=1
6738032 /var
9844 /run
7684 /sbin
15856 /boot
180 /tmp
3180180 /usr
3484 /opt
61304 /root
6504 /bin
81624 /lib
7428 /etc
6183804 /home
16295968 /
Auch wenn einschlägige Seiten davor warnen Partitionen (mit dem root-System) während des aktiven Betriebes zu kopieren, wurde es trotzdem ignoriert, um zu erfahren was dabei passiert kann und was sich an Fehlern noch einfach beheben lassen könnte. Damit nicht zu viele Fehler auftraten, wurden keine weiteren Anwendungen als ein Dateimanager und ein LXTerminal geöffnet.
Die SD-Karte wurde in einen USB-Adapter gesteckt und dieser in einen älteren USB-Hub (Digitus USB-Hub 4x 2.0), an dem auch die Tastatur und die Maus hängt. Dadurch wird die Übertragung beim Schreiben deutlich verlangsamt. Aber dies war beabsichtigt um zu verhindern, dass die Karte beim Schreiben zu warm wird. Aus einigen Experimenten konnte ich die Erfahrung machen, dass bei Übertemperaturen der Kernel wohl diese Information oder Störungsmeldung irgendwie registriert, aber in dem Falle neigt, nicht nur diesen Datenträger auszuhängen sondern auch den mit dem laufenden System.
Zunächst wurde geprüft unter welchen Device sich die SD-Karte befindet mit lsblk
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 1 59.6G 0 disk
└─sda1 8:1 1 59.6G 0 part
mmcblk0 179:0 0 29G 0 disk
├─mmcblk0p2 179:2 0 1K 0 part
├─mmcblk0p5 179:5 0 10.1G 0 part
├─mmcblk0p1 179:1 0 16.8G 0 part /
└─mmcblk0p6 179:6 0 2.1G 0 part [SWAP]
Die neue leere SD-Karte konnte nicht gemountet werden. Es wurde ein Fehler ausgegeben, dass erwartetes NTFS nicht vollständig wäre. Auch die Option "-t vfat" half nicht weiter.
$ pmount /dev/sda1
Untersucht mit testdisk ergab auch, dass sich keine Dateien auf dem Medium befänden.
$ testdisk /dev/sda1
$ sudo fdisk -l /dev/sda
Disk /dev/sda: 59.6 GiB, 64021856256 bytes, 125042688 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000
Device Boot Start End Sectors Size Id Type
/dev/sda1 32768 125042687 125009920 59.6G 7 HPFS/NTFS/exFAT
$ sudo dd of=/dev/sda if=/dev/mmcblk0 status=progress
dd: invalid status flag: ‘progress’
$ dd --version
dd (coreutils) 8.23
Die Option der Statusanzeige wird erst ab der Version 8.24 unterstützt und daher schlug dies fehl.
Somit wurde der Kopiervorgang gestartet.
$ sudo dd of=/dev/sda if=/dev/mmcblk0
Eine Statusanzeige wurde über folgenden Weg in einem weiteren Terminalfenster/-reiter realisiert:
$ for i in $(seq 1 250) ; do sudo pkill -USR1 -x dd ; sleep 60 ; done
Im Fenster/Reiter von dd erschienen nun folgende Ausgaben:
705569+0 records in
705569+0 records out
361251328 bytes (361 MB) copied, 160.713 s, 2.2 MB/s
47223433+0 records in
47223433+0 records out
24178397696 bytes (24 GB) copied, 11040 s, 2.2 MB/s
Während des Vorganges, nachdem etwa 23-24GB bereits kopiert wurden, wurde mit fdisk folgende Ausgabe erzeugt:
$ sudo fdisk -l /dev/sda
[sudo] password for dieterd:
Ignoring extra data in partition table 6.
Ignoring extra data in partition table 6.
Ignoring extra data in partition table 6.
Invalid flag 0xffff of EBR (for partition 6) will be corrected by w(rite).
Disk /dev/sda: 59.6 GiB, 64021856256 bytes, 125042688 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00023115
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 35278847 35276800 16.8G 83 Linux
/dev/sda2 35278848 60751871 25473024 12.2G 5 Extended
/dev/sda5 35280896 56424447 21143552 10.1G 83 Linux
/dev/sda6 ? 4351391743 8646359037 4294967295 2T ff BBT
Man sieht dabei schön, dass die Partition sda6 noch nicht geschrieben wurde und die zugehörigen Fehlermeldungen. Nach Abschluss des Vorganges ist die Ausgabe wie erwartet. Auch der Disk-Identifier wurde dabei übernommen.
$ sudo fdisk -l /dev/sda
Disk /dev/sda: 59.6 GiB, 64021856256 bytes, 125042688 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00023115
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 35278847 35276800 16.8G 83 Linux
/dev/sda2 35278848 60751871 25473024 12.2G 5 Extended
/dev/sda5 35280896 56424447 21143552 10.1G 83 Linux
/dev/sda6 56426496 60751871 4325376 2.1G 82 Linux swap / Solaris
Bevor diese Karte für den Neustart verwendet werden kann, müssen noch ein paar Änderungen der Log-Dateien und temporären Dateien dürften nicht mit dem Dateiverzeichnis übereinstimmen und müßten einen Fehler verursachen. Anschließend werden die Partitionen vergrößert und verschoben. Es soll noch eine weitere Partition erzeugt werden für Experimente in Chroot-Umgebungen. Nach dem etwas gewartet wurde, zeigte auch "lsblk" nun alle Partitionen der SD-Karte an, ohne dass über abziehen und erneutes anstecken dies veranlaßt werden mußte.
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 1 59.6G 0 disk
├─sda2 8:2 1 1K 0 part
├─sda5 8:5 1 10.1G 0 part
├─sda1 8:1 1 16.8G 0 part
└─sda6 8:6 1 2.1G 0 part
$ sudo fsck /dev/sda1
fsck from util-linux 2.25.2
e2fsck 1.42.12 (29-Aug-2014)
Superblock needs_recovery flag is clear, but journal has data.
Run journal anyway<y>? yes
/dev/sda1: recovering journal
Clearing orphaned inode 42146 (uid=0, gid=0, mode=0100644, size=30004)
Clearing orphaned inode 42129 (uid=0, gid=0, mode=0100644, size=30728)
Clearing orphaned inode 42080 (uid=0, gid=0, mode=0100644, size=824976)
Clearing orphaned inode 29330 (uid=0, gid=0, mode=0100644, size=219384)
Pass 1: Checking inodes, blocks, and sizes
Running additional passes to resolve blocks claimed by more than one inode...
Pass 1B: Rescanning for multiply-claimed blocks
Multiply-claimed block(s) in inode 163532: 584828 584829
Multiply-claimed block(s) in inode 163546: 584828
Multiply-claimed block(s) in inode 163547: 584829
Pass 1C: Scanning directories for inodes with multiply-claimed blocks
Pass 1D: Reconciling multiply-claimed blocks
(There are 3 inodes containing multiply-claimed blocks.)
File /home/dieterd/.kde/share/apps/kcookiejar/cookies (inode #163532, mod time Sat Jan 14 10:50:23 2017)
has 2 multiply-claimed block(s), shared with 2 file(s):
... (inode #163547, mod time Sat Jan 14 11:07:02 2017)
... (inode #163546, mod time Sat Jan 14 11:07:02 2017)
Clone multiply-claimed blocks<y>? yes
File ... (inode #163546, mod time Sat Jan 14 11:07:02 2017)
has 1 multiply-claimed block(s), shared with 1 file(s):
/home/dieterd/.kde/share/apps/kcookiejar/cookies (inode #163532, mod time Sat Jan 14 10:50:23 2017)
Multiply-claimed blocks already reassigned or cloned.
File ... (inode #163547, mod time Sat Jan 14 11:07:02 2017)
has 1 multiply-claimed block(s), shared with 1 file(s):
/home/dieterd/.kde/share/apps/kcookiejar/cookies (inode #163532, mod time Sat Jan 14 10:50:23 2017)
Multiply-claimed blocks already reassigned or cloned.
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Unattached inode 163537
Connect to /lost+found<y>? yes
Inode 163537 ref count is 2, should be 1. Fix<y>? yes
...
Pass 5: Checking group summary information
Block bitmap differences: +(584737--584743) +584792 +584804
Fix<y>? yes
Free blocks count wrong for group #0 (287, counted=285).
Fix<y>? yes
....
Inode bitmap differences: +(163537--163547)
Fix<y>? yes
Free inodes count wrong for group #20 (1744, counted=1733).
Fix<y>? yes
...
/dev/sda1: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sda1: 204885/1080000 files (2.1% non-contiguous), 4148678/4409600 blocks
# Und ein zweites Mal zum Test:
$ sudo fsck /dev/sda1
fsck from util-linux 2.25.2
e2fsck 1.42.12 (29-Aug-2014)
/dev/sda1: clean, 204885/1080000 files, 4148678/4409600 blocks
Alle anderen Partitionen ergaben keine Fehlermeldung.
$ sudo fsck /dev/sda5
$ sudo fsck /dev/sda6
Als nächstes werden die Partitionen verschoben und vergrößert.
$ sudo gparted
Als erstes wurde die erweiterte Partition vergrößert, d.h. der zusätzliche Speicherbereich wurde dieser zugeordnet.
Am Ende der Speicherbereiches wurde eine neue Swap-Partition von etwa 3,5GB (Größe ca. 1,5x RAM) angelegt.
Die logischen Partitionen innerhalb der erweiterten Partition wurden verschoben. Das Kopieren der Inhalte (ca. 4GB) innerhalb dieser Partition benötigte fast 10 Minuten.
Erst dann kann die untere Grenze der erweiterten Partition, die die logischen Partitionen beinhaltet, verschoben werden.
Nun ließ sich die erste Partition vergrößern.
Und hier machte gparted eine Fehler, indem die Partition verschoben wurde, statt den neuen Teil hinzuzunehmen. Somit dauerte das unnötige Kopieren 40 Minuten. Vermutlich war die Anwendung etwas irritiert, von den 64MB die unter der Partition für arm-Systeme frei gehalten werden müssen. Es wäre bemerkt worden, wenn die Abfrage auf ändern abgebrochen worden wäre und danach die Aufteilung noch einmal kritisch betrachtet worden wäre. Die Ausgabe von fdisk während des Kopierens zeigte allerdings, nur eine Hinzunahme von Speicherbereichen geplant und eingegeben war. Anschließend wurde alles wieder nach unten verschoben. Dabei muss beachtet werden, dass diese Partition erst bei Sektor 2048 beginnt. Dies kann im Menü von gparted unter "Device" und "Info" eingesehen werden.
$ sudo fdisk -l /dev/sda
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 53096447 53094400 25.3G 83 Linux
/dev/sda2 53096448 125042687 71946240 34.3G 5 Extended
Und so sieht die Partitionierung am Ende der ganzen Prozedur aus.
$ sudo fdisk -l /dev/sda
Disk /dev/sda: 59.6 GiB, 64021856256 bytes, 125042688 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00023115
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 52967423 52965376 25.3G 83 Linux
/dev/sda2 53096448 125042687 71946240 34.3G 5 Extended
/dev/sda5 53098496 86777855 33679360 16.1G 83 Linux
/dev/sda6 86779904 117583871 30803968 14.7G 83 Linux
/dev/sda7 117585920 125042687 7456768 3.6G 82 Linux swap / Solaris
Nun wurde der Cubietruck heruntergefahren und mit der neuen SD-Karte anschließend gestartet. Der Rechner fuhr auf anhieb hoch. Es wurde noch die falsche Uhzeit (Zeitpunkt des kopierens) und die Swap-Partition nicht eingebunden. Da die swap-Partition geändert wurde (vorher 6. nun 7. Partition), müssen die zugehörigen Konfigurationsdateien noch angepaßt werden. Da von Anfang an die Schritte dokumentiert wurden, war dies schnell gefunden und wieder nachgezogen.
$ sudo nano /etc/fstab
$ cat /etc/fstab
# UNCONFIGURED FSTAB FOR BASE SYSTEM
tmpfs /tmp tmpfs nodev,nosuid,size=256M 0 0
/dev/mmcblk0p1 / ext4 defaults,noatime,nodiratime,data=writeback,commit=600,errors=remount-ro 0 0
/var/swap none swap sw,pri=1 0 0
/dev/mmcblk0p7 none swap sw,pri=5 0 0
$ sudo swapon
NAME TYPE SIZE USED PRIO
/var/swap file 128M 0B 1
$ sudo swapon /dev/mmcblk0p7
$ sudo swapon
NAME TYPE SIZE USED PRIO
/var/swap file 128M 0B 1
/dev/mmcblk0p7 partition 3.6G 0B -1
Anbei wurde noch die Priorität im Betrieb auf die Angaben in der /etc/fstab geändert.
$ sudo swapoff /dev/mmcblk0p7
$ sudo swapon -a
$ sudo swapon
NAME TYPE SIZE USED PRIO
/var/swap file 128M 0B 1
/dev/mmcblk0p7 partition 3.6G 0B 5
Der nächste Umstieg wird voraussichtlich ein Umzug des Betriebssystems auf eine 120 oder größere SSD-Festplatte. Allerdings im Hinblick auf den Stromverbrauch ist die Lösung mit SD-Karte energiesparender.
Vor dem Updaten sollte unbedingt nachgesehen werden, wie viel Platz noch auf der SD-Karte vorhanden ist. Zum Beispiel Konsolenbefehl „df“
Updaten der Paketquellen: sudo apt-get update
Updaten der Pakete: sudo apt-get upgrade
Auf eine neue Version von Armbian umsteigen, empfehle ich dies auf einer richtigen Konsole (mit Strg+Alt+F1...F4) und nicht unter der graphischen Oberfläche in einem dort geöffneten Terminalfenster (xterm) durchzuführen. Manchmal werden bei der Installation Abfragen zur Auswahl von Konfigurationen angeboten (editieren, behalten oder des „maintainers“ verwenden), die einige praktischen Einstellungen überschreiben können. Zum Beispiel kann auftreten, dass Befehle nur noch als root in einem echten root-Konsole (sudo su, angelegter root eigenem Paßwort) ausgeführt werden können, aber mit sudo aufgerufen nicht mehr funktionieren, da in der neuen Version einige Berechtigungen geändert wurden.
sudo apt-get dist-upgrade
Nicht immer sind alle Anwendungen im Repository zu finden, die vielleicht benötigt werden. Für diese Fall ist es möglich weitere Quellen für den Paketmanager hinzu zu fügen. Allerdings hat dies nicht nur Vorteile und wird daher nicht bereits von Seiten der Distribution vorgesehen. Auf Grund dieser Änderungen können Konflikte auftreten, die sich nicht mehr einfach lösen lassen. Es müssen auch erheblich viele Dateien in die Verzeichnisse für apt-get heruntergeladen werden und belegen natürlich entsprechend viel Speicherplatz. Beim Start von "apt-get upgrade" ist deutlich zu bemerken, dass der Durchlauf bei dem die Prozente hochgezählt werden länger dauert.
Sinnvolle Repositories können sein das Hinzufügen der i386-Architektur für spezielle Treiber unter qemu der aktuellen Hauptsdistribution (hier Armbian), die Debian und Ubuntu Paketquellen. Entsprechende Dateien müssen hierzu erstellt werden und unter /etc/apt/sources.list.d abgelegt werden.
Als Unterstützung für Legacy-Werkzeuge wurden noch einige Zeit die Dateien unter /ets/apt berücksichtigt, aber aktuell wird hier nur noch die Datei sources.list verarbeitet und alle anderen Dateien mit anderen Namen müssen unter /etc/apt/sources.list.d liegen. Wenn dies nicht von Anfang an berücksichtigt wird, tauchen hier irgendwann unnötig Probleme auf. Dem Autor dieses Textes passierte dies bereits.
/etc/apt/i386.list
/etc/apt/sources.list.d/i386.list
/etc/apt/ubuntu.list
./ubuntu_16p04.list
./apt.conf.d
./apt.conf.d/01autoremove-kernels
./apt.conf.d/02periodic
./apt.conf.d/01autoremove
./apt.conf.d/50unattended-upgrades
./apt.conf.d/71-no-recommends
./apt.conf.d/70debconf
./preferences.d
./preferences.d/my_preferences
./preferences.d/50-armbian.pref
./ubuntu.list
./trusted.gpg~
./sources.list
./sources.list.d
./sources.list.d/i386.list
./sources.list.d/ubuntu_16p04.list
./sources.list.d/armbian.list
./sources.list.d/koodur.list
./sources.list.d/ubuntu.list
./i386.list.save
lsb_release -ci
Distributor ID: Debian
Codename: jessie
lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 8.6 (jessie)
Release: 8.6
Codename: jessie
$ sudo dpkg --print-foreign-architectures
i386
$ sudo dpkg --print-architecture
armhf
apt-cache policy
Mit apt-key list kann man sich alle seine Schlüssel für die Paketverwaltung anzeigen lassen.
Fehlermeldung während apt-get update:
W: GPG error: http://ports.ubuntu.com trusty-security InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
Abhilfe zur Fehlermeldung:
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --homedir
......
keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
gpg: requesting key 437D05B5 from hkp server keyserver.ubuntu.com
gpg: key 437D05B5: public key "Ubuntu Archive Automatic Signing Key <ftpmaster@ubuntu.com>" imported
gpg: Total number processed: 1
gpg: imported: 1
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --homedir
........
--keyring /etc/apt/trusted.gpg.d/debian-archive-wheezy-stable.gpg --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
gpg: requesting key C0B21F32 from hkp server keyserver.ubuntu.com
gpg: key C0B21F32: public key "Ubuntu Archive Automatic Signing Key (2012) <ftpmaster@ubuntu.com>" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
Zertifikate: koodur.com
Fehlermeldung während apt-get update:
W: GPG error: http://packages.koodur.com jessie InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 02E1146D054C36F8
https://certificatedetails.com/dacbeaad5b085dccfffc2654ce49e555c638f4f8/16d6006ffc96fdee18a9f2b221164a56/koodur.com
Abhilfe zur Fehlermeldung:
$ wget -O - http://packages.koodur.com/keyring.gpg | sudo apt-key add -
--2016-12-05 14:27:21-- http://packages.koodur.com/keyring.gpg
Resolving packages.koodur.com (packages.koodur.com)... [sudo] password for dieterd:
185.94.112.67
Connecting to packages.koodur.com (packages.koodur.com)|185.94.112.67|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1698 (1.7K) [application/octet-stream]
Saving to: ‘STDOUT’
- 100%[=====================>] 1.66K 10.6KB/s in 0.2s
2016-12-05 14:27:42 (10.6 KB/s) - written to stdout [1698/1698]
OK
Abhilfe zur Fehlermeldung (Fehlschlag):
$ wget -O - http://packages.koodur.com/dists/jessie/Release.gpg | sudo apt-key add -
--2016-12-05 14:47:05-- http://packages.koodur.com/dists/jessie/Release.gpg
Resolving packages.koodur.com (packages.koodur.com)... 185.94.112.67
Connecting to packages.koodur.com (packages.koodur.com)|185.94.112.67|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 819 [application/octet-stream]
Saving to: ‘STDOUT’
- 100%[=====================>] 819 --.-KB/s in 0s
2016-12-05 14:47:08 (11.8 MB/s) - written to stdout [819/819]
gpg: no valid OpenPGP data found.
Einen Befehl in die Nacht verschieben:
$ sudo bash -c 'sleep 13000; sudo apt-get update'
[sudo] password:
$ sleep 10000 ; wget http://launchpadlibrarian.net/106124359/qucs_0.0.16-2_armhf.deb
Auf Grund der Nutzung verschiedener Anwendungen und Werkzeuge aus verschiedenen Linux-Repositories wurden die Quellen des Installationsmanagers "quick & dirty" erweitert. Ab und zu tauchten Fehlermeldung, die auf unauflösbare Probleme hinwiesen.
$ ls /etc/apt/
apt.conf.d preferences.d trusted.gpg ubuntu_16p04.list
i386.list sources.list trusted.gpg~ ubuntu.list
i386.list.save sources.list.d trusted.gpg.d
# Die nicht im Unterverzeichnis liegende Dateien sind historisch bedingt, da spätere
# Versionen von apt nur noch die Dateien in den Unterverzeichnissen lesen.
$ ls /etc/apt/sources.list.d/
armbian.list i386.list koodur.list ubuntu_16p04.list ubuntu.list
# Über die Zeit haben sich hier einige Dateien angesammelt.
Die folgenden Ausgaben zeigen zwei der Quellverzeichnisdateien von apt aus denen ersichtlich wird, dass hier einiges an Quellen im Laufe der Zeit geändert wurde.
$ cat /etc/apt/sources.list.d/armbian.list
deb [arch=armhf] http://apt.armbian.com jessie main
$ cat /etc/apt/sources.list.d/i386.list
#deb [arch=i386] http://ftp.debian.org/debian/ jessie main contrib non-free
#deb [arch=i386] http://ftp.debian.org/debian/ jessie-updates main contrib non-free
deb [arch=i386] http://httpredir.debian.org/debian jessie main contrib non-free
deb-src [arch=i386] http://httpredir.debian.org/debian jessie main
deb [arch=i386] http://httpredir.debian.org/debian jessie-updates main contrib non-free
deb-src [arch=i386] http://httpredir.debian.org/debian jessie-updates main
#deb [arch=i386] http://security.debian.org/ jessie/updates main
# deb-src [arch=i386] http://security.debian.org/ jessie/updates main
# security packages come always from main repository
deb [arch=i386] http://security.debian.org/ jessie/updates main contrib non-free
deb-src [arch=i386] http://security.debian.org/ jessie/updates main contrib non-free
$ cat /etc/apt/sources.list.d/koodur.list
deb [arch=armhf] http://packages.koodur.com jessie main
$ cat /etc/apt/sources.list.d/ubuntu_16p04.list
#------------------------------------------------------------------------------#
# OFFICIAL UBUNTU REPOS #
#------------------------------------------------------------------------------#
#------------------------------------------------------------------------------#
# OFFICIAL UBUNTU REPOS #
#------------------------------------------------------------------------------#
###### Ubuntu Main Repos
deb [arch=armhf] http://ports.ubuntu.com/ xenial main restricted universe multiverse
deb-src [arch=armhf] http://ports.ubuntu.com/ xenial main restricted universe multiverse
###### Ubuntu Update Repos
deb [arch=armhf] http://ports.ubuntu.com/ xenial-security main restricted universe multiverse
deb [arch=armhf] http://ports.ubuntu.com/ xenial-updates main restricted universe multiverse
deb [arch=armhf] http://ports.ubuntu.com/ xenial-proposed main restricted universe multiverse
deb [arch=armhf] http://ports.ubuntu.com/ xenial-backports main restricted universe multiverse
deb-src [arch=armhf] http://ports.ubuntu.com/ xenial-security main restricted universe multiverse
deb-src [arch=armhf] http://ports.ubuntu.com/ xenial-updates main restricted universe multiverse
deb-src [arch=armhf] http://ports.ubuntu.com/ xenial-proposed main restricted universe multiverse
deb-src [arch=armhf] http://ports.ubuntu.com/ xenial-backports main restricted universe multiverse
$ cat /etc/apt/sources.list.d/ubuntu.list
#------------------------------------------------------------------------------#
# OFFICIAL UBUNTU REPOS #
#------------------------------------------------------------------------------#
###### Ubuntu Main Repos
deb [arch=armhf] http://ports.ubuntu.com/ trusty main restricted universe multiverse
deb-src [arch=armhf] http://ports.ubuntu.com/ trusty main restricted universe multiverse
###### Ubuntu Update Repos
deb [arch=armhf] http://ports.ubuntu.com/ trusty-security main restricted universe multiverse
deb [arch=armhf] http://ports.ubuntu.com/ trusty-updates main restricted universe multiverse
deb [arch=armhf] http://ports.ubuntu.com/ trusty-proposed main restricted universe multiverse
deb [arch=armhf] http://ports.ubuntu.com/ trusty-backports main restricted universe multiverse
deb-src [arch=armhf] http://ports.ubuntu.com/ trusty-security main restricted universe multiverse
deb-src [arch=armhf] http://ports.ubuntu.com/ trusty-updates main restricted universe multiverse
deb-src [arch=armhf] http://ports.ubuntu.com/ trusty-proposed main restricted universe multiverse
deb-src [arch=armhf] http://ports.ubuntu.com/ trusty-backports main restricted universe multiverse
Mit folgendem Skript können die vorhandenen Paketquellen sortiert werden, dessen Prioritäten manuell gesetzt werden sollen. Aktuell lagen die meisten Prioritäten auf dem Wert von 500.
$ sudo apt-cache policy | grep release | sort -u | sed -e "s/\,c=/\n/g" | sort -u | grep release
release a=now
release o=Armbian,a=jessie,n=jessie,l=Armbian
release o=Debian,a=stable-updates,n=jessie-updates,l=Debian
release o=Debian,a=testing,n=stretch,l=Debian
release o=Debian,a=testing,n=stretch,l=Debian-Security
release o=Debian,a=testing-updates,n=stretch-updates,l=Debian
release o=Debian Backports,a=jessie-backports,n=jessie-backports,l=Debian Backports
release o=Lauri Võsandi,a=jessie,n=jessie,l=Cubietruck packages for Debian Jessie
release v=14.04,o=Ubuntu,a=trusty-backports,n=trusty,l=Ubuntu
release v=14.04,o=Ubuntu,a=trusty,n=trusty,l=Ubuntu
release v=14.04,o=Ubuntu,a=trusty-proposed,n=trusty,l=Ubuntu
release v=14.04,o=Ubuntu,a=trusty-security,n=trusty,l=Ubuntu
release v=14.04,o=Ubuntu,a=trusty-updates,n=trusty,l=Ubuntu
release v=16.04,o=Ubuntu,a=xenial-backports,n=xenial,l=Ubuntu
release v=16.04,o=Ubuntu,a=xenial,n=xenial,l=Ubuntu
release v=16.04,o=Ubuntu,a=xenial-proposed,n=xenial,l=Ubuntu
release v=16.04,o=Ubuntu,a=xenial-security,n=xenial,l=Ubuntu
release v=16.04,o=Ubuntu,a=xenial-updates,n=xenial,l=Ubuntu
release v=2.1,o=Debian,a=unstable,n=sid,l=DebianLinuxSunxi
release v=8.7,o=Debian,a=stable,n=jessie,l=Debian
release v=8,o=Debian,a=stable,n=jessie,l=Debian-Security
Die Auswertung ergab, dass Ubuntu und Debian allein über den Versionsnamen zu unterscheiden wären. Nur zwischen Debian und Armbian müßte gegebenenfalls noch ein weiterer Parameter hinzu genommen werden.
Ein kleiner Vorteil eines solchen Dokumentes war, dass in Ruhe die Inhalte (offline) bearbeitet werden konnten, um diese später mittels copy&paste zu übertragen.
https://www.armbian.com/kernel/
echo "deb http://apt.armbian.com $(lsb_release -cs) main utils $(lsb_release -cs)-desktop" >> /etc/apt/sources.list.d/armbian.list
apt-key adv --keyserver keys.gnupg.net --recv-keys 0x93D6889F9F0E78D5
apt-get update
$ sudo apt-key adv --keyserver keys.gnupg.net --recv-keys 0x93D6889F9F0E78D5
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --homedir /tmp/tmp.qNGnyK7i4n --no-auto-check-trustdb --trust-model always --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyring /etc/apt/trusted.gpg.d/debian-archive-jessie-automatic.gpg --keyring /etc/apt/trusted.gpg.d/debian-archive-jessie-security-automatic.gpg --keyring /etc/apt/trusted.gpg.d/debian-archive-jessie-stable.gpg --keyring /etc/apt/trusted.gpg.d/debian-archive-squeeze-automatic.gpg --keyring /etc/apt/trusted.gpg.d/debian-archive-squeeze-stable.gpg --keyring /etc/apt/trusted.gpg.d/debian-archive-wheezy-automatic.gpg --keyring /etc/apt/trusted.gpg.d/debian-archive-wheezy-stable.gpg --keyserver keys.gnupg.net --recv-keys 0x93D6889F9F0E78D5
gpg: requesting key 9F0E78D5 from hkp server keys.gnupg.net
gpg: key 9F0E78D5: "Igor Pecovnik (Ljubljana, Slovenia) <igor.pecovnik@gmail.com>" not changed
gpg: Total number processed: 1
gpg: unchanged: 1
dieterd@cubietruck:~/Downloads$
http://apt.armbian.com/dists/xenial/
Index of /dists/xenial/
main/ 24-Feb-2017 00:03 -
utils/ 24-Feb-2017 00:03 -
xenial-desktop/ 24-Feb-2017 00:03 -
$ cat /etc/apt/sources.list.d/armbian.list
# Official source of packages from Armbian
#
# debian 06 squeeze
# debian 07 wheezy
# debian 08 jessie
# debian 09 stretch = sid in 2017
#
# Ubuntu 14.04 LTS Trusty Tahr , trusty
# Ubuntu 15.04 Vivid Vervet
# Ubuntu 15.10 Wily Werewolf
# Ubuntu 16.04 LTS Xenial Xerus , xenial
# Ubuntu 16.10 Yakkety Yak
# Ubuntu 17.04 Zesty Zapus = entspräche sid in 2017
#
# 2017 Armbian based on jessie or alternative on xenial.
# Origin before 2017
# deb [arch=armhf] http://apt.armbian.com jessie main
# Added 2017 March:
# Two sources to prevent conflicts you urgently recommended to set
# prioritiy-pin numbers for apt in policy-files.
deb [arch=armhf] http://apt.armbian.com jessie main utils jessie-desktop
deb [arch=armhf] http://apt.armbian.com xenial main utils xenial-desktop
$ cat /etc/apt/sources.list.d/i386.list
#deb [arch=i386] http://ftp.debian.org/debian/ jessie main contrib non-free
#deb [arch=i386] http://ftp.debian.org/debian/ jessie-updates main contrib non-free
deb [arch=i386] http://httpredir.debian.org/debian jessie main contrib non-free
deb-src [arch=i386] http://httpredir.debian.org/debian jessie main
deb [arch=i386] http://httpredir.debian.org/debian jessie-updates main contrib non-free
deb-src [arch=i386] http://httpredir.debian.org/debian jessie-updates main
#deb [arch=i386] http://security.debian.org/ jessie/updates main
# deb-src [arch=i386] http://security.debian.org/ jessie/updates main
# security packages come always from main repository
deb [arch=i386] http://security.debian.org/ jessie/updates main contrib non-free
deb-src [arch=i386] http://security.debian.org/ jessie/updates main contrib non-free
$ cat /etc/apt/sources.list.d/koodur.list
deb [arch=armhf] http://packages.koodur.com jessie main
$ cat /etc/apt/sources.list.d/ubuntu_16p04.list
#------------------------------------------------------------------------------#
# OFFICIAL UBUNTU REPOS #
#------------------------------------------------------------------------------#
#------------------------------------------------------------------------------#
# OFFICIAL UBUNTU REPOS #
#------------------------------------------------------------------------------#
###### Ubuntu Main Repos
deb [arch=armhf] http://ports.ubuntu.com/ xenial main restricted universe multiverse
deb-src [arch=armhf] http://ports.ubuntu.com/ xenial main restricted universe multiverse
###### Ubuntu Update Repos
deb [arch=armhf] http://ports.ubuntu.com/ xenial-security main restricted universe multiverse
deb [arch=armhf] http://ports.ubuntu.com/ xenial-updates main restricted universe multiverse
deb [arch=armhf] http://ports.ubuntu.com/ xenial-proposed main restricted universe multiverse
deb [arch=armhf] http://ports.ubuntu.com/ xenial-backports main restricted universe multiverse
deb-src [arch=armhf] http://ports.ubuntu.com/ xenial-security main restricted universe multiverse
deb-src [arch=armhf] http://ports.ubuntu.com/ xenial-updates main restricted universe multiverse
deb-src [arch=armhf] http://ports.ubuntu.com/ xenial-proposed main restricted universe multiverse
deb-src [arch=armhf] http://ports.ubuntu.com/ xenial-backports main restricted universe multiverse
$ cat /etc/apt/sources.list.d/ubuntu.list
#------------------------------------------------------------------------------#
# OFFICIAL UBUNTU REPOS #
#------------------------------------------------------------------------------#
###### Ubuntu Main Repos
deb [arch=armhf] http://ports.ubuntu.com/ trusty main restricted universe multiverse
deb-src [arch=armhf] http://ports.ubuntu.com/ trusty main restricted universe multiverse
###### Ubuntu Update Repos
deb [arch=armhf] http://ports.ubuntu.com/ trusty-security main restricted universe multiverse
deb [arch=armhf] http://ports.ubuntu.com/ trusty-updates main restricted universe multiverse
deb [arch=armhf] http://ports.ubuntu.com/ trusty-proposed main restricted universe multiverse
deb [arch=armhf] http://ports.ubuntu.com/ trusty-backports main restricted universe multiverse
deb-src [arch=armhf] http://ports.ubuntu.com/ trusty-security main restricted universe multiverse
deb-src [arch=armhf] http://ports.ubuntu.com/ trusty-updates main restricted universe multiverse
deb-src [arch=armhf] http://ports.ubuntu.com/ trusty-proposed main restricted universe multiverse
deb-src [arch=armhf] http://ports.ubuntu.com/ trusty-backports main restricted universe multiverse
$ cat /etc/apt/preferences.d/50-armbian.pref
Package: *
Pin: origin "apt.armbian.com"
Pin-Priority: 500
Neue Version:
$ cat /etc/apt/preferences.d/50-armbian.pref
#Package: *
#Pin: origin "apt.armbian.com"
#Pin-Priority: 500
Package: *
Pin: release o=Armbian,n=jessie
Pin-Priority: 520
Package: *
Pin: release o=Armbian,n=xenial
Pin-Priority: 510
Anscheinend lassen sich origin und release nicht mischen oder überlagern.
dieterd@cubietruck:~/Downloads$ cat /etc/apt/preferences.d/my_preferences
Package: *
Pin: release a=stable
Pin-Priority: 700
Package: *
Pin: release a=testing
Pin-Priority: 600
Package: *
Pin: release a=unstable
Pin-Priority: 500
Package: *
Pin: release n=jessie
Pin-Priority: 750
Package: *
Pin: release n=stretch
Pin-Priority: 650
Package: *
Pin: release n=jessie-backports
Pin-Priority: 550
Package: *
Pin: origin packages.linux-sunxi.org
Pin: release n=sid
Pin-Priority: 600
$ apt-cache policy | sort
100 http://ports.ubuntu.com/ trusty-backports/main armhf Packages
100 http://ports.ubuntu.com/ xenial-backports/main armhf Packages
100 /var/lib/dpkg/status
500 http://apt.armbian.com/ jessie/main armhf Packages
500 http://httpredir.debian.org/debian/ jessie-backports/main Translation-en
500 http://httpredir.debian.org/debian/ jessie/main Translation-en
500 http://httpredir.debian.org/debian/ jessie-updates/main armhf Packages
500 http://httpredir.debian.org/debian/ stretch/main Translation-en
500 http://httpredir.debian.org/debian/ stretch-updates/main armhf Packages
500 http://packages.linux-sunxi.org/debian/ sid/main armhf Packages
500 http://ports.ubuntu.com/ trusty-backports/main Translation-en
500 http://ports.ubuntu.com/ trusty/main armhf Packages
500 http://ports.ubuntu.com/ trusty-proposed/main armhf Packages
500 http://ports.ubuntu.com/ trusty-security/main armhf Packages
500 http://ports.ubuntu.com/ trusty-updates/main armhf Packages
500 http://ports.ubuntu.com/ trusty-updates/main Translation-en
500 http://ports.ubuntu.com/ xenial-backports/main Translation-en
500 http://ports.ubuntu.com/ xenial/main armhf Packages
500 http://ports.ubuntu.com/ xenial-proposed/main armhf Packages
500 http://ports.ubuntu.com/ xenial-proposed/main Translation-en
500 http://ports.ubuntu.com/ xenial-security/main armhf Packages
500 http://ports.ubuntu.com/ xenial-updates/main armhf Packages
500 http://security.debian.org/ jessie/updates/main Translation-en
500 http://security.debian.org/ stretch/updates/main Translation-en
550 http://httpredir.debian.org/debian/ jessie-backports/main armhf Packages
600 http://httpredir.debian.org/debian/ stretch/main armhf Packages
600 http://security.debian.org/ stretch/updates/main armhf Packages
700 http://httpredir.debian.org/debian/ jessie/contrib armhf Packages
700 http://httpredir.debian.org/debian/ jessie/main armhf Packages
700 http://httpredir.debian.org/debian/ jessie/non-free armhf Packages
700 http://security.debian.org/ jessie/updates/contrib armhf Packages
700 http://security.debian.org/ jessie/updates/main armhf Packages
700 http://security.debian.org/ jessie/updates/non-free armhf Packages
750 http://packages.koodur.com/ jessie/main armhf Packages
$ cat /etc/apt/sources.list.d/deb_add.list
# debian 06 squeeze
# debian 07 wheezy
# debian 08 jessie
# debian 09 stretch = sid in 2017
#deb http://packages.medibuntu.org/ sid free non-free
#deb http://www.debian-multimedia.org/ stable main
#deb http://www.debian-multimedia.org/ sid main
#deb http://httpredir.debian.org/debian sqeeze main contrib non-free
#deb-src http://httpredir.debian.org/debian sqeeze main contrib non-free
#deb http://httpredir.debian.org/debian sqeeze-updates main contrib non-free
#deb-src http://httpredir.debian.org/debian sqeeze-updates main contrib non-free
#deb http://security.debian.org/ sqeeze/updates main contrib non-free
#deb-src http://security.debian.org/ sqeeze/updates main contrib non-free
# added Feb 2017
deb http://ftp.de.debian.org/debian-archive/debian/ squeeze contrib main non-free
deb http://ftp.de.debian.org/debian-archive/debian/ squeeze-lts contrib main non-free
deb http://ftp.de.debian.org/debian-archive/debian/ squeeze-proposed-updates contrib main non-free
deb http://ftp.de.debian.org/debian-archive/debian-backports/ squeeze-backports contrib main non-free
#deb-src http://ftp.de.debian.org/debian-archive/debian/ squeeze contrib main non-fre$
#deb-src http://ftp.de.debian.org/debian-archive/debian/ squeeze-lts contrib main non$
#deb-src http://ftp.de.debian.org/debian-archive/debian/ squeeze-proposed-updates con$
#deb-src http://ftp.de.debian.org/debian-archive/debian-backports/ squeeze-backports $
# added Feb 2017
deb http://httpredir.debian.org/debian wheezy main contrib non-free
#deb-src http://httpredir.debian.org/debian wheezy main contrib non-free
deb http://httpredir.debian.org/debian wheezy-updates main contrib non-free
#deb-src http://httpredir.debian.org/debian wheezy-updates main contrib non-free
deb http://httpredir.debian.org/debian wheezy-backports main contrib non-free
#deb-src http://httpredir.debian.org/debian wheezy-backports main contrib non-free
deb http://security.debian.org/ wheezy/updates main contrib non-free
#deb-src http://security.debian.org/ wheezy/updates main contrib non-free
deb http://httpredir.debian.org/debian jessie main contrib non-free
#deb-src http://httpredir.debian.org/debian jessie main contrib non-free
deb http://httpredir.debian.org/debian jessie-updates main contrib non-free
#deb-src http://httpredir.debian.org/debian jessie-updates main contrib non-free
deb http://httpredir.debian.org/debian jessie-backports main contrib non-free
#deb-src http://httpredir.debian.org/debian jessie-backports main contrib non-f$
deb http://security.debian.org/ jessie/updates main contrib non-free
#deb-src http://security.debian.org/ jessie/updates main contrib non-free
#deb http://packages.medibuntu.org/ sid free non-free
# should not used any more because new ownwer od domain unknown since 2013
#deb http://www.debian-multimedia.org/ stable main
#deb http://www.debian-multimedia.org/ sid main
# deb http://www.deb-multimedia.org stable main non-free
# deb http://www.deb-multimedia.org sid main non-free
# squeeze not found Feb 2017:
# deb http://www.deb-multimedia.org squeeze main non-free
# deb http://www.deb-multimedia.org squeeze-backports main
# Multimedia repo
#deb http://www.debian-multimedia.org testing main non-free
#deb http://www.deb-multimedia.org/ testing main non-free
# added Nov 2016
#deb http://www.deb-multimedia.org wheezy main
deb http://www.deb-multimedia.org oldstable main
#For wheezy-backports (oldstable-backports) amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc and sparc packages
# add in your /etc/apt/sources.list
deb http://www.deb-multimedia.org wheezy main non-free
deb http://www.deb-multimedia.org wheezy-backports main
#For jessie-backports (oldstable-backports) amd64, armel, armhf, i386, kfreebsd$
# add in your /etc/apt/sources.list
# added Feb 2017
deb http://www.deb-multimedia.org jessie main non-free
deb http://www.deb-multimedia.org jessie-backports main
Es wurden mehrere Durchläufe von apt-get update durchgeführt um jeweils parallel zu prüfen, ob die Fehlermeldungen erfolgreich beseitigt wurden.
Beim "sudo apt-get update" gab es auf einem anderen Rechner jenes Problem, dass eine Datei von "jessie" "main" über ein GB groß wurde. Glücklicherweise wurde dies noch rechtzeitig erkannt bevor die Festplatte voll wurde. Dies war dann auch der Anlass in einem weiteren Verzeichnis aufzuräumen, in das beim Vorgang "apt-get upgrade" die von den Servern geholten Dateien abgelegt werden.
$ ls -l /var/lib/apt/lists/ | wc
1745 15698 234371
# Hier sammeln sich im Laufe der Zeit einige Dateien an.
# Diese werden mit apt-get autoclean in der Regel nicht bereinigt.
# Durch viele Abbrüche sammelte sich dort viel an:
4 ../../mirrors/partial
8 ../../mirrors
272412 ../../lists_old
4 ../../periodic
9227016 ../../lists/partial
9818988 ../../lists
10091464 ../..
# bereinigt auf:
250 250 19374
1137340 ../../lists/partial
Mit dem Befehl "sudo apt-get upgrade -s" wurde geprüft, für welche Zahl an Paketen noch ein Update durchgeführt werden sollte und welcher Datenmenge herunter zu laden wäre.
Beim Installieren bzw. beim Aktualisieren einer Anwendung wurde auf einem anderen Rechner der Paketmanager erfolgreich abgeschossen.
$ sudo apt-get install ...
dpkg: error processing package ....... (--configure):
dependency problems - leaving unconfigured
Processing triggers for libc-bin (2.19-15) ...
Errors were encountered while processing:
.....
....: Sub-process /usr/bin/dpkg returned an error code (1)
or
....: Sub-process /usr/bin/dpkg returned an error code (2)
Nach einem solchen Fehler konnten mit apt keine Pakete mehr installiert, geändert oder entfernt werden.
Alle weiteren Versuche scheiterten, wie auch Versuche mit unterschiedlichen Versionen:
$ sudo apt-get install ...../jessie
# usw
Auch die üblichen Methoden einer Reparatur des Paketmanagements versagte.
apt-get install -f
dpkg --configure -a
dpkg --configure --pending
Deinstallieren auf Grund des Fehlers funktionierte auch nicht mehr.
$ sudo apt-get remove ...
Vermutliche Ursache: Es wurden verschiedene Distributionen vermischt. Ohne prüfen der vergebenen Prioritäten und setzen von Prioritäten bei Notwendigkeit war das mehr als nur leichtsinnig. Eine wichtige Prüfung wäre in dem Falle gewesen:
sudo apt-cache policy
# Die Ausgabe zeigte, dass fast alle Versionen die Priorität von 500 zugeteilt bekamen.
Die Ausgabe am Terminal zeigte auf, dass fast alle Versionen die Priorität von 500 zugeteilt bekamen. Somit war der entstandene Fehler eine Konsequenz fehlender und fehlerhafter Priorisierungen. Auf englischsprachigen Homepages wird hier das Schlagwort "pin" oder "pinning" verwendet.
Eine Prüfung des Inhaltes des Verzeichnisses /etc/apt/preferences.d/ ergab, dass sich hier keine einzige Datei befand. Um dies zu ändern mußte also mindestens folgende Datei angelegt werden:
sudo nano /etc/apt/preferences.d/my_preferences
Angemerkt sei, dass in diesem Verzeichnis sich bisher keine einzige Datei befand. Um herauszufinden, welche Versionsnamen es gab, die berücksichtig werden müssen, wurde folgendes kleines Skript verwendet:
$ sudo apt-cache policy | grep n= | sed -e "s/n=/\nn=/g" | sed -e "s/\,/\n/g" | grep n= | sort -u
# Ausgaben:
n=all
n=jessie
n=jessie-backports
.....
n=wheezy-updates
Es wurden die Dateien "my_policies" und auch noch einmal die Quelldateien bzw. "sourcen" für apt geprüft und auf das notwendigste angepaßt.
$ sudo cat /etc/apt/preferences.d/my_preferences
Package: *
Pin: release n=jessie
Pin-Priority: 520
Package: *
Pin: release n=jessie-backports
Pin-Priority: 530
Package: *
Pin: release n=jessie-updates
Pin-Priority: 500
Package: *
Pin: release n=stable
Pin-Priority: 520
....
Package: *
Pin: release n=all
in-Priority: 300
Das Konzept der Pin-Priority war in der Regel, dass eine Version langsam ausläuft, eine mittlere Version die Hauptrolle spielt, aber die anderen Distributionen (neuere Version) zum Zuge kommen können, wenn deren Pakete explizit ausgewählt werden oder die Abhängigkeiten nicht anderes zulassen sollten.
Ein "sudo apt-get upgrade", welches mit “n” abgebrochen wird oder "sudo apt-get upgrade -s", reichte jeweils aus um die "Policys" zu übernehmen.
sudo apt-cache policy
# Die Ausgabe zeigte, dass die Policies übernommen wurden.
Anschließend funktionierte ein Entfernen der unpassenden Dateien aus der Installation. Bereits der erste Paketname aus der Auflistung der Fehler (solche Ausgaben sollten daher immer kopiert und abgelegt werden für die Fehlerbehebung) reichte hier aus zur Deinstallation.
$ sudo apt-get remove ....
oder
$ sudo apt-get purge ....
Falls eine Installation immer noch versagt auf Grund von Abhängigkeiten kann eine Angabe der Distributionsversion weiter helfen.
$ sudo apt-get install .....
The following packages have unmet dependencies:
octave : Depends: ..... (= 3.6.2-5+deb7u1) but 4.0.3-1~bpo8+1 is to be installed
E: Unable to correct problems, you have held broken packages.
So wird nachgeprüft, welche Paketversionen wirklich installiert sind:
$ dpkg -l | grep octave
ii liboctave2:i386 3.8.2-4 i386 Shared libraries of the GNU Octave language
rc octave 3.8.2-4 i386 GNU Octave language for numerical computations
ii octave-common 4.0.3-1~bpo8+1 all architecture-independent files for octave
rc octave3.2 3.2.4-12+b1 i386 GNU Octave language for numerical computations (3.2 branch)
ii octave3.2-common 3.2.4-12 all architecture-independent files for octave3.2
Das Problem zeigte sich über Auswertung folgende Ausgaben:
$ sudo apt-cache show octave
# Es werden alle von apt möglichen Versionen (hier von squeezy bis stretch)
# ausgegeben. Zwei wesentliche Informationen sind folgende:
....
Package: octave
Version: 3.6.2-5+deb7u1
....
octave-common (= 3.6.2-5)
....
# Es muss also die Version genau zueinander passen, "=" und nicht ">=".
Also müssen die übereinstimmenden Pakete installiert werden. Upgraden geht dann auch nur abgestimmt gemeinsam. Der Bruch zwischen der Versionen entstand beim Installieren zwischen octave und octave-common, da Vorgang genau dazwischen abbrach. Folgender Befehl und dessen Ausgabe hilft bei der Suche, welche Versionen zusammenpassen.
sudo apt-cache policy octave
# Die Ausgabe zeigte alle verfügbaren Versionen.
sudo apt-cache policy octave-common
# Die Ausgabe zeigte alle verfügbaren Versionen.
# Die *** zeigen die installierte Version. Aufgabe ist nun
Falls folgende Fehlermeldung (apt-get, apt-cache) erscheint, ist dies ein Hinweis, dass es Paketlisten gibt, für die keine Priorität vergeben wurde. Das können auch manuell installierte Programme sein von deb-Paketen, die mit dpkg direkt installiert wurden ohne apt-get oder apt-file zu verwenden.
W: No priority (or zero) specified for pin
W: No priority (or zero) specified for pin
Aus dem Vergleich des Ausgaben kann die zueinander passende Version ermittelt werden.
$ sudo apt-get install octave/wheezy
oder
$ sudo apt-get install -t wheezy octave
# Bei zweiter Methode zur Angabe der Version wird auch für die Abhängigkeiten verucht bevorzugt wheezy zu verwenden.
Dieser Fehler trat bei einem anderen Rechner auf. Die letzte Zeile mit der Fehlermeldung schient darauf hin zu deuten, dass etwas mit gnuplot nicht in Ordnung sein könnte. Schließlich galt mal "Earlier versions of Octave provided plotting through the use of gnuplot. This capability is still available.". Es wurde also gnuplot gestartet. Gnuplot stürzte bei jeder Eingabe (außer Fehler, dass die Syntax unbekannt wäre) ab.
Also wurden erst einmal die Versionen nachgeprüft über folgende zwei Wege:
$ sudo apt-cache policy gnuplot
gnuplot:
Installed: 5.0.5+dfsg1-4
Candidate: 5.0.5+dfsg1-4
Version table:
*** 5.0.5+dfsg1-4 0
100 /var/lib/dpkg/status
4.6.6-2 0
520 http://httpredir.debian.org/debian/ jessie/main i386 Packages
4.6.6-1~bpo70+1 0
610 http://httpredir.debian.org/debian/ wheezy-backports/main i386 Packages
4.6.0-8 0
620 http://httpredir.debian.org/debian/ wheezy/main i386 Packages
4.4.0-1.1 0
410 http://ftp.de.debian.org/debian-archive/debian/ squeeze/main i386 Packages
$ gnuplot --version
gnuplot 4.4 patchlevel 0
Die installierte Versionsangabe des Paketmanagers unterschied sich von der gestarteten Version. In dem Unterschied liegt des Fehlers Ursache, war die Schlußfolgerung. Doch was nun folgte war wirklich richtig verwirrend und eine echte Nuß zum knacken.
Also versuchte ich erst einmal eine andere Version zu installieren.
$ sudo apt-get install gnuplot/wheezy
# Nach den Ausgaben habe es funktioniert.
$ gnuplot --version
gnuplot 4.4 patchlevel 0
Der Test ergab, dass der Fehler immer noch nicht behoben war.
$ sudo apt-cache policy gnuplot
gnuplot:
Installed: 4.6.0-8
Candidate: 4.6.0-8
Version table:
4.6.6-2 0
520 http://httpredir.debian.org/debian/ jessie/main i386 Packages
4.6.6-1~bpo70+1 0
610 http://httpredir.debian.org/debian/ wheezy-backports/main i386 Packages
*** 4.6.0-8 0
620 http://httpredir.debian.org/debian/ wheezy/main i386 Packages
100 /var/lib/dpkg/status
4.4.0-1.1 0
410 http://ftp.de.debian.org/debian-archive/debian/ squeeze/main i386 Packages
Aber die Paketverwaltung zeigte, es wäre die richtige Version installiert.
$ sudo apt-get install gnuplot/wheezy
$ sudo apt-get install -t wheezy gnuplot
$ sudo apt-get install -t squeeze gnuplot
$ sudo apt-get install gnuplot/squeeze
Interessant war hier, dass die beiden Varianten der Versionsangabe unterschiedliches Verhalten beim Installieren zeigten. Obwohl die gleiche Version installiert wurde, stürzte gnuplot immer noch ab.
$ gnuplot --version
gnuplot 4.4 patchlevel 0
dieterd@client3:/etc/apt/sources.list.d$ sudo apt-cache policy gnuplot
gnuplot:
Installed: 4.4.0-1.1
Candidate: 4.6.0-8
$ sudo apt-get remove gnuplot/squeeze/main
$ sudo apt-get remove -t squeeze gnuplot
$ sudo apt-get purge -t squeeze gnuplot
$ sudo apt-get purge gnuplot
Aber gnuplot war immer noch hartnäckig vorhanden.
$ gnuplot --version
gnuplot 4.4 patchlevel 0
$ whereis gnuplot
gnuplot: /usr/bin/gnuplot /usr/lib/gnuplot /usr/share/gnuplot /usr/share/man/man1/gnuplot.1.gz
Schließlich kam ich auf die Idee zu nachzusehen, was "dpkg" als Ergebnis ausgibt.
$ sudo dpkg -l | grep gnuplot
ii gnuplot-nox 4.4.0-1.1+b1 i386 A command-line driven interactive plotting program
ii gnuplot-x11 4.4.0-1.1+b1 i386 A command-line driven interactive plotting program
Gemäß dieser Angabe wäre gnuplot immer noch installiert und apt-get konnte dies irgendwie nicht ändern.
Ein weiterer Versuch mit aptitude auf der Konsole, der hier auszugsweise dokumentiert wurde, war auch erfolglos.
$ sudo aptitude show gnuplot | grep gnuplot
Package: gnuplot
Depends: gnuplot-nox | gnuplot-x11 | gnuplot-qt
Suggests: gnuplot-doc
Provided by: gnuplot5
packaged in gnuplot-x11.
This package is for transition and to install a full-featured gnuplot
Homepage: http://gnuplot.sourceforge.net/
dieterd@client3:/etc/apt/sources.list.d$ whereis gnuplot-nox
gnuplot-nox: /usr/bin/gnuplot-nox /usr/share/man/man1/gnuplot-nox.1.gz
# Wenn beim Aufruf Terminal "unknown" angezeigt wurde, fehlte gnuplott-x11
$ whereis gnuplot-x11
gnuplot-x11:
$ sudo aptitude purge gnuplot
Es ist immer noch vorhanden gemäß Ausgabe und Starttest.
$ sudo dpkg -l | grep gnuplot
ii gnuplot-nox 4.4.0-1.1+b1 i386 A command-line driven interactive plotting program
ii gnuplot-x11 4.4.0-1.1+b1 i386 A command-line driven interactive plotting program
$ sudo aptitude show gnuplot | grep gnuplot
Package: gnuplot
Depends: gnuplot-nox | gnuplot-x11 | gnuplot-qt
Suggests: gnuplot-doc
Provided by: gnuplot5
packaged in gnuplot-x11.
This package is for transition and to install a full-featured gnuplot
Homepage: http://gnuplot.sourceforge.net/
Somit kam die Idee das Paket einzeln mit dpkg zu entfernen.
$ sudo dpkg -r gnuplot
dpkg: warning: ignoring request to remove gnuplot which isn't installed
dieterd@client3:/etc/apt/sources.list.d$ sudo dpkg -r gnuplot-nox
dpkg: dependency problems prevent removal of gnuplot-nox:
gnuplot-x11 depends on gnuplot-nox (>= 4.4.0-1.1+b1).
dpkg: error processing package gnuplot-nox (--remove):
dependency problems - not removing
Errors were encountered while processing:
gnuplot-nox
$ sudo dpkg -r gnuplot-x11
(Reading database ... 225749 files and directories currently installed.)
Removing gnuplot-x11 (4.4.0-1.1+b1) ...
Removing 'diversion of /usr/bin/gnuplot to /usr/bin/gnuplot-nox by gnuplot-x11'
Removing 'diversion of /usr/share/man/man1/gnuplot.1.gz to /usr/share/man/man1/gnuplot-nox.1.gz by gnuplot-x11'
Processing triggers for man-db (2.7.5-2) ...
$ sudo dpkg -l | grep gnuplot
ri gnuplot-nox 4.4.0-1.1+b1 i386 A command-line driven interactive plotting program
rc gnuplot-x11 4.4.0-1.1+b1 i386 A command-line driven interactive plotting program
dieterd@client3:/etc/apt/sources.list.d$ sudo dpkg -r gnuplot-nox
(Reading database ... 225741 files and directories currently installed.)
Removing gnuplot-nox (4.4.0-1.1+b1) ...
Processing triggers for menu (2.1.47) ...
Processing triggers for man-db (2.7.5-2) ...
$ sudo dpkg -l | grep gnuplot
rc gnuplot-nox 4.4.0-1.1+b1 i386 A command-line driven interactive plotting program
rc gnuplot-x11 4.4.0-1.1+b1 i386 A command-line driven interactive plotting program
$ gnuplot
bash: /usr/bin/gnuplot: No such file or directory
Nun war das Programm gnuplot auch wirklich ganz deinstalliert. Somit konnte es wieder installiert werden.
Im folgenden wurden die Installation auf verschiedene Art und Weise mit zwei Versionen angetestet um zu belegen, daß sich durchaus kleine Unterschiede ergeben können.
$ sudo apt-get install -t wheezy gnuplot
$ sudo apt-get install gnuplot/wheezy
Damit die grafische Ausgabe funktionierte mußte noch manuell gnuplot-x11 nachinstalliert werden. Vermutlich konnte der Paketmanager auch nicht mit einer Änderung des Paketzubehörs umgehen in der Form, dass bei aktuellen Versionen gnuplott-x11 nicht mehr automatisch mit installiert wird und versuchte daher dieses nicht auch zu entfernen um es zu aktualisieren.
$ sudo apt-get install gnuplot-x11/wheezy
# Needed für grafical output. Before this Terminal type set to 'unknown' or 'wvt' could not be set to 'x11'.
So hartnäckig war der Fehler. Nach dem das Repository anscheinend nicht mehr im apt Verzeichnis war, konnte das Werkzeug apt keine Zuordnung mehr finden. Erst mit dpkg im Einzelschrittverfahren wurde es möglich die Anwendung oder vielmehr die Reste der Anwendung zu löschen.
Wichtige Verzeichnisse:
# Liste der Quellen/Internetadressen für den Paketmanager apt (apt-get update)
/etc/apt/sources.list.d/
# Verzeichnis für die Konfigurationsdateien zur "Priority-Pin"
/etc/apt/preferences.d/
# In dieses Verzeichnis werden die Dateien abgelegt, die mittels "apt-get update" herunter geladen wurden.
/var/lib/apt/lists/
# In dieses Verzeichnis werden die Dateien abgelegt, die mittels "apt-get upgrade -d" oder "apt-get install ..." herunter geladen wurden.
/var/cache/apt/archives
Übliche Befehle zur Fehlerbehebung, wenn der Paketmanager streiken sollte (Database wurde korrupt):
apt-get install -f
dpkg --configure -a
dpkg --configure --pending
Methoden zur Installation von bestimmten Versionen (Beispiel mit octave):
$ sudo apt-get install octave/jessie
$ sudo apt-get install -t wheezy octave
Methoden um installierte Pakete wieder los zu werden:
$ sudo apt-get remove libblas3
$ sudo apt-get remove -t squeeze gnuplot
$ sudo apt-get purge -t squeeze gnuplot
# Wenn apt das Paket nicht entfernen kann, funktioniert es meist noch mit dpkg. Hierzu muss vorher recherchiert werden, welche Teile zum Paket gehören und welche Abhängigkeiten bestehen. Das ist die aufwendigere und schwierigere Methode im Vergleich zu apt.
$ sudo dpkg -r gnuplot,gnuplot-nox,gnuplott-x11
Methoden um herauszufinden, welche Pakete installiert werden könnten und bereits installiert sind:
# Wenn mehrere Versionen als Quellen ermöglicht wurden, dann kann eine Übersicht ausgegeben werden mit "apt-cache policy".
# Übersicht über die gesetzten "Priority-Pin" der Versionen:
$ sudo apt-cache policy
# Übersicht über die Versionen eines Paketes am Beispiel der Anwendung octave:
$ sudo apt-cache policy octave
# Installiertes Paket ist mit "***" markiert.
# Ausgabe der installierten Pakete mittels "dpkg":
$ dpkg -l | grep octave
# Installierte Pakete sind mit "ii" markiert.
# Noch nicht ganz gelöschtes ist mit "ri" markiert.
# Richtig gelöschtes ist mit "rc" markiert.
# Kleines Skript zur Ausgabe, welche Versionen für "Priority-Pin" vorhanden sind
$ sudo apt-cache policy | grep n= | sed -e "s/n=/\nn=/g" | sed -e "s/\,/\n/g" | grep n= | sort -u
# Befehle zur Übersicht, welche Pakete für eine Installation vorhanden sind:
$ sudo apt-cache show octave
$ sudo aptitude show gnuplot
# Nachsehen der Pfade, wo diese Anwendungen installiert sind um diese manuell aufzurufen:
$ whereis gnuplot-x11
$ whereis octave
Mit folgendem kleinen Skript kann auf der Konsole anhand der Ausgaben geprüft werden, welche Distro-Versionen verwendet wurden und welche Distro-Version für die meisten Pakete gewählt wurde.
# Mit tail -n 50 begrenzt, da dies sonst sehr lange dauern könnte.
$ for i in $(dpkg -l | tail -n 50 | grep ii | sed -e "s/....//" | sed -e "s/ .*//g") ; do (sudo apt-cache policy "$i" | grep -A 1 --regex \* ) ; done
*** 0.0.28-0.1 0
*** 3.03-17+b1 0
520 http://httpredir.debian.org/debian/ jessie/main i386 Packages
*** 0.96.9.1-8 0
100 /var/lib/dpkg/status
*** 0.4.23debian1-1 0
620 http://httpredir.debian.org/debian/ wheezy/main i386 Packages
# Anschießend die Anzahl mit "| grep jessie | wc" und "| grep wheezy | wc" zählen und vergleichen.
Diese Angabe verweist auf Pakete, die von einem Medium oder von Paketquellen installiert wurden, die nur noch in dieser Datei aufgeführt werden, aber apt sonst keine Zuordnung treffen konnte.
100 /var/lib/dpkg/status
Hier wurde versucht, ob es wäre bootfähige USB-Sticks für Intel/AMD-basierte Rechner zu erzeugen, wie es auf einem Desktop unter Linux, Mac-OS und Windows möglich ist.
$ sudo apt-get install unetbootin
Package unetbootin is not available, but is referred to by another package.
E: Package 'unetbootin' has no installation candidate
$ sudo apt-get install unetbootin-translations
0 upgraded, 1 newly installed, 0 to remove and 9 not upgraded.
Need to get 231 kB of archives.
After this operation, 3,154 kB of additional disk space will be used.
Es ist aber kein unetbootin vorhanden!
$ sudo apt-get install multiboot
0 upgraded, 1 newly installed, 0 to remove and 9 not upgraded.
Need to get 61.1 kB of archives.
After this operation, 317 kB of additional disk space will be used.
Get:1 http://httpredir.debian.org/debian/ jessie/main multiboot all 0.6.96+20101113-1 [61.1 kB]
Fetched 61.1 kB in 11s (5,405 B/s)
Selecting previously unselected package multiboot
Das Werkzeug ist eine Multiboot Unterstützung für den Start eines Rechners.
sudo apt-cache show multiboot
This specification, created in 1995, describes a method of loading various
multiboot kernels using a single compliant boot loader (such as GNU GRUB)
on i386-based computers.
It is used by a variety of kernel images, such as the Hurd, Xen, or NetBSD
kernels.
In einer i386-Architektur Chroot-Umgebung ließ sich unetbootin installieren.
$ sudo chroot /home/i386/mnt3/qemu_chroot_i386/ /usr/bin/qemu-i386-static /bin/bash
/# sudo apt-get install unetbootin
The following NEW packages will be installed:
libqt4-network libqtcore4 libqtgui4 mtools p7zip-full syslinux unetbootin unetbootin-translations
0 upgraded, 8 newly installed, 0 to remove and 613 not upgraded.
Need to get 8,786kB of archives.
After this operation, 27.7MB of additional disk space will be used.
Funktioniert nicht weil:
QPixmap: It is not safe to use pixmaps outside the GUI thread
QObject::installEventFilter(): Cannot filter events for objects in a different thread.
Listing Code in Frame
Am Morgen des 30.04.16 lädt der Rechner sehr lange etwas aus dem Internet. Mit Etherape wurde die IP 212.211.132.250 und wieck.debian.org ermittelt. Die Spur führt nach https://db.debian.org/machines.cgi?host=lobos
Insgesamt wurde etwa 37MB an updates/upgrades heruntergeladen.
Die Ausgabe von „ps ax“ ergab:
12449 ? SN 0:35 /usr/bin/python3 /usr/bin/unattended-upgrade
12455 ? SN 0:05 /usr/lib/apt/methods/http
Es scheint also etwas mit apt-get im Hintergrund zu laufen. Es erfolgte ein Test mit apt-get:
$ sudo apt-get install libreoffice
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
Also ist apt-get mit dpgk im Hintergrund aktiv.
Unter /etc/cron.daily/apt befindet sich wohl der Hinweis:
# APT::Periodic::Unattended-Upgrade "0";
# - Run the "unattended-upgrade" security upgrade script
# every n-days (0=disabled)
# Requires the package "unattended-upgrades" and will write
# a log in /var/log/unattended-upgrades
In der /etc/apt/apt.conf.d/02periodic Sind die Variablen für das Verhalten gesetzt.
// Enable the update/upgrade script (0=disable)
APT::Periodic::Enable "1";
// Do "apt-get update" automatically every n-days (0=disable)
APT::Periodic::Update-Package-Lists "1";
// Do "apt-get upgrade --download-only" every n-days (0=disable)
APT::Periodic::Download-Upgradeable-Packages "1";
// Run the "unattended-upgrade" security upgrade script
// every n-days (0=disabled)
// Requires the package "unattended-upgrades" and will write
// a log in /var/log/unattended-upgrades
APT::Periodic::Unattended-Upgrade "1";
// Do "apt-get autoclean" every n-days (0=disable)
APT::Periodic::AutocleanInterval "7";
Wenn man dies abstellen will, muss man die Werte alle auf 0 setzen. Wenn man dies schön sauber dokumentiert in der Datei ausführen möchte, dann schreibt man sich einen Kommentar entsprechend dazu, z.B. „// default before manual change was 7 and now 0 (date 01.05.16)“.
// default before manual change was 1 and now 1 (date 01.05.16)
APT::Periodic::Enable "1";
// default before manual change was 1 and now 0 (date 01.05.16)
APT::Periodic::Update-Package-Lists "0";
// default before manual change was 1 and now 1 (date 01.05.16)
APT::Periodic::Download-Upgradeable-Packages "1";
// default before manual change was 1 and now 0 (date 01.05.16)
APT::Periodic::Unattended-Upgrade "0";
APT::Periodic::AutocleanInterval "0";
// default before manual change was 7 and now 0 (date 01.05.16)
In dieser Konfiguration werden die Dateien für das update/upgrade nur heruntergeladen, aber nicht installiert.
Im Zeitfenster Juni/Juli 2016 war alles überschrieben mit den alten Werten. Dies wurde am 28.07.16 wieder zurück geändert.
Ein apt-get update zu Beginn der vierten Augustwoche in 2016 ergab die Ausgabe, dass über 200MB heruntergeladen werden müßte. Dies führte ich daher nicht durch und wartete noch. Ab der Wochenmitte war die Ausgabe nach weiteren apt-get update, wieder normal mit 19MB herunterzuladen und zu installieren.
Nach dem ich eine Woche weg war, hatte die Uhr natürlich eine vollkommen falsche Zeit und Datum. Es funktionierte keine Internetseite und auch die Google-Suche verweigerte den Dienst wegen eines Zertifikatfehlers. Die Zeit stellte sich auch nicht mehr von selbst ein durch Übernahme aus dem Zeitserver im Internet. Abhilfe war nur möglich, indem die Uhr auf das richtige Datum gestellt wurden, aber die Zeit (Stunden, Minuten) ließ ich bewußt falsch. Erst mit richtigem Datum konnte sich der Rechner aus dem Netz die richtig Zeit nach wenigen Minuten holen.
Schuld daran sind die Zugriffe über „https“ die immer ein Zertifikat benötigen. Reine Zugriffe über „http“ haben das Problem nicht. Wenn der Rechner am Internet hängen soll um Dienste ungewartet auszuführen, gibt es Probleme, wenn dieser mehrere Tage außer Betrieb sein sollte.
Anfang Juli 2016 wurde noch einmal der ganze Prozess „sudo apt-get update“ und „sudo apt-get upgrade“ durchgelaufen. Gute zwei Wochen später wurde das System neu gestartet und das WLAN funktionierte nicht mehr. Mittel „sudo ifconfig“ wurde nur „eth0“ und „lo“ (loopback) angegeben.
Die folgenden Kommandos brachten auch keine Fehlerbehebung:
sudo wpa_action wlan0 restart
sudo /etc/init.d/networking restart
Ein Blick in die Datei /etc/network/interfaces brachte etwas Licht in die Dunkelheit. Die Datei war bei dem Vorgang des „Upgrades“ ausgetauscht worden und somit waren die dortigen Eintragungen weg. Bei der neuen Datei wird die Eingabe des Passwortes als verschlüsselte Zeichenkette verlangt.
$ cat /etc/network/interfaces
# Wired adapter #1
allow-hotplug eth0
#no-auto-down eth0
iface eth0 inet dhcp
# hwaddress ether # if you want to set MAC manually
# pre-up /sbin/ifconfig eth0 mtu 3838 # setting MTU for DHCP, static just: mtu 3838
# Wired adapter #2
#allow-hotplug eth1
#iface eth1 inet dhcp
# hwaddress ether # if you want to set MAC manually
# pre-up /sbin/ifconfig eth0 mtu 3838 # setting MTU for DHCP, static just: mtu 3838
# Wireless adapter #1
#allow-hotplug wlan0
#iface wlan0 inet dhcp
# wpa-ssid SSID
# wpa-psk xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# to generate proper encrypted key: wpa_passphrase yourSSID yourpassword
# Local loopback
auto lo
iface lo inet loopback
Nur Eintragen des WLAN und sudo /etc/init.d/networking restart brachte noch keinen Erfolg. Es fällt auf, dass beim Booten nicht mehr die Wartezeit von etwas über einer Minute bis zum Starten der Netzwerke anfällt.
Es scheint, dass die Umstellung etwas mit den neuen Regelung zu den WLAN-Chips zu tun haben könnten, so dass diese nicht mehr so frei wie bisher angesteuert werden können für verschiedene Verwendungen als Accesspoint ab Juli 2016. Zum Ziel führte eine geänderte Konfigurationsdatei und ein Ausführen von sudo apt-get update und sudo apt-get upgrade bei dem auch die Kernels auf eine neue Version angehoben wurden.
$ cat /etc/network/interfaces
# Wired adapter #1
# allow-hotplug eth0
#no-auto-down eth0
auto eth0
iface eth0 inet dhcp
# hwaddress ether # if you want to set MAC manually
# pre-up /sbin/ifconfig eth0 mtu 3838 # setting MTU for DHCP, static just: mtu 3838
# Wired adapter #2
#allow-hotplug eth1
#iface eth1 inet dhcp
# hwaddress ether # if you want to set MAC manually
# pre-up /sbin/ifconfig eth0 mtu 3838 # setting MTU for DHCP, static just: mtu 3838
# Wireless adapter #1
#allow-hotplug wlan0
#iface wlan0 inet dhcp
# wpa-ssid SSID
# wpa-psk xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# to generate proper encrypted key: wpa_passphrase yourSSID yourpassword
auto wlan0
iface wlan0 inet dhcp
wpa-ssid SSID
wpa-psk xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# Local loopback
auto lo
iface lo inet loopback
Hierbei wurde eth0 auf auto geändert, da sonst das Gerät nicht automatisch bei einem Start am LAN in dieses über LAN eingeloggt werden kann um am LAN eines Routers die aufgeführten Befehle mit apt-get auszuführen.
Mit diesen Eintragungen kann das WLAN nun manuell gestartet werden.
$ sudo ifup wlan0
$ sudo dhclient wlan0
$ ip link set wlan0 up
Letzterer Befehl hilft, wenn die Internetanwendung statt auf wlan0 immer noch auf eth0 zugreifen sollte.
Oder Alternativ manuell über
$ sudo wpa_supplicant -Dnl80211 -iwlan0 -c/etc/wpa_supplicant.conf
$ cat /etc/wpa_supplicant.conf
# allow frontend (e.g., wpa_cli) to be used by all users in 'wheel' group
ctrl_interface=/var/run/wpa_supplicant
#ctrl_interface_group=wheel
#
# home network; allow all valid ciphers
network={
ssid="MeinAP"
scan_ssid=1
key_mgmt=WPA-PSK
psk="myPhrase"
}
#
$ sudo dhclient wlan0
Damit das WLAN des CubieTruck seine IP-Adresse vom DHCP-Server erhält und übernimmt.
$ ip link set wlan0 up
Letzterer Befehl hilft, wenn die Internetanwendung statt auf wlan0 immer noch auf eth0 zugreifen sollte.
(Für weitere Details siehe zum Beispiel die Quelle: https://wiki.debian.org/WiFi/HowToUse#wpa_supplicant)
Get:213 http://httpredir.debian.org jessie/main Translation-en [4,580 kB]
Get:214 http://httpredir.debian.org jessie/non-free Translation-en [72.5 kB]
Fetched 19.5 MB in 1h 3min 44s (5,110 B/s)
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
dieterd@cubietruck:~$ sudo apt-get update
[sudo] password for dieterd:
Hit http://apt.armbian.com jessie InRelease
Hit http://apt.armbian.com jessie/main armhf Packages
vnstat zeigt volle Datenrate an über die GSM-Verbindung.
ps ax | less
31302 ? S 0:00 /usr/sbin/CRON -f
31306 ? Ss 0:00 /bin/sh -c test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
31307 ? S 0:00 run-parts --report /etc/cron.daily
31308 ? S 0:00 /bin/sh /etc/cron.daily/apt
31365 ? S 0:00 [kworker/1:2]
31398 ? SN 1:47 /usr/bin/python3 /usr/bin/unattended-upgrade
31404 ? SN 0:06 /usr/lib/apt/methods/http
Die /etc/apt/apt.conf.d/periodic ist ebenfalls verändert und die Änderungen nicht mehr enthalten.
Im Zeitfenster Juni/Juli 2016 war alles überschrieben mit den alten Werten. Dies wurde am 28.07.16 wieder zurück geändert. Siehe unter“Ungewolltes Update und Änderung des Zustandes“.
Ein weiteres Problem trat später im Oktober 2016 mit der Paketverwaltung auf.
W: Failed to fetch http://..... Hash Sum mismatch
E: Some index files failed to download. They have been ignored, or old ones used instead.
Gelöst wurde dies indem
$ sudo cp /var/lib/apt/lists /var/lib/apt/lists_old
# Then all files deleted in /var/lib/apt/lists
$ sudo apt-get update
# Download was around 20-30MB.
$ du -h /var/lib/apt/
# Showed
# 1.7GB for /var/lib/apt/lists_old
# 0.3GB for /var/lib/apt/lists
# After checking all works fine,
# then files deleted in /var/lib/apt/lists_old
Quelle:
https://www.lowendtalk.com/discussion/62567/apt-get-hash-sum-mismatch-debian-jessie
Ergänzend sei angemerkt, dass dieses Problem womöglich verursacht wurde, da die Paketquellen sid, stretch, unstable usw. geändert wurden mit teilweisen Durchläufen von "apt-get update" zwischen den Änderungen.
ToDo
http://askubuntu.com/questions/20725/gpg-error-the-following-signatures-couldnt-be-verified-because-the-public-key
W: GPG error: http://packages.koodur.com jessie InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 02E1146D054C36F8
W: Failed to fetch http://packages.linux-sunxi.org/ubuntu/dists/sid/main/source/Sources 404 Not Found [IP: 46.4.31.60 80]
W: Failed to fetch http://httpredir.debian.org/debian/dists/stretch/main/i18n/Translation-enIndex Hash Sum mismatch
W: Failed to fetch http://httpredir.debian.org/debian/dists/stretch/non-free/i18n/Translation-enIndex Hash Sum mismatch
W: Failed to fetch http://httpredir.debian.org/debian/dists/jessie-backports/main/binary-armhf/Packages Hash Sum mismatch
E: Some index files failed to download. They have been ignored, or old ones used instead.
Und wieder zeigt sich ein Problem mit den Hash-Summen. Manchmal löst sich dieses über ein weiteres apt-get update wieder auf. Ein zweiter Durchlauf ergab bereits eine Fehlermeldung weniger.
Fetched 3,033 kB in 12min 26s (4,063 B/s)
W: GPG error: http://packages.koodur.com jessie InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 02E1146D054C36F8
W: Failed to fetch http://packages.linux-sunxi.org/ubuntu/dists/sid/main/source/Sources 404 Not Found [IP: 46.4.31.60 80]
W: Failed to fetch http://httpredir.debian.org/debian/dists/stretch/main/i18n/Translation-enIndex Hash Sum mismatch
W: Failed to fetch http://httpredir.debian.org/debian/dists/stretch/non-free/i18n/Translation-enIndex Hash Sum mismatch
E: Some index files failed to download. They have been ignored, or old ones used instead.
Im Oktober 2016 folgte auf ein apt-get update folgender Paketdownload:
$ sudo apt-get upgrade -d [sudo] password for dieterd:
The following packages were automatically installed and are no longer required:
......
The following packages have been kept back:
.... a very long list ...
The following packages will be upgraded:
.... a very long list ...
608 upgraded, 0 newly installed, 0 to remove and 319 not upgraded.
Need to get 236 MB/260 MB of archives.
After this operation, 29.8 MB of additional disk space will be used.
# Calling of download shows most packages are vom stretch and not from jessie
Ähnlicher Fehler lag schon einmal vor. Normalerweise sollte dieses Verhalten erst durch ein apt-get dist-upgrade ausgelöst werden. Abhilfe wäre möglich in dem die Gewichtungswerte für apt-get in einer entsprechenden Konfigurationsdatei geändert würde.
Ungefähr 8h später wurde erneut "apt-get update" durchgeführt und nun war das Ergebnis wieder wie es sein sollte:
$ sudo apt-get update
.....
$ sudo apt-get upgrade -d [sudo] password for dieterd:
4 upgraded, 0 newly installed, 0 to remove and 7 not upgraded.
Need to get 1,980 kB/3,848 kB of archives.
After this operation, 2,048 B of additional disk space will be used.
LibreOffice:
Vom Extensions-Center LibreOffice wurden verschiedene Erweiterungen installiert.
Unter tools > Extension Manager können Erweiterungen ergänzt werden. Ausgewählt und Heruntergeladen in ein Verzeichnis können diese unter folgenden Link:
http://extensions.libreoffice.org/extension-center
Ausgewählt wurde:
TexMaths, a LaTeX equation editor for LibreOffice
MultiDiff, issue LibreOffice documents in several formats. eLAIX converts your Writer documents into ILIAS learning modules and ebooks (ePUB 3).
Writer2xhtml is a collection of export filters to EPUB, HTML5, XHTML and XHTML+MathML
Writer2LaTeX provides Writer export filters for LaTeX and BibTeX.
Bei den letzteren zwei gab es eine Fehlermeldung "could not locate java implementation loader.
Gemäß eine Hilfestellung im Internet sei diese Einstellung zu finden unter dem Menu über tools > options > (im Fenster als Auswahl) LibreOffice > Advanced. Hier würde die zu verwendende Java-Installation auf dem Rechner ausgewählt. Bei der Installation LibreOffice unter Cubian war dieses Feld leer. Das heißt es war gar kein java vorhanden. Auf der Konsole ergab java eingetippt auch Fehlanzeige.
Der erkannte Problem war, dass kein java installiert war auf dem System.
Nachdem "sudo apt-get install java" nichts anzeigte wurde mit "sudo apt-cache search java" gesucht. Die Ausgabe war sehr lang mit wenig passenden Inhalten. Die Suche ergab, dass die Pakete gcj und openjdk eine Lösung bieten könnten.
Nach Durchsicht entsprechender Seite von Ubuntu zu java wurde openjdk als Paket ausgewählt.
https://wiki.ubuntuusers.de/Java/
Die Suche ergab, dass es die Versionen openjdk-7-jre und openjdk-8-jre gibt.
$ sudo apt-get install openjdk-
openjdk-7-dbg openjdk-7-jre-headless openjdk-8-doc openjdk-8-jre-jamvm
openjdk-7-demo openjdk-7-jre-lib openjdk-8-jdk openjdk-8-source
openjdk-7-doc openjdk-7-source openjdk-8-jdk-headless
openjdk-7-jdk openjdk-8-dbg openjdk-8-jre
openjdk-7-jre openjdk-8-demo openjdk-8-jre-headless
$ sudo apt-get install openjdk-8-jre
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
openjdk-8-jre : Depends: openjdk-8-jre-headless (= 8u102-b14.1-2) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
$ sudo apt-get install openjdk-7-jre
The following packages have unmet dependencies:
openjdk-7-jre : Depends: openjdk-7-jre-headless (= 7u111-2.6.7-1~deb8u1) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
Problem:
openjdk-8-jre : Depends: openjdk-8-jre-headless (= 8u102-b14.1-2) but it is not going to be installed
Der erkannte Problem war, dass es hier ein Problem mit den Abhängigkeiten gibt. Solches passiert leider immer wieder. Oft ist der technische Hintergrund, dass nach "update" und "upgrade" Pakete auf eine höhere Version hochgezogen werden, da ein Paket, dessen Abhängigkeiten dies automatisch zurückstellen würde, bisher noch nicht installiert war.
Eine Hilfestellung aus dem Internet empfahl "update" und "upgrade" noch einmal durchlaufen zu lassen. Danach war die Situation weiterhin unverändert.
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo dpkg --configure -a
Also gibt es nur die Möglichkeit in die Tiefe zu gehen des Installationsprozesses.
$ sudo apt-get -d install openjdk-8-jre
The following packages have unmet dependencies:
openjdk-8-jre : Depends: openjdk-8-jre-headless (= 8u102-b14.1-2) but it is not going to be installed
$ sudo apt-get -d install openjdk-8-jre-headless
The following packages have unmet dependencies:
openjdk-8-jre-headless : Depends: util-linux (>= 2.26.2-4) but 2.25.2-6 is to be installed
$ sudo apt-get -d install util-linux
util-linux is already the newest version.
Eine Hilfestellung aus dem Internet empfahl "update" und "upgrade" noch einmal durchlaufen zu lassen. Danach war die Situation weiterhin unverändert.
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo dpkg -configure -a
$ sudo apt-get -d install util-linux
util-linux is already the newest version.
Es gibt auch die Möglichkeit verschiedene Distro-Versionen als Vorgabe für apt-get mitzugeben.
$ sudo apt-get -d install openjdk-8-jre-headless/jessie
E: Release 'jessie' for 'openjdk-8-jre-headless' was not found
$ sudo apt-get -u install openjdk-8-jre-headless/jessie
E: Release 'jessie' for 'openjdk-8-jre-headless' was not found
dieterd@cubietruck:~$ sudo apt-get -u install openjdk-8-jre-headless/wheezy
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Release 'wheezy' for 'openjdk-8-jre-headless' was not found
dieterd@cubietruck:~$ sudo apt-get install openjdk-8-jre-headless/wheezy
E: Release 'wheezy' for 'openjdk-8-jre-headless' was not found
$ sudo apt-get install openjdk-8-jre-headless/stretch
The following packages have unmet dependencies:
openjdk-8-jre-headless : Depends: util-linux (>= 2.26.2-4) but it is not going to be installed
Ergbnis dieser Versuche ist, dass es sich hier um eine Version handelt, die nicht bei Debian Jessie vorhanden war.
$ sudo apt-get -u install openjdk-7-jre-headless/jessie
The following packages have unmet dependencies:
openjdk-7-jre-headless : Depends: tzdata-java but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
$ sudo apt-get install tzdata-java
The following packages have unmet dependencies:
tzdata-java : Depends: tzdata (= 2016d-0+deb8u1) but 2016f-1 is to be installed
$ sudo apt-get install tzdata
tzdata is already the newest version.
$ sudo apt-get install tzdata-java/jessie
The following NEW packages will be installed:
tzdata-java
The following packages will be DOWNGRADED:
tzdata
0 upgraded, 1 newly installed, 1 downgraded, 0 to remove and 8 not upgraded.
$ sudo apt-get install openjdk-7-jre-headless/jessie
Selected version '7u111-2.6.7-1~deb8u1' (Debian-Security:8/stable [armhf]) for 'openjdk-7-jre-headless'
0 upgraded, 4 newly installed, 0 to remove and 8 not upgraded.
Need to get 37.7 MB of archives.
After this operation, 45.1 MB of additional disk space will be used.
Was ist der Unterschied von java zu java headless?
Headless is the same version than the latter without the support of keyboard, mouse and display systems. Hence it has less dependencies and it makes it more suitable for server application.
https://www.quora.com/What-is-the-difference-between-openjdk-7-jre-headless-and-openjdk-7-jre-jdk
Nachdem die "headless"-Variante installiert werden konnte, wurde die nächste vollständigere Variante installiert.
$ sudo apt-get install openjdk-7-jre/jessie
0 upgraded, 3 newly installed, 0 to remove and 8 not upgraded.
Need to get 207 kB of archives.
After this operation, 511 kB of additional disk space will be used.
$ sudo apt-get install openjdk-7-jdk/jessie
0 upgraded, 1 newly installed, 0 to remove and 8 not upgraded.
Need to get 13.7 MB of archives.
After this operation, 17.6 MB of additional disk space will be used.
Unter den Optionen konnte das Java nun ausgewählt werden. Danach ist ein Neustart von LibreOffice erforderlich. Jetzt konnten unter dem Extension Manger diese java-abhängigen Erweiterungen aktiviert werden. Auf Grund der Erweiterungen veränderte sich die untere Menüleiste. Unter view > Toolbars wurden bei eLAIX und TexMaths die Häkchen entfernt und somit war wieder alles in Ordnung. In der obersten Zeile gibt es nun eine Auswahl eLAIX mehr.
Mit Hilfe von xrandr lassen sich in der Regel die Bildschirmauflösungen ändern und noch ein paar interessante Effekte nutzen.
Eine Ausgabe mit xrandr und einem Monitor am VGA-Ausgang führte zu folgenden Ausgaben:
$ xrandr
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 1024 x 768, current 1024 x 768, maximum 1024 x 768
default connected 1024x768+0+0 0mm x 0mm
1024x768 0.00*
Alle Varianten mit VGA, VGA0, VGA-1, etc. führten zu keinem Erfolg.
$ xrandr --fb 1024x768 --output VGA-1 --mode 1024x768 --panning 1280x1024
xrandr: Failed to get size of gamma for output default
warning: output VGA-1 not found; ignoring
Eine Variante mit "default" führte zwar weiter, aber führt immer noch auf eine Fehlermeldung.
$ xrandr --output default --fb 1024x768 --mode 1024x768 --panning 1024x768
xrandr: Failed to get size of gamma for output default
X Error of failed request: BadRRCrtc (invalid Crtc parameter)
Major opcode of failed request: 140 (RANDR)
Minor opcode of failed request: 29 (RRSetPanning)
Crtc id in failed request: 0xef
Serial number of failed request: 21
Current serial number in output stream: 21
Eine Recherche im Internet legt nahe, dass über den Treiber nicht entsprechende Konfiguration erzeugt wurden. In dem Falle müßten entsprechende Konfigurationen manuell ergänzt werden.
http://askubuntu.com/questions/186288/how-to-detect-and-configure-an-output-with-xrandr
https://wiki.archlinux.org/index.php/xrandr
$ sudo apt-cache search get-edid
read-edid - hardware information-gathering tool for VESA PnP monitors
$ sudo apt-get install read-edid
0 upgraded, 1 newly installed, 0 to remove and 7 not upgraded.
Need to get 15.1 kB of archives.
After this operation, 73.7 kB of additional disk space will be used.
$ sudo get-edid
This is read-edid version 3.0.1. Prepare for some fun.
Attempting to use i2c interface
No EDID on bus 0
No EDID on bus 1
1 potential busses found: 2
128-byte EDID successfully retrieved from i2c bus 2
��##.....YE4M.....L19-2SD
Looks like i2c was successful. Have a good day.
$ sudo get-edid | parse-edid
This is read-edid version 3.0.1. Prepare for some fun.
Attempting to use i2c interface
No EDID on bus 0
No EDID on bus 1
1 potential busses found: 2
128-byte EDID successfully retrieved from i2c bus 2
Looks like i2c was successful. Have a good day.
Checksum Correct
Section "Monitor"
Identifier "L19-2SD"
ModelName "L19-2SD"
VendorName "FUS"
# Monitor Manufactured week 22 of 2007
# EDID version 1.3
# Analog Display
DisplaySize 380 300
Gamma 2.20
Option "DPMS" "true"
Horizsync 31-81
VertRefresh 56-75
# Maximum pixel clock is 140MHz
#Not giving standard mode: 1280x1024, 60Hz
Modeline "Mode 0" +hsync +vsync
EndSection
$ sudo lshw -c video
sudo: lshw: command not found
$ sudo apt-cache search lshw
python3-checkbox-support - collection of Python modules used by PlainBox providers
lshw - information about hardware configuration
lshw-gtk - graphical information about hardware configuration
$ sudo apt-get install lshw
0 upgraded, 1 newly installed, 0 to remove and 7 not upgraded.
Need to get 199 kB of archives.
After this operation, 553 kB of additional disk space will be used.
$ sudo lshw -c video
# No output, without options, output prints nothing of display, video or grafik card/chip;
run gtf or cvt to get the Modeline
$ cvt 1280 1024 60
# 1280x1024 59.89 Hz (CVT 1.31M4) hsync: 63.67 kHz; pclk: 109.00 MHz
Modeline "1280x1024_60.00" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync
$ gtf 1280 1024 60
# 1280x1024 @ 60.00 Hz (GTF) hsync: 63.60 kHz; pclk: 108.88 MHz
Modeline "1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync
$ xrandr --newmode "1280x1024_60.00" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync
xrandr: Failed to get size of gamma for output default
dieterd@cubietruck:/media/sda5/Pictures/USA2016PICS/fgallery$ xrandr --newmode "1280x1024_60.00" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync
xrandr: Failed to get size of gamma for output default
X Error of failed request: BadName (named color or font does not exist)
Major opcode of failed request: 140 (RANDR)
Minor opcode of failed request: 16 (RRCreateMode)
Serial number of failed request: 19
Current serial number in output stream: 19
$ xrandr --addmode default 1280x1024_60.00
xrandr: Failed to get size of gamma for output default
$ xrandr --output default --mode 1280x1024_60.00
xrandr: Failed to get size of gamma for output default
xrandr: Configure crtc 0 failed
$ xrandr
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 1024 x 768, current 1024 x 768, maximum 1280 x 1024
default connected 1024x768+0+0 0mm x 0mm
1024x768 0.00*
1280x1024_60.00 59.89
$ xrandr --verbose
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 1024 x 768, current 1024 x 768, maximum 1280 x 1024
default connected 1024x768+0+0 (0xf1) normal (normal) 0mm x 0mm
Identifier: 0xf0
Timestamp: 117054413
Subpixel: unknown
Clones:
CRTC: 0
CRTCs: 0
Transform: 1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 0.000000 1.000000
filter:
1024x768 (0xf1) 0.000MHz *current
h: width 1024 start 0 end 0 total 1024 skew 0 clock 0.00KHz
v: height 768 start 0 end 0 total 768 clock 0.00Hz
1280x1024_60.00 (0x11f) 109.000MHz -HSync +VSync
h: width 1280 start 1368 end 1496 total 1712 skew 0 clock 63.67KHz
v: height 1024 start 1027 end 1034 total 1063 clock 59.89Hz
$ xrandr --verbose
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 1024 x 768, current 1024 x 768, maximum 1280 x 1024
default connected 1024x768+0+0 (0xf1) normal (normal) 0mm x 0mm
Identifier: 0xf0
Timestamp: 117054413
Subpixel: unknown
Clones:
CRTC: 0
CRTCs: 0
Transform: 1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 0.000000 1.000000
filter:
1024x768 (0xf1) 0.000MHz *current
h: width 1024 start 0 end 0 total 1024 skew 0 clock 0.00KHz
v: height 768 start 0 end 0 total 768 clock 0.00Hz
1280x1024_60.00 (0x11f) 109.000MHz -HSync +VSync
h: width 1280 start 1368 end 1496 total 1712 skew 0 clock 63.67KHz
v: height 1024 start 1027 end 1034 total 1063 clock 59.89Hz
$ xrandr --verbose --props
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 1024 x 768, current 1024 x 768, maximum 1280 x 1024
default connected 1024x768+0+0 (0xf1) normal (normal) 0mm x 0mm
Identifier: 0xf0
Timestamp: 117645931
Subpixel: unknown
Clones:
CRTC: 0
CRTCs: 0
Transform: 1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 0.000000 1.000000
filter:
1024x768 (0xf1) 0.000MHz *current
h: width 1024 start 0 end 0 total 1024 skew 0 clock 0.00KHz
v: height 768 start 0 end 0 total 768 clock 0.00Hz
1280x1024_60.00 (0x11f) 109.000MHz -HSync +VSync
h: width 1280 start 1368 end 1496 total 1712 skew 0 clock 63.67KHz
v: height 1024 start 1027 end 1034 total 1063 clock 59.89Hz
$ xrandr --newmode "1280x1024_0.0" 0.00 1280 0 0 1280 1024 0 0 1024 -hsync +vsync
xrandr: Failed to get size of gamma for output default
$ xrandr --addmode default 1280x1024_0.0
xrandr: Failed to get size of gamma for output default
$ xrandr --verbose --propsxrandr: Failed to get size of gamma for output default
Screen 0: minimum 1024 x 768, current 1024 x 768, maximum 1280 x 1024
default connected 1024x768+0+0 (0xf1) normal (normal) 0mm x 0mm
Identifier: 0xf0
Timestamp: 117645931
Subpixel: unknown
Clones:
CRTC: 0
CRTCs: 0
Transform: 1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 0.000000 1.000000
filter:
1024x768 (0xf1) 0.000MHz *current
h: width 1024 start 0 end 0 total 1024 skew 0 clock 0.00KHz
v: height 768 start 0 end 0 total 768 clock 0.00Hz
1280x1024_60.00 (0x11f) 109.000MHz -HSync +VSync
h: width 1280 start 1368 end 1496 total 1712 skew 0 clock 63.67KHz
v: height 1024 start 1027 end 1034 total 1063 clock 59.89Hz
1280x1024_0.0 (0x120) 0.000MHz -HSync +VSync
h: width 1280 start 0 end 0 total 1280 skew 0 clock 0.00KHz
v: height 1024 start 0 end 0 total 1024 clock 0.00Hz
$ xrandr --output default --mode 1280x1024_0.0
xrandr: Failed to get size of gamma for output default
xrandr: Configure crtc 0 failed
xrandr --pros
xrandr --props | edid-decode
https://bbs.archlinux.org/viewtopic.php?id=185937
$ xrandr -s 1280x1024
Failed to change the screen configuration!
xrandr --listproviders
Providers: number : 0
http://superuser.com/questions/644726/what-is-crtc-and-how-many-outputs-can-i-enable-using-xrandr
Für Mali 400 wäre der Treiber "sun4i".
/etc/X11/xorg.conf
Section "Screen"
Identifier "My Screen"
Subsection "Display"
Virtual 2048 2048
EndSubSection
EndSection
/etc/X11/xorg.conf
Section "Screen"
...
SubSection "Display"
Virtual 3600 1200
EndSubSection
EndSection
etc/X11/xorg.conf.d/10-monitor.conf
Section "Monitor"
Identifier "VGA1"
Modeline "1280x1024_60.00" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync
Option "PreferredMode" "1280x1024_60.00"
EndSection
Section "Screen"
Identifier "Screen0"
Monitor "VGA1"
DefaultDepth 24
SubSection "Display"
Modes "1280x1024_60.00"
EndSubSection
EndSection
Section "Device"
Identifier "Device0"
Driver "intel"
EndSection
w is a example snippet in xorg.conf.
Section "Device"
Identifier "Intel 945G "
Driver "intel"
# Using the name of the output defined by the video driver plus the identifier of a
# monitor section, one associates a monitor section with an output by adding an
# option to the Device section in the following format:
# Option "Monitor-outputname" "monitor ID"
Option "monitor-VGA" "foo"
Option "monitor-LVDS" "bar"
#Option "monitor-TMDS-1" "dvi"
EndSection
Section "Monitor"
Identifier "foo"
# specifies a mode to be marked as the preferred initial mode of the monitor
# Option "PreferredMode" "800x600"
# This optional entry specifies the position of the monitor within the X screen.
#Option "Position" "1024 0"
#This optional entry specifies that the monitor should be ignored
# entirely, and not reported through RandR. This is useful if the
# hardware reports the presence of outputs that do not exist.
#Option "Ignore" "true"
EndSection
Section "Monitor"
Identifier "bar"
#Options LeftOf, RightOf, Above, Below specify monitors' relative position
Option "LeftOf" "foo"
# This optional entry specifies whether the monitor should be
# turned on at startup. By default, the server will attempt to
# enable all connected monitors.
#Option "Enable" "true"
#This optional entry specifies the initial rotation of the given monitor.
# Valid values for rotation are "normal", "left", "right", and "inverted".
# Option "Rotate" "left"
EndSection
Section "Screen"
Identifier "Default Screen"
Device "Intel Corporation 945G Integrated Graphics Controller"
Monitor "foo"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1280x1024" "1024x768" "640x480"
EndSubSection
EndSection
XRANDR GRAPHICAL FRONT END GUI
ARandR
Grandr
LXRandR
Urandr
zarfy
gksudo gedit /usr/share/X11/xorg.conf.d/99-vesahack
and put this in the newly created file:
Section "Device"
Identifier "Screen0"
VideoRam 10000
EndSection
This tells X that there is 10000 kB (~10 MB) of video RAM, enough for 1920x1200 at 4 bytes per pixel. You can replace '10000' above with the amount of avalaible video ram. Save and reboot. (Remove the 99-vesahack file if it doesn't help.)
Setting resolution changes in xorg.conf
While xorg.conf is largely empty these days, it can still be used for setting up resolutions. For example:
Section "Monitor"
Identifier "External DVI"
Modeline "1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync
Option "PreferredMode" "1280x1024_60.00"
EndSection
Section "Device"
Identifier "ATI Technologies, Inc. M22 [Radeon Mobility M300]"
Driver "ati"
Option "Monitor-DVI-0" "External DVI"
EndSection
Section "Screen"
Identifier "Primary Screen"
Device "ATI Technologies, Inc. M22 [Radeon Mobility M300]"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1280x1024" "1024x768" "640x480"
EndSubSection
EndSection
Section "ServerLayout"
Identifier "Default Layout"
Screen "Primary Screen"
EndSection
Erzeugen einer xorg.conf:
sudo Xorg -configure
Funktioniert leider nicht. Nach es2_info scheint DRI auch nicht möglich zu sein.
https://wiki.ubuntuusers.de/XServer/
Es scheint am fehlenden Treiber zu liegen.
Über den Grafikchip:
http://linux-sunxi.org/Mali400
Freier Treiber:
http://limadriver.org/
Unfreier Treiber:
http://linux-sunxi.org/Mali_binary_driver
Compelierungsanleitung für github:
https://archlinuxarm.org/forum/viewtopic.php?f=33&t=5979
http://linux-sunxi.org/Xorg
Add the repository to your /etc/apt/sources.list:
deb http://packages.linux-sunxi.org/ubuntu/ quantal main
deb-src http://packages.linux-sunxi.org/ubuntu/ quantal main
http://linux-sunxi.org/Packages
Ergänzt /etc/apt/sources.list:
# adding for MALI400-Drivers:
# deb http://packages.linux-sunxi.org/ubuntu/ quantal main
# deb-src http://packages.linux-sunxi.org/ubuntu/ quantal main
deb [arch=armhf] http://packages.linux-sunxi.org/debian/ sid main
deb-src [arch=armhf] http://packages.linux-sunxi.org/ubuntu/ sid main
/etc/apt/preferences.d/00-linux-sunxi with the following content:
Package: *
Pin: origin packages.linux-sunxi.org
Pin-Priority: 990
http://docs.armbian.com/Hardware_Allwinner/#how-to-reconfigure-video-output
Edit boot.cmd. Mittels Konsolenbefehl (Skript) wird boot.scr erzeugt.
http://linux-sunxi.org/Display
Zum Beispiel Cubian:
http://linux-sunxi.org/Bootable_OS_images
http://www.maffert.net/cubian-cubietruck-vga-aktivieren/
http://www.trustbyte-secure.com/faq/themen-zu-cubietruck/cubietruck-multihead-setup
apt-get -y install xorg lightdm xfce4 tango-icon-theme gnome-icon-theme
http://forum.armbian.com/index.php/topic/190-cubietruck-screen-black-after-a-while/
$ sudo apt-get install xorg lightdm xfce4 tango-icon-theme gnome-icon-theme
0 upgraded, 4 newly installed, 0 to remove and 7 not upgraded.
Need to get 2,038 kB of archives.
After this operation, 13.1 MB of additional disk space will be used.
Setting EXTERNAL_NEW=yes will build (all packages for all supported targets) and install them to images.
Setting EXTERNAL_NEW=nobuild will install prebuilt packages from apt.armbian.com repository
http://forum.armbian.com/index.php/topic/1940-lime2-jessie-default-desktop-no-fbturbo/
echo "deb http://packages.koodur.com jessie main" | \ sudo tee /etc/apt/sources.list.d/koodur.list sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B8A6153D
http://lauri.xn--vsandi-pxa.com/2014/04/debian-jessie-sunxi-packages.html
$ sudo apt-get install vdpauinfo libvdpau-sunxi libump xf86-video-fbturbo
The following NEW packages will be installed:
libump libvdpau-sunxi vdpauinfo xf86-video-fbturbo
0 upgraded, 4 newly installed, 0 to remove and 7 not upgraded.
Need to get 104 kB of archives.
After this operation, 202 kB of additional disk space will be used.
WARNING: The following packages cannot be authenticated!
libump libvdpau-sunxi xf86-video-fbturbo
ToDo: Konfigurationsdatei xorg.conf
Der Grund für die festen Einstellungen der Auflösungen liegt an der Fex-Datei bzw. script.bin. Bei der Arm-Architektur sind in dieser Datei alle wichtigen Einstellungen festgelegt. Nur wenige dieser Einstellungen lassen sich über die Treiber nachträglich noch während des Betriebes modifizieren.
Die Details sind zu finden unter folgenden Links:
http://linux-sunxi.org/Fex_Guide
http://linux-sunxi.org/Script.bin
http://linux-sunxi.org/How_to_modify_script.bin
Als Werkzeug muss hierfür "fex2bin" installiert werden. Geändert werden müßte bei "screen0_output_type = 4" die Einstellung von "screen0_output_mode = 4" in "screen0_output_mode = 3". Die VGA-Einstellungen unter HDMI sind auf diesen anderen Wert bereits eingestellt, so dass hier die höhere Auflösung zur Verfügung steht. Um möglichst vielen Nutzern mit einem VGA-Monitor den Betrieb ohne Probleme zu ermöglichen, war als Standardeinstellung der Mode 1024x768 gesetzt, den alle größeren Monitore sicher beherrschen.
Als technischer Hintergrund wäre anzuführen, dass Treiber die Kommunikation (als serielle Schnittstelle) über das Kabel zum Monitor nutzen, oder verschiedene Modes ausprobieren und anhand eines positiven Signals vom Monitor erkennen, welche maximalen Parameter dieser Monitor unterstützt. Diese Mechanismen sind jedoch bei den Treibern hier nicht vorhanden. Insbesondere gilt dies auch immer mehr für "veraltete oder legacy" Betriebsvarianten, das heißt hier oft Schnittstellen vor HDMI und Video-Port.
Zur Reparatur eines USB-Linux mit squash und casper für den persistent Mode soll der Stick am System als chroot-Umgebung eingebunden werden. Auf dem Stick war ein xubuntu 16.04 im persistent-mode, das über ein apt-get update/upgrade fehlerhaft wurde. Das fehlerhafte Dateisystem in der casper-rw wurde mit Hilfe von fsck repariert, aber das System startet im persistent-mode jedoch weiterhin nicht.
Eine Suche in den Verzeichnissen der eingebundenen squash & casper Dateien und der boot & casper Verzeichnisse ergab, dass jeweils unterschiedliche initrd und vmlinuz erzeugt wurden, die nicht zueinander passen.
# Mounting of USB-Stick.
$ pmount /dev/sda1
# Create Directories.
$ cd /media/sda1
$ mkdir Neuer_Ordner
$ cd /media/sda1/Neuer_Ordner
$ mkdir tmp_squash tmp_casper _tmp_overlayed
# Now mount files to folders.
$ sudo mount ../casper/filesystem.squashfs tmp_squash -t squashfs -o loop,ro
$ sudo mount ../casper-rw tmp_casper -o loop,rw
$ sudo mount none tmp_overlayed -o lowerdir=tmp_squash,upperdir=tmp_casper -t overlayfs
# Error-Message: mount: unknown filesystem type 'overlayfs'
#
Test der Module ergab, dass diese nicht geladen wurden.
# Test auf geladene Module.
lsmod | grep overlay
# Keine Ausgabe von overlay.
sudo modprobe overlay
lsmod | grep overlay
# Jetzt ist das Modul geladen. Aber mount gibt wieder gleiche Fehlermeldung.
Und mit "aufs" funktioniert es auch nicht.
sudo apt-get install aufs-tools
cd /media/sda1/Neuer_Ordner
sudo mount -o loop /media/sda1/casper/filesystem.squashfs tmp_squash
sudo mount -o loop /media/sda1/casper-rw tmp_casper
sudo mount -t aufs -o dirs=tmp_casper=rw:tmp_squash=ro unionfs tmp_overlayed
# Error-Message: mount: unknown filesystem type 'aufs'
mount -t overlayfs -o rw,uppderdir=x,lowerdir=y overlayfs /mount/point
mount -t overlay overlay -o lowerdir=/lower,upperdir=/upper,workdir=/work /merged
# Possible required installations:
$ apt-get install squashfs-tools
$ sudo apt-get install aufs-tools
$ sudo apt-get install initramfs-tools
$ sudo apt-get install binutils debootstrap
$ sudo apt-get install unionfs-fuse
# Possible required installations, but failing:
$ sudo apt-get install initramfs-tools-core
$ sudo apt-get install initramfs-tools-core
# The following packages have unmet dependencies:
# initramfs-tools-core : Depends: klibc-utils (>= 2.0.4-8~) but 2.0.4-2 is to be installed
# E: Unable to correct problems, you have held broken packages.
# sudo apt-get install overlayroot
# E: Unable to locate package overlayroot
Und mit "aufs" funktioniert es auch nicht.
sudo apt-get install aufs-tools
cd /media/sda1/Neuer_Ordner
sudo mount -o loop /media/sda1/casper/filesystem.squashfs tmp_squash
sudo mount -o loop /media/sda1/casper-rw tmp_casper
sudo mount -t aufs -o dirs=tmp_casper=rw:tmp_squash=ro unionfs tmp_overlayed
# Error-Message: mount: unknown filesystem type 'aufs'
Auf einem xubuntu-Rechner:
"mc" kann die Dateiverzeichnisse lesen.
"du" kann nur squash lesen
$ sudo du --max-depth=1
2985470 ./tmp_squash
Der Dateimanager zeigt die Dateien erst nach einem Refresh der anderen Verzeichnisse an. Ein Aufruf der Eigenschaften zählt die Dateien.
$ sudo mount none -o lowerdir=tmp_squash,upperdir=tmp_casper -t overlayfs tmp_overlayed
mount: unknown filesystem type 'overlayfs'
$ lsmod | grep overlay
# Keine Ausgabe, daher wird das Modul eingebunden.
dieterd@cubietruck:/media/sda1/Neuer_Ordner$ sudo modprobe overlay
Es funktioniert noch nicht.
$ sudo apt-get install initramfs-tools
0 upgraded, 3 newly installed, 0 to remove and 7 not upgraded.
Need to get 243 kB of archives.
After this operation, 791 kB of additional disk space will be used.
Es funktioniert noch nicht.
$ sudo apt-get install overlayroot
E: Unable to locate package overlayroot
Ob das etwas damit zu tun hat?
$ sudo apt-get install initramfs-tools-core
The following packages have unmet dependencies:
initramfs-tools-core : Depends: klibc-utils (>= 2.0.4-8~) but 2.0.4-2 is to be installed
E: Unable to correct problems, you have held broken packages.
$ sudo apt-get install aufs-tools
0 upgraded, 1 newly installed, 0 to remove and 7 not upgraded.
Need to get 91.6 kB of archives.
After this operation, 268 kB of additional disk space will be used.
$ sudo mksquashfs tmp_overlayed/ newfilesystem.squashfs
[sudo] password for dieterd:
Parallel mksquashfs: Using 2 processors
Creating 4.0 filesystem on newfilesystem.squashfs, block size 131072.
Cannot stat dir/file tmp_overlayed//upper/var/cache/cups/job.cache.N because Input/output error, ignoringCannot stat dir/file tmp_overlayed//upper/etc/gshadow because Input/output error, ignoringCannot stat dir/file tmp_overlayed//upper/etc/passwd.lock because Input/output error, ignoringCannot stat dir/file tmp_overlayed//upper/usr/share/glib-2.0/schemas/casper.gschema.override because Input/outp[=| ] 4214/232518 1%^Cdieterd@dieterd:/media/45C4-3EA0/Neuer Ordner$ sudo mksquashfs tmp_overlayed/ nwfilesystem.squashfs
Anleitung:
http://davstott.me.uk/index.php/2013/09/05/ubuntu-13-04-on-a-usb-flash-drive-and-merging-its-persistent-storage/
OK, we’re nearly there, we just need to regenerate the filesystem’s size and manifest just in case we want to install from this USB stick
# umount merged readwrite readonly
# mount newfilesystem.squashfs readonly -o loop,ro
# chroot readonly dpkg-query -W --showformat='${Package} ${Version}\n' > newfilesystem.manifest
# printf $(du -sx --block-size=1 readonly | cut -f1) > newfilesystem.size
Now we copy the new files back onto the USB flash drive and reset the writable overlay filesystem
# cp newfilesystem.squashfs /media/dav/C35B-7E7E/casper/filesystem.squashfs
# cp newfilesystem.size /media/dav/C35B-7E7E/casper/filesystem.size
# cp newfilesystem.manifest /media/dav/C35B-7E7E/casper/filesystem.manifest
root@newt:/var/tmp/usblive# mkfs -t ext3 /media/dav/C35B-7E7E/casper-rw
mke2fs 1.42.5 (29-Jul-2012)
/media/dav/C35B-7E7E/casper-rw is not a block special device.
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
< snip >
$ sudo apt-get install unionfs-fuse
0 upgraded, 1 newly installed, 0 to remove and 7 not upgraded.
Need to get 25.8 kB of archives.
After this operation, 79.9 kB of additional disk space will be used.
Get:1 http://httpredir.debian.org/debian/ jessie/main unionfs-fuse armhf 0.24-2.2 [25.8 kB]
Fetched 25.8 kB in 5s (4,295 B/s)
Selecting previously unselected package unionfs-fuse.
$ sudo vnstat -i wlan0 -d
(wlan0) / daily
day rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
no data available
------------------------+-------------+-------------+---------------
$ sudo vnstat -i wlan0 -t
(wlan0) / top 10
# day rx | tx | total | avg. rate
-----------------------------+-------------+-------------+---------------
no data available
-----------------------------+-------------+-------------+---------------
$ sudo apt-get install vnstati
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
vnstati
0 upgraded, 1 newly installed, 0 to remove and 10 not upgraded.
Need to get 43.4 kB of archives.
After this operation, 120 kB of additional disk space will be used.
Get:1 http://httpredir.debian.org/debian/ jessie/main vnstati armhf 1.12-2 [43.4 kB]
Fetched 43.4 kB in 22s (1,935 B/s)
Selecting previously unselected package vnstati.
(Reading database ... 131431 files and directories currently installed.)
Preparing to unpack .../vnstati_1.12-2_armhf.deb ...
Unpacking vnstati (1.12-2) ...
Processing triggers for man-db (2.7.0.2-5) ...
Setting up vnstati (1.12-2) ...
Nur dieser Befehl zeigt eine Ausgabe:
$ vnstat -i wlan0 -D
Vermutlich bekam die Datenbank eine Schlag, als die Zeitangabe auf 01.01.1970 gefallen war. Also wurden diese Dateien verschoben und die Datenbankdateien neu erstellt.
sudo mv /var/lib/vnstat/* /var/lib/vnstat/vnstat_sik
sudo
sudo vnstat -i wlan0 --create
sudo vnstat -i eth0 --create
$ vnstat -i wlan0 -h
wlan0: Not enough data available yet.
Somit bleibt nichts anderes übrig als ein paar Stunden später nachzusehen, ob wieder alles funktioniert.
Das Listing der Dateien zeigte, dass diese nicht aktualisiert wurden.
$ ls -l /var/lib/vnstat
Also wurde der Dämon neu gestartet. Ob es geklappt hat, wurde mit Hilfe von ps und dem Vergleich der Ausgabe vorher und nachher geprüft.
$ ps ax | grep vnst
586 ? Ss 0:06 /usr/sbin/vnstatd -n
994 pts/1 S+ 0:00 bash tools/vnstat_02.sh
999 pts/1 S+ 0:09 vnstat -l -i wlan0 --style 4
2630 pts/4 S+ 0:00 grep vnst
$ sudo service vnstat restart
$ ps ax | grep vnst
994 pts/1 S+ 0:00 bash tools/vnstat_02.sh
999 pts/1 S+ 0:09 vnstat -l -i wlan0 --style 4
2654 ? Ss 0:00 /usr/sbin/vnstatd -n
2663 pts/4 S+ 0:00 grep vnst
Es half nur ein Verschieben oder Umbenennen der Dateien, ein Neuanlegen der Dateien und ein neuer Versuch vnstat (vnstatd) zu starten. Es benötigte zusätzlich ein Neustart des Rechners, bis wieder alles funktionierte.
Es sollte für eine Kopie ein FAT32 Dateisystem einer großen externen HD geändert werden. Unter Windows 10 konnte mit dem diskmngr das Dateisystem ebenfalls nicht verkleinert werden. Ein Aufruf von gparted (Version 0.19) meldete, dass mtools und dosfstools benötigt würden.
$ sudo apt-get install mtools
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
floppyd
The following NEW packages will be installed:
mtools
0 upgraded, 1 newly installed, 0 to remove and 9 not upgraded.
Need to get 160 kB of archives.
After this operation, 276 kB of additional disk space will be used.
$ sudo apt-get install dosfstools
Reading package lists... Done
Building dependency tree
Reading state information... Done
dosfstools is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 9 not upgraded.
Die Anwendung gparted konnte die Partition immer noch nicht verkleinern.
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931.5G 0 disk
└─sda1 8:1 0 931.5G 0 part
$ sudo fsck /dev/sda1
fsck from util-linux 2.25.2
fsck.fat 3.0.27 (2014-11-12)
Filesystem has 30516268 clusters but only space for 30516222 FAT entries.
$ sudo dosfsck -v -V -r /dev/sda1
fsck.fat 3.0.27 (2014-11-12)
Checking we can access the last sector of the filesystem
Filesystem has 30516268 clusters but only space for 30516222 FAT entries.
Letztendlich wurde die Partition mit parted auf eine harte Methode verkleinert.
(parted) resizepart 1
End? [1000GB]? 700GB
Warning: Shrinking a partition can cause data loss, are you sure you want to
continue?
Yes/No? yes
$ sudo fsck /dev/sda1
fsck from util-linux 2.25.2
fsck.fat 3.0.27 (2014-11-12)
Seek to 1000201223680:Invalid argument
Partition läßt sich mounten und auch ein Verzeichnis anlegen. Anschließend wurde noch eine ntfs-Partition erstellt.
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931.5G 0 disk
├─sda2 8:2 0 279.6G 0 part
└─sda1 8:1 0 651.9G 0 part
$ sudo fdisk -l /dev/sda
Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xxxxxxx
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 1367187500 1367185453 651.9G c W95 FAT32 (LBA)
/dev/sda2 1367189504 1953523711 586334208 279.6G 7 HPFS/NTFS/exFAT
Unter Windows konnte die Partition nicht mit chkdisk geprüft wurden, weil das Format RAW gemäß Fehlermeldung nicht unterstützt würde. Im Dateiexplorer unter Eigenschaften des Mediums gab es einen Unterpunkt zum Aufrufen für eine Prüfung dieses Dateisystems. Es blieb trotzdem bei dieser Fehlermeldung.
$ sudo fsck /dev/sda1
fsck from util-linux 2.25.2
fsck.fat 3.0.27 (2014-11-12)
Seek to 1000201223680:Invalid argument
Das Betriebssystem Raspian wurde für die erste Verwendung natürlich besonders nutzerfreundlich ausgelegt. Somit werden keine Nutzernamen und Paßwörter für das Starten erforderlich und der Startvorgang endet direkt in die graphische Desktop-Umgebung. Ein Paßwort wird nur für den ersten Zugang zum jeweiligen geschützten WLAN-Netz benötigt.
Von Seiten der IT-Sicherheit ist das eigentlich eine Katastrophe. Als reines System für Bastler zum Probieren und Experimentieren, kann dies in gewissen Maßen noch toleriert werden, für die ursprüngliche Zielgruppe und deren Verwendung. Wer mehr mit dem System macht, wird sicherlich unvermeidlich so tief in der Materie stecken, so dass er die notwendigen Maßnahmen selbst ergreifen wird sein System abzusichern.
Im Gegensatz hierzu erzwingt das Armbian für den CubieTruck beim ersten Start eine Vergabe von Passwörtern für den Administrator „root“ und für den anzulegenden Nutzer „user“. Dabei werden einfache Passwörter nicht zugelassen.
Wenn auf Rechner über das allgemein bekannte Passwort und Zugangsnamen „remote“ zugegriffen wird im Netzwerk, stellt dies eine große Sicherheitslücke dar, vor allem bei der Nutzung in WLAN-Netzen. Im lokalen Heimnetzwerk hinter einem Router ist zwar schon eine schützende Firewall zur Außenwelt vorhanden, aber dieser Schutz kann auch überwunden werden. Häufige Schwachstelle sind hier andere Rechner im Netz, die vielleicht schon gekapert wurden. Relativ sicher am Internet hängt ein CubieTruck oder Raspi, wenn noch ein alter Router vorhanden ist, dem von Seiten des DSL-Modemeinganges wirklich keine Zugriffe jeglicher Art möglich sind. Bei modernen Routern mit Voice over IP-Funktionen, USB-Anschlüssen für Speicher und Drucker ist das leider nicht mehr so.
In dem Falle sollte für „ssh“ und „sftp“ für gleiche IP und unterschiedliche Systeme bei Verwendung mehrerer SD-Karten entsprechende „UserKnownHostsFile“ verwendet werden so dass „StrictHostKeyChecking“ immer angewendet wird.
Die allgemeinen Passwörter sollten geändert werden so weit dies überhaupt möglich ist. Bei Sonderfällen, wie OSMC kann ein weiterer Nutzer mit einem sichereren Passwort angelegt werden und für den Standardnutzer alles was unter „remote“ fällt gesperrt werden.
Beim Armbian erlaubt es die Standardeinstellung, dass man sich direkt als root über das Netzwerk einloggen kann. Bei anderen Systemen ist dies oft nicht möglich, man sich zuerst als Nutzer erfolgreich einloggen muss und danach erst in den Administratormode root wechseln kann durch einloggen.
Die Datei “sudoers” wird in der Regel nicht angefaßt werden müssen, um zu verhindern, dass man ohne Passwort root werden kann im Gegensatz zum Raspian. Falls eine Anwendung (Raspian des Raspberry Pi) unbedingt unter dem Nutzernamen “pi” laufen muss, wäre eine Maßnahme für diesen Nutzer den Port für den Empfang von ssh-Zugriffen zu schließen oder und zugleich das Paßwort zu ändern. Ist diese nicht notwendig sollte gleich einen Nutzer mit einem nicht so leicht zu knackenden Paßwort angelegt werden.
Einen Startbildschirm mit Einloggmenü und Paßwortabfrage sollte auch installiert werden. Somit erhält man ein System, das schon mal die wichtigsten Hürden beinhaltet.
Der kleine CubieTruck hat zwar kein BIOS, UEFI oder sonstige Teile, die geflasht werden können, aber es ist ein Flash-Speicher für ein Betriebssystem von 4 oder 8GB (je nach Modell) vorhanden. Das hat auf der einen Seite den Vorteil, dass ein internes Android auf dem System vorhanden ist und eine beschränkte Bootmedienauswahl (SATA oder Android) festgelegt werden kann. Dafür hat dieser aber den Nachteil, dass wenn er mal gehackt wurde, dieser nicht wie bis einschließlich zum Raspi 22 nach der Entnahme des Speichermediums (SD-Karte) wieder als sauber betrachtet werden könnte.
In dem Falle eines Schädlingsbefalls muss zusätzlich zur frische bespielten SD-Karte erst der interne Flash (NAND) vollständig geprüft oder neu beschrieben werden. Erst danach kann dieser wieder als sicher betrachtet werden.
Besser geeignet wäre daher der Raspi zum Löschen von Medien mit kritischen Daten über USB-IDE/SATA-Adapter oder als Paketfilter zwischen sicherheitskritischen Netzwerkverbindungen.
Auf der anderen Platinenseite gegenüber dem SD-Kartenadapter befindet sich der 8GB-Flash Chip. Dieser könnte theoretisch auch entfernt werden. Ob das Gerät ohne diesen Chip noch funktioniert, konnte bisher nicht verifiziert werden. Wenn dies aber möglich wäre, dann wäre hier der CubieTruck gleichwertig mit dem Raspi.
Das CubieTruck wurde somit konfiguriert für die Verwendung als Mini-Rechner zum Surfen, zur Bearbeitung von Dokumenten, MediaCenter (Internetradio) und später vielleicht noch mit Kodi als Mediacenter. Auf Grund des geringen Stromverbrauchs dürften sich die Kosten einer Anschaffung eines solchen Minirechners im (fast) Dauerbetrieb sehr schnell amortisieren.
Ein Jahr hat zwischen 8760 bis 8784 Stunden (24x365 oder 366).
Im Dauerbetrieb ergibt sich folgender Stromverbrauch pro Jahr:
4W x 8760h = 35,04 kWh
Bei einem Strompreis von ca. 30ct/kWh (mit allen Steuern, d.h. allen verbrauchsabhängigen Nebenkosten, ohne Fixkosten) ergeben sich folgender Energiekosten pro Jahr:
4W x 8760h x 0,30 Euro = 10,53 Euro (aufgerundet)
Zum Vergleich die Kosten eines klassischen Mini-Rechners pro Jahr:
30W x 8760h x 0,30 Euro = 78,84 Euro
Daraus folgt, dass sich die Anschaffung des Einplatinenrechners bereits nach zwei Jahren amortisieren könnte.
Auf der Suche nach einem Image mit einem Ubuntu-Mate für den CubieTruck im Internet wurde relativ schnell eine weitere interessante Quelle gefunden um einen weiteren Versuch anzustellen. Das Image von folgender Internetadresse wurde heruntergeladen:
https://stefanius.de/tag/docker-sd-card-image-fuer-cubietruck
CT_CubieSRV_Docker1.8.2_K4.2.1_B151007.img.7z
Die Datei von etwa komprimierten 230MB wurde entpackt und belegte ungefähr 1,8GB auf dem Speichermedium. Mittels „dd“ wurde diese Datei auf eine SD-Karte (32GB) geschrieben. Anschließend wurde mit dem Werkzeug „gparted“ die zweite Partition von ungefähr 1,7GB Größe auf 12GB vergrößert. Auf dem noch verbliebenen Speicherbereich wurde eine erweiterte Partition angelegt, die eine weitere große Partition „ext4“ formatiert und eine Swap-Partition enthielt.
$ sudo fdisk -l /dev/sdb
Disk /dev/sdb: 29 GiB, 31104958464 bytes, 60751872 sectors
Device Boot Start End Sectors Size Id Type
/dev/sdb1 * 2048 133119 131072 64M b W95 FAT32
/dev/sdb2 133120 24709119 24576000 11.7G 83 Linux
/dev/sdb3 24709120 60751871 36042752 17.2G 5 Extended
/dev/sdb5 24711168 54554623 29843456 14.2G 83 Linux
/dev/sdb6 54556672 60751871 6195200 3G 82 Linux swap / Solaris
Wenn der CubieTruck (wie alle Arm-Prozessoren) startet, werden die Dateien der ersten Partition verarbeitet und geladen. Im Gegensatz zum Standard-PC besitzt das Board kein BIOS und somit befinden sich alle relevante und board-spezifischen Informationen und Programme für den Start in diesen Dateien.
$ ls -l /media/sdb1/
total 5278
-rw------- 1 dieterd dieterd 240 Oct 4 2015 boot.cmd
-rw------- 1 dieterd dieterd 240 Oct 4 2015 boot.cmd.hdd
-rw------- 1 dieterd dieterd 245 Oct 4 2015 boot.cmd.sdcard
-rw------- 1 dieterd dieterd 317 Oct 7 2015 boot.scr
-rw------- 1 dieterd dieterd 312 Oct 5 2015 boot.scr.hdd
-rw------- 1 dieterd dieterd 317 Oct 4 2015 boot.scr.sdcard
-rw------- 1 dieterd dieterd 28110 Oct 4 2015 sun7i-a20-cubietruck.dtb
-rw------- 1 dieterd dieterd 6648 Oct 4 2015 sun7i-a20-cubietruck.dts
-rw------- 1 dieterd dieterd 5366168 Oct 4 2015 uImage
In der zweiten Partition befindet sich das eigentliche Betriebssystem, hier ein Ubuntu-Mate mit den Erweiterungsanwendungen Dockers.
$ ls /media/sdb2/
bin dev home lost+found mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr webmin-setup.out
$ ls /media/sdb2/home/
linaro
Für den ersten Bootvorgang sollte man sich bereits das Paßwort auf der Seite gemerkt (oder notiert parat, usr/pwd, linaro/linaro) haben.
Der erste Start des Systems ging bis auf die Terminal-Ebene. Ein „startx“ war ergebnislos, da dieses Image ohne graphische Oberfläche zur Verfügung gestellt wurde. Hier sind also noch viele Anwendungen nachzuziehen, um es auch als Desktop verwenden zu können.
Natürlich geht noch kein WLAN, da es erst noch eingerichtet werden muss. Allerdings klappte die Übernahme der Einstellungen (copy and paste) in das Konfigurationsfile nicht, da das WLAN hier nicht "wlan0" sondern "lxcbr0" lautete. Zweite Hürde schien wohl zu sein, dass man das Paßwort zwingend mit wpa_passphrase verschlüsselt in der Datei eintragen musste. Auch wpasupplicant war auf dem System noch nicht installiert. Somit konnte dieses Images nicht sofort über ein WPA-verschlüsseltes WLAN mittels „apt-get install ...“ hochgezogen werden. Es war also notwendig den Minirechner mit dem installierten Image auf der SD-Karte über ein LAN-Kabel an einen Router oder Rechner, der seinen Internet-Zugang teilt anzuschließen um weitere Anwendungen nachzuinstallieren, wie zum Beispiel wpasupplicant. Wenn diese Aktion erfolgreich war (inklusive Neustart), wäre folgende ähnliche Ausgabe auf dem Terminal zu finden:
$ ps ax | grep wpa
455 ? Ss 0:00 /sbin/wpa_supplicant -s -B -P /run/wpa_supplicant.wlan0.pid -i wlan0 -D nl80211,wext -C /run/wpa_supplicant
1378 pts/2 S+ 0:00 grep wpa
Schritt 1 - Holen der Quellen
Schritt 2 - Übersetzen aus dem Quellen
Readme:
mkdir build
cd build
../configure
make
@cubietruck:~/Qemu/qemu-git/qemu-2.5.1/build$ ../configure
Install prefix /usr/local
BIOS directory /usr/local/share/qemu
binary directory /usr/local/bin
library directory /usr/local/lib
module directory /usr/local/lib/qemu
libexec directory /usr/local/libexec
include directory /usr/local/include
config directory /usr/local/etc
local state directory /usr/local/var
Manual directory /usr/local/share/man
ELF interp prefix /usr/gnemul/qemu-%M
Source path /home/dieterd/Qemu/qemu-git/qemu-2.5.1
C compiler cc
Host C compiler cc
C++ compiler c++
Objective-C compiler cc
ARFLAGS rv
CFLAGS -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -pthread -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -g
QEMU_CFLAGS -I/usr/include/pixman-1 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -Wendif-labels -Wmissing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -I/usr/include/libpng16
LDFLAGS -Wl,--warn-common -g
make make
install install
python python -B
smbd /usr/sbin/smbd
module support no
host CPU arm
host big endian no
target list aarch64-softmmu alpha-softmmu arm-softmmu cris-softmmu i386-softmmu lm32-softmmu m68k-softmmu microblaze-softmmu microblazeel-softmmu mips-softmmu mips64-softmmu mips64el-softmmu mipsel-softmmu moxie-softmmu or32-softmmu ppc-softmmu ppc64-softmmu ppcemb-softmmu s390x-softmmu sh4-softmmu sh4eb-softmmu sparc-softmmu sparc64-softmmu tricore-softmmu unicore32-softmmu x86_64-softmmu xtensa-softmmu xtensaeb-softmmu aarch64-linux-user alpha-linux-user arm-linux-user armeb-linux-user cris-linux-user i386-linux-user m68k-linux-user microblaze-linux-user microblazeel-linux-user mips-linux-user mips64-linux-user mips64el-linux-user mipsel-linux-user mipsn32-linux-user mipsn32el-linux-user or32-linux-user ppc-linux-user ppc64-linux-user ppc64abi32-linux-user ppc64le-linux-user s390x-linux-user sh4-linux-user sh4eb-linux-user sparc-linux-user sparc32plus-linux-user sparc64-linux-user tilegx-linux-user unicore32-linux-user x86_64-linux-user
tcg debug enabled no
gprof enabled no
sparse enabled no
strip binaries yes
profiler no
static build no
pixman system
SDL support yes
GTK support no
GTK GL support no
GNUTLS support no
GNUTLS hash no
libgcrypt no
nettle no
libtasn1 no
VTE support no
curses support yes
virgl support no
curl support no
mingw32 support no
Audio drivers oss
Block whitelist (rw)
Block whitelist (ro)
VirtFS support no
VNC support yes
VNC SASL support no
VNC JPEG support yes
VNC PNG support yes
xen support no
brlapi support no
bluez support yes
Documentation yes
PIE no
vde support no
netmap support no
Linux AIO support no
ATTR/XATTR support yes
Install blobs yes
KVM support yes
RDMA support no
TCG interpreter no
fdt support yes
preadv support yes
fdatasync yes
madvise yes
posix_madvise yes
sigev_thread_id yes
uuid support no
libcap-ng support no
vhost-net support yes
vhost-scsi support yes
Trace backends nop
spice support no
rbd support no
xfsctl support no
smartcard support no
libusb no
usb net redir no
OpenGL support no
libiscsi support no
libnfs support no
build guest agent yes
QGA VSS support no
QGA w32 disk info no
QGA MSI support no
seccomp support no
coroutine backend ucontext
coroutine pool yes
GlusterFS support no
Archipelago support no
gcov gcov
gcov enabled no
TPM support yes
libssh2 support no
TPM passthrough no
QOM debugging yes
vhdx no
lzo support no
snappy support no
bzip2 support no
NUMA host support no
tcmalloc support no
jemalloc support no
@cubietruck:~/Qemu/qemu-git/qemu-2.5.1/build$ make
Makefile:21: *** This is an out of tree build but your source tree (/home/dieterd/Qemu/qemu-git/qemu-2.5.1) seems to have been used for an in-tree build. You can fix this by running "make distclean && rm -rf *-linux-user *-softmmu" in your source tree. Stop.
Also wurde alles im Hauptverzeichnis ausgeführt als:
./configure
make
$ sudo apt-get install debootstrap
The following NEW packages will be installed:
debootstrap
0 upgraded, 1 newly installed, 0 to remove and 10 not upgraded.
Need to get 62.7 kB of archives.
After this operation, 234 kB of additional disk space will be used.
https://wiki.ubuntu.com/ARM/BuildEABIChroot:
And create the chroot with the included debootstrap wrapper script (it takes/requires the same options debootstrap uses)
ogra@osiris:~$ sudo qemu-debootstrap --arch armhf vivid eabi-chroot
[sudo] password for ogra:
I: Retrieving Release
I: Retrieving Packages
...
I: Base system installed successfully.
arm-eabi chroot successfully created in eabi-chroot
ogra@osiris:~$ sudo chroot eabi-chroot
root@osiris:/# uname -m
armv7l
http://www.linuxquestions.org/questions/linux-newbie-8/how-to-compile-qemu-statically-903763/
When zlib is failing for qemu-static:
$ sudo apt-get install glibc-source
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
glibc-source
0 upgraded, 1 newly installed, 0 to remove and 10 not upgraded.
Need to get 14.3 MB of archives.
After this operation, 24.8 MB of additional disk space will be used.
Get:1 http://httpredir.debian.org/debian/ jessie/main glibc-source all 2.19-18+deb8u7 [14.3 MB]
Nachsehen, welche Dateien schon erzeugt wurden:
$ for i in $(find | grep qemu | grep system) ; do find "$i" -printf '%k\t%c\t%p\n' ; done
$ for i in $(find | grep qemu | grep static) ; do find "$i" -printf '%k\t%c\t%p\n' ; done
$ for i in $(find | grep qemu | grep "system\|static" ) ; do find "$i" -printf '%k\t%AY-%Am-%Ad %AH:%AM \t%p\n' ; done
25128 2017-03-12 23:29 ./arm-softmmu/qemu-system-arm
12184 2017-03-12 23:34 ./cris-softmmu/qemu-system-cris
Alle Dateien zu erzeugen benötigte ungefähr 3,5 Stunden.
$ for i in $(find | grep qemu | grep "system\|static" ) ; do find "$i" -printf '%AY %Am %Ad %AH:%AM \t%p \t %k \n' ; done | sort
Dateien mit "static" fehlen noch:
$ ~/Qemu/qemu-git/qemu-2.5.1$ ./configure --static --target-list="i386-linux-user,x86_64-linux-user" --enable-debug --enable-docs --enable-system --enable-user --enable-linux-user
(--prefix=/home/bin/qemu-0.14. etc wurde nicht gesetzt)
Dann wurde make gestartet.
$ sudo chroot /home/i386/mnt3/chroot_xubuntu16p04iamd64/ /home/dieterd/Anwendungen/qemu/qemu-x86_64.test.sik /bin/bash
setup_frame: not implemented
setup_frame: not implemented
setup_frame: not implemented
setup_frame: not implemented
setup_frame: not implemented
root@cubietruck:/# ls
/bin/ls: cannot access ''$'\f': No such file or directory
?
root@cubietruck:/# exit
exit
# apt-get install wine
Reading package lists... Done
Building dependency tree
Reading state information... Done
wine is already the newest version (1:1.6.2-0ubuntu14).
0 upgraded, 0 newly installed, 0 to remove and 312 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
Setting up libc-bin (2.23-0ubuntu5) ...
/sbin/ldconfig.real: 1: /sbin/ldconfig.real: Syntax error: "(" unexpected
/sbin/ldconfig.real: 1: /sbin/ldconfig.real: Syntax error: "(" unexpected
dpkg: error processing package libc-bin (--configure):
subprocess installed post-installation script returned error exit status 2
Errors were encountered while processing:
libc-bin
E: Sub-process /usr/bin/dpkg returned an error code (1)
# sudo apt-get download -t xenial libc-bin
Get:1 http://archive.ubuntu.com/ubuntu xenial-updates/main i386 libc-bin i386 2.23-0ubuntu5 [593 kB]
Fetched 593 kB in 2min 17s (4,305 B/s)
W: Can't drop privileges for downloading as file '/home/dieterd/Anwendungen/xnview_small/libc-bin_2.23-0ubuntu5_i386.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)
Das OSMC Image downloaden von der Homepage. Auf einen Linux-Rechner. Falls bei Linux noch nicht vorhanden:
sudo apt-get install kpartx
sudo apt-get install
squashfs-tools
Wie es geht steht unter:
http://www.berryterminal.com/doku.php/berryboot/adding_custom_distributions
In der Regel haben viele Distros für den Raspi im Image zwei Partitionen angelegt.
sudo kpartx -av OSMC_TGT_rbp2_20150830.img
add map loop0p1 (252:0): 0 497664 linear /dev/loop0 2048
Das Image hat nur eine Partition und muss daher nicht wie unter dem Link beschrieben die Dateien verschoben werden und dann die Partiton "deleted" werden.
Verzeichnis als Mountpoint erstellen:
mkdir tmpmount
sudo mount /dev/mapper/loop0p1 tmpmount
Ausgabe mit dem Befehl „mount“ um zu prüfen ob das mounten funktioniert:
/dev/sdb1 on /media/USB2_DISK type vfat (rw,nosuid,nodev,uhelper=hal,uid=1000,shortname=winnt)
/dev/mapper/loop0p1 on /media/USB2_DISK/RASPI2/tmpmount type vfat (rw)
Erzeugen des Images:
sudo mksquashfs tmpmount/ osmc_converted_image_for_berryboot_ohne_libmoduls.img -comp lzo -e lib/modules
mksquashfs: invalid option
SYNTAX:mksquashfs source1 source2 ... dest [options] [-e list of exclude
dirs/files]
Options are
-version print version, licence and copy-right message
....
Mein mksquashfs unterstützt die Option des Komprimierens mit „-comp“ nicht.
sudo mksquashfs tmpmount osmc_converted_image_for_berryboot_mit_libmoduls.img
Parallel mksquashfs: Using 2 processors
Creating 4.0 filesystem on osmc_converted_image_for_berryboot_mit_libmoduls.img, block size 131072.
[=============================================================|] 1213/1213 100%
Exportable Squashfs 4.0 filesystem, data block size 131072
compressed data, compressed metadata, compressed fragments
duplicates are removed
Filesystem size 154343.39 Kbytes (150.73 Mbytes)
99.83% of uncompressed filesystem size (154600.12 Kbytes)
Inode table size 320 bytes (0.31 Kbytes)
6.28% of uncompressed inode table size (5094 bytes)
Directory table size 132 bytes (0.13 Kbytes)
85.71% of uncompressed directory table size (154 bytes)
Number of duplicate files found 0
Number of inodes 8
Number of files 7
Number of fragments 1
Number of symbolic links 0
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 1
Number of ids (unique uids + gids) 1
Number of uids 1
root (0)
Number of gids 1
root (0)
sudo mksquashfs tmpmount osmc_converted_image_for_berryboot_ohne_libmoduls.img -e lib/modules
Parallel mksquashfs: Using 2 processors
Creating 4.0 filesystem on osmc_converted_image_for_berryboot_ohne_libmoduls.img, block size 131072.
[=============================================================|] 1213/1213 100%
Exportable Squashfs 4.0 filesystem, data block size 131072
compressed data, compressed metadata, compressed fragments
duplicates are removed
Filesystem size 154343.39 Kbytes (150.73 Mbytes)
99.83% of uncompressed filesystem size (154600.12 Kbytes)
Inode table size 320 bytes (0.31 Kbytes)
6.28% of uncompressed inode table size (5094 bytes)
Directory table size 132 bytes (0.13 Kbytes)
85.71% of uncompressed directory table size (154 bytes)
Number of duplicate files found 0
Number of inodes 8
Number of files 7
Number of fragments 1
Number of symbolic links 0
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 1
Number of ids (unique uids + gids) 1
Number of uids 1
root (0)
Number of gids 1
root (0)
Beide Images haben die gleiche Größe von 150MB. Die Images für den Versuch sind somit erstellt. Diese Datei wird zum Beispiel auf einen USB-Stick geschrieben, dieser zusätzlich angesteckt am Raspi und bei BerryBoot die Installation von dieser weiteren Quelle ausgewählt.
Als nächstes sollte das bekannte Mediencenter "kodi" installiert werden mittels "sudo apt-get install kodi".
Es waren fast 28MB herunterzuladen. Libraries, Teile von mesa, samba und mysql wurden nachinstalliert. Es trat der Fehler "failed to fetch some archives" auf, der durch ein "sudo apt-get update" behoben werden konnte. Es wurden fast 10MB heruntergeladen.
Da hier auch Pakete, die die grafische Ausgabe "xorg" betreffen enthalten waren, wurde kodi nicht vor einem Neustart gestartet.
Der Befehl ifconfig zeigte wieviel Daten-Traffik seit dem Start verbraucht wurde durch Internet surfen und Installieren über apt-get:
RX bytes:56849052 (54.2 MiB) TX bytes:9282326 (8.8 MiB)
Ein Test mit "sudo apt-get upgrade" zeigte, dass noch ca. 80MB an Dateien herunter geladen werden müßten. Bei der Installation einzelner Pakete würde dies in Schritten nachgeholt, wenn es notwendig werden sollte.
"sudo apt-get install kodi"
Es waren fast 30MB von 32MB herunterzuladen. Libraries, Teile von mesa, samba und mysql wurden nachinstalliert.
Insgesamt wäre, wenn "sudo apt-get update" vorher ausgeführt worden wäre, etwas weniger Datenverkehr notwendig gewesen, da von einigen Libraries die Updates bereits installiert wären. Beim Herunterladen über eine mobile GSM-Verbindung mit 64kbit wäre nun eine Stunde Zeit zu überbrücken durch eine Mahlzeit oder andere Tätigkeiten.
Nach der Installation waren auf der SD-Karte 3,58GB belegt.
RX bytes:98098874 (93.5 MiB) TX bytes:11605135 (11.0 MiB)
"sudo apt-get install firefox"
Das Paket ist nicht im Standard-Raspian enthalten. Statt dessen gibt es aber iceweasel. Das ist eigentlich auch der firefox aber mit kleinen Änderungen auf Grund von Differenzen.
"sudo apt-get install firefox"
Herunterzuladen sind hierfür fast 37MB an archiven. Hier beginnt apt-get mit der Installation ohne nach "y/n" zu fragen zur Fortsetzung.
Die Anwendung kodi wurde gestartet und einige Einstellungen vorgenommen. Das Laden der Anwendungen funktionierte. Mit der Auswahl “Verlassen” fällt man wieder in das Raspian zurück und kann hier weiterarbeiten.
Insgesamt sind nun 4,1GB durch das System auf der SD-Karte belegt.
Interessante Browser auf der Konsolenebene sind w3m, lynx, links und links2.
“sudo apt-get install w3m lynx links links2“
0 upgraded, 6 newly installed, 0 to remove and 37 not upgraded.
Need to get 5,063 kB of archives.
After this operation, 11.0 MB of additional disk space will be used.
Install these packages without verification? [y/N] y
Mit “links2 -g -driver help” erfolgt zum Beispiel eine graphische Ausgabe. Hier ist sichergestellt, dass zunächst der gesamte Text angezeigt wird, und dann erst die Bilder nachgeladen werden. Alles wird hier schön einfach untereinander aufgelistet. Mit “links2 -g -driver help” wird aufgelistet, welche Graphik-Treiber vorhanden sind und kann diese auch testen.
"sudo apt-get install gnome-paint"
Installation eines Programms für die Bildbearbeitung das wenig Resourcen beansprucht. Herunterzuladen sind hierfür fast 100kB. Bei dem Programm sind nicht alle Funktionen realisiert, so dass ein anderes Programm ausgesucht werden muss für diese Zweck. Das Paket wird daher wieder entfernt.
"sudo apt-get purge gnome-paint"
Zuerst wird getestet, welchen Installationsumfang die Pakete haben, wenn diese nachinstalliert werden:
sudo apt-get install krita, 112MB herunterladen, 315MB benötigen (wegen KDE-Anteilen);
sudo apt-get install gimp, 15MB herunterladen, 66 MB benötigen;
sudo apt-get install shutter, 12MB herunterladen, 50MB benötigen;
sudo apt-get install pinta, 7MB herunterladen, 28MB benötigen;
sudo apt-get install inkscape, 19MB herunterladen, 102MB benötigen;
Somit wird pinta installiert.
sudo apt-get install pinta, 7MB herunterladen, 28MB Speicherplatz benötigen;
Pinta hat auch einige Macken, zum Beispiel werden nur kleine Flächenbereiche kopiert.
“sudo apt-get install mtpaint”
Herunterzuladen sind hierfür 500kB.
“sudo apt-get install xfig”
Ein kleines vektororientiertes Zeichenprogramm. Herunterzuladen sind 4MB.
Eine gute Übersicht über Grafikprogramme bietet Ubuntu:
https://wiki.ubuntuusers.de/Grafik/
Insgesamt sind nun 4,2GB durch das System auf der SD-Karte belegt.
Nach ein paar Tagen wurde “sudo apt-get update” und sudo “apt-get upgrade” durchgeführt. Der Rechner lief 9 Tage durch ohne Störungen.
“sudo apt-get install clamav”
Ein kleines Virenscanprogramm. Herunterzuladen sind fast 2MB. Das Programm lädt danach die Virensignaturen nach (sichtbar in über etherape mirror.cambrium.nl).
Insgesamt sind nun 4,5GB durch das System auf der SD-Karte belegt.
“sudo apt-get install lsof”
Ein kleines Diagnoseprogramm auf der Konsole, das ausgibt welche Dateien von Prozessen verwendet werden. Herunterzuladen sind fast 0,4MB.
Insgesamt sind nun 4,68GB durch das System auf der SD-Karte belegt.
sudo apt-get install browser-plugin-lightspark
Herunterzuladen waren 10MB;
sudo apt-get purge browser-plugin-lightspark
Wieder gelöscht und einige Plugins für Mozilla/Icewaeasel installiert. Nun scheinen youtoube-videos zu funktionieren.
“sudo apt-get install vino” Sollte remote X11 ermöglichen.
“sudo apt-get purge vino” Somit später wieder entfernt.
“sudo apt-get install testdisk”
“sudo apt-get upgrade” würde 170MB herunterladen, nach dem “sudo apt-get update” und “sudo apt-get upgrade” wäre es nun 450MB und 97 Pakete. Grund sind die neuen Open Driver 2D/3D-Beschleunigung von Raspian. D.h. so nach und nach eines der Pakete, dass erneuert werden würde aus der Liste installieren lassen.
“sudo apt-get install krita” würde benötigen, dass 112MB heruntergeladen werden.
“sudo apt-get install extremetuxracer” benötigt, dass 32MB heruntergeladen werden.
Start mit “etracer” funktioniert nicht.
*** etracer error: Couldn't initialize video: Couldn't find matching GLX visual (Resource temporarily unavailable)
Über “sudo apt-get upgrade –print-uris” wurden die Links zu den *.deb-Dateien heruntergeladen und extern über einen Linux-Rechner mittels wget und kleinem Script heruntergeladen. Diese Dateien werden nach /var/cache/apt/archives kopiert. Somit entfällt das herunterladen der Installationsdateien.
Nach dem Upgrade waren 5,9GB belegt.
“sudo apt-get fdupes”, Werkzeug zum löschen von doppelten Dateien.
“sudo apt-get krita”, Werkzeug zur Grafikbearbeitung. Dieses stürzt leider beim Öffnen eines Bildes ab.
Nun waren 6,3GB belegt. Nach einem “sudo apt-get autoclean” waren es 6.1GB.
“sudo apt-get purge upower”
(War als manuell installiert markiert)
Alle Moden etc. vom HDTV-Fernseher sind zu finden unter:
http://elinux.org/RPiconfig#Video
https://www.raspberrypi.org/documentation/configuration/raspi-config.md
Aus dem openelec.tv Forum:
Try adding to config.txt:
hdmi_group=1
hdmi_mode=5
hdmi_force_mode=1
If you have any interference effects then add "config_hdmi_boost=7"
Bei Kodi gibt es noch einige Einstellungen für Video. Es müssen noch Codecs geladen werden (die freien Codecs sind nicht so schnell bei der Umsetzung):
http://mymediaexperience.com/raspberry-pi-xbmc-with-raspbmc/
Anbei noch ein paar Befehle:
https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=95378
Hintergrund:
1360x768 ist die Standard "small HDTV" Auflösung. Diese wird vermutlich über VGA-Protokoll ausgehandelt. Also muss man versuchen HDMI zu erzwingen.
Linux Magazin mit vielen besonderen Netzwerken:
http://www.linux-magazin.de/Ausgaben/2014/07
Sehr gute Anleitung mit Grundwissen für die Raspi-Netzwerkadministration:
http://www.administrator.de/wissen/netzwerk-management-server-raspberry-pi-191718.html
Netzwerkkarten Bonding oder Balancing:
Hier ist der Unterschied erklärt:
http://speedify.com/features/channel-bonding/
Bonding: Um eine weiteren LAN-Anschluss (USB to LAN, 100MBit) am Raspi zu nutzen um auf 200MBit zu kommen. Der Router/Switch auf der Gegenstellenseite muss dies unterstützen.
Balancing: Verteilen der Zugriffe auf zwei verschiedene Internetzugänge (Hotspots von Mobiltelefonen). Surfen geht dann schneller, aber Dateidownloads, Radiostreams, Videostreams werden dabei nicht schneller.
Bündeln heißt zwei Leitungen zugleich oder Redundant nutzen zu einem Gerät:
https://wiki.ubuntuusers.de/Netzwerkkarten_b%C3%BCndeln
https://wiki.debian.org/Bonding
Balancing oder Bonding konfigurieren:
https://wiki.archlinux.org/index.php/Netctl
Load Balancing:
https://blog.linitx.com/load-balancing-multiple-internet-connections/
http://lartc.org/howto/lartc.rpdb.multiple-links.html#AEN298
http://www.debian-administration.org/article/377/Routing_for_multiple_uplinks
Alphabetical Index
abiword 14, 25, 63
Android 6f., 9, 11, 24, 27, 91
BIOS 20, 50, 91, 93
dirty bit 9, 11
dpkg
dpkg --add-architecture 28
dpkg --configure -a 13ff., 51, 78
dpkg-reconfigure keyboard-configuration 16
dpkg-scanpackages 69
Dual-Screen 5
gnome-terminal 16, 20
gparted 8, 20, 53, 69, 92
iceweasel 14, 19, 23, 31, 62, 98
KDE 13, 15, 99
krita 15, 21, 99ff.
Kühlkörper 6
LibreOffice
libreoffice 15, 42, 63, 72, 77
LibreOffice 19, 63f., 77f., 80
Raspberry Pi
Raspberry 5
sane 21, 27, 33ff., 46, 51f.
sane-utils 27, 39, 51f.
SATA 5, 7, 10, 16, 91f.
SATA-SSD 6
SD-Karte 5, 7ff., 15ff., 23f., 26, 69f., 92, 99f.
skype
skype 60f.
startx 11, 13, 22f., 93
tightvncserver 26
UEFI 47f., 50, 91
vnstat 12f., 20, 59f., 75
xsane 21, 27, 32, 34, 37, 53
/dev/disk/by-uuid/ 18
/etc/fstab 18, 70
/etc/network/interfaces 10f., 16, 73f.
/var/cache/apt/archives/ 19, 68
/var/swap 10, 17f., 70
1Nach einem halben Jahr hatte das Netzteil einen Schaden, liefert seit dem nur noch 0,7A und kann seit dem nicht mehr für den Cubietruck verwendet werden.
2Beim Raspberry Pi Typ 3 können Teile geflasht werden, gemäß einer Beschreibung zum Booten von einer USB-Festplatte. Quelle: http://www.heise.de/newsticker/meldung/Raspberry-Pi-3-bootet-von-USB-Stick-und-SSD-3288619.html