openSUSE – proprietären Grafik-Treiber AMD Catalyst 15.12 als RPM installieren
AMD Catalyst 15.12 (fglrx 15.302) (Radeon Crimson Edition) wurde veröffentlicht und unterstützt Grafikkarten ab Radeon HD 5000 und höher. Das Skript makerpm-amd-15.12.sh steht ab sofort zum Download zur Verfügung und unterstützt openSUSE 11.4, 12.1, 12.2, 12.3, 13.1, 13.2, 42.1 und Tumbleweed sowie bis Kernel 4.5 (offiziell nur bis Kernel 3.19).
Hinweis: Unter openSUSE Tumbleweed wird der AMD Treiber nicht funktionieren. Die Version vom X-Server ist zu neu für den Treiber.
Ab sofort wird die Integrität der heruntergeladenen Dateien mit SHA256 geprüft. SHA1 ist somit obsolet und sollte besser nicht mehr verwendet werden.
Neues Feature vom Packaging Skript:
- systemd Support für den automatischen Bau des fglrx-Kernelmodules (openSUSE 13.2 und höher)
Gelöste Probleme:
- [SWDEV-82980] Ubuntu 15.10 fails when building the .deb packages
Link: AMD Catalyst 15.12 Release Notes
Folgende Steam-Spiele habe ich getestet und laufen mit diesem Treiber (Fettdruck = Neu):
- A Bird Story
- A Virus Named TOM
- AaaaaAAaaaAAAaa…
- Age of Wonders III
- AI War: Fleet Command
- Alien Isolation
- Amnesia: The Dark Descent
- Anomaly 2
- Anomaly Defenders
- Anomaly Korea
- Antichamber
- Aquaria
- Auto Dealership Tycoon
- Avadon: The Black Fortress
- Awesomenauts
- Bastion
- Battle Group 2
- Beatbuddy: Tale of the Guardians
- BIT.TRIP Presents… Runner 2: Future Legend of Rhythm
- Borderlands 2
- Breach & Clear
- Bridge Constructor
- Bridge Constructor Playground
- Broken Sword: Director’s Cut
- Broken Sword 2 – the Smoking Mirror: Remastered
- Broken Sword 5 – the Serpent’s Curse
- Brütal Legend
- Cave Story+
- Cities in Motion 2
- Cities: Skylines
- Closure
- Cogs
- Costume Quest
- Counter-Strike: Global Offensive
- Creeper World III: Arc Eternal
- Crusader Kings II
- Cubemen
- Cubemen 2
- Darwinia
- DeadCore
- Defcon
- Defense Grid 2
- Distance
- Duke Nukem 3D: Megaton Edition
- Dungeon Defenders
- Dust: An Elysian Tail
- Dustforce
- Eets Munchies
- Euro Trucker Simulator
- Europa Universalis IV
- Evoland
- Factorio
- FEZ
- FortressCraft Evolved!
- Forward to the Sky
- From The Depths
- Frozen Synapse
- FTL: Faster Than Light
- Galcon Fusion
- Galcon Legends
- Game Dev Tycoon
- Gemini Rue
- Gratuitous Space Battles
- Guacamelee! Gold Edition
- Hacknet
- Half-Life
- Half-Life Deathmatch: Source
- Half-Life: Blue Shift
- Half-Life: Opposing Force
- Half-Life: Source
- Half-Life 2
- Half-Life 2: Deathmatch
- Half-Life 2: Episode One
- Half-Life 2: Episode Two
- Half-Life 2: Lost Coast
- Halfway
- Hero Academy
- HOARD
- Hotline Miami
- Insurgency
- Ironclad Tactics Deluxe
- Ittle Dew
- Jack Lumber
- Jagged Alliance – Back in Action
- Joe Danger 2: The Movie
- Kerbal Space Program
- Killing Floor
- Kinetic Void
- Kingdom Rush
- Knights of Pen and Paper +1 Edition
- Legend of Grimrock
- LIMBO
- Little Inferno
- LUFTRAUSERS
- Lux Delux
- Mark of the Ninja
- Metro: Last Light Redux
- Middle-earth: Shadow of Mordor
- Mini Metro
- Monaco: What’s Yours Is Mine
- Monstrum
- Multiwinia
- Natural Selection 2
- Nihilumbra
- Nightside
- Not The Robots
- Nuclear Dawn
- Organ Trail: Director’s Cut
- Painkiller Hell & Damnation
- Planet Explorers
- Portal
- Portal 2
- Postal 2
- Prison Architect
- Project Zomboid
- Psychonauts
- Puddle
- Ravensword: Shadowlands
- Rising World
- Rochard
- Rocketbirds: Hardboiled Chicken
- Sanctum 2
- Savage Lands
- Savant – Ascent
- Serious Sam 3: BFE
- Shadow Warrior Classic Redux
- Shadowrun Returns
- Shank 2
- Shatter
- Sid Meier’s Civilization® V
- Sir, You Are Being Hunted
- Skulls of the Shogun
- Small World 2
- Snapshot
- Solar 2
- Solar Flux
- SPACECOM
- Space Hulk
- Space Pirates and Zombies
- Spec Ops: The Line
- Splice
- Starmade
- Stealth Bastard Deluxe
- Strike Suit Zero
- Superbrothers: Sword & Sworcery EP
- Surgeon Simulator 2013
- Survivor Squad
- Syder Arcade
- Symphony
- Tetrobot and Co.
- The Bard’s Tale
- The Book of Unwritten Tales
- The Book of Unwritten Tales: The Critter Chronicles
- The Bridge
- The Last Federation (Alle DLCs)
- The Long Dark
- The Raven – Legacy of a Master Thief
- The Shivah
- The Swapper
- The Witcher 2: Assassins of Kings Enhanced Edition
- This War of Mine
- Thomas Was Alone
- Ticket to Ride
- Titan Attacks
- Toast Time
- To the Moon
- Toki Tori 2+
- Torchlight II
- Train Fever
- Transistor
- Trine 2: Complete Story
- Tropico 5
- Unity of Command: Stalingrad Campaign + DLC
- Uplink
- VVVVVV
- Waking Mars
- Wargame: Airland Battle
- Wargame: European Escalation
- Wargame: Red Dragon
- Wizorb
- Worms Reloaded
- XCOM: Enemy Unknown
- X-Plane 10 Global (64-bit)
- Zen Bound 2
Eine kleine Bitte habe ich: Wenn irgendwelche Probleme mit dem Treiber auftauchen, scheut euch nicht mir zu berichten (Ich nehme deutsche und englische Bugreports gerne entgegen).
Ich werde versuchen, soweit es mir möglich ist, den gemeldeten Fehler zu reproduzieren. Zusammen mit den nötigen System-Informationen werde ich mich direkt an die richtige Stelle bei AMD wenden, um den Bug in der nächsten Treiber-Version beheben zu lassen. Danke schön. ![]()
Für Benutzer älterer AMD Grafikkarten (Radeon HD Serie 2000 – 4000) wird dringend die Installation dieses Treibers abgeraten. openSUSE bringt bereits für ältere Grafikkarten den freien Radeon-Treiber mit. Um regelmäßig Verbesserungen am freien Radeon-Treiber zu erhalten, ist die Installation eines neuen Kernel unumgänglich.
Downloads:
- Skript: makerpm-amd-15.12.sh
- SHA256: makerpm-amd-15.12.sh.sha256
Installationsanleitung:
http://de.opensuse.org/SDB:AMD/ATI-Grafiktreiber#Installation_via_makerpm-amd-Skript
Installation guide (English):
http://en.opensuse.org/SDB:AMD_fglrx#Building_the_rpm_yourself
Über das makerpm-amd-Skript
Das Skript makerpm-amd-15.12.sh ist sehr mächtig, robust und läuft vollautomatisch. Der AMD-Installer wird automatisch heruntergeladen, falls er nicht schon im Verzeichnis liegt. Zudem wird geprüft, ob die Grafikkarte vom Treiber unterstützt wird. Auf Wunsch wird nach dem Bau des RPM-Packages der fglrx-Treiber installiert.
Folgende Argumente können dem Skript übergeben werden:
| -b | Nur das RPM-Package bauen (Standard) |
| -c <type> | Nur X-Server konfigurieren. Monitor-Typ: single = 1 Monitor, dual = 2 Monitore (Wichtig: Nur ausführen, wenn es Probleme mit der Standardkonfiguration des X-Servers auftreten) |
| -d | Nur den AMD-Installer downloaden |
| -i | Das RPM-Package bauen und installieren bzw. updaten |
| -igf/–install-gdm-fix | installiert einen Fix, um den Treiber mit dem GNOME Desktopmanager (gdm) läuffähig zu machen |
| -kms <yes|no> | Kernel-Mode-Setting (KMS) aktivieren oder deaktivieren |
| -nohw | Hardware-Erkennung explizit ausschalten. (z.B. beim Bau in einer VM) |
| -old2ddriver <yes|no> | den alten 2D-Treiber aktivieren oder deaktivieren |
| -r|–report | erstellt ein Report und speichert diese in eine Datei namens amd-report.txt |
| -u|–uninstall | entfernt AMD Catalyst restlos vom System. Zuerst wird das fglrx-Package (falls vorhanden) vom System deinstalliert. Danach werden vorhandene AMD-Dateien und -Verzeichnisse entfernt. Hinweis: Falls das Rebuild-Skript installiert wurde, wird es ebenfalls entfernt und das Initskript /etc/init.d/xdm wiederhergestellt. |
| -ugf/–uninstall-gdm-fix | entfernt den Fix, dass den Treiber mit dem GNOME Desktopmanager (gdm) läuffähig macht |
| -ur|–uploadreport | wie Option –report nur zusätzlich wird der Report auf einem NoPaste-Service sprunge.us hochgeladen und gibt bei Erfolg den Link zurück. |
| -h | Die Hilfe anzeigen lassen |
| -V | Version des Skript anzeigen |
Hilfe, es funktioniert nicht!
Bitte haltet folgende Regel ein:
- Bei der Eingabe der Befehle auf mögliche Tippfehler überprüfen.
- Möglicherweise ist die Lösung für das Problem im Wiki vorhanden.
- In Kommentaren lesen, ob eine Lösung zu einem Problem bereits existiert.
Wenn keines der o.g. Regel greift, dann könnt ihr mit eurem Anliegen an mich wenden. Damit ich euch helfen kann, müsst ihr erst vorarbeiten. Bitte ladet euch das Skript makerpm-amd-15.12.sh herunter und erstellt einen Report von eurem System in der Konsole:
su -c 'sh makerpm-amd-15.12.sh -ur'
Das Skript lädt das Report auf sprunge.us hoch und gibt anschließend einen Link aus. Diesen Link postet ihr in eurem Kommentar zusammen mit einer Beschreibung zu eurem Problem an mich. Ich werde mir euren Report anschauen und Hilfestellung geben, wo evtl. das Problem liegen könnte.
Feedbacks sind wie immer willkommen. ![]()
Not sweet but salty, SUSE Manager 3 Technical Backstage Part I
Introduction
During the last year we have been working on SUSE Manager 3, the next release of SUSE’s Systems Management product, which includes additional capabilities around Configuration Management and Compliance. This article details this journey from the team’s perspective that may be of interest to product enthusiasts and developers.
Sweet did not last
In mid-2014 I wrote about SUSE Manager 2.1. It was an important release for us because at that point we became very active upstream, to the point that on a typical day, a considerable chunk of the open pull requests came from SUSE, including a refreshed mobile-enabled user interface.
But the world is changing, and management offerings are taking new innovative directions, especially around Configuration Management and Compliance. This trend was in several dimensions quite radical for our product, based on the Spacewalk project, which has been managing Linux systems with the same paradigm since 2008.
Deploying a management solution is a considerable investment for the customer: operation, training, processes, etc. Telling a customer you will be completely replacing their deployed solution because new trends have appeared means you are throwing all their efforts in the trash.
On the other hand, it is very easy to find excuses to rewrite software from scratch and there are well-known industry voices giving advice on the topic.
So are we up to the challenge?. Can we evolve SUSE Manager iteratively within this new world without endangering our customer investments?
Choosing a configuration management engine
After we decided that we would bring this new world into the existing SUSE Manager, we clearly didn’t want to write a configuration management engine ourselves: there were multiple opensource projects that were up to the task. We also understood that customers could be already invested into one of them, and that is fine: we were looking for the one that could be tightly integrated into SUSE Manager and had a design that matched our vision.
And here is where things got even less sweet: they got salty!
We ended up choosing Salt. The reasons are endless: From its vibrant community to the “aha!” moment you get when understanding its internals and seeing the vision behind the architecture. It is a complete toolkit to build datacenter automation, wrapped in usable tools with sane defaults that work out-of-the-box.
SaltStack platform or Salt is a Python-based open source configuration management software and remote execution engine. Supporting the “Infrastructure as Code” approach to deployment and cloud management, it competes primarily with Puppet, Chef, and Ansible. (Source: Wikipedia]
SaltStack software orchestrates the build and ongoing management of any modern infrastructure. SaltStack is also the most scalable and flexible configuration management software for event-driven automation of CloudOps, ITOps and DevOps. (Source: SaltStack)
We did not get the same impression from the other tools we evaluated. It was clear that Salt fit into the SUSE Manager present and future.
The fact that Salt implements configuration management (states) on top of the execution engine (state.apply), and that the executions modules are first class, we could offer almost all features we already had in SUSE Manager and naturally extend the Configuration Management part. On top of that, Salt is written in Python, and the current Spacewalk client stack and partly the server stack are also Python components.
Things only got better from there. During all this time we got really crazy about Salt. Our sysadmins are using it as well, and a community was formed internally that went beyond our product. Not only with sysadmins and engineers, but even our Product Manager writes beacons.
Suminator
The first serious dogfooding of Salt we did was the birth of Suminator. Silvio combined Vagrant with Salt to build a small tool that allowed us to build release and development versions of SUSE Manager and vanilla Spacewalk servers and clients in all possible code stream and operating system combinations. Very soon it became the tool of choice for developers to work on the codebase.
This tool is still tied to our internal build service and package repositories, but we hope we find time to make it useful to others as well.
If you want to play with openSUSE and Salt using Vagrant, I have published a repository that will get you started.
SUSECon 2015
The awesomeness of Salt started to click at various levels. The idea of orchestration built on the concept of Event-Driven Infrastructure plus the support for dumb devices culminated in the great SUSECon demo.
At SUSECon we showed that with the concept of reactive infrastructure; it was trivial to react to changes in configuration drift, in this case, using an inotify beacon that had “knowledge” about the managed files on that system, and make SUSE Manager react. On top of that we interacted with smart lights via proxy minions, just like you will have to do once the IoT takes over the world.
On top of that we showed that we could achieve all using the power of opensource that SUSE has been doing for almost 25 years. Support for Hue lights in Salt was already upstream by the time of that demonstration.
Refreshing our platform
Working on a new release means the opportunity to refresh the platforms and technologies you use, and to look for better alternatives for some of them.
- We keep rebasing and picking up enhancements from Spacewalk upstream.
- A mature codebase does not mean you should not get rid of code. E.g,: here is a pull request from the team to remove 30k lines of code that did not make much sense nowadays.
With the Salt and Compliance work there was going to be new code written, and that is an opportunity for choosing the right platforms and frameworks.
Integrating Salt into SUSE Manager
The first attempt was done as part of Hackweek 11. A protoype known as Saltwalk was born.
This protoype (a simple python reactor) helped figuring out what the bulk of the work would be, the non-trivial parts and what decisions we needed to take to move forward.
The basic architecture of a reactor that handles Salt events and interacts with Spacewalk was in place. What we needed now was a way for Spacewalk to interact with Salt.
salt-netapi-client
For the interaction of SUSE Manager with Salt, a Salt client library for Java was created, which allows to consume Salt functionality through salt-api.
Months after the original announcement, salt-netapi-client keeps being the best option available to interact with Salt from Java.
We pointed applicants to our open positions to salt-netapi-client as a challenge. Various contributors to the library became SUSE Manager team members!.
Becoming a Salt Master
When the decision of using Salt was clear, it was decided that we would do the integration code on the Java side of SUSE Manager, and so Saltwalk stayed as a protoype, and the functionality was implemented in Java.
At this point, SUSE Manager default installation was at the same time a full fledged Salt master server.
A consequence of this is that you can enjoy Salt on openSUSE out of the box. The Salt package is kept updated on Tumbleweed and Leap, which fits very well with the fact that openSUSE is available from various Cloud Providers e.g. #1 out of the box.
Registering minions
The next step was to make SUSE Manager aware of minions. First by registering them as they appeared (after salt-key --accept was done), so that they show up together with traditional systems:
After we had done work in order to retrieve the inventory data using Salt itself, the details page of minions was also available:
Once this was working we improved on it, allowing to operate the salt-key functionality directly from the user interface. Once a minion key needs to be accepted you would see it in the overview page:
And from there you can accept which ones to onboard:
Configuration Management with SUSE Manager
While you can patch, install packages in the same way you did with traditional clients, there are two main differences:
- What you do is instantaneous (unless you schedule for later)
- Instead of doing imperative actions (eg. install this package), you can also use states to define “what should be installed” in a declarative way using the power of States.
- You can write plain
slsdata in custom states
Additionally, SUSE Manager also has a higher level state user interface for packages. With this user interface you can search packages in the assigned channels.
Common states for organizations and groups
SUSE Manager allows to apply states from the State Catalog to Organizations and Groups. Every system belonging to those entities will be subject to those states.
Massive command execution
The Remote Commands page in the Salt section gives you a web based version of salt '*' cmd.run. You can preview which minions will be affected with the target before sending the commands and then see the results in real time:
Being part of the ecosystem
Making Salt an important part of SUSE Manager does not end there. In our industry being an Enterprise distributor of open-source software only works if you are part of it.
- SUSE already has around 600 commits from 5+ developers in Salt upstream
- The SUSE Manager team is hiring so that we can do more work upstream and help shape Salt’s future
- SUSE will be gold sponsor at Saltconf 2016
The future
As you can see, SUSE Manager with Salt is a powerful duo which allows you to continue managing your infrastructure with the same tool, be 100% backward compatible and start taking advantages of declarative configuration management and the orchestration capabilities of Salt, while keeping everything you have already deployed untouched.
We are very excited about the possibilities here, which will be guided by feedback from our customers and synergies we have with Salt and other SUSE technologies.
To be continued
Configuration Management is only one of the features that will arrive SUSE Manager 3. Expect to hear from the powerful Subscription Matching and Topology Awareness in future posts.
10 Tips for Mentoring #FreeSoftware Development
I believe that one of the most important tasks for a Free Software hacker is to bring new people with new perspectives, backgrounds and fresh ideas into the community. That's why I try to make contributing to my own projects as beginner friendly as possible, that's also the reason I frequently mentor people who take their first steps in developing Free Software with programs such as Google's, or Rails Girls Summer of Code.
Just recently I had the opportunity to implement a mentoring program (hey 101) for one of the Free Software communities I'm participating in (hey openSUSE) together with a couple of friends (hey Chris & Cornelius). That adventure required me to think about what I find important about the whole process. I'd like to share those thoughts with you. Here are my 10 Tips for Mentoring Free Software development.
1. Put Your Mentee First
I believe in putting the mentee's needs first. When I mentor someone I'll make an extra effort to place myself in their position. Empathize! Understanding preferences, requirements and circumstances is important. I try hard to comprehend where the mentee comes from and what I need to do to get them to contribute to Free Software. Mentoring is about their, not about my needs, nor the project's I mentor for.
2. Build a Relationship
The most important goal is that you build a relationship based on trust and respect with the mentee. Without this, I believe, everything else you'll do is in vein. Newcomers are overwhelmed and insecure about their skills and it's your job to take that fear from them. Because fear is the path to the dark side! It's the fun times together with you that will matter most to them later on, not so much what code fu-fu you have taught them.
Do not take this lightly. Relationships do not just happen, they need ongoing effort and attention, especially during the early stages. I find that the consistency of the relationship is what's most important. Talking as often as you can, finding a regular schedule where you meet and sticking to it is absolutely necessary, build a routine together.
3. Be a Role Model
Superman by Brian Fuller licensed CC BY-ND 2.0
This might sound like a weird thing from the past and it makes most people uncomfortable but you need to be a role model for your mentee. Free Software development is as much about behavior in a community, knowing what you want, and the ability to convey this to others as it is about pointers, gcc macros and git command line options. You need to ensure that your mentee can follow your example and that you're not passing on your bad habits. You are responsible for developing the competence AND character of the mentee.
4. Lead
Getting into Free Software development can be an overwhelming and daunting endeavor. Precise, reasonable and well-thought-out goals provide a path on which your mentee can take one step after the other into this strange new world. It's your duty that the goals and expectations for the project are actionable, fit your mentee's needs and are technically sound. You lead the way.
5. Audit
I find it important to understand and communicate where the mentee is and how they progress. Setting up regular milestones that I review and we celebrate together provide the opportunity to check and correct the course.
6. Applaud
As a grumpy German this is a tricky one for me. But anyhow, I think it's important to sharpen your senses for your mentee's personal achievements. You recall the excitement the first time you succeeded in setting up the development environment? Remember how invincible you felt once you finally got a hold of git? The time of your first merged pull-request? Now for you and me those things first happened a decade ago and all of this is just the daily grind. For the mentee it's super duper exiting. Make sure you recognize and acknowledge those achievements. Praise.
“In the best, the friendliest and simplest relations flattery or praise is necessary, just as grease is necessary to keep wheels turning. ” ― Leo Tolstoy, War and Peace
7. Collaborate
Whatever challenge you face, remember you are not alone. You mingle on the shoulders of giants together with many other mentors. Make sure you share your experience, your ideas and your problems with them. All of you strive to reach the same goal: getting people into Free Software. Make sure you work together in an open, transparent and friendly manner as part of our worldwide community.
8. Commit
Mentoring requires time, effort and endurance. It will cost you some evening you wanted to go out with your friends, at least a couple of thoughts every day and a lot of nerves because you explain things, that are obvious to you, over and over again. If you are not sure that you are willing to do this then it's probably better that you don't do it.
On the other hand mentoring will give you the satisfaction of being a positive influence in the life of someone else. You will see a new contributor grow into the Free Software community and you will achieve results that matter. You will also get the opportunity to learn something together and sometimes even making a new friend for life.
9. Adapt, be Agile
Bike Tree by Sea Turtle licensed CC BY-NC-ND 2.0
The only thing that is constant is change! You need to adapt your plan, milestones, time line, the technical details, your behavior and attitude during your time. Respond to change, help your mentee to do the same. Be open, courageous, and committed.
10. Don't Follow My Advise, Form Your Own Opinion
All of this is just my opinion and there are many awesome resources about mentoring in general and about mentoring for Free Software development in particular out there. Don't trust me, inform yourself and make up your own opinion. Here are some pointers:
Hello New World!
I’ve had to move my old blog from http://sysrich.co.uk to this new server on http://rootco.de
Most of my favourite blog posts have made the transition and have migrated from the ‘old fashioned’ Wordpress to the new and shiny Jekyll
It’s an excuse for me to learn a bit of Ruby, practice my markdown, and keep exercising my git skills
I plan to get back to blogging more often about the goings on in my world, especially about openSUSE and openQA
And just to give Jekyll a bit of a stretch on my first real post, here’s an openQA code snippit from Frederic Crozat’s recent submission to openQA
select_console 'root-console';
save_screenshot;
script_run "cat /home/*/.xsession-errors* > /tmp/XSE.log";
upload_logs "/tmp/XSE.log";
save_screenshot;
script_run "journalctl -b > /tmp/journal.log";
upload_logs "/tmp/journal.log";
save_screenshot;
script_run "cat /var/log/X* > /tmp/Xlogs.log";
upload_logs "/tmp/Xlogs.log";
save_screenshot;
script_run "ps axf > /tmp/psaxf.log";
How to make use of MS Outlook's .pst files on Linux
Eine Umstellung von Windows auf Linux ist nicht immer ein leichtes Unterfangen, besonders dann nicht, wenn man es gewöhnt war seine Arbeit mit Microsoft Software zu erledigen und in deren proprietären Dateiformaten zu speichern. Outlook macht da keine Ausnahme von der Regel. Doch glücklicherweise gibt es dafür eine Lösung.
Was zuvor geschah
Vor einigen Monaten verweigerte meiner Mutter plötzlich der Bildschirm ihres Notebooks den Dienst und blieb schwarz. Da ich noch einen durchaus nutzbare...
Live Streaming to HTML5?
We have our mice TV now streaming our colony of mus minutoides at the canonical URL http://mice.or.cz/ but it would be nice if you could watch them in your web browser (without flash) instead of having to open a media player for the purpose.
I gave that some serious prodding. We still use vlc with the same config as in the original post (mp4v codec + mpegts container). Our video source is an IP cam producing mp4v via rtsp and an important constraint is CPU usage as it runs on my many-purpose server (current setup consumes 10% of one CPU core). We’d like things to work in Debian’s chromium and iceweasel, primarily.
It seems that in the HTML5 world, you have these basic options:
- MP4/H264 in MP4 – this *does not work* with live streaming because you need to make sure the browser receives a correct header with metadata which normally occurs only at the top of the file; it might work with some horrible custom code hacks but nothing off-the-shelf
- VP80/VP90 in webm – this works, but encoding consumes between 150%-250% CPU! even with low bitrates; this may be okay for dedicated streaming servers but completely out of the question for me
- Theora in Ogg – this almost works, but the stream stutters every few seconds (or slips into endless buffering), making it pretty hard to watch; apparently some keyframes are lost and Theora homepage gives a caveat that Ogg encoding is broken in VLC; the CPU usage is about 30%, which would have been acceptable
That’s it for the stock video tag formats, apparently. There are two more alternatives:
- HTTP Live Stream (HLS) has no native support in browsers outside of mobile, might work with a hack like https://github.com/RReverser/mpegts but you may as well use MSE then
- Media Source Extensions (MSE) seem to allow basically implementing decoding custom containers (in javascript) for any codecs, which sounds hopeful if we’d just like to pass mp4v (or h264) through. The most popular such container is DASH, which seems to be all about fragmenting video to smaller HTTP requests with per-fragment bitrate negotiation, but still completely codec agnostic. Re Firefox, needs almost latest version. Media players support DASH too.
So far, the best looking courses seem to be:
- Media server nginx-rtmp-module (in my case with pull directive towards the ipcam’s rtsp) with mpeg-dash output and dash.js based webpage. I might have misunderstood something but it might actually just work (assuming that the bitrate negotiation could always end up just choosing the ipcam’s fixed bitrate; something very low is completely sufficient anyway).
- Debug libogg + libtheora to find out why it produces corrupted streams – have fun!
The simplest package ever
This is the package I am using
https://build.opensuse.org/package/show/home:jordimassaguerpla:test/simple
Feel free to "fork" it.
Battleship – Sinclair ZX Spectrum
The first computer, which was in my family, was ZX Spectrum. I think, I was about 6 when my father bought the first computer. This computer I used for gaming of course. I started programming later and on PC. I will never forget the sound of loaded games on Spectrum (software was distributed on audio cassette tapes and loading into memory was a sound (perceived by the human ear), interpreted as a sequence of bytes)…
Last weekend I played with my 5 years old son in Battleship. I showed him this game first time and we used pencil and paper. He teaches the alphabet and I think this could be a good experience for him. You know that feeling when you have something to show your children, do you remember your childhood. I don’t know why, but I remembered not a “paper version”, but our first computer and how I with my older brother played in Battleship on Spectrum against the computer.

I thought about this until evening and at the same evening found this game in net. I found a lot of different information about this game, the most important of which was the fact that this game can be installed on any PC running GNU/Linux. Yaaay… I can’t remember what I planed to do on this night, but until I went to sleep I installed spectrum’s Battleship on my x86_64 openSUSE and plunged into childhood for few hours 

To install spectrum’s programs on UNIX/Linux you need to install emulator. In case of openSUSE, you need to add Emulators project first. After that install FUSE package. It just works. Just start fuse-binary with game-file-name as a parameter.

I would like to thank FUSE developers and openSUSE FUSE mainainers. I don’t play in “today’s” games, but time-to-time can spend a bit time for games of my childhood.
Let's breathe life back into my blog
I haven’t updated it in a while and the content is quite old and maybe boring :)
But here I am and the first step was to migrate from Wordpress to Pelican. That way will be faster for me to publish content and to maintain it, as well. I decided to keep the old posts, just for reference, so, if you see any strange things, just let me know and I will try to fix them.
Let's hope that my future posts will teach you something useful or at least will make you think.
