Language Selection

English French German Italian Portuguese Spanish

Pandora: The Handheld Console for Linux Tweakers

Filed under

We here at S|A recently got a chance to interview Micheal Mrozek, one of the core members of a small company named OpenPandora, which produces the Pandora handheld gaming console. Long before Kickstarter and crowd sourced development funding became the flavor of the week, the OpenPandora team was designing and producing their own handheld gaming console based off of what their fellow forum members wanted. The idea behind the Pandora was to produce a handheld gaming console that met the needs of their highly active, but small, forum. It had to be a fully functional Linux PC, have an awesome D-pad, and be powerful enough to emulate the mass market console gaming systems that had proceeded it. It took a long time to get all of the pieces into place (read: four years of hardship and delays), but the Pandora has finally matured into the handheld console that its steadfast supporters have always hoped it would.

It’s often best to let those who care the most about a product describe it in detail. As such we asked Micheal to give us a run down of what specifically the Pandora is.

rest here

More in Tux Machines

OSPM Coverage at LWN: Abhishek Goel, Giovanni Gherdovich, Rafael Wysocki and Others' Work

  • The pseudo cpuidle driver

    The purpose of a cpuidle governor is to decide which idle state a CPU should go into when it has no useful work to do; the cpuidle driver then actually puts the CPU into that state. But, at the 2020 Power Management and Scheduling in the Linux Kernel summit (OSPM), Abhishek Goel presented a new cpuidle driver that doesn't actually change the processor's power state at all. Such a driver will clearly save no power, but it can be quite useful as a tool for evaluating and debugging cpuidle policies. Goel began by saying that this work was motivated by a performance problem encountered with high-latency idle states — deep CPU sleep states that take a long time to restart from. A GPU-oriented workload that generated lots of interrupts was involved; the time between those interrupts was just enough to cause the governor to choose a deep idle state. That created latency which added up over time as the workload progressed. The temporary workaround was to increase the target latency (the expected sleep time) for those idle states by a factor of three to five, biasing the idle-state choice toward the shallower states. It solved the problem, but is "not elegant"; others will undoubtedly find workloads that go wrong in other ways. Rafael Wysocki interjected to suggest using the pm_qos mechanism instead; its purpose is to address just this sort of latency issue, and he was curious to know why it didn't work. Part of the problem, evidently, is that pm_qos will disable the deeper idle states entirely, but there can be value in having them remain available for the truly long idle periods. Parth Shah added that, on the Power architecture, this is even more true; without getting to those deeper idle states little energy will be saved.

  • Saving frequency scaling in the data center

    Frequency scaling — adjusting a CPU's operating frequency to save power when the workload demands are low — is common practice across systems supported by Linux. It is, however, viewed with some suspicion in data-center settings, where power consumption is less of a concern and there is a strong emphasis on getting the most performance out of the hardware. At the 2020 Power Management and Scheduling in the Linux Kernel summit (OSPM), Giovanni Gherdovich worried that frequency scaling may be about to go extinct in data centers; he made a plea for improving its behavior for such workloads while there is still time. He started with a quote from a car-rally driver: "if in doubt, go flat out". This may not actually be the best advice for drivers of motor vehicles, he said, but it may be the right approach for frequency scaling. Users in data centers often switch to the "performance" CPU-frequency governor, which is not frequency scaling. This governor, which simply runs at full speed all the time, reflects one outcome of the tension between energy efficiency and raw performance. Program managers tend to be interested in performance first, and performance is the first thing that customers see. The cost of power usage is only discovered later, resulting in attempts to hack efficiency into a data-center deployment as an afterthought. It would be better to have that efficiency there from the outset, he said. He asked the audience a question: assume you are a regional bank running an on-premises data center. Which CPU-frequency governor would you choose? The intel_pstate powersave governor would be the smart choice for now. But the intel_pstate performance governor beckons. The "schedutil" governor is the upcoming next generation. Would you pick one of those, or just go with whatever default the distribution picked? The choice is not obvious. Frequency scaling looks like a risk for a data-center user. Can the distribution vendor be trusted to have made the right choice? For distributors, the bank is a customer who must be catered to. Which governor would you set as the default?

  • The deadline scheduler and CPU idle states

    As Rafael Wysocki conceded at the beginning of a session at the 2020 Power Management and Scheduling in the Linux Kernel summit (OSPM), the combination of the deadline scheduling class with CPU idle states might seem a little strange. Deadline scheduling is used in realtime settings, where introducing latency by idling the CPU tends to be frowned upon. But there are reasons to think that these two technologies might just be made to work together. Why would one even bother to try to combine the deadline scheduler and CPU idle states? One should never miss opportunities to save energy, he said. Plus, on some systems, avoiding idle states is not really an option; without them, the CPU will overheat and thermal throttling will kick in. Meanwhile, the combination seems viable to him. In theory, at least, all of the information needed to select idle states is present; the scheduler has work estimates and deadlines for all tasks, and it has the idle-state properties for the CPU. It's just a matter of using that information correctly.

  • Imbalance detection and fairness in the CPU scheduler

    In the 5.7 kernel, he began, the runnable_load_avg signal has been removed in favor of runnable_avg, which is the sum of the "runnable" time of every scheduler entity (either an individual task or a control group containing tasks) in a run queue. The runnable time is defined as the time a task actually spends running, but also the time it spends waiting to run. This change addresses a problem that had been seen in capacity tracking when a task is migrated from one CPU to another. Specifically, moving a task off of a CPU moves that task's utilization with it, causing that CPU to appear to suddenly have a lot of spare capacity. But if other tasks on the CPU were spending a lot of time waiting to run, that capacity doesn't really exist; the utilization of those tasks was artificially reduced by the fact that they couldn't run as much as they needed to. Including the waiting time prevents that false capacity from appearing when one task moves away, giving the remaining tasks time to expand their actual utilization. The calculation of when a CPU (or set of CPUs) is overloaded now looks at runnable_avg, which must exceed the CPU capacity by a threshold before the scheduler will try to move tasks away. NUMA balancing is still not using this metric, though, so there is currently a mismatch between normal load balancing and NUMA balancing. That can lead to conflicting decisions at times. It might make sense to change the balancing at the NUMA level, but NUMA nodes can contain a lot of CPUs, and he worries about the impact of summing that many runnable_avg values. He has not started working on this problem, but it's at the top of his list. Peter Zijlstra noted that developers are still "chasing the fallout" from the changes that have been made so far. Guittot acknowledged that, saying he's not sure if the NUMA issues play into that or not.

  • Hibernation in the cloud

    Hibernation is normally thought of as a laptop feature — and an old and obsolete laptop feature at that. One does not normally consider it to be relevant in cloud settings. But, at the 2020 Power Management and Scheduling in the Linux Kernel summit (OSPM), Andrea Righi argued that there may actually be a place for hibernation on cloud-based systems if it can be made to work reliably. The core idea behind hibernation is powering the system down entirely, but restoring it to its previous state, including any running processes, when the system is powered up. To do that, the contents of memory, which will not survive loss of power, must be written to persistent storage before turning things off. The advantage of hibernation is that the system can retain its state indefinitely without power; the cost is a great deal of I/O at both hibernation and resume times. Hibernation was a hot topic back in 2004, when it was usually known as "software suspend"; see the LWN kernel index entry for software suspend to understand just how hot. Work in this area slowed around 2008, though, when suspend-to-RAM functionality (often just called "suspend") became widely available. Support for hibernation was dropped entirely in Ubuntu 12.04. The Fedora 29 release included an experiment with suspend-then-hibernate functionality, but that "didn't go well" and was dropped. Hibernation mostly seems like a dead topic, he said.

Review of MODICIA O.S.

When it comes to unpopular distros, people often question reliability as a factor. MODICIA O.S. is not a mainstream distro like RHEL, Debian, or SUSE Linux, etc., but is not backed by any large company. This leads many to believe that off-meta distros are just low-quality “discount” systems that will break apart after some time. Well, that is not the case with MODICIA O.S. The dev team behind Modicia Web Design and Development has been working to spread Linux since 1998. Devs use it themselves for their multimedia production. The distro is built to meet user demands with ease. The latest MODICIA O.S. 20.144 is based on Ubuntu 20.04 LTS. This gives MODICIA a solid base for stability and community support. As for the desktop environment, it comes with a modified version of Xfce. MODICIA also comes with various tools by default; for example, office-related tools, browsers, and others. Read more

Debian Development: MiniDebConf, BigBlueButton, and Ben Hutchings' Work

  • Debian Project Leader: DPL Activity logs for April/May 2020

    I survived my first month as DPL! I agree with previous DPLs who have described it as starting a whole new job. Fortunately it wasn't very stressful, but it certainly was very time consuming. On the very first day my inbox exploded with requests. I dealt with this by deferring anything that wasn't important right away and just started working through it. Fortunately the initial swell subsided as the month progressed. The bulk of my remaining e-mail backlog are a few media outlets who wants to do interviews. I'll catch up with those during this month. Towards the end of the month, most of my focus was on helping to prepare for an online MiniDebConf that we hosted over the last weekend in May. We had lots of fun and we had some great speakers sharing their knowledge and expertise during the weekend.

  • Olivier Berger: Automate the capture a full BigBlueButton conference replay, with bbb-downloader

    BigBlueButton, aka BBB, is a webrtc conferencing solution, that among many features, allows to record a conference, for later replay. We have been working together with my colleague François Trahay, on a set of scripts (bbb-downloader) that will allow to easily (on Linux) download recordings of BBB conferences, for local backup, video editing, upload on video sharing platforms, etc. This is particularly useful in our distance learning contexts where students may have to catch up on a live session that was recorded. We have integrated a hackish solution to capture, as a single video, presentations that contained slide deck presentations. Let me explain why this was necessary.

  • Ben Hutchings: Introducing debplate, a template system for Debian packages

    For about two months I've been working on a new project, debplate, which currently lives at benh/debplate on Salsa. This is a template system for Debian packages, primarily intended to ease building multiple similar binary packages from a single source. With some changes, it could also be useful for making multiple source packages consistent (issue #9).

  • Ben Hutchings: Debian LTS work, May 2020

    I sent a request for testing an update of the linux package to 3.16.83. I then prepared and, after review, released Linux 3.16.84. I rebased the linux package onto that and sent out a further request for testing. I then backported some additional security fixes, but have still not made an upload.

Proton 5.0-8 Release Candidate

  • Proton 5.0-8 Release Candidate Brings Game Fixes, Performance Improvements

    Valve and CodeWeavers have been preparing a new release of the Proton 5.0 series for powering Steam Play with running modern Windows games on Linux. Out this morning is the release candidate of the imminent Proton 5.0-8 release. Proton 5.0-8 RC is bringing: - Crash fixes for Detroit: Become Human, Planet Zoo, Jurassic World: Evolution, Unity of Command II, and Splineter Cell Blacklist.

  • Steam Play Proton 5.0-8 has a Release Candidate up for testing

    Today, CodeWeavers developer Andrew Eikum put up a first Release Candidate for Steam Play Proton 5.0-8. Need more info on what Steam Play is? See our dedicated page. With an aim for gathering feedback and finding issues in the new release, to then push it out for everyone later if testing goes well. It has some major improvements in it but like with previous Proton RC releases, it's subject to change and some updates can be removed.