tag:blogger.com,1999:blog-319391532024-02-19T06:21:13.009+02:00LoscaLibre/open software and community affairsTJhttp://www.blogger.com/profile/17762291681744356830noreply@blogger.comBlogger73125tag:blogger.com,1999:blog-31939153.post-74780850963750155812022-12-10T15:07:00.001+02:002022-12-10T15:28:49.996+02:00Running Cockpit inside ALP<p><span style="font-size: x-small;">(quoted from my <a href="https://timojyrinki.gitlab.io/hugo/">other blog</a> at since a new OS might be interesting for many and this is published in separate planets)</span><br /></p><p>ALP - <a href="https://documentation.suse.com/alp/all/single-html/alp/index.html">The Adaptable Linux Platform</a>
– is a new operating system from SUSE to run containerized and
virtualized workloads. It is in early prototype phase, but the
development is done completely openly so it’s easy to jump in to try it.</p>
<p>For this trying out, I used the latest encrypted build – as of the writing, 22.1 – from <a href="https://download.opensuse.org/repositories/SUSE:/ALP/images/">ALP images</a>.
I imported it in virt-manager as a Generic Linux 2022 image, using UEFI
instead of BIOS, added a TPM device (which I’m interested in otherwise)
and referring to an Ignition JSON file in the XML config in
virt-manager.</p>
<p>The Ignition part is pretty much fully thanks to Paolo Stivanin who
studied the secrets of it before me. But here it goes - and this is
required for password login in Cockpit to work in addition to SSH key
based login to the VM from host - first, create config.ign file:</p>
<div class="highlight"><pre style="-moz-tab-size: 4; -o-tab-size: 4; background-color: #272822; color: #f8f8f2; tab-size: 4;" tabindex="0"><code class="language-json" data-lang="json"><span style="display: flex;"><span>{
</span></span><span style="display: flex;"><span> <span style="color: #f92672;">"ignition"</span>: { <span style="color: #f92672;">"version"</span>: <span style="color: #e6db74;">"3.3.0"</span> },
</span></span><span style="display: flex;"><span> <span style="color: #f92672;">"passwd"</span>: {
</span></span><span style="display: flex;"><span> <span style="color: #f92672;">"users"</span>: [
</span></span><span style="display: flex;"><span> {
</span></span><span style="display: flex;"><span> <span style="color: #f92672;">"name"</span>: <span style="color: #e6db74;">"root"</span>,
</span></span><span style="display: flex;"><span> <span style="color: #f92672;">"passwordHash"</span>: <span style="color: #e6db74;">"YOURHASH"</span>,
</span></span><span style="display: flex;"><span> <span style="color: #f92672;">"sshAuthorizedKeys"</span>: [
</span></span><span style="display: flex;"><span> <span style="color: #e6db74;">"ssh-... YOURKEY"</span>
</span></span><span style="display: flex;"><span> ]
</span></span><span style="display: flex;"><span> }
</span></span><span style="display: flex;"><span> ]
</span></span><span style="display: flex;"><span> },
</span></span><span style="display: flex;"><span> <span style="color: #f92672;">"systemd"</span>: {
</span></span><span style="display: flex;"><span> <span style="color: #f92672;">"units"</span>: [{
</span></span><span style="display: flex;"><span> <span style="color: #f92672;">"name"</span>: <span style="color: #e6db74;">"sshd.service"</span>,
</span></span><span style="display: flex;"><span> <span style="color: #f92672;">"enabled"</span>: <span style="color: #66d9ef;">true</span>
</span></span><span style="display: flex;"><span> }]
</span></span><span style="display: flex;"><span> },
</span></span><span style="display: flex;"><span> <span style="color: #f92672;">"storage"</span>: {
</span></span><span style="display: flex;"><span> <span style="color: #f92672;">"files"</span>: [
</span></span><span style="display: flex;"><span> {
</span></span><span style="display: flex;"><span> <span style="color: #f92672;">"overwrite"</span>: <span style="color: #66d9ef;">true</span>,
</span></span><span style="display: flex;"><span> <span style="color: #f92672;">"path"</span>: <span style="color: #e6db74;">"/etc/ssh/sshd_config.d/20-enable-passwords.conf"</span>,
</span></span><span style="display: flex;"><span> <span style="color: #f92672;">"contents"</span>: {
</span></span><span style="display: flex;"><span> <span style="color: #f92672;">"source"</span>: <span style="color: #e6db74;">"data:,PasswordAuthentication%20yes%0APermitRootLogin%20yes%0A"</span>
</span></span><span style="display: flex;"><span> },
</span></span><span style="display: flex;"><span> <span style="color: #f92672;">"mode"</span>: <span style="color: #ae81ff;">420</span>
</span></span><span style="display: flex;"><span> }
</span></span><span style="display: flex;"><span> ]
</span></span><span style="display: flex;"><span> }
</span></span><span style="display: flex;"><span>}
</span></span></code></pre></div><p>…where password SHA512 hash can be obtained using <code>openssl passwd -6</code> and the ssh key is your public ssh key.</p>
<p>That file is put to eg /tmp and referred in the virt-manager’s XML like follows:</p>
<div class="highlight"><pre style="-moz-tab-size: 4; -o-tab-size: 4; background-color: #272822; color: #f8f8f2; tab-size: 4;" tabindex="0"><code class="language-bash" data-lang="bash"><span style="display: flex;"><span> <sysinfo type<span style="color: #f92672;">=</span><span style="color: #e6db74;">"fwcfg"</span>>
</span></span><span style="display: flex;"><span> <entry name<span style="color: #f92672;">=</span><span style="color: #e6db74;">"opt/com.coreos/config"</span> file<span style="color: #f92672;">=</span><span style="color: #e6db74;">"/tmp/config.ign"</span>/>
</span></span><span style="display: flex;"><span> </sysinfo>
</span></span></code></pre></div><p>Now we can boot up the VM and ssh in - or you could log in directly too but it’s easier to copy-paste commands when using ssh.</p>
<p>Inside the VM, we can follow the ALP documentation to install and start Cockpit:</p>
<div class="highlight"><pre style="-moz-tab-size: 4; -o-tab-size: 4; background-color: #272822; color: #f8f8f2; tab-size: 4;" tabindex="0"><code class="language-bash" data-lang="bash"><span style="display: flex;"><span>podman container runlabel install registry.opensuse.org/suse/alp/workloads/tumbleweed_containerfiles/suse/alp/workloads/cockpit-ws:latest
</span></span><span style="display: flex;"><span>podman container runlabel --name cockpit-ws run registry.opensuse.org/suse/alp/workloads/tumbleweed_containerfiles/suse/alp/workloads/cockpit-ws:latest
</span></span><span style="display: flex;"><span>systemctl enable --now cockpit.service
</span></span></code></pre></div><p>Check your host’s IP address with <code>ip -a</code>, and open IP:9090 in your host’s browser:</p>
<p><img alt="Cockpit login screen" src="https://timojyrinki.gitlab.io/hugo/post/2022-12-10-alp-cockpit/cockpit-login.png" /></p>
<p>Login with root / your password and you shall get the front page:</p>
<p><img alt="Cockpit front page" src="https://timojyrinki.gitlab.io/hugo/post/2022-12-10-alp-cockpit/cockpit-frontpage.png" /></p>
<p>…and many other pages where you can manage your ALP deployment via browser:</p>
<p><img alt="Cockpit podman page" src="https://timojyrinki.gitlab.io/hugo/post/2022-12-10-alp-cockpit/cockpit-subpage.png" /></p>
<p>All in all, ALP is in early phases but I’m really happy there’s
up-to-date documentation provided and people can start experimenting it
whenever they want. The images from the linked directory should be
fairly good, and <a href="https://openqa.opensuse.org/group_overview/100">test automation</a> with openQA has been started upon as well.</p>
<p>You can try out the <a href="https://documentation.suse.com/alp/all/single-html/alp/index.html#reference-available-alp-workloads">other</a> example workloads that are available just as well.</p>TJhttp://www.blogger.com/profile/17762291681744356830noreply@blogger.com0tag:blogger.com,1999:blog-31939153.post-57254119471022841582022-01-26T14:51:00.005+02:002022-01-27T08:49:46.423+02:00Unboxing Dell XPS 13 - openSUSE Tumbleweed alongside preinstalled Ubuntu<h2 class="post-subheading">A look at the 2021 model of Dell XPS 13 - available with Linux pre-installed</h2><div class="post-subheading" style="text-align: left;">I received a new laptop for work - a Dell XPS 13. Dell has been long
famous for offering certain models with pre-installed Linux as a
supported option, and opting for those is nice for moving some
euros/dollars from certain PC desktop OS monopoly towards Linux desktop
engineering costs. Notably Lenovo also offers Ubuntu and Fedora options
on many models these days (like Carbon X1 and P15 Gen 2).</div><div class="post-subheading" style="text-align: left;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEicuZ7XvyUKRebCvC7ZmFWeS4Tilqv82EK5B42kscToOaLrCUZKKB0aup1bC9ZEEHLWGrh2uwT58I_3cs2N6KWxVy7WVQpxtA4E-DA0BIJ-xzGuW-L8S9G4OZ4P7LXB-Byk0qBJ6zFXLW07aUGnOImbvF78nqCSJ0Lqi7AcvlarHGlYfLUrhtk=s1280" style="margin-left: 1em; margin-right: 1em;"><img alt="black box" border="0" data-original-height="964" data-original-width="1280" height="301" src="https://blogger.googleusercontent.com/img/a/AVvXsEicuZ7XvyUKRebCvC7ZmFWeS4Tilqv82EK5B42kscToOaLrCUZKKB0aup1bC9ZEEHLWGrh2uwT58I_3cs2N6KWxVy7WVQpxtA4E-DA0BIJ-xzGuW-L8S9G4OZ4P7LXB-Byk0qBJ6zFXLW07aUGnOImbvF78nqCSJ0Lqi7AcvlarHGlYfLUrhtk=w400-h301" width="400" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhAQXfzLQ6p0ZMmSSoWQggPqiS_cGyQIoyc2kSTN_5vNYzB2nKhqzRQ_hMmgsMzl4KDDmX_A3hTmfW9Hx4vJO8VYjcF-1BIyzzRzJaxGAoEwdY5CEYkpCu39-AO0MSAjUKsHq1lyq_TVsq9RwShP0LKiVm85KYWG5g7hg-7Toypf_j3LeptQYA=s1280" style="margin-left: 1em; margin-right: 1em;"><img alt="opened box" border="0" data-original-height="1280" data-original-width="964" height="400" src="https://blogger.googleusercontent.com/img/a/AVvXsEhAQXfzLQ6p0ZMmSSoWQggPqiS_cGyQIoyc2kSTN_5vNYzB2nKhqzRQ_hMmgsMzl4KDDmX_A3hTmfW9Hx4vJO8VYjcF-1BIyzzRzJaxGAoEwdY5CEYkpCu39-AO0MSAjUKsHq1lyq_TVsq9RwShP0LKiVm85KYWG5g7hg-7Toypf_j3LeptQYA=w301-h400" width="301" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhY-amtMR4CO1VWwAQoD_BIXTjqQTIea0fwtCyQi0hqprxvK5kqI7n02Zw45xcVF1ORm6m_IWAyaBLcGjTb6fK0M9PqzzXfeyIFawYEMCvZ36YKHjzVYtd_w7YD6Owj00mgoSrdrB4R5qegCxeI08PiKVZ8ZIeQk9l0Oyau4Q9tx8Xz8mJooJQ=s1280" style="margin-left: 1em; margin-right: 1em;"><img alt="accessories and a leaflet about Linux support" border="0" data-original-height="964" data-original-width="1280" height="482" src="https://blogger.googleusercontent.com/img/a/AVvXsEhY-amtMR4CO1VWwAQoD_BIXTjqQTIea0fwtCyQi0hqprxvK5kqI7n02Zw45xcVF1ORm6m_IWAyaBLcGjTb6fK0M9PqzzXfeyIFawYEMCvZ36YKHjzVYtd_w7YD6Owj00mgoSrdrB4R5qegCxeI08PiKVZ8ZIeQk9l0Oyau4Q9tx8Xz8mJooJQ=w640-h482" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgM8700UA5ss6nvfXr6oJ67bJSemgNd02PRmopJL18UtqKPKpGMBv4SEmfZdO-zURQYEyXtnEL4IO7R2ng9vbAGFgKcC6K0VtaQGsiCd7Bo3_bmzOy4S2k13aRVsgjtZH1NvgkGd8ysgSnCAW6Rd1Ynb5u6kjGrlPa87ukclm7mikOTdw-6Heg=s1280" style="margin-left: 1em; margin-right: 1em;"><img alt="laptop lifted from the box, closed" border="0" data-original-height="964" data-original-width="1280" height="482" src="https://blogger.googleusercontent.com/img/a/AVvXsEgM8700UA5ss6nvfXr6oJ67bJSemgNd02PRmopJL18UtqKPKpGMBv4SEmfZdO-zURQYEyXtnEL4IO7R2ng9vbAGFgKcC6K0VtaQGsiCd7Bo3_bmzOy4S2k13aRVsgjtZH1NvgkGd8ysgSnCAW6Rd1Ynb5u6kjGrlPa87ukclm7mikOTdw-6Heg=w640-h482" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjIvFbutG71WrXAlWVonB2TIVv-sCeS4eXafJ9DBtTjTa0wmpW-mm-lDgPOJlZWeueZ_aji5T7FHVV1sLXWdcwG2u9orijyoBXyRE_94FPpoX2uwClQWY8CiUncJtbgLOmR6IYICcb6PNpBCXmDxZ4Qa-0-2E4UTZzZkp2U7sJQMZvQyNhU5VM=s1280" style="margin-left: 1em; margin-right: 1em;"><img alt="laptop with lid open" border="0" data-original-height="1280" data-original-width="964" height="400" src="https://blogger.googleusercontent.com/img/a/AVvXsEjIvFbutG71WrXAlWVonB2TIVv-sCeS4eXafJ9DBtTjTa0wmpW-mm-lDgPOJlZWeueZ_aji5T7FHVV1sLXWdcwG2u9orijyoBXyRE_94FPpoX2uwClQWY8CiUncJtbgLOmR6IYICcb6PNpBCXmDxZ4Qa-0-2E4UTZzZkp2U7sJQMZvQyNhU5VM=w301-h400" width="301" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEier6fU4z3Q0aPa-bhKlO5p5Z--2juSL2x7d8-N7hazlotVgL1f5kfI9UkVbdsqdpmGDu_s_3BIq3s5uhFhClXBm8HSAG2LlHFT_Er2pXlRQqUs9-ixGY4vD7B-8YHcvkWUGBor3d7MZ7eRPjy24KzYom-Pi4HqNzqQtCA26lYi2t9OogkxBCA=s1280" style="margin-left: 1em; margin-right: 1em;"><img alt="Ubuntu running" border="0" data-original-height="720" data-original-width="1280" height="360" src="https://blogger.googleusercontent.com/img/a/AVvXsEier6fU4z3Q0aPa-bhKlO5p5Z--2juSL2x7d8-N7hazlotVgL1f5kfI9UkVbdsqdpmGDu_s_3BIq3s5uhFhClXBm8HSAG2LlHFT_Er2pXlRQqUs9-ixGY4vD7B-8YHcvkWUGBor3d7MZ7eRPjy24KzYom-Pi4HqNzqQtCA26lYi2t9OogkxBCA=w640-h360" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEioIl_Uw-sF5LkYjrM1DC52PjBmxDLSktOn5x5LRdl9Lsh4txT5TFM8hfMFt5WtWhME-DBPsLAXsOg8F3Ek5CbP0D3tY7n9RjSMVJ7UxirSpa2KQKmPYXkyICcFR8ME_S40paJG_TQYsX-YXor7gLHZq4zzI9ivgCrzq8m95MIPIyCDXRQ17J0=s1280" style="margin-left: 1em; margin-right: 1em;"><img alt="openSUSE runnin" border="0" data-original-height="720" data-original-width="1280" height="360" src="https://blogger.googleusercontent.com/img/a/AVvXsEioIl_Uw-sF5LkYjrM1DC52PjBmxDLSktOn5x5LRdl9Lsh4txT5TFM8hfMFt5WtWhME-DBPsLAXsOg8F3Ek5CbP0D3tY7n9RjSMVJ7UxirSpa2KQKmPYXkyICcFR8ME_S40paJG_TQYsX-YXor7gLHZq4zzI9ivgCrzq8m95MIPIyCDXRQ17J0=w640-h360" width="640" /></a></div> </div><div class="post-subheading" style="text-align: left;">Obviously a smooth, ready-to-rock Ubuntu installation is nice for
most people already, but I need openSUSE, so after checking everything
is fine with Ubuntu, I continued to install openSUSE Tumbleweed as a
dual boot option. As I’m a funny little tinkerer, I obviously went with
some special things. I wanted:<ul><li>Ubuntu to remain as the reference supported OS on a small(ish)
partition, useful to compare to if trying out new development versions
of software on openSUSE and finding oddities.</li><li>openSUSE as the OS consuming most of the space.</li><li>LUKS encryption for openSUSE without LVM.</li><li>ext4’s new fancy ‘fast_commit’ feature in use during filesystem creation.</li><li>As a result of all that, I ended up juggling back and forth
installation screens a couple of times (even more than shown below, and
also because I forgot I wanted to use encryption the first time around).</li></ul>
First boots to pre-installed Ubuntu and installation of openSUSE Tumbleweed as the dual-boot option: </div><div class="post-subheading" style="text-align: left;"><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dxH2cUBuxgXkRWTjkOWezUzyZdwJchFYXo0rcGwXyq85TUF1V38qT13MrbmZ2smreXwHPwviFyAjQE' class='b-hbp-video b-uploaded' frameborder='0'></iframe></div></div><div class="post-subheading" style="text-align: left;"> </div><div class="post-subheading" style="text-align: left;">(if the embedded video is not shown, use a <a href="https://timojyrinki.gitlab.io/hugo/post/2022-01-26-dell-xps-13-developer-edition-ubuntu-opensuse/dellxps13video.webm">direct link</a>) <br /></div><div class="post-subheading" style="text-align: left;"> </div><div class="post-subheading" style="text-align: left;">Some notes from the openSUSE installation:<ul><li>openSUSE installer’s partition editor apparently does not support
resizing or automatically installing side-by-side another Linux
distribution, so I did part of the setup completely on my own.</li><li>Installation package download hanged a couple of times, only passed
when I entered a mirror manually. On my TW I’ve also noticed download
problems recently, there might be a problem with some mirror I need to
escalate.</li><li>The installer doesn’t very clearly show encryption status of the
target installation - it took me a couple of attempts before I even
noticed the small “encrypted” column and icon (well, very small, see
below), which also did not spell out the device mapper name but only the
main partition name. In the end it was going to do the right thing
right away and use my pre-created encrypted target partition as I
wanted, but it could be a better UX. Then again I was doing my very own
tweaks anyway.</li><li>Let’s not go to the details why I’m so old-fashioned and use ext4 :)</li><li>openSUSE’s installer does not work fine with HiDPI screen. Funnily the tty consoles seem to be fine and with a big font.</li><li>At the end of the video I install the two GNOME extensions I can’t
live without, Dash to Dock and Sound Input & Output Device Chooser.</li></ul></div>TJhttp://www.blogger.com/profile/17762291681744356830noreply@blogger.com3tag:blogger.com,1999:blog-31939153.post-70244442986407095272021-12-14T09:29:00.000+02:002021-12-14T09:29:01.630+02:00Working and warming up cats<h2 class="post-subheading">How to disable internal keyboard/touchpad when a cat arrives</h2><article class="blog-post" role="main">
<p>I’m using an external keyboard (<span style="color: red;"><b>1</b></span>) and mouse (<span style="color: red;"><b>2</b></span>), but the
laptop lid is usually still open for better cooling. That means the
internal keyboard (<span style="color: red;"><b>3</b></span>) and touchpad (<span style="color: red;"><b>4</b></span>) – made of comfortable materials –
are open to be used by a cat searching for warmth (<span style="color: red;"><b>7</b></span>), in the obvious
“every time” case that a normal non-heated nest (<span style="color: red;"><b>6</b></span>) is not enough.</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjNVHf4gKBafCOycb9ngwogjPRA8YCyUl89dGgv0Mnd4dX7wkDB-b7sDCqR65vC3blHsvSO1evqeLkklAVAx3ot65RBQAi-xiJ7seM18tw1GZjnr3dUWB74yRp0RFUJkTYY_uhojiVTBqiqOKayd-pxWfNsfylhmP2Bp4XXxvUAAc0GHMyFvi8=s1280" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1048" data-original-width="1280" height="525" src="https://blogger.googleusercontent.com/img/a/AVvXsEjNVHf4gKBafCOycb9ngwogjPRA8YCyUl89dGgv0Mnd4dX7wkDB-b7sDCqR65vC3blHsvSO1evqeLkklAVAx3ot65RBQAi-xiJ7seM18tw1GZjnr3dUWB74yRp0RFUJkTYY_uhojiVTBqiqOKayd-pxWfNsfylhmP2Bp4XXxvUAAc0GHMyFvi8=w640-h525" width="640" /></a></div><p></p>
<p>The problem is, everything goes chaotic at that point in the default
configuration. The solution is to have quick shortcuts in my Dash to
Dock (<span style="color: red;"><b>8</b></span>) to both disable (<span style="color: red;"><b>10</b></span>) and enable (<span style="color: red;"><b>9</b></span>) keyboard and touchpad at a
very rapid pace.</p>
<p>It is to be noted that I’m not disabling the touch screen (<span style="color: red;"><b>5</b></span>) by
default, because most of the time the cat is not leaning on it – there
is also the added benefit that if one forgets about the internal
keyboard and touchpad disabling and detaches the laptop from the USB-C
monitor (<span style="color: red;"><b>11</b></span>), there’s the possibility of using
the touch screen and on-screen keyboard to type in the password and tap
on the keyboard/touchpad enabling shortcut button again. If also touch
screen was disabled, the only way would be to go back to an external
keyboard or reboot.</p>
<p>So here are the scripts. First, the disabling script (pardon my copy-paste use of certain string manipulation tools):</p>
<div class="highlight"><pre class="chroma"><code class="language-bash hljs" data-lang="bash">dconf write /org/gnome/desktop/peripherals/touchpad/send-events <span class="s2"><span class="hljs-string">"'disabled'"</span></span>
sudo killall evtest
sudo evtest --grab <span class="k">$(</span>sudo libinput list-devices <span class="p">|</span> grep -A <span class="m"><span class="hljs-number">1</span></span> <span class="s2"><span class="hljs-string">"AT Translated Set 2 keyboard"</span></span> <span class="p">|</span> tail -n <span class="m"><span class="hljs-number">1</span></span> <span class="p">|</span> sed <span class="s1"><span class="hljs-string">'s/.*\/dev/\/dev/'</span></span><span class="k">)</span> <span class="p">&</span>
sudo evtest --grab <span class="k">$(</span>sudo libinput list-devices <span class="p">|</span> grep -A <span class="m"><span class="hljs-number">1</span></span> <span class="s2"><span class="hljs-string">"Dell WMI"</span></span> <span class="p">|</span> tail -n <span class="m"><span class="hljs-number">1</span></span> <span class="p">|</span> sed <span class="s1"><span class="hljs-string">'s/.*\/dev/\/dev/'</span></span><span class="k">)</span> <span class="p">&</span>
sudo evtest --grab <span class="k">$(</span>sudo libinput list-devices <span class="p">|</span> grep -A <span class="m"><span class="hljs-number">1</span></span> <span class="s2"><span class="hljs-string">"Power"</span></span> <span class="p">|</span> grep Kernel <span class="p">|</span> tail -n <span class="m"><span class="hljs-number">1</span></span> <span class="p">|</span> sed <span class="s1"><span class="hljs-string">'s/.*\/dev/\/dev/'</span></span><span class="k">)</span> <span class="p">&</span>
sudo evtest --grab <span class="k">$(</span>sudo libinput list-devices <span class="p">|</span> grep -A <span class="m"><span class="hljs-number">1</span></span> <span class="s2"><span class="hljs-string">"Power"</span></span> <span class="p">|</span> grep Kernel <span class="p">|</span> head -n <span class="m"><span class="hljs-number">1</span></span> <span class="p">|</span> sed <span class="s1"><span class="hljs-string">'s/.*\/dev/\/dev/'</span></span><span class="k">)</span> <span class="p">&</span>
sudo evtest --grab <span class="k">$(</span>sudo libinput list-devices <span class="p">|</span> grep -A <span class="m"><span class="hljs-number">1</span></span> <span class="s2"><span class="hljs-string">"Sleep"</span></span> <span class="p">|</span> grep Kernel <span class="p">|</span> tail -n <span class="m"><span class="hljs-number">1</span></span> <span class="p">|</span> sed <span class="s1"><span class="hljs-string">'s/.*\/dev/\/dev/'</span></span><span class="k">)</span> <span class="p">&</span>
sudo evtest --grab <span class="k">$(</span>sudo libinput list-devices <span class="p">|</span> grep -A <span class="m"><span class="hljs-number">1</span></span> <span class="s2"><span class="hljs-string">"HID"</span></span> <span class="p">|</span> grep Kernel <span class="p">|</span> head -n <span class="m"><span class="hljs-number">1</span></span> <span class="p">|</span> sed <span class="s1"><span class="hljs-string">'s/.*\/dev/\/dev/'</span></span><span class="k">)</span> <span class="p">&</span>
sudo evtest --grab <span class="k">$(</span>sudo libinput list-devices <span class="p">|</span> grep -A <span class="m"><span class="hljs-number">1</span></span> <span class="s2"><span class="hljs-string">"HID"</span></span> <span class="p">|</span> tail -n <span class="m"><span class="hljs-number">1</span></span> <span class="p">|</span> sed <span class="s1"><span class="hljs-string">'s/.*\/dev/\/dev/'</span></span><span class="k">)</span> <span class="p">&</span>
<span class="c1"><span class="hljs-comment">#sudo evtest --grab $(sudo libinput list-devices | grep -A 1 "ELAN" | tail -n 1 | sed 's/.*\/dev/\/dev/') # Touch screen</span></span>
</code></pre></div><p>And the associated ~/.local/share/applications/disable-internal-input.desktop:</p>
<div class="highlight"><pre class="chroma"><code class="language-bash hljs" data-lang="bash"><span class="o">[</span>Desktop Entry<span class="o">]</span>
<span class="nv">Version</span><span class="o">=</span><span class="hljs-number">1.0</span>
<span class="nv">Name</span><span class="o">=</span>Disable internal input
<span class="nv">GenericName</span><span class="o">=</span>Disable internal input
<span class="nv">Exec</span><span class="o">=</span>/bin/bash -c /home/timo/Asiakirjat/helpers/<span class="hljs-built_in">disable</span>-internal-input.sh
<span class="nv">Icon</span><span class="o">=</span>yast-keyboard
<span class="nv">Type</span><span class="o">=</span>Application
<span class="nv">Terminal</span><span class="o">=</span><span class="nb"><span class="hljs-literal">false</span></span>
<span class="nv">Categories</span><span class="o">=</span>Utility<span class="p">;</span>Development<span class="p">;</span>
</code></pre></div><p>Here’s the enabling script:</p>
<div class="highlight"><pre class="chroma"><code class="language-bash hljs" data-lang="bash">dconf write /org/gnome/desktop/peripherals/touchpad/send-events <span class="s2"><span class="hljs-string">"'enabled'"</span></span>
sudo killall evtest
</code></pre></div><p>and the desktop file:</p>
<div class="highlight"><pre class="chroma"><code class="language-bash hljs" data-lang="bash"><span class="o">[</span>Desktop Entry<span class="o">]</span>
<span class="nv">Version</span><span class="o">=</span><span class="hljs-number">1.0</span>
<span class="nv">Name</span><span class="o">=</span>Enable internal input
<span class="nv">GenericName</span><span class="o">=</span>Enable internal input
<span class="nv">Exec</span><span class="o">=</span>/bin/bash -c /home/timo/Asiakirjat/helpers/<span class="hljs-built_in">enable</span>-internal-input.sh
<span class="nv">Icon</span><span class="o">=</span>/home/timo/.local/share/icons/hicolor/scalable/apps/yast-keyboard-enable.png
<span class="nv">Type</span><span class="o">=</span>Application
<span class="nv">Terminal</span><span class="o">=</span><span class="nb"><span class="hljs-literal">false</span></span>
<span class="nv">Categories</span><span class="o">=</span>Utility<span class="p">;</span>Development<span class="p">;</span>
</code></pre></div><p>With these, if I sense a cat or am just proactive
enough, I press <i>Super+9</i>. If I’m about to detach my laptop from the
monitor, I press <i>Super+8</i>. If I forget the latter (usually this is the
case) and haven’t yet locked the screen, I just tap the enabling icon on
the touch screen.</p>
</article>TJhttp://www.blogger.com/profile/17762291681744356830noreply@blogger.com0tag:blogger.com,1999:blog-31939153.post-80730884430659207532021-03-31T14:06:00.003+03:002021-08-05T12:16:44.624+03:00MotionPhoto / MicroVideo File Formats on Pixel Phones<p>Google Pixel phones support what they call ”Motion Photo”
which is essentially a photo with a short video clip attached to it.
They are quite nice since they bring the moment alive, especially as the
capturing of the video starts a small moment before the shutter button
is pressed. For most viewing programs they simply show as static JPEG
photos, but there is more to the files.
</p><article class="blog-post" role="main"><p>I’d really love proper Shotwell support for these file formats, so I
posted a longish explanation with many of the details in this blog post
to a ticket there too. Examples of the newer format are linked there
too.</p>
<p><a href="https://gitlab.gnome.org/GNOME/shotwell/-/issues/233#note_1064700"></a></p><div class="separator" style="clear: both; text-align: left;"><a href="https://gitlab.gnome.org/GNOME/shotwell/-/issues/233" style="margin-left: 1em; margin-right: 1em;" target="_blank"><img alt="Info posted to Shotwell ticket" border="0" data-original-height="452" data-original-width="355" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwyAd0c_hbs_Ht2bE57ingBvTYwA1YpiwL7y6k3oFlp-LdRPhyphenhyphenj5WBJd3V-AaKY41pFju9AClagpYhtLvVC7i8sssU3gptaRceDBfzeNZAgy__Ssm2aYSiCK_0JT8T9jq2_A1hXQ/w251-h320/format-info-shotwell-ticket_small.png" width="251" /></a></div><br /><p></p>
<p>There are actually two different formats, an old one that is already
obsolete, and a newer current format. The older ones are those that your
Pixel phone recorded as ”MVIMG_[datetime].jpg", and they have the
following meta-data:</p>
<pre><code class="hljs">Xmp.GCamera.MicroVideo XmpText 1 1
Xmp.GCamera.MicroVideoVersion XmpText 1 1
Xmp.GCamera.MicroVideoOffset XmpText 7 4022143
Xmp.GCamera.MicroVideoPresentationTimestampUs XmpText 7 1331607
</code></pre><p>The offset is actually from <i>the end of the file</i>,
so one needs to calculate accordingly. But it is exact otherwise, so
one simply extract a file with that meta-data information:</p>
<div class="highlight"><pre class="chroma"><code class="language-bash hljs" data-lang="bash"><span class="cp"><span class="hljs-shebang">#!/bin/bash</span>
</span><span class="cp"></span><span class="c1"><span class="hljs-comment">#</span></span>
<span class="c1"><span class="hljs-comment"># Extracts the microvideo from a MVIMG_*.jpg file</span></span>
<span class="c1"><span class="hljs-comment"># The offset is from the ending of the file, so calculate accordingly</span></span>
<span class="nv">offset</span><span class="o">=</span><span class="k">$(</span>exiv2 -p X <span class="s2"><span class="hljs-string">"</span></span><span class="nv"><span class="hljs-string"><span class="hljs-variable">$1</span></span></span><span class="s2"><span class="hljs-string">"</span></span> <span class="p">|</span> grep MicroVideoOffset <span class="p">|</span> sed <span class="s1"><span class="hljs-string">'s/.*\"\(.*\)"/\1/'</span></span><span class="k">)</span>
<span class="nv">filesize</span><span class="o">=</span><span class="k">$(</span>du --apparent-size --block<span class="o">=</span><span class="m"><span class="hljs-number">1</span></span> <span class="s2"><span class="hljs-string">"</span></span><span class="nv"><span class="hljs-string"><span class="hljs-variable">$1</span></span></span><span class="s2"><span class="hljs-string">"</span></span> <span class="p">|</span> sed <span class="s1"><span class="hljs-string">'s/^\([0-9]*\).*/\1/'</span></span><span class="k">)</span>
<span class="nv">extractposition</span><span class="o">=</span><span class="k">$(</span>expr <span class="nv"><span class="hljs-variable">$filesize</span></span> - <span class="nv"><span class="hljs-variable">$offset</span></span><span class="k">)</span>
<span class="nb"><span class="hljs-built_in">echo</span></span> offset: <span class="nv"><span class="hljs-variable">$offset</span></span>
<span class="nb"><span class="hljs-built_in">echo</span></span> filesize: <span class="nv"><span class="hljs-variable">$filesize</span></span>
<span class="nb"><span class="hljs-built_in">echo</span></span> <span class="nv">extractposition</span><span class="o">=</span><span class="nv"><span class="hljs-variable">$extractposition</span></span>
dd <span class="k"><span class="hljs-keyword">if</span></span><span class="o">=</span><span class="s2"><span class="hljs-string">"</span></span><span class="nv"><span class="hljs-string"><span class="hljs-variable">$1</span></span></span><span class="s2"><span class="hljs-string">"</span></span> <span class="nv">skip</span><span class="o">=</span><span class="m"><span class="hljs-number">1</span></span> <span class="nv">bs</span><span class="o">=</span><span class="nv"><span class="hljs-variable">$extractposition</span></span> <span class="nv">of</span><span class="o">=</span><span class="s2"><span class="hljs-string">"</span></span><span class="k"><span class="hljs-string"><span class="hljs-variable">$(</span></span></span><span class="hljs-string"><span class="hljs-variable">basename -s .jpg </span></span><span class="nv"><span class="hljs-string"><span class="hljs-variable">$1</span></span></span><span class="k"><span class="hljs-string"><span class="hljs-variable">)</span></span></span><span class="s2"><span class="hljs-string">.mp4"</span></span>
</code></pre></div><p>The newer format is recorded in filenames called ”PXL_[datetime].MP.jpg”, and they have a _lot_ of additional metadata:</p>
<pre><code class="hljs ruby"><span class="hljs-constant">Xmp</span>.<span class="hljs-constant">GCamera</span>.<span class="hljs-constant">MotionPhoto</span> <span class="hljs-constant">XmpText</span> <span class="hljs-number">1</span> <span class="hljs-number">1</span>
<span class="hljs-constant">Xmp</span>.<span class="hljs-constant">GCamera</span>.<span class="hljs-constant">MotionPhotoVersion</span> <span class="hljs-constant">XmpText</span> <span class="hljs-number">1</span> <span class="hljs-number">1</span>
<span class="hljs-constant">Xmp</span>.<span class="hljs-constant">GCamera</span>.<span class="hljs-constant">MotionPhotoPresentationTimestampUs</span> <span class="hljs-constant">XmpText</span> <span class="hljs-number">6</span> <span class="hljs-number">233320</span>
<span class="hljs-constant">Xmp</span>.xmpNote.<span class="hljs-constant">HasExtendedXMP</span> <span class="hljs-constant">XmpText</span> <span class="hljs-number">32</span> <span class="hljs-constant">E1F7505D2DD64EA6948D2047449F0FFA</span>
<span class="hljs-constant">Xmp</span>.<span class="hljs-constant">Container</span>.<span class="hljs-constant">Directory</span> <span class="hljs-constant">XmpText</span> <span class="hljs-number">0</span> type=<span class="hljs-string">"Seq"</span>
<span class="hljs-constant">Xmp</span>.<span class="hljs-constant">Container</span>.<span class="hljs-constant">Directory</span>[<span class="hljs-number">1</span>] <span class="hljs-constant">XmpText</span> <span class="hljs-number">0</span> type=<span class="hljs-string">"Struct"</span>
<span class="hljs-constant">Xmp</span>.<span class="hljs-constant">Container</span>.<span class="hljs-constant">Directory</span>[<span class="hljs-number">1</span>]/<span class="hljs-constant">Container</span><span class="hljs-symbol">:Item</span> <span class="hljs-constant">XmpText</span> <span class="hljs-number">0</span> type=<span class="hljs-string">"Struct"</span>
<span class="hljs-constant">Xmp</span>.<span class="hljs-constant">Container</span>.<span class="hljs-constant">Directory</span>[<span class="hljs-number">1</span>]/<span class="hljs-constant">Container</span><span class="hljs-symbol">:Item/Item</span><span class="hljs-symbol">:Mime</span> <span class="hljs-constant">XmpText</span> <span class="hljs-number">10</span> image/jpeg
<span class="hljs-constant">Xmp</span>.<span class="hljs-constant">Container</span>.<span class="hljs-constant">Directory</span>[<span class="hljs-number">1</span>]/<span class="hljs-constant">Container</span><span class="hljs-symbol">:Item/Item</span><span class="hljs-symbol">:Semantic</span> <span class="hljs-constant">XmpText</span> <span class="hljs-number">7</span> <span class="hljs-constant">Primary</span>
<span class="hljs-constant">Xmp</span>.<span class="hljs-constant">Container</span>.<span class="hljs-constant">Directory</span>[<span class="hljs-number">1</span>]/<span class="hljs-constant">Container</span><span class="hljs-symbol">:Item/Item</span><span class="hljs-symbol">:Length</span> <span class="hljs-constant">XmpText</span> <span class="hljs-number">1</span> <span class="hljs-number">0</span>
<span class="hljs-constant">Xmp</span>.<span class="hljs-constant">Container</span>.<span class="hljs-constant">Directory</span>[<span class="hljs-number">1</span>]/<span class="hljs-constant">Container</span><span class="hljs-symbol">:Item/Item</span><span class="hljs-symbol">:Padding</span> <span class="hljs-constant">XmpText</span> <span class="hljs-number">1</span> <span class="hljs-number">0</span>
<span class="hljs-constant">Xmp</span>.<span class="hljs-constant">Container</span>.<span class="hljs-constant">Directory</span>[<span class="hljs-number">2</span>] <span class="hljs-constant">XmpText</span> <span class="hljs-number">0</span> type=<span class="hljs-string">"Struct"</span>
<span class="hljs-constant">Xmp</span>.<span class="hljs-constant">Container</span>.<span class="hljs-constant">Directory</span>[<span class="hljs-number">2</span>]/<span class="hljs-constant">Container</span><span class="hljs-symbol">:Item</span> <span class="hljs-constant">XmpText</span> <span class="hljs-number">0</span> type=<span class="hljs-string">"Struct"</span>
<span class="hljs-constant">Xmp</span>.<span class="hljs-constant">Container</span>.<span class="hljs-constant">Directory</span>[<span class="hljs-number">2</span>]/<span class="hljs-constant">Container</span><span class="hljs-symbol">:Item/Item</span><span class="hljs-symbol">:Mime</span> <span class="hljs-constant">XmpText</span> <span class="hljs-number">9</span> video/mp4
<span class="hljs-constant">Xmp</span>.<span class="hljs-constant">Container</span>.<span class="hljs-constant">Directory</span>[<span class="hljs-number">2</span>]/<span class="hljs-constant">Container</span><span class="hljs-symbol">:Item/Item</span><span class="hljs-symbol">:Semantic</span> <span class="hljs-constant">XmpText</span> <span class="hljs-number">11</span> <span class="hljs-constant">MotionPhoto</span>
<span class="hljs-constant">Xmp</span>.<span class="hljs-constant">Container</span>.<span class="hljs-constant">Directory</span>[<span class="hljs-number">2</span>]/<span class="hljs-constant">Container</span><span class="hljs-symbol">:Item/Item</span><span class="hljs-symbol">:Length</span> <span class="hljs-constant">XmpText</span> <span class="hljs-number">7</span> <span class="hljs-number">1679555</span>
<span class="hljs-constant">Xmp</span>.<span class="hljs-constant">Container</span>.<span class="hljs-constant">Directory</span>[<span class="hljs-number">2</span>]/<span class="hljs-constant">Container</span><span class="hljs-symbol">:Item/Item</span><span class="hljs-symbol">:Padding</span> <span class="hljs-constant">XmpText</span> <span class="hljs-number">1</span> <span class="hljs-number">0</span>
</code></pre><p>Sounds like fun and lots of information. However I
didn’t see why the “length” in first item is 0 and I didn’t see how to
use the latter Length info. But I can use the mp4 headers to extract it:</p>
<div class="highlight"><pre class="chroma"><code class="language-bash hljs" data-lang="bash"><span class="cp"><span class="hljs-shebang">#!/bin/bash</span>
</span><span class="c1"><span class="hljs-comment">#</span></span>
<span class="c1"><span class="hljs-comment"># Extracts the motion part of a MotionPhoto file PXL_*.MP.mp4</span></span>
<span class="nv">extractposition</span><span class="o">=</span><span class="k">$(</span>grep --binary --byte-offset --only-matching --text \<br />-P <span class="s2"><span class="hljs-string">"\x00\x00\x00\x18\x66\x74\x79\x70\x6d\x70\x34\x32"</span></span> <span class="nv"><span class="hljs-variable">$1</span></span> <span class="p">|</span> sed <span class="s1"><span class="hljs-string">'s/^\([0-9]*\).*/\1/'</span></span><span class="k">)</span>
dd <span class="k"><span class="hljs-keyword">if</span></span><span class="o">=</span><span class="s2"><span class="hljs-string">"</span></span><span class="nv"><span class="hljs-string"><span class="hljs-variable">$1</span></span></span><span class="s2"><span class="hljs-string">"</span></span> <span class="nv">skip</span><span class="o">=</span><span class="m"><span class="hljs-number">1</span></span> <span class="nv">bs</span><span class="o">=</span><span class="nv"><span class="hljs-variable">$extractposition</span></span> <span class="nv">of</span><span class="o">=</span><span class="s2"><span class="hljs-string">"</span></span><span class="k"><span class="hljs-string"><span class="hljs-variable">$(</span></span></span><span class="hljs-string"><span class="hljs-variable">basename -s .jpg </span></span><span class="nv"><span class="hljs-string"><span class="hljs-variable">$1</span></span></span><span class="k"><span class="hljs-string"><span class="hljs-variable">)</span></span></span><span class="s2"><span class="hljs-string">.mp4"</span></span>
</code></pre></div><p><b>UPDATE: I wrote most of this blog post
earlier. When now actually getting to publishing it a week later, I see
the obvious ie the ”Length” is again simply the offset from the end of
the file so one could do the same less brute force approach as for
MVIMG. I’ll leave the above as is however for the ❤️ of binary grepping.</b></p><p><b>UPDATE 08/2021: Here's the script to extract also MP without brute force:</b></p><p><code class="language-bash hljs" data-lang="bash"><span class="cp"><span class="hljs-shebang">#!/bin/bash</span></span></code><code class="language-bash hljs" data-lang="bash"><br />#<br /># Extracts the motion part of a MotionPhoto file PXL_*.MP.mp4<br /><br />set -e<br /># Brute force<br />#extractposition=$(grep --binary --byte-offset --only-matching --text -P "\x00\x00\x00\x18\x66\x74\x79\x70\x6d\x70\x34\x32" $1 | sed 's/^\([0-9]*\).*/\1/')<br /><br /># Metadata<br />offset=$(exiv2 -p x "$1" | grep Length | tail -n 1 | rev | cut -d ' ' -f 1 | rev)<br />echo offset: ${offset}<br />re='^[0-9]+$'<br />if ! [[ $offset =~ $re ]] ; then<br /> echo "offset not found"<br /> exit 1<br />fi<br />filesize=$(du --apparent-size --block=1 "$1" | sed 's/^\([0-9]*\).*/\1/')<br /><br />echo filesize: $filesize<br />extractposition=$(expr $filesize - $offset)<br />echo extractposition=$extractposition<br /><br />dd if="$1" skip=1 bs=$extractposition of="$(basename -s .jpg $1).mp4"<br /></code></p><p><span style="font-size: xx-small;">(cross-posted to my <a href="https://timojyrinki.gitlab.io/hugo/post/2021-03-30-pixel-motionphoto-microvideo-file-formats/">other blog</a>)</span><b><br /></b></p>
</article>TJhttp://www.blogger.com/profile/17762291681744356830noreply@blogger.com0tag:blogger.com,1999:blog-31939153.post-8905215435109829142018-08-28T10:46:00.000+03:002018-08-28T11:02:47.969+03:00Repeated prompts for SSH key passphrase after upgrading to Ubuntu 18.04 LTS?This was a tricky one (for me, anyway) so posting a note to help others.<br />
<br />
The problem was that after upgrading to Ubuntu 18.04 LTS from 16.04 LTS, I had trouble with my SSH agent. I was always being asked for the passphrase again and again, even if I had just used the key. This wouldn't have been a showstopper otherwise, but it made using virt-manager over SSH impossible because it was asking for the passphrase tens of times.<br />
<br />
I didn't find anything on the web, and I didn't find any legacy software or obsolete configs to remove to fix the problem. I only got a hint when I tried <span style="font-family: "courier new" , "courier" , monospace;">ssh-add -l</span>, with which I got the error message ”<i>error fetching identities: Invalid key length</i>”. This lead me on the right track, since after a while I started suspecting my old keys in .ssh that I hadn't used for years. And right on: after I removed one id_dsa (!) key and one old RSA key from .ssh directory (with GNOME's Keyring app to be exact), <span style="font-family: "courier new" , "courier" , monospace;">ssh-add -l</span> started working and at the same time the familiar SSH agent behavior resumed and I was able to use my remote VMs fine too!<br />
<br />
Hope this helps.<br />
<br />
<b>ps. While at the topic, remember to upgrade your private keys' internal format to the new OpenSSH format from the ”worse than plaintext” format with the <span style="font-family: "courier new" , "courier" , monospace;">-o</span> option: <a href="https://latacora.singles/2018/08/03/the-default-openssh.html">blog post</a> – tl; dr; <span style="font-family: "courier new" , "courier" , monospace;">ssh-keygen -p -o -f id_rsa</span> and retype your passphrase. </b>TJhttp://www.blogger.com/profile/17762291681744356830noreply@blogger.com1tag:blogger.com,1999:blog-31939153.post-78022553759989028212018-05-07T14:08:00.003+03:002018-05-07T14:08:39.877+03:00Converting an existing installation to LUKS using luksipc - 2018 notesTime for a laptop upgrade. Encryption was still not the default for the new Dell XPS 13 Developer Edition (9370) that shipped with Ubuntu 16.04 LTS, so I followed <a href="http://losca.blogspot.fi/2015/11/converting-existing-installation-to.html">my own notes</a> from 3 years ago together with the <a href="https://www.johannes-bauer.com/linux/luksipc/">official documentation</a> to convert the unencrypted OEM Ubuntu installation to LUKS during the weekend. This only took under 1h altogether.<br />
<br />
On this new laptop model, EFI boot was already in use, Secure Boot was enabled and the SSD had GPT from the beginning. The only thing I wanted to change thus was the / to be encrypted.<br />
<br />
Some notes for 2018 to clarify what is needed and what is not needed:<br />
<ul>
<li>Before luksipc, remember to resize existing partitions to have 10 MB of free space at the end of the / partition, and also create a new partition of eg 1 GB size partition for /boot.</li>
<li>To get the code and compile luksipc on Ubuntu 16.04.4 LTS live USB, just <span style="font-family: "Courier New", Courier, monospace;">apt install git build-essential</span> is needed. cryptsetup package is already installed.</li>
<li>After luksipc finishes and you've added your own passphrase and removed the initial key (slot 0), it's useful to <span style="font-family: "Courier New", Courier, monospace;">cryptsetup luksOpen</span> it and mount it still under the live session - however, when using ext4, the mounting fails due to a size mismatch in ext4 metadata! This is simple to correct: <span style="font-family: "Courier New", Courier, monospace;">sudo resize2fs /dev/mapper/root</span>. Nothing else is needed.</li>
<li>I mounted both the newly encrypted volume (to /mnt) and the new /boot volume (to /mnt2 which I created), and moved /boot/* from the former to latter.</li>
<li>I edited /etc/fstab of the encrypted volume to add the /boot partition</li>
<li>Mounted as following in /mnt:</li>
<ul>
<li><span style="font-family: "Courier New", Courier, monospace;">mount -o bind /dev dev</span></li>
<li><span style="font-family: "Courier New", Courier, monospace;">mount -o bind /sys sys</span></li>
<li><span style="font-family: "Courier New", Courier, monospace;">mount -t proc proc proc</span></li>
</ul>
<li>Then:</li>
<ul>
<li><span style="font-family: "Courier New", Courier, monospace;">chroot /mnt</span></li>
<li><span style="font-family: "Courier New", Courier, monospace;">mount -a</span> # (to mount /boot and /boot/efi)</li>
<li>Edited files /etc/crypttab (added one line: root UUID none luks) and /etc/grub/default (I copied over my overkill configuration that specifies all of cryptopts and cryptdevice some of which may be obsolete, but at least one of them and root=/dev/mapper/root is probably needed). </li>
<li>Ran <span style="font-family: "Courier New", Courier, monospace;">grub-install ; update-grub ; mkinitramfs -k all -c</span> (notably no other parameters were needed)<span style="font-family: "Courier New", Courier, monospace;"><span style="font-family: inherit;"></span><br /></span></li>
<li>Rebooted.</li>
</ul>
<li>What I did not need to do:</li>
<ul>
<li>Modify anything in /etc/initramfs-tools.</li>
</ul>
</ul>
If the passphrase input shows on your next boot, but your correct passphrase isn't accepted, it's likely that the initramfs wasn't properly updated yet. I first forgot to run the mkinitramfs command and faced this.<br />
TJhttp://www.blogger.com/profile/17762291681744356830noreply@blogger.com0tag:blogger.com,1999:blog-31939153.post-77110984695843866562015-11-20T16:14:00.000+02:002015-11-20T16:14:17.621+02:00Converting an existing installation to LUKS using luksipcThis is a burst of notes that I wrote in an e-mail in June when asked about it, and I'm not going to have any better steps since I don't remember even that amount as back then. I figured it's better to have it out than not.<br />
<br />
So... if you want to use <b><i>LUKS In-Place Conversion Tool</i></b>, the notes below on converting a shipped-with-Ubuntu <i><b>Dell XPS 13 Developer Edition</b> </i>(2015 Intel Broadwell model) may help you. There were a couple of small learnings to be had...<br />
<br />
<span style="font-size: x-small;">The page <a href="http://www.johannes-bauer.com/linux/luksipc/" rel="noreferrer" target="_blank">http://www.johannes-bauer.com/<wbr></wbr>linux/luksipc/</a> itself is good and without errors, although funnily uses reiserfs as an example. It was only a bit unclear why I did save the initial_keyfile.bin since it was then removed in the next step (I guess it's for the case you want
to have a recovery file hidden somewhere in case you forget the passphrase).</span><span style="font-size: x-small;"></span><br />
<span style="font-size: x-small;"><br />
For using the tool I booted from a 14.04.2 LTS USB live image and operated there, including downloading and compiling luksipc in the live session. The exact reason of resizing before luksipc was a bit unclear to me at first so I simply indeed resized the main rootfs partition and left unallocated space in the partition table.</span><br />
<span style="font-size: x-small;"></span><span style="font-size: x-small;"><br />
Then finally I ran ./luksipc -d /dev/sda4 etc.</span>
<span style="font-size: x-small;"></span><br />
<br />
<span style="font-size: x-small;">I realized I want /boot to be on an unencrypted partition to be
able to load the kernel + initrd from grub before entering into LUKS unlocking. I couldn't resize the luks partition anymore since it was encrypted... So I resized what I think was the empty small DIAGS partition (maybe used for some system diagnostic or something, I don't know), or possibly the next one that is the actual recovery partition
one can reinstall the pre-installed Ubuntu from. And naturally I had
some problems because it seems vfatresize tool didn't do what I wanted it to do and gparted simply crashed when I tried to use it first to do the same. Anyway, when done with getting some extra free space somewhere, I used the remaining 350MB for /boot where I copied the
rootfs's /boot contents to.</span>
<br />
<span style="font-size: x-small;"><br />
After adding the passphrase in luks I had everything encrypted etc and decryptable, but obviously I could only access it from a live session by manual cryptsetup luksOpen + mount /dev/mapper/myroot commands. I needed to configure GRUB, and I needed to do it with the
grub-efi-amd64 which was a bit unfamiliar to me. There's also grub-efi-amd64-signed I have installed now but I'm not sure if it was required for the configuration. Secure boot is not enabled by default
in BIOS so maybe it isn't needed.</span>
<span style="font-size: x-small;"></span><br />
<span style="font-size: x-small;"><br />
I did GRUB installation – I think inside rootfs chroot where I also mounted /dev/sda6 as /boot (inside the rootfs chroot), ie mounted dev, sys with <span style="font-family: "Courier New",Courier,monospace;">-o bind</span> to under the chroot (from outside chroot) and mount -t proc proc proc too. I did a lot of trial and effort so I surely also tried from
outside the chroot, in the live session, using some parameters to point to the mounted rootfs's directories...</span>
<br />
<span style="font-size: x-small;"><br />
I needed to definitely install cryptsetup etc inside the encrypted rootfs with apt, and I remember debugging for some time if they went to the initrd correctly after I executed mkinitramfs/update-initramfs inside the chroot.</span>
<span style="font-size: x-small;"></span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;">
At the end I had grub asking for the password correctly at bootup.
Obviously I had edited the rootfs's /etc/fstab to include the new /boot partition, I changed / to be "<span style="font-family: "courier new" , "courier" , monospace;">UUID=/dev/mapper/myroot / ext4 errors=remount-ro 0 </span>", kept /boot/efi as coming
from the /dev/sda1 and so on. I had also added "<span style="font-family: "courier new" , "courier" , monospace;">myroot /dev/sda4 none luks</span>" to /etc/crypttab. I seem to also have <span style="font-family: "courier new" , "courier" , monospace;">GRUB_CMDLINE_LINUX="cryptdevice=/dev/sda4:myroot root=/dev/mapper/myroot"</span> in /etc/default/grub.</span><br />
<div class="a3s" id=":19n">
<span style="font-size: x-small;"><br />
The only thing I did save from the live session was the original partition table if I want to revert.</span><br />
<br />
<span style="font-size: x-small;">So the original was:</span>
<span style="font-size: x-small;"></span><br />
<span style="font-size: x-small;"><br />
<span style="font-family: "Courier New",Courier,monospace;">Found valid GPT with protective MBR; using GPT.<br />
Disk /dev/sda: 500118192 sectors, 238.5 GiB<br />
Logical sector size: 512 bytes<br />
<span style="font-family: inherit;">...</span><br />
First usable sector is 34, last usable sector is 500118158<br />
Partitions will be aligned on 2048-sector boundaries<br />
Total free space is 6765 sectors (3.3 MiB)</span></span><span style="font-family: "Courier New",Courier,monospace;">
</span><span style="font-size: x-small;"> </span><br />
<span style="font-size: x-small;"><span style="font-family: "courier new" , "courier" , monospace;">Number Start (sector) End (sector) Size Code Name</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "courier new" , "courier" , monospace;">1 2048 1026047 500.0 MiB EF00 EFI system partition</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "courier new" , "courier" , monospace;">2 1026048 1107967 40.0 MiB FFFF Basic data partition</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "courier new" , "courier" , monospace;">3 1107968 7399423 3.0 GiB 0700 Basic data partition</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "courier new" , "courier" , monospace;">4 7399424 467013631 219.2 GiB 8300</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "courier new" , "courier" , monospace;">5 467017728 500117503 15.8 GiB 8200</span></span>
<br />
<span style="font-size: x-small;"><br />
And I now have:</span>
<span style="font-size: x-small;"></span><br />
<span style="font-size: x-small;"><br />
<span style="font-family: "courier new" , "courier" , monospace;">Number Start (sector) End (sector) Size Code Name</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "courier new" , "courier" , monospace;">1 2048 1026047 500.0 MiB EF00 EFI system partition</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "courier new" , "courier" , monospace;">2 1026048 1107967 40.0 MiB FFFF Basic data partition</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "courier new" , "courier" , monospace;">3 1832960 7399423 2.7 GiB 0700 Basic data partition</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "courier new" , "courier" , monospace;">4 7399424 467013631 219.2 GiB 8300</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "courier new" , "courier" , monospace;">5 467017728 500117503 15.8 GiB 8200</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "courier new" , "courier" , monospace;">6 1107968 1832959 354.0 MiB 8300</span></span>
<br />
<span style="font-size: x-small;"><br />
So it seems I did not edit DIAGS (and it was also originally just 40MB) but did something with the recovery partition while preserving its contents. It's a FAT partition so maybe I was able to somehow resize it after all.</span>
<span style="font-size: x-small;"></span><br />
<span style="font-size: x-small;"><br />
The 16GB partition is the default swap partition. I did not encrypt it
at least yet, I tend to not run into swap anyway ever in my normal use with the 8GB RAM.</span>
<span style="font-size: x-small;"></span><br />
<span style="font-size: x-small;"><br />
If you go this route, good luck! :D</span></div>
TJhttp://www.blogger.com/profile/17762291681744356830noreply@blogger.com0tag:blogger.com,1999:blog-31939153.post-67460233738736117162015-06-08T14:02:00.000+03:002015-08-04T09:10:12.843+03:00Quick Look: Dell XPS 13 Developer Edition (2015) with Ubuntu 14.04 LTSI recently obtained the newest Dell's Ubuntu developer offering, XPS 13 (2015, model 9343). I opted in for FullHD non-touch display, mostly because of better battery life, the actual no need for higher resolution, and matte screen which is great outside. Touch would have been "nice-to-have", but in my work I don't really need it.<br />
<br />
The other specifications include i7-5600U CPU, 8GB RAM, 256GB SSD <span style="font-size: x-small;">[<b>edit</b>: <a href="http://people.ubuntu.com/~timo-jyrinki/Dell_XPS_13_2015/lshw.txt">lshw</a>]</span>, and of course Ubuntu 14.04 LTS pre-installed as OEM specific installation. It was not possible to directly order it from Dell site, as Finland is reportedly <a href="http://bartongeorge.net/2015/04/09/4th-gen-dell-xps-13-developer-edition-available/#comment-93057">not online market for Dell</a>... The wholesale company however managed to get two models on their lists and so it's now possible to order via <a href="http://wiki.ubuntu-fi.org/Tietokoneet_ja_laitteet">retailers</a>. [<b>edit</b>: here are some country specific direct web order links however <a href="http://www.dell.com/us/business/p/xps-13-linux/pd.aspx">US</a>, <a href="http://www.dell.com/de/unternehmen/p/xps-13-linux/pd">DE</a>, <a href="http://www.dell.com/fr/entreprise/p/xps-13-linux/pd">FR</a>, <a href="http://www.dell.com/se/foretag/p/xps-13-linux/fs">SE</a>, <a href="http://www.dell.com/nl/bedrijven/p/xps-13-linux/pd">NL</a>]<br />
<br />
In this blog post I give a quick look on how I started up using it, and do a few observations on the pre-installed Ubuntu included. I personally was interested in using the pre-installed Ubuntu like a non-Debian/Ubuntu developer would use it, but Dell has also provided instructions for <a href="http://bartongeorge.net/2015/04/09/4th-gen-dell-xps-13-developer-edition-available/">Ubuntu 15.04, Debian 7.0 and Debian 8.0</a> advanced users among else. Even if not using the pre-installed Ubuntu, the benefit from buying an Ubuntu laptop is obviously smaller cost and on the other hand contributing to free software (by paying for the hardware enablement engineering done by or purchased by Dell).<br />
<h4>
Unboxing</h4>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ07b62ocm9RmBxK_KLjKqodLNn1hmEQmb04vVQbaaGRvUjchx0B3kq8CLlVempyYWHdDcCORm58kmUtWxbid8IxVCykFeF3NsUJ2N6gAAKwRtRgMPitwCd8iGOFLTE90jT78K6g/s1600/1.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ07b62ocm9RmBxK_KLjKqodLNn1hmEQmb04vVQbaaGRvUjchx0B3kq8CLlVempyYWHdDcCORm58kmUtWxbid8IxVCykFeF3NsUJ2N6gAAKwRtRgMPitwCd8iGOFLTE90jT78K6g/s320/1.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The Black Box. (and white cat)</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6DoxF8b-e818jLYTlZGwA_dUStnA31JTSmqHc0tSqgqHKPnWLhgTaPYscDfBMvAUD1du9z0bfJaYW1ekixAzwSnzDXFEnanfPtU2KAf8IEDAq4oS_FFywiG1lIUg7TgCAZDlTYQ/s1600/2.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6DoxF8b-e818jLYTlZGwA_dUStnA31JTSmqHc0tSqgqHKPnWLhgTaPYscDfBMvAUD1du9z0bfJaYW1ekixAzwSnzDXFEnanfPtU2KAf8IEDAq4oS_FFywiG1lIUg7TgCAZDlTYQ/s320/2.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Opened box.</td><td class="tr-caption" style="text-align: center;"></td><td class="tr-caption" style="text-align: center;"><br /></td><td class="tr-caption" style="text-align: center;"><br /></td><td class="tr-caption" style="text-align: center;"><br /></td><td class="tr-caption" style="text-align: center;"><br /></td><td class="tr-caption" style="text-align: center;"><br /></td><td class="tr-caption" style="text-align: center;"><br /></td><td class="tr-caption" style="text-align: center;"><span id="goog_1876113221"></span><span id="goog_1876113222"></span><br /></td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXMk4JFTKOVBjPze_sTir-jd5wKREKQ9Zh6AWDVwr3a_UqvJXChykIFlMvhyzGnAmCFsLs2l-KrmL-sB5Y57RisQLVukOOicSQUZUDurPYLFG1dE8nBefr-TQltLKB16D17geEVg/s1600/3.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="256" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXMk4JFTKOVBjPze_sTir-jd5wKREKQ9Zh6AWDVwr3a_UqvJXChykIFlMvhyzGnAmCFsLs2l-KrmL-sB5Y57RisQLVukOOicSQUZUDurPYLFG1dE8nBefr-TQltLKB16D17geEVg/s320/3.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">First time lid opened, no dust here yet!</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggNabzoKkPzkjKUhQz-gB6gzHwmLFkBM-ssYo9Mdoe2_8WCe4eqn3qjMwT_rtC-9Qf3lgWhWeam8tPAGRv1gBONXCW87CpicDa_slf0JwAD4sJ2Pn7cn26T9Ema6w_eM7st6C0jg/s1600/opening.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggNabzoKkPzkjKUhQz-gB6gzHwmLFkBM-ssYo9Mdoe2_8WCe4eqn3qjMwT_rtC-9Qf3lgWhWeam8tPAGRv1gBONXCW87CpicDa_slf0JwAD4sJ2Pn7cn26T9Ema6w_eM7st6C0jg/s320/opening.jpg" width="159" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">First time boot up, transitioning from the boot logo to a first time Ubuntu video.</td><td class="tr-caption" style="text-align: center;"><br /></td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7_ZLKAolfMyq691k4pDkjgTmIC2aRS935vxe_mXTxsHKDaJRjNfD-zS212mdhRFgjET1arfeGUm9Uf7uCZ_jO2F8k-E4lniqcfir8XXdDx9_UAKJPvkA09MBMhr5vJaisjodP2g/s1600/ubuntu+welcome+video+clip.webm" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7_ZLKAolfMyq691k4pDkjgTmIC2aRS935vxe_mXTxsHKDaJRjNfD-zS212mdhRFgjET1arfeGUm9Uf7uCZ_jO2F8k-E4lniqcfir8XXdDx9_UAKJPvkA09MBMhr5vJaisjodP2g/s320/ubuntu+welcome+video+clip.webm" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A small clip from the end of the welcoming video.</td><td class="tr-caption" style="text-align: center;"><br /></td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjB_AUr4b6BVj-mnohIm0xGKo1wvbso4EENIfmt5vD5PHbRQxu8Ii83FkMdBWGsoEHUIMtAP7EE0kxqLVeik6tq4Di3umDCEMiVtoafuBeyFMxepGRESGh60u1fMnL-74TxPXJeQg/s1600/montage.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjB_AUr4b6BVj-mnohIm0xGKo1wvbso4EENIfmt5vD5PHbRQxu8Ii83FkMdBWGsoEHUIMtAP7EE0kxqLVeik6tq4Di3umDCEMiVtoafuBeyFMxepGRESGh60u1fMnL-74TxPXJeQg/s320/montage.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">First time setup. Language, Dell EULA, connecting to WiFi, location, keyboard, user+password.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirfl__gjh8x_nSO3t3_uGl5KprAYOYakFbMokXhcBT1OCJ8EL_CP_gpdH-rNLeZgdhJccii3cAwOAZBvIEy3xeDmUyVienxftoKsNr36qIKAGv5YUpeTc06BAYE6Y92DXDsB3hww/s1600/4.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirfl__gjh8x_nSO3t3_uGl5KprAYOYakFbMokXhcBT1OCJ8EL_CP_gpdH-rNLeZgdhJccii3cAwOAZBvIEy3xeDmUyVienxftoKsNr36qIKAGv5YUpeTc06BAYE6Y92DXDsB3hww/s320/4.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Creating recovery media. I opted not to do this as I had happened to read that it's highly recommended to install upgrades first, including to this tool.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg7DMCquKUr9A0hc2Eky6vxK1QoKCP3G9GLSI1K0Fzg1eSkZFrNliHY_0hAP4MToLPD98M2m0Dt3inLXPWYPkIAwdRy_ZgYDWgOzp_VeMpDSMjKvbdEjgv5UbCsX4hV7_GaTMapA/s1600/5.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg7DMCquKUr9A0hc2Eky6vxK1QoKCP3G9GLSI1K0Fzg1eSkZFrNliHY_0hAP4MToLPD98M2m0Dt3inLXPWYPkIAwdRy_ZgYDWgOzp_VeMpDSMjKvbdEjgv5UbCsX4hV7_GaTMapA/s320/5.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Finalizing setup.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuTI3A9Fpe2LKdEnzAshyi63rMIPiPXHHsEKocATftH6oug7ZsBGCnYZX6J1FfF5Fu9Bk49amg6dpHAIEkVLIIDpJZ6DngpnMLo_l9PkxXa01oHwHhIcWXD9kGeazh0udQXJIb6Q/s1600/6.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuTI3A9Fpe2LKdEnzAshyi63rMIPiPXHHsEKocATftH6oug7ZsBGCnYZX6J1FfF5Fu9Bk49amg6dpHAIEkVLIIDpJZ6DngpnMLo_l9PkxXa01oHwHhIcWXD9kGeazh0udQXJIb6Q/s320/6.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Ready to log in!</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgI4kalh7Bldd0R2KYUNciDov4fIP6ZAlrdX7E7xy3j-xbPoyzNvp3RlydR51ct0u8Xuw7IZssVaEL3tLqWokw8exX9GIb9AGaqRrHOJIrTsW9k7JpIbSGGhbTqDgG3OTxFpVN1sQ/s1600/7.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgI4kalh7Bldd0R2KYUNciDov4fIP6ZAlrdX7E7xy3j-xbPoyzNvp3RlydR51ct0u8Xuw7IZssVaEL3tLqWokw8exX9GIb9AGaqRrHOJIrTsW9k7JpIbSGGhbTqDgG3OTxFpVN1sQ/s320/7.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">It's alive!</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhISic33sDshjKtW0FFXZ5cJD8syRb4lTvtvCSpzXDQtO00B7bkvjAHVe9k_7W_xySmpzWmoPOoAKn4YY8hMZ1wU8i_3f6UCM-RBrH7m5V3wRkQQWJCe0inOfnMthSS7ePrHKdhJw/s1600/8.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhISic33sDshjKtW0FFXZ5cJD8syRb4lTvtvCSpzXDQtO00B7bkvjAHVe9k_7W_xySmpzWmoPOoAKn4YY8hMZ1wU8i_3f6UCM-RBrH7m5V3wRkQQWJCe0inOfnMthSS7ePrHKdhJw/s320/8.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Not so recent 14.04 LTS image... lots of updates.</td></tr>
</tbody></table>
<h4>
Problems in the First Batch</h4>
Unfortunately the first batch of XPS 13:s with Ubuntu are going to ship with some problems. They're easy to fix if you know how to, but it's sad that they're there to begin with in the factory image. There is no knowledge when a fixed batch will start shipping - July maybe?<br />
<br />
First of all, installing software upgrades stops. You need to run the following command via Dash → Terminal once: <span style="font-family: "Courier New",Courier,monospace; font-size: x-small;">sudo apt-get install -f</span> (it suggests upgrading libc-dev-bin, libc6-dbg, libc6-dev and udev). After that you can continue running Software Updater as usual, maybe rebooting in between.<br />
<br />
Secondly, the fixed touchpad driver is included but not enabled by default. You need to enable the only non-enabled ”Additional Driver” as seen in the picture below or <a href="https://www.youtube.com/watch?v=YnKKqz7gI4w">instructed in Youtube</a>.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqJ5q0DV-PSDwgmxdV29CbgC8FfFVk5oQ8FtyN8OwdUF3mABoHCg6xKA7vObwyYG0hp3k0R0KPZ5umTXJ7j9ZKT4uWt8Ljw4yaU1s5J5b2uVW79MOmusO_pGznwe9qJSyvoGjHJA/s1600/meta.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="112" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqJ5q0DV-PSDwgmxdV29CbgC8FfFVk5oQ8FtyN8OwdUF3mABoHCg6xKA7vObwyYG0hp3k0R0KPZ5umTXJ7j9ZKT4uWt8Ljw4yaU1s5J5b2uVW79MOmusO_pGznwe9qJSyvoGjHJA/s200/meta.jpg" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Dialog enabling the touchpad driver.</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWY8iMvBI_tp1-zFXV2c_l-f9JDB03uGn1A0cMAfOcQIXn34JCvit4SqRBk0hKi-LygDvBRsvROQIDHDRfYhyphenhyphenRZpXnjG9fJNE4KHMI5rr43czKshU12dTzMKvDMgHpHByEQK8Bew/s1600/meta-closeup.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWY8iMvBI_tp1-zFXV2c_l-f9JDB03uGn1A0cMAfOcQIXn34JCvit4SqRBk0hKi-LygDvBRsvROQIDHDRfYhyphenhyphenRZpXnjG9fJNE4KHMI5rr43czKshU12dTzMKvDMgHpHByEQK8Bew/s320/meta-closeup.png" width="320" /></a></div>
<br />
<i>Clarification</i>: you can safely ignore the two paragraphs below, they're just for advanced users like me who want to play with upgraded driver stacks.<br />
<br />
Optionally, since I'm interested in the latest graphics drivers especially in case of a brand new hardware like Intel Broadwell, I upgraded my Ubuntu to use the 14.04.2 <a href="https://wiki.ubuntu.com/Kernel/LTSEnablementStack">Hardware Enablement</a> stack (matches 14.10 hardware support): <span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">sudo apt install --install-recommends libgles2-mesa-lts-utopic libglapi-mesa-lts-utopic linux-generic-lts-utopic xserver-xorg-lts-utopic libgl1-mesa-dri-lts-utopic libegl1-mesa-drivers-lts-utopic libgl1-mesa-glx-lts-utopic:i386</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;"> </span></span><br />
Even though it's much better than a normal Ubuntu 14.10 would be since many of the Dell fixes continue to be in use, some functionality might become worse compared to the pre-installed stack. The only thing I have noticed though is the internal microphone not working anymore out-of-the-box, requiring a kernel patch as mentioned in <a href="http://bartongeorge.net/2015/04/09/4th-gen-dell-xps-13-developer-edition-available/">Dell's notes</a>. This is not a surprise since the real eventual upstream support involves switching from HDA to I2S and during 14.10 kernel work that was not nearly done. If you're excited about new drivers, I'd recommend waiting until August when the 15.04 based 14.04.3 stack is available (same package names, but 'vivid' instead of 'utopic'). [<b>edit</b>: I couldn't resist myself when I saw <span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">linux-generic-lts-vivid</span></span> (3.19 kernel) is already in the archives. 14.04.2 + that gives me working microphone again!] [<b>edit</b> 08/2015: full 14.04.3 HWE stack now available, improves graphics performance and features among else, everything seems good: <span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">sudo
apt install --install-recommends linux-generic-lts-vivid
libgles2-mesa-lts-vivid libglapi-mesa-lts-vivid xserver-xorg-lts-vivid
libgl1-mesa-dri-lts-vivid libegl1-mesa-lts-vivid
libgl1-mesa-glx-lts-vivid:i386 libegl1-mesa-lts-vivid
libwayland-egl1-mesa-lts-vivid mesa-vdpau-drivers-lts-vivid
libgl1-mesa-dri-lts-vivid:i386 ]</span></span><h4>
Conclusion</h4>
Dell XPS 13 Developer Edition with Ubuntu 14.04 LTS is an extremely capable laptop + OS combination nearing perfection, but not quite there because of the software problems in the launch pre-install image. The laptop looks great, feels like a quality product should and is very compact for the screen size.<br />
<br />
I've moved over all my work onto it and everything so far is working smoothly in my day-to-day tasks. I'm staying at Ubuntu 14.04 LTS and using my previous <a href="https://www.stgraber.org/2014/01/17/lxc-1-0-unprivileged-containers/">LXC</a> configuration to run the latest Ubuntu and Debian development versions. I've also done some interesting changes already like <a href="http://www.johannes-bauer.com/linux/luksipc/">LUKS In-Place Conversion</a>, converting the pre-installed Ubuntu into whole disk encrypted one (not recommended for the faint hearted, GRUB reconfiguration is a bit of a pain).<br />
<br />
I look happily forward to working a few productive years with this one!<br />
<br />TJhttp://www.blogger.com/profile/17762291681744356830noreply@blogger.com1tag:blogger.com,1999:blog-31939153.post-9903980322815745822014-03-19T09:42:00.000+02:002014-03-19T10:00:22.191+02:00Qt 5.2.1 in Ubuntu<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiILC60Bl0O-M_5sQYFdcfWFxKoW5a8SEZ6T9H__Obn2o8N6HClJHwb1mkbSGWT2nT1Ws57j9LTSVER5qo9Hp3dVEAn9RZow3_OGkfd3-s-hrq05IAMhRuWZKJSuaCFHuSTGqoPQ/s1600/20140319_003.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img alt="Ubuntu running Qt 5.2.1" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiILC60Bl0O-M_5sQYFdcfWFxKoW5a8SEZ6T9H__Obn2o8N6HClJHwb1mkbSGWT2nT1Ws57j9LTSVER5qo9Hp3dVEAn9RZow3_OGkfd3-s-hrq05IAMhRuWZKJSuaCFHuSTGqoPQ/s1600/20140319_003.jpg" height="400" title="Ubuntu running Qt 5.2.1" width="225" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Ubuntu running Qt 5.2.1<br /></b></td></tr>
</tbody></table>
Qt 5.2.1 landed in Ubuntu 14.04 LTS last Friday, hooray! Making it into a drop-in replacement for Qt 5.0.2 was not trivial. Because of the <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=731261">qreal change</a>, it was decided to rebuild everything against the new Qt, so it was an all at once approach involving roughly 130 source packages while the parts were moving constantly. The landing last week meant pushing to archives around three thousand binary packages - counting all six architectures - with the total size of closer to 10 gigabytes.<br />
<br />
The new Qt brings performance and features to base future work on, and is a solid base for the future of Ubuntu. You may be interested in the release notes for Qt <a href="http://blog.qt.digia.com/blog/2013/12/12/qt-5-2-released-the-best-qt-yet/">5.2.0</a> and <a href="http://blog.qt.digia.com/blog/2014/02/05/qt-5-2-1-released/">5.2.1</a>. The Ubuntu SDK got updated to Qt Creator 3.0.1 + new Ubuntu plugin at the same time, although updates for the older Ubuntu releases is a work in progress by the SDK Team.<br />
<br />
<h4>
<b>How We Got Here</b></h4>
Throughout the last few months before the last joint push, I filed tens of <a href="https://bugs.launchpad.net/bugs/+bugs?field.status%3Alist=NEW&field.status%3Alist=OPINION&field.status%3Alist=INVALID&field.status%3Alist=WONTFIX&field.status%3Alist=EXPIRED&field.status%3Alist=CONFIRMED&field.status%3Alist=TRIAGED&field.status%3Alist=INPROGRESS&field.status%3Alist=FIXCOMMITTED&field.status%3Alist=FIXRELEASED&field.status%3Alist=INCOMPLETE_WITH_RESPONSE&field.status%3Alist=INCOMPLETE_WITHOUT_RESPONSE&field.tag=qt5.2">tagged bugs</a>. For most of that time I was interested only in build and unit test results, since even <a href="http://pad.ubuntu.com/ep/pad/view/ro.tmN2UraXYlx469G8ID/latest">tracking those</a> was quite a task. I offered simple fixes here and there myself, if I found out a fix.<br />
<br />
I created automated Launchpad recipe builds for over 80 packages that rely on Qt 5 in Ubuntu. Meanwhile I also kept on updating the Qt packaging for its 20+ source packages and tried to stay on top of Debian's and upstream's changes.<br />
<br />
Parallel to this work, some like the Unity 8 and UI Toolkit developers started experimenting with my Qt 5.2 PPA. It turned out the rewritten QML engine in Qt 5.2 - V4 - was not entirely stable when 5.2.0 was released, so they worked together with upstream on fixes. It was only after 5.2.1 release that it could be said that V4 worked well enough for Unity 8. Known issues like these slowed down the start of full-blown testing.<br />
<br />
Then everything built, unit tests passed, most integration tests passed and things seemed mostly to work. We had automated autopilot integration testing runs. The apps team tested through all of the app store to find out whether some needed fixes - most were fine without changes. On top of the found autopilot test failures and other app issues, manual testing found a few more bugs <br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9YZJSox4PnMMQwWdpKo9bZAk1evc8l4oz82-Zcg6iW72kK7_N4_EAIAwoOLxVT2OH1kL8zScjue4oKHH9OUHp8bd89duaP9rPRCW9rVuwHuQbL-7-98SjTM2-x_j990NlOvIOyA/s1600/20140319_006.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img alt="Sudoku" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9YZJSox4PnMMQwWdpKo9bZAk1evc8l4oz82-Zcg6iW72kK7_N4_EAIAwoOLxVT2OH1kL8zScjue4oKHH9OUHp8bd89duaP9rPRCW9rVuwHuQbL-7-98SjTM2-x_j990NlOvIOyA/s1600/20140319_006.jpg" height="320" title="Sudoku" width="192" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Some critical pieces of software<br />
like Sudoku needed small fixing<br /></b></td></tr>
</tbody></table>
Finally last Thursday it was decided to push Qt in, with a belief that the remaining issues had fixes in branches or not blockers. It turned out the real deployment of Qt revealed a couple of more problems, and some new issues were raised to be blockers, and not all of the believed fixes were really fixing the bugs. So it was not a complete success. Considering the complexity of the landing, it was an adequate accomplishment however.<br />
<br />
<h4>
<b>Specific Issues</b></h4>
Throughout this exercise I bumped into more obstacles that I can remember, but those included:<br />
<ul>
<li>Not all of the packages had seen updates for months or for example since last summer, and since I needed to rebuild everything I found out various problems that were not related to Qt 5.2</li>
<li>Unrelated changes during 14.04 development broke packages - like one wouldn't immediately think a gtkdoc update would break a package using Qt</li>
<li>Syncing packaging with Debian is GOOD, and the fixes from Debian were likewise excellent and needed, but some changes there had effects on our wide-spread Qt 5 usage, like the mkspecs directory move</li>
<li>xvfb used to run unit tests needed parameters updated in most packages because of OpenGL changes in Qt</li>
<li>arm64 and ppc64el were late to be added to the landing PPA. Fixing those archs up was quite a last minute effort and needed to continue after landing by the porters. On the plus side, with Qt 5.2's V4 working on those archs unlike Qt 5.0's V8 based Qt Declarative, a majority of Unity 8 dependencies are now already available for 64-bit ARM and PowerPC!</li>
<li>While Qt was being prepared the 100 other packages kept on changing, and I needed to keep on top of all of it, especially during the final landing phase that lasted for two weeks. During it, there was no total control of "locking" packages into Qt 5.2 transition, so for the 20+ manual uploads I simply needed to keep track of whether something changed in the distribution and accommodate.</li>
</ul>
One issue related to the last one was that some things needed were in progress at the time. There was no support for automated AP test running using a PPA. There was also no support on building images. If migration to Ubuntu Touch <a href="http://summit.ubuntu.com/uds-1403/meeting/22174/core-1403-landing-process-touch/">landing process</a> (<a href="http://wiki.ubuntu.com/citrain">CI Train</a>, a middle point on the way to CI Airlines) had been completed for all the packages earlier, handling the locking would have been clearer, and the "trunk passes all integration tests too" would have prevented "trunk seemingly got broken" situations I ended up since I was using bzr trunks everywhere.<br />
<br />
<h4>
<b>Qt 5.3?</b></h4>
We are near to having a promoted Ubuntu image for the mobile users using Qt 5.2, if no new issues pop up. Ubuntu 14.04 LTS will be released in a month to the joy of desktop and mobile users alike.<br />
<br />
It was discussed during the vUDS that Qt 5.3.x would be likely Qt version for the next cycle, to be on the more conservative side this time. It's not entirely wrong to say we should have migrated to Qt 5.1 in the beginning of this cycle and only consider 5.2. With 5.0 in use with known issues, we almost had to switch to 5.2.<br />
<br />
Kubuntu will join the Qt 5 users next cycle, so it's no longer only Ubuntu deciding the version of Qt. Hopefully there can be a joint agreement, but in the worst case Ubuntu will need a separate Qt version packaged.TJhttp://www.blogger.com/profile/17762291681744356830noreply@blogger.com0tag:blogger.com,1999:blog-31939153.post-26321328539104023412013-11-27T22:10:00.001+02:002013-11-28T09:36:14.260+02:00Jolla launch partyAnd then for something completely different, I've my hands on Jolla now, and it's beautiful!<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdyQsGrLGYskS-y2YTmRxhMmgMjluPJ16C3OOb81ZgI2DZ6Jo0-dsIlCXdcrv-QrC0be28E38vwQzq9LXdIaY5cDI9n5dj-HTWk2w54LCCyxWTyVbpc_Z25GvImxgKMZ1Akt2jZA/s1600/DSC05086.JPG" imageanchor="1"><img border="0" height="267" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdyQsGrLGYskS-y2YTmRxhMmgMjluPJ16C3OOb81ZgI2DZ6Jo0-dsIlCXdcrv-QrC0be28E38vwQzq9LXdIaY5cDI9n5dj-HTWk2w54LCCyxWTyVbpc_Z25GvImxgKMZ1Akt2jZA/s400/DSC05086.JPG" width="400" /></a>
<br />
<br />
A quick dmesg of course is among first things to do...<br />
<blockquote class="tr_bq">
<pre>[ 0.000000] Booting Linux on physical CPU 0
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Linux version 3.4.0.20131115.2 (abuild@es-17-21) (gcc version 4.6.4 20130412 (Mer 4.6.4-1) (Linaro GCC 4.6-2013.05) ) #1 SMP PREEMPT Mon Nov 18 03:00:49 UTC 2013
[ 0.000000] CPU: ARMv7 Processor [511f04d4] revision 4 (ARMv7), cr=10c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
[ 0.000000] Machine: QCT MSM8930 CDP
... <a href="http://people.debian.org/~timo/Jolla/jolla_dmesg">click for the complete file</a> ...</pre>
</blockquote>
And what it has eaten: Qt 5.1!<br />
<blockquote class="tr_bq">
...<br />
<pre>qt5-qtconcurrent-5.1.0+git27-1.9.4.armv7hl
qt5-qtcore-5.1.0+git27-1.9.4.armv7hl
qt5-qtdbus-5.1.0+git27-1.9.4.armv7hl
qt5-qtdeclarative-5.1.0+git24-1.10.2.armv7hl
... <a href="http://people.debian.org/~timo/Jolla/jolla_packages.txt">click for the complete file</a> ...</pre>
</blockquote>
It was a very nice launch party, thanks to everyone involved.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZkWWtoIo2QqFGEl5l7tXi6NKMs9p8bbkRQQ_xfMzg9lWR2g2e13SmZK1OIhP4PqxgmgiwXm8ZVH0LpGWVNZkAORZTN8Lp1ReM-WJ9M5KNFlGScJs_nXYeEEc2QTIm4unWFydh-A/s1600/jolla_launch1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZkWWtoIo2QqFGEl5l7tXi6NKMs9p8bbkRQQ_xfMzg9lWR2g2e13SmZK1OIhP4PqxgmgiwXm8ZVH0LpGWVNZkAORZTN8Lp1ReM-WJ9M5KNFlGScJs_nXYeEEc2QTIm4unWFydh-A/s400/jolla_launch1.JPG" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCl0EHiMJm1jvea5s1WN-vOUGDTaHkPGgTHRg3w6TC_GMGiFp3fzKLB0hHu-pB5iZozeIICLRYOGEAE9e3cre5rgI4OrlKDhRXAbBxKGNjr7r-o9c9VZ1TiqsgQXjshQD_SlUKjA/s1600/jolla_launch2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCl0EHiMJm1jvea5s1WN-vOUGDTaHkPGgTHRg3w6TC_GMGiFp3fzKLB0hHu-pB5iZozeIICLRYOGEAE9e3cre5rgI4OrlKDhRXAbBxKGNjr7r-o9c9VZ1TiqsgQXjshQD_SlUKjA/s400/jolla_launch2.JPG" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjU8y8Sx9IScV0Q5upXW0iziuqTo1Uy4UJQ1XLbUQR657uIY9JaoROqI84MCNlejzDX7vKkazURRuOM_Sh6jSAXtFgDI4wI5Tuk5T71j91IkOgtxtA6Ffs8is2B-l0uE9D9khmcBg/s1600/jolla_launch3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjU8y8Sx9IScV0Q5upXW0iziuqTo1Uy4UJQ1XLbUQR657uIY9JaoROqI84MCNlejzDX7vKkazURRuOM_Sh6jSAXtFgDI4wI5Tuk5T71j91IkOgtxtA6Ffs8is2B-l0uE9D9khmcBg/s400/jolla_launch3.JPG" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgWA58GsXOcB8oRTaHPVFwu9Vxki7qz41oEsraVEAPda1zUJomK0FxVZB2AIYmF1IEZUiMbHs8Q0arYrXDC3wXkAHyHkdRq0nf6dEZOg9r7ZyBZZNGWEpMa7CxHpaFfAytACBe3g/s1600/jolla_launch4.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgWA58GsXOcB8oRTaHPVFwu9Vxki7qz41oEsraVEAPda1zUJomK0FxVZB2AIYmF1IEZUiMbHs8Q0arYrXDC3wXkAHyHkdRq0nf6dEZOg9r7ZyBZZNGWEpMa7CxHpaFfAytACBe3g/s400/jolla_launch4.JPG" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlEAdH2-62NqmARIpTRA4khrXntEOyvRbI77QtLZh-26RrAx8SvPS3FJgomge-Bn9I3MoD9Ya21jrwUycxkP-FPqXfJlmBwQKR9XH7vDGvLCpmObad6udzfrsWv_buxGV8_vW-GA/s1600/jolla_launch5.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlEAdH2-62NqmARIpTRA4khrXntEOyvRbI77QtLZh-26RrAx8SvPS3FJgomge-Bn9I3MoD9Ya21jrwUycxkP-FPqXfJlmBwQKR9XH7vDGvLCpmObad6udzfrsWv_buxGV8_vW-GA/s400/jolla_launch5.JPG" width="400" /></a></div>
<br />
<b>Update</b>: a few more at my Google+ <a href="https://plus.google.com/photos/+TimoJyrinki/albums/5951176122143325409">Jolla launch party gallery</a>TJhttp://www.blogger.com/profile/17762291681744356830noreply@blogger.com0tag:blogger.com,1999:blog-31939153.post-5401481798965731292013-11-27T10:50:00.000+02:002013-11-27T11:58:47.470+02:00Workaround for setting Full RGB when Intel driver's Automatic setting does not work<h4>
<b>Background</b> </h4>
I upgraded from Linux 3.8 to 3.11 among with newer Mesa, X.Org and Intel driver recently and I found a small workaround was needed because of upstream changes.<br />
<br />
The upstream change was the <a href="https://patchwork.kernel.org/patch/1972181/">Add "Automatic" mode for "Broadcast RGB" property</a>, and defaulting to the Automatic. This is a sensible default, since many (most?) TVs default to the more limited 16-235, and continuing to default to Full from the driver side would mean wrong colors on the TV. I've set my screen to support the full 0-255 range available to not cut the amount of available shades of colors down.<br />
<br />
Unfortunately it seems the Automatic setting does not work for my HDMI input, ie blacks become grey since the driver still outputs the more limited range. Maybe there could be something to improve on the driver side, but I'd guess it's more about my 2008 Sony TV actually having a mode that the standard suggests limited range for. I remember the TV did default to limited range, so maybe the EDID data from TV does not change when setting the RGB range to Full.<br />
<br />
I hope the Automatic setting works to offer full range on newer screens and the modes they have, but that's probably up to the manufacturers and standards.<br />
<br />
Below is an illustration of the correct setting on my Haswell CPU. When the Broadcast RGB is left to its default Automatic setting, the above image is displayed. When set to Full, the image below with deeper blacks is seen instead. I used manual settings on my camera so it's the same exposure.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWqYMZ55ebd0k10Ef5SKJX6fjwXLRxAMWU1p_FY64cvnTezfxpFmvipt3o3h5YNJA_apYqMtLjIELVxPeE5sUDsVdEWdhoA1vr8QflP2M3nElDMRVih0cCyFUYOrXgqnq492vo6g/s1600/haswell_rgb_limited_fullrange.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWqYMZ55ebd0k10Ef5SKJX6fjwXLRxAMWU1p_FY64cvnTezfxpFmvipt3o3h5YNJA_apYqMtLjIELVxPeE5sUDsVdEWdhoA1vr8QflP2M3nElDMRVih0cCyFUYOrXgqnq492vo6g/s400/haswell_rgb_limited_fullrange.jpg" width="313" /></a></div>
<br />
<h4>
<b>Workaround</b></h4>
For me the workaround has evolved to the following so far. Create a <span style="font-size: x-small;"><i>/etc/X11/Xsession.d/95fullrgb</i></span> file:<br />
<span style="font-size: x-small;"> </span>
<br />
<blockquote class="tr_bq">
<pre>if [ "$(/usr/bin/xrandr -q --prop | grep 'Broadcast RGB: Full' | wc -l)" = "0" ] ; then
/usr/bin/xrandr --output HDMI3 --set "Broadcast RGB" "Full"
fi
</pre>
</blockquote>
And since I'm using lightdm, adding the following to <i><span style="font-size: x-small;">/etc/lightdm/lightdm.conf</span></i> means the flicker only happens once during bootup:<br />
<br />
<blockquote class="tr_bq">
<pre>display-setup-script=/etc/X11/Xsession.d/95fullrgb
</pre>
</blockquote>
<br />
Important: when using the LightDM setting, enable executable bits (chmod +x) to <span style="font-size: x-small;">/etc/X11/Xsession.d/95fullrgb</span> for it to work. Obviously also check your output, for me it was HDMI3.<br />
<br />
If there is no situation where it'd set back to "Limited 16:235" setting on its own, the display manager script should be enough and having it in /etc/X11/Xsession.d is redundant and slows login time down. I think for me it maybe went from 2 seconds to 3 seconds since executing xrandr query is not cheap.<br />
<h4>
<b>Misc</b></h4>
Note that unrelated to Full range usage, the Limited range at the moment behaves incorrectly on Haswell until the patch in <a href="https://bugs.freedesktop.org/show_bug.cgi?id=71769">bug #71769</a> is accepted. That means, the blacks are grey in Limited mode even if the screen is also set to Limited.<br />
<br />
I'd prefer there would be a kernel parameter for the Broadcast RGB setting, although my Haswell machine does boot so fast I don't get to see too many seconds of wrong colors...TJhttp://www.blogger.com/profile/17762291681744356830noreply@blogger.com0tag:blogger.com,1999:blog-31939153.post-17583592527820679992013-07-10T15:01:00.000+03:002013-07-10T15:01:59.832+03:00Latest Compiz gaming update to the Ubuntu 12.04 LTSA new Compiz window manager performance update reached Ubuntu 12.04 LTS users last week. This completes the earlier [<a href="http://losca.blogspot.fi/2012/11/game-performance-improvement-for-ubuntu.html">1</a>] [<a href="http://losca.blogspot.fi/2012/12/compiz-fullscreen-unredirection-update.html">2</a>] enabling of 'unredirected' (compositing disabled) fullscreen gaming and other applications for performance benefits.<br />
<br />
The update has two fixes. The first one fixes a compiz CPU usage <a href="https://bugs.launchpad.net/compiz/+bug/1095001">regression</a>. The second one enables unredirection <a href="https://bugs.launchpad.net/ubuntu/+source/compiz/+bug/1167321">also for Intel and Nouveau</a> users using the Mesa 9.0.x stack. That means up-to-date installs from 12.04.2 LTS installation media and anyone with original 12.04 LTS installation who has opted in to the 'quantal' package updates of the kernel, X.Org and mesa <sup>*)</sup><br />
<br />
The new default setting for the unredirection blacklist is shown in the image below (CompizConfig Settings Manager -> General -> OpenGL). It now only blacklists the original Mesa 8.0.x series for nouveau and intel, plus the '9.0' (not a point release).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijogPQh3HNY4JayaQe1ezDXgZ5GhbY__zpIKlSBwcCN5_w2B2H0W2tFRCwiVBXYb7-xa7GdIXxmP_E20VhxbDvLgLQrBqFCxi6yq3qWzz-WqKC1NT_UERJEiOL2x3Lfz-I03knag/s1600/ccsm_blacklist_default.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="167" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijogPQh3HNY4JayaQe1ezDXgZ5GhbY__zpIKlSBwcCN5_w2B2H0W2tFRCwiVBXYb7-xa7GdIXxmP_E20VhxbDvLgLQrBqFCxi6yq3qWzz-WqKC1NT_UERJEiOL2x3Lfz-I03knag/s400/ccsm_blacklist_default.png" width="400" /></a></div>
<br />
I did new runs of OpenArena at openbenchmarking.org from a 12.04.2 LTS live USB. For comparison I first had a <a href="http://openbenchmarking.org/result/1307097-UT-COMPIZFSU01">run</a> with the non-updated Mesa 9.0 from February. I then allowed Ubuntu to upgrade the Mesa to the current 9.0.3, and <a href="http://openbenchmarking.org/result/1307091-UT-COMPIZUNR72">ran the test with both the previous version of Compiz and the new one released</a>.<br />
<br />
<span style="font-family: "Courier New", Courier, monospace;"><i>12.04.2 LTS</i> Mesa 9.0 | Mesa 9.0.3 | Mesa 9.0.3</span><br />
<span style="font-family: "Courier New", Courier, monospace;"> old Compiz | old Compiz | new Compiz </span><br />
<b><span style="font-family: "Courier New", Courier, monospace;">OpenArena fps</span></b><span style="font-family: "Courier New", Courier, monospace;"> <span style="color: red;">29.63</span> | <span style="color: red;">31.90</span> | <span style="color: lime;">35.03</span></span><b> </b><br />
<br />
Reading into the results, Mesa 9.0.3 seems to have improved the slowdown in the redirected case. That would include normal desktop usage as well. Meanwhile the unredirected performance remains about 10% higher.<br />
<br />
<pre style="white-space: pre-wrap;">*) Packages linux-generic-lts-quantal xserver-xorg-lts-quantal libgl1-mesa-dri-lts-quantal libegl1-mesa-drivers-lts-quantal. 'raring' stack with Mesa 9.1 and kernel 3.8 will be available around the time of 12.04.3 LTS installation media late August.</pre>
TJhttp://www.blogger.com/profile/17762291681744356830noreply@blogger.com0tag:blogger.com,1999:blog-31939153.post-15956096103299061912013-05-21T15:20:00.003+03:002013-09-02T15:17:33.266+03:00Network from laptop to Android device over USBIf you're running an Android device with GNU userland Linux in a chroot and need a full network access over USB cable (so that you can use your laptop/desktop machine's network connection from the device), here's a quick primer on how it can be set up.<br />
<br />
When doing Openmoko hacking, one always first plugged in the USB cable and forwarded network, or like I did later forwarded network <a href="http://wiki.openmoko.org/wiki/Manually_using_Bluetooth">over Bluetooth</a>. It was mostly because the WiFi was quite unstable with many of the kernels.<br />
<br />
I recently found out myself using a chroot on a Nexus 4 without working WiFi, so instead of my usual WiFi usage I needed network over USB... trivial, of course, except that there's Android on the way and I'm a Android newbie. Thanks to ZDmitry on Freenode, I got the bits for the Android part so I got it working.<br />
<br />
On device, have eg. data/usb.sh with the following contents.<br />
<blockquote class="tr_bq">
<pre>#!/system/xbin/sh
CHROOT="/data/chroot"
ip addr add 192.168.137.2/30 dev usb0
ip link set usb0 up
ip route delete default
ip route add default via 192.168.137.1;
setprop net.dns1 8.8.8.8
echo 'nameserver 8.8.8.8' >> $CHROOT/run/resolvconf/resolv.conf
</pre>
</blockquote>
On the host, execute the following:<br />
<blockquote class="tr_bq">
<pre>adb shell setprop sys.usb.config rndis,adb
adb shell data/usb.sh
sudo ifconfig usb0 192.168.137.1
sudo iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.137.0/24
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
sudo iptables -P FORWARD ACCEPT</pre>
</blockquote>
This works at least with Ubuntu saucy chroot. The main difference in some other distro might be whether the resolv.conf has moved to /run or not. You should be now all set up to browse / apt-get stuff from the device again.<br />
<br />
<b><span style="font-size: x-small;">Update: </span></b><span style="font-size: x-small;">Clarified that this is to forward the desktop/laptop's network connection to the device so that network is accessible from the device over USB.</span><br />
<span style="font-size: x-small;"><b>Update2</b>, 09/2013: It's also possible to get working on the newer flipped images. Remove the "$CHROOT" from nameserver echoing and it should be fine. With small testing it got somehow reset after a while at which point another run of data/usb.sh on the device restored connection.</span> TJhttp://www.blogger.com/profile/17762291681744356830noreply@blogger.com0tag:blogger.com,1999:blog-31939153.post-31390175301335861932013-05-07T10:05:00.000+03:002013-05-07T10:48:54.513+03:00Qt 5 in Debian and Ubuntu, patches upstreaming<h4>
Packages</h4>
I quite like the current status of <span id="goog_799771955"></span>Qt 5<span id="goog_799771956"></span> in <a href="http://packages.qa.debian.org/q/qtbase-opensource-src.html">Debian</a> and <a href="https://code.launchpad.net/~kubuntu-packagers/kubuntu-packaging/qtbase-opensource-src">Ubuntu</a> (the links are to the qtbase packages, there are ca. 15 other modules as well). Despite <a href="https://qt-project.org/">Qt 5</a> being bleeding edge and Ubuntu having had the need to use it before even the first stable release came out in December, the co-operation with Debian has gone well. Debian is now having the first Qt 5 uploads done to experimental and later on to unstable. My work contributed to <a href="http://pkg-kde.alioth.debian.org/">pkg-kde</a> git on the modules has been welcomed, and even though more work has been done there by others, there haven't been drastic changes that would cause too big transition problems on the Ubuntu side. It has of course helped to ask others what they want, like the whole usage of <a href="http://packages.qa.debian.org/q/qtchooser.html">qtchooser</a>. Now with Qt 5.0.2 I've been able to mostly re-sync all newer changes / fixes to my packaging from Debian to Ubuntu and vice versa.<br />
<br />
There will remain some delta, as pkg-kde plans to ask for a complete transition to qtchooser so that all Qt using packages would declare the Qt version either by QT_SELECT environment variable (preferable) or a package dependency (qt5-default or qt4-default). As a temporary change related to that, Debian will have a debhelper modification that defaults QT_SELECT to qt4 for the duration of the transition. Meanwhile, Ubuntu already shipped the 13.04 release with Qt 5, and a shortcut was taken there instead to prevent any Qt 4 package breakage. However, after the transition period in Debian is over, that small delta can again be removed.<br />
<br />
I will also need to continue pushing any useful packaging I do to Debian. I pushed <a href="http://anonscm.debian.org/gitweb/?p=pkg-kde/qt/qtimageformats.git;a=summary">qtimageformats</a> and <a href="http://anonscm.debian.org/gitweb/?p=pkg-kde/qt/qtdoc.git;a=summary">qtdoc</a> last week, but I know I'm still behind with some "possibly interesting" git snapshot modules like <a href="https://code.launchpad.net/~kubuntu-packagers/kubuntu-packaging/qtsensors-opensource-src">qtsensors</a> and <a href="https://code.launchpad.net/~kubuntu-packagers/kubuntu-packaging/qtpim-opensource-src">qtpim</a>.<br />
<br />
<h4>
Patches</h4>
More delta exists in the form of multiple patches related to the recent <a href="https://wiki.ubuntu.com/Touch">Ubuntu Touch</a> efforts. I do not think they are of immediate interest to Debian – let's start packaging Qt 5 apps to Debian first. However, about all of those patches have already been upstreamed to be part of Qt 5.1 or Qt 5.2, or will be later on. Some already were <a href="https://codereview.qt-project.org/#dashboard,1002337">for 5.0.2</a>.<br />
<br />
A couple of months ago Ubuntu did have some patches hanging around with no clear author information. This was a result of the heated preparation for the Ubuntu Touch launches, and the fact that patches flew (too) quickly in place into various PPA:s. I started hunting down the authors, and the situation turned out to be better than I thought. About half of the patches were already upstreamed, and work on properly upstreaming the other ones was swiftly started after my initial contact. Proper <a href="http://dep.debian.net/deps/dep3/">DEP3</a> fields do help understanding the overall situation. There are now 10 Canonical individuals in the upstream group of contributors, and in the last week's sprint it turned out more people will be joining them to upstream their future patches.<br />
<br />
Nowadays about all the requests I get for including patches from developers are stuff that was already upstreamed, like the <a href="https://codereview.qt-project.org/#change,42990">XEmbed support in qtbase</a>. This is how it should be.<br />
<br />
One big patch still being Ubuntu only is the Unity appmenu support. There was a temporary solution for 13.04 that forward-ported the Qt 4 way of doing it. This will be however removed from the first 13.10 ('saucy') upload, as it's not upstreamable (the old way of supporting Unity appmenus was deliberately dropped from Qt 5). A re-implementation via QPA plugin support is <a href="https://bugs.launchpad.net/ubuntu/+source/qtbase-opensource-src/+bug/1157213">on its way</a>, but it may be that the development version users will be without appmenu support for some duration. Another big patch is related to qtwebkit's device pixel ratio, which will need to be fixed. Apart from these two areas of work that need to be followed through, patches situation is quite nice as mentioned.<br />
<h4>
Conclusion</h4>
Free software will do world domination, and I'm happy to be part of it.TJhttp://www.blogger.com/profile/17762291681744356830noreply@blogger.com0tag:blogger.com,1999:blog-31939153.post-80033265129542296452013-05-05T21:49:00.001+03:002013-05-05T21:49:56.568+03:00Whee!! zyCongrats and thanks to everyone, <br />
<h1>
<a href="http://www.debian.org/News/2013/20130504">Debian 7.0 <q>Wheezy</q> released</a></h1>
Updating my trusty <a href="http://www.cyrius.com/debian/orion/qnap/ts-109/">orion5x box</a> as we speak. No better way to spend a (jetlagged) Sunday.TJhttp://www.blogger.com/profile/17762291681744356830noreply@blogger.com0tag:blogger.com,1999:blog-31939153.post-39473948156282247412013-03-08T10:20:00.000+02:002013-03-08T10:20:21.513+02:00Mobile and products from the perspective of DebianI didn't want to spam Debian Planet with largely Ubuntu related post, but in general I think this is very relevant for Debian Mobile, and I close up the post with Debian :) <a href="http://losca.blogspot.fi/2013/03/i-want-products.html">http://losca.blogspot.fi/2013/03/i-want-products.html</a>TJhttp://www.blogger.com/profile/17762291681744356830noreply@blogger.com0tag:blogger.com,1999:blog-31939153.post-16132044778508100862013-03-08T10:17:00.001+02:002013-03-08T10:17:32.810+02:00I want productsI'd like to modify my discussion <a href="http://www.jonobacon.org/2013/03/08/thoughts-on-recent-community-concerns/">comment</a> and earlier thoughts into a short blog post touching only some of the technical concerns voiced, and my opinion to those.<br />
<br />
<i>Claim (my version): Ubuntu/Canonical is going the "Google route" to become another Android, while Android has not benefited the Linux ecosystem in any way, forking everything</i><br />
<br />
<div class="post-message-container" data-role="message-container">
<div class="post-message publisher-anchor-color " data-role="message">
Firstly,
Ubuntu is open to development and community for also mobile and tablet -
Android has none of that, just code drops that get modded. (yes, some people have a problem with CLA like Canonical's or <a href="https://qt-project.org/">Qt</a>'s, I have no problem with those - let's keep that discussion elsewhere). Ubuntu contributes back to Debian and upstream projects like Qt - those upstream projects it's not upstream of itself. There are not too many free software mobile UIs for example. SHR has some E17 apps, Nemo Mobile a handful of Qt apps and so on.<br />
<br />
Secondly, I disagree about Android - even in its current shape and after creating everything from scratch with mobile on mind, Android has done tremendous
things for the free software community, kernel development, mobile device driver and making
things like <a href="http://replicant.us/">Replicant</a> possible. If those aren't directly seen on the desktop side, that's because it's not the desktop and most free software desktop users don't use free software mobile products (usually at most a vendor provided Android).<br />
<br />
I feel people get too attached to
software projects or even the desktop in general. The money to pay desktop has traditionally largely come from the server. As a discussion-heating example Wayland has
been a great promise for 5 years and continues to be, yet no products use it (software products like distributions or hardware+software products). That's not a problem per se for a great and ambitious project, but it means no interested party has taken it to create products. I was very excited about Gallium3D and Wayland in 2008, but somewhat optimistic in believing they would conquer the world in one or two years. In perspective, I've always seen the "version staring" a common habit in enthusiasts me included. I think it extents to "shiny development projects that should be taken into production use immediately".<br />
<br />
The Nokia N9 triumphs all other 2011 mobile phones in general and even the current user interfaces like iOS, Android and Windows Phone in general usability ideas (if only it'd run Cortex-A15 instead of OMAP3..). It uses X.org and Qt 4.7. <a href="http://jolla.com/">Jolla</a>'s plans for their first phone at the end of this year? Qt 4.8, no Wayland. Like N9 which otherwise had unfortunate fate, I hope Jolla will sell millions of free software wielding products to the masses. The biggest problem with X.org is, though, the drivers, generally zero support from vendors so hard to make products. Hooking into Android EGL drivers and building on top of that seems a good compromise at the moment. Note that from product creation point of view it's not the non-shininess of X.org that IMHO is the blocker. Wayland and Mir may help on the driver side.<br />
<br />
<a href="https://twitter.com/timojyrinki/status/308886309831847936">I want products</a>!<br />
<br />
I'd love to see
more push to have actual products on the market,
since otherwise we don't get free software to the masses. If <a href="https://wiki.ubuntu.com/MirSpec">Mir</a> helps Ubuntu to
do that in one year, fine (I don't know how it's going to be). Yes Mir is a new shiny project, but it's a very product/target oriented project one. If Android would be
open as a project, it wouldn't hurt - other than feelings attached to the other projects especially by the core developers and fans of those - if it was the superior alternative from product creation perspective
making all of <a href="http://x.org/" rel="nofollow">X.org</a>, upstart,
systemd, Wayland, Pulseaudio, D-Bus, glibc less interesting to product creators while even more
interest would go to Android. It's not so now, Android is not an open project in any sense, even though still beneficial for free software. Ubuntu
will keep using a lot more of the traditional stack anyway than Android
(which also just got rid of BlueZ), but I have zero problem of changing
any of the components if it's visioned to be required to get finished,
ready to use products out. IMHO the key is to get products out, and I hope all the parties
manage to do that.<br />
<br />
Of the traditional GNU/Linux desktop distributions only Ubuntu seems to
be adapting for the mobile in large steps at the moment. The other distributions in the mobile
playing field are: (Android/)Replicant, <a href="http://www.merproject.org/">Mer</a>/<a href="https://sailfishos.org/">Sailfish</a>, <a href="http://www.mozilla.org/en-US/firefox/partners/#os">Firefox OS</a>, <a href="https://www.tizen.org/">Tizen</a>,
added with OpenEmbedded based distributions like <a href="http://shr-project.org/">SHR</a>. Have you used those on a daily basis on your devices? I believe you should. I think KDE will
bring with its <a href="http://plasma-active.org/">Plasma Active</a> - currently focusing on building on top of
Mer - mobile power to the traditional GNU/Linux distributions, but
otherwise it's all up to the new players - and Ubuntu.<br />
<br />
Like many know, <a href="http://wiki.openmoko.org/wiki/User:TimoJyrinki">I used Debian exclusively on my primary phone</a> for ca. two years before switching mostly to N9. During all that time, I already pondered why people and distributions are so focused on x86 and desktop. And the reason is that that's what their history is, and I stared at the wrong place - desktop distributions. I dismissed Android and some of the small newcomers in the mobile distro playing field, but it seems that big changes are needed to not need completely new players. I think Ubuntu is on the completely right track to both benefit from the history and adapt for the future. I still hope more developers to <a href="http://wiki.debian.org/Mobile/">Debian Mobile</a>, though!! Debian should be the universal operating system after all.<br />
<br />
<span style="font-size: x-small;">Disclaimer: I'm a<span style="font-size: x-small;">n </span>Ubuntu community person from 2004, Debian Developer since 2008 and <span style="font-size: x-small;">a contractor for Canonical <span style="font-size: x-small;">for ca. 1 year. My opinions haven't changed during the 1 year, but I've learned a lot more of how free software is loved at Canonical despite critics.</span></span></span></div>
</div>
TJhttp://www.blogger.com/profile/17762291681744356830noreply@blogger.com5tag:blogger.com,1999:blog-31939153.post-58077366607711386962012-12-19T14:44:00.000+02:002013-01-15T17:29:37.965+02:00Compiz fullscreen unredirection - update<b>Update January 2013: Both Ubuntu 12.04 LTS and Ubuntu 12.10 now have this new feature enabled by default!</b><br />
<br />
Here's an update to my <a href="http://losca.blogspot.fi/2012/11/game-performance-improvement-for-ubuntu.html">previous entry</a>. In summary, the <a href="https://launchpad.net/compiz">Compiz</a> update for Ubuntu 12.10 is now in the quantal-proposed updates, and enables unredirection by default for fullscreen applications like games. Happy gaming holidays! A new Compiz update 0.9.7.12 enabling unredirection by default for Ubuntu 12.04 LTS users is in the <a href="https://launchpad.net/~unity-team/+archive/sru">SRU PPA</a>.<br />
<br />
Several changes have happened since the last update, addressing some potential issues uncovered by the people testing the updates (thanks to all!). Daniel has again done all the hard work with regards to actual development.<br />
<br />
Changes affecting both 12.10 & 12.04 LTS:<br />
<ul>
<li>Some drivers do not offer tear-free Xv output without a compositor (or glXSwapBuffers in general). Therefore there is a new option available, for which the default setting enables redirection exception in case of some common video players (eg. Adobe Flash plugin and Totem). The option is Composite -> Undirect Match (unredirect_match) available in the CompizConfig Settings Manager (ccsm). The most notable driver is intel on Intel SB/IVB. Those newer chips don't support the XvPreferOverlay xorg.conf option that would bring tear-free non-composited Xv video on earlier Intels.</li>
<li>The default setting for unredirect_match should be fine for existing users. But if you want to enable unredirection also for the common/default video players and risk tearing on some drivers and some applications, change the unredirect_match option to be just '(any)'. This might help with video playback on older/slower integrated graphics which are only barely powerful enough to play HD videos.</li>
</ul>
12.04 LTS only:<br />
<ul>
<li>0.9.7.10 will not be uploaded to precise, it was just used for early testing. 0.9.7.12 currently tested in the SRU PPA enables unredirection by default also on the 12.04 LTS release.</li>
<li>Intel and nouveau mesa drivers are now blacklisted from unredirection on Mesa 8.0 because of so far unresolved driver problems. The blacklist is however configurable in OpenGL -> unredirect_driver_blacklist. The default blacklist regexp is '(nouveau|Intel).*Mesa 8.0'. This does not affect other drivers or Mesa 9.0, so those intel and nouveau users that install 12.04.2 LTS after the end of January or opt-in into the 'LTS-Q' hardware enablement stack for existing installations around the same time will not be blacklisted anymore. <span style="font-size: x-small;"><b>Update January 2013: on 12.04 LTS (only), as a last minute change, also Mesa 9.0 in combination with Intel or Nouveau is blacklisted by default at least until LTS-Q stack is properly testable. You can modify the unredirect_driver_blacklist in CCSM -<span style="font-size: x-small;">> OpenGL.</span> It was found out that at least mesa 9.0 _only_ from x-updates is not enough - Intel has graphics display problems. It is probabl<span style="font-size: x-small;">e</span> that the problems go away with the full 12.04.2 stack (kernel, X.org, libdrm, mesa) at which point the Intel/nouveau blacklisting can be removed.</b></span> </li>
<div>
</div>
<li>The original unredirect_fullscreen_windows option is actually forced on now, because of potential gconf setting migration problems. Disabling unredirection can be done via the unredirect_match option above, by simply blanking the string in there, including removing the '(any)' part - everything will be redirected in that case.</li>
</ul>
TJhttp://www.blogger.com/profile/17762291681744356830noreply@blogger.com0tag:blogger.com,1999:blog-31939153.post-47693590132779291252012-11-28T17:20:00.000+02:002012-11-28T17:23:03.987+02:00Game performance improvement for Ubuntu available for testing<a href="http://unity.ubuntu.com/">Unity</a>, which uses <a href="https://launchpad.net/compiz/">Compiz</a> and <a href="https://launchpad.net/nux/">Nux</a> for drawing, recently had a regression with full screen gaming speeds (LP: <a href="https://bugs.launchpad.net/compiz/+bug/1024304">#1024304</a>). While the performance of Compiz itself was improved significantly in Ubuntu 12.10, the big changes like full OpenGL ES support brought in some regressions at least from benchmarking point of view. Unity/Compiz has had a small performance impact also in Ubuntu 12.04 LTS depending on what it's being compared to. Any compositing method will necessarily bring some performance hit, but there's another option...<br />
<br />
Many people know already about enabling the setting "Unredirect Fullscreen Windows" in Compiz's Composite plugin, but having to enable it manually meant that most people didn't get to use it. The feature detects when an application is running full screen, and simply takes compositing out of the equation, improving performance. Getting the feature work fluently has required fixes in both Compiz and drivers, which is why it hasn't been enabled by default before (LP: <a href="https://bugs.launchpad.net/compiz/+bug/1063690">#1063690</a>).<br />
<br />
But things are progressing now. The Unity team's SRU PPA now has a test build of the new Compiz 0.9.8.6 for Ubuntu 12.10, which enables this feature by default:<br />
<br />
<a href="https://launchpad.net/~unity-team/+archive/sru"><b id="yui_3_5_1_1_1354104027337_89">ppa:unity-team/sru</b></a><br />
<b id="yui_3_5_1_1_1354104027337_89"></b><b id="yui_3_5_1_1_1354104027337_89"> </b><br />
<b id="yui_3_5_1_1_1354104027337_89"></b>Since <a href="http://www.phoronix.com/">Phoronix</a> is a frequent reporter on Linux gaming performance, I (very) quickly run phoronix-test-suite's Open Arena test on my Sandy Bridge machine with the stock Ubuntu 12.10 (quantal) Compiz and with Compiz upgraded from the PPA: <a href="http://openbenchmarking.org/result/1211288-SU-TEST1785301">18% increase in fps</a>! (test1_1 has older compiz, test1_2 the newer, no settings touched)<br />
<br />
The idea is to get the new Compiz into quantal-proposed after the previous snapshot release <a href="https://launchpad.net/ubuntu/+source/compiz/1:0.9.8.4+bzr3412-0ubuntu0.1">1:0.9.8.4+bzr3412-0ubuntu0.1</a> gets its bug fixes properly verified via the Stable Release Updates process. Note that also this previous snapshot contains all the needed fixes for unredirecting fullscreen windows, the final tagged 0.9.8.6 version just switches the default to be enabled.<br />
<br />
For Ubuntu 12.04 LTS (precise) there will be two steps. First of all, <a href="https://launchpad.net/~vanvugt">Daniel van Vugt</a> has just backported the required Compiz fixes to the <a href="https://launchpad.net/compiz-core">0.9.7 branch of Compiz</a> that the 12.04 LTS uses and tagged the <a href="https://launchpad.net/compiz-core/+milestone/0.9.7.10">0.9.7.10 release</a>. Also in the case of precise, there is an <a href="https://launchpad.net/ubuntu/+source/compiz/1:0.9.7.8+bzr3121-0ubuntu1">earlier snapshot</a> release in the SRU system, but that one does not yet include the needed backports even though it includes many other fixes. The 0.9.7.10 will be available in the same SRU PPA soon. Secondly, once the fixes are in but the feature is not yet enabled by default, the X.org driver team will need to look at additional fixes for the drivers before enabling the Unredirect Fullscreen Windows by default. But after that, Ubuntu 12.04 LTS should also see a Compiz release with this feature turned on by default.TJhttp://www.blogger.com/profile/17762291681744356830noreply@blogger.com11tag:blogger.com,1999:blog-31939153.post-69053869915871085942012-10-28T18:09:00.000+02:002012-10-28T18:10:05.487+02:00UDS GTA04 HackingI'm sitting at the Bella Sky lobby bar while <a href="http://summit.ubuntu.com/uds-r/">UDS</a> people keep pouring in. I guess I have to start this UDS with some hacking (and a little beer)! I bootstrapped an Ubuntu armhf rootfs and coupled it with <a href="http://qtmoko.sourceforge.net/">QtMoko's</a> kernel already earlier after <a href="http://losca.blogspot.fi/2012/10/openphoenux-gta04.html">I received my GTA04</a> but it didn't boot right away so I had nothing to report. I wanted armhf so I chose QtMoko's 'experimental' Debian armhf rootfs + boot files as the reference to look at while working on the Ubuntu rootfs. I now went through again some of the configuration files, and voilà:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgL5oQtrh1zCuuyIdhOUPzKntAnxQqF0WXIXviJ1Rj8lI7490zeUB7tRRQ6wz8JveDbZcdzT1lyvSobgOsZWo86RgNG-K1bMJ_6BjRPwPFZ4SbkMyfYkYsQwxdtugw_p62grOS7jA/s1600/Ubuntu_GTA04-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="206" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgL5oQtrh1zCuuyIdhOUPzKntAnxQqF0WXIXviJ1Rj8lI7490zeUB7tRRQ6wz8JveDbZcdzT1lyvSobgOsZWo86RgNG-K1bMJ_6BjRPwPFZ4SbkMyfYkYsQwxdtugw_p62grOS7jA/s320/Ubuntu_GTA04-1.jpg" width="320" /></a></div>
<br />
Now running <i>apt-get install unity</i> over SSH :) It will require OpenGL ES 2.0 hw acceleration to run, now that the support was integrated in Ubuntu 12.10. I will therefore need to tinker what kind of OMAP3 armhf binary blobs there are available, and what's again the situation with X.org DDX driver as well. I always feel that the fun starts at this point for me, when I've the device booting and I can SSH in. That's why I'm happy the work from <a href="http://goldelico.com/">Golden Delicious GmbH</a> and QtMoko helped me to get here...TJhttp://www.blogger.com/profile/17762291681744356830noreply@blogger.com1tag:blogger.com,1999:blog-31939153.post-30761772342143292902012-10-13T14:36:00.000+03:002012-10-13T16:03:49.510+03:00OpenPhoenux GTA04Postman was on a kind mood yesterday. My <a href="http://projects.goldelico.com/p/openphoenux/">OpenPhoenux</a> <a href="http://projects.goldelico.com/p/gta04-main/">GTA04</a> arrived! I had my newer <a href="http://wiki.openmoko.org/wiki/User:TimoJyrinki">Neo FreeRunner</a> upgraded via the service from <a href="http://goldelico.com/">Golden Delicious</a>.<br />
<br />
First, something rare to behold in phones nowadays - Made in Bavaria:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihO-XyBhW7Oy1xn0G0LYoZByusgBBZpo6-IP07j1TWU3BeIHe5UPUg2DWbpHMWhUkJdKdhDQukb9vk-r9k_agBoN6dEacb7yx3TG781UPCrZ0prYO2hf5IvIz884TmipOsKFhahg/s1600/GTA04_1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="425" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihO-XyBhW7Oy1xn0G0LYoZByusgBBZpo6-IP07j1TWU3BeIHe5UPUg2DWbpHMWhUkJdKdhDQukb9vk-r9k_agBoN6dEacb7yx3TG781UPCrZ0prYO2hf5IvIz884TmipOsKFhahg/s640/GTA04_1.jpg" width="640" /></a></div>
<br />
<br />
<br />
<br />
<br />
As a sidenote, also rare now - my Nokia <a href="http://en.wikipedia.org/wiki/Nokia_N9">N9</a> is one of the last phones that had this:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnvBu4WEDrNybiFNRUG3nz_yKGrf-EjwQlmsGeuYZrWtRQqKt6P_Kk9ya117dmXhkca99AB6MAYi9HOENpblt7WipLkf1dzbcp7MdKKg5P8Mc2b7Ms6smR4bmt5x-Nokclb35Qgg/s1600/N9_madeinFinland.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="97" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnvBu4WEDrNybiFNRUG3nz_yKGrf-EjwQlmsGeuYZrWtRQqKt6P_Kk9ya117dmXhkca99AB6MAYi9HOENpblt7WipLkf1dzbcp7MdKKg5P8Mc2b7Ms6smR4bmt5x-Nokclb35Qgg/s200/N9_madeinFinland.jpg" width="200" /></a></div>
It's sad that's now a thing of the past for both hardware assembly and software! But that's just a hint for new <a href="https://twitter.com/JollaMobile">companies</a> to step in.<br />
<br />
But back to GTA04 - a quick boot to the pre-installed <a href="http://wiki.debian.org/Mobile/">Debian</a> w/ LXDE:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVHZvaOI1spwZEUntkJ-rhV8KPZKTFWGhgJUqWY91pPeBvLtJ4vTL1r4BKbgJCvKZ0D882vrbFiBgk-Y52iuRqL50YQMgKqCgpy3_up8pdw7TvXtjrQGwpIsKe7KC3h41MCliWHg/s1600/GTA04_2_poweron.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVHZvaOI1spwZEUntkJ-rhV8KPZKTFWGhgJUqWY91pPeBvLtJ4vTL1r4BKbgJCvKZ0D882vrbFiBgk-Y52iuRqL50YQMgKqCgpy3_up8pdw7TvXtjrQGwpIsKe7KC3h41MCliWHg/s400/GTA04_2_poweron.jpg" width="266" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3N-YMdR1WtNz4tM4CnjRZylcLAeXUDOinsp5OVfG01HMLx5rnPNFAbqms7aYY2hyssrdKMR-X8t2ZgcHEhhN7lTbT9G2s-OdKNAwwyPOwSCfsR-f-vyURuoP-warxGltcbIj-og/s1600/GTA04_3_Debian_LXDE.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3N-YMdR1WtNz4tM4CnjRZylcLAeXUDOinsp5OVfG01HMLx5rnPNFAbqms7aYY2hyssrdKMR-X8t2ZgcHEhhN7lTbT9G2s-OdKNAwwyPOwSCfsR-f-vyURuoP-warxGltcbIj-og/s400/GTA04_3_Debian_LXDE.jpg" width="266" /></a></div>
<br />
<br />
<br />
<br />
And then as a shortcut unpacked and booted into <a href="http://qtmoko.sourceforge.net/">QtMoko</a> (well, it's also Debian) instead to test that phone functionality also works - and it does:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ2yCn_qj438y7DE6bkz87PzPfITmMRgCunUEHuaQLzHCYUK3sZBmoKetl6CRCuA4kBOFXWNYtHSSM31jENsSOu_PfbG3EBjin_xh_kAHApfdl08uFLXic0CCz_H_Ra6bLoVOgAg/s1600/GTA04_4_QtMoko1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ2yCn_qj438y7DE6bkz87PzPfITmMRgCunUEHuaQLzHCYUK3sZBmoKetl6CRCuA4kBOFXWNYtHSSM31jENsSOu_PfbG3EBjin_xh_kAHApfdl08uFLXic0CCz_H_Ra6bLoVOgAg/s400/GTA04_4_QtMoko1.jpg" width="266" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGG4YWSl1NT8yZzYG2HDXN3xVdzCExa2HGUWRjZWTkmJdMt-9jpWPuFdaKAp72UOpLLz3bIp0etjtqaoRCfsFOrsjqrc8pMvY87gOvyPtVYeFhc1QipswmBt9_AMsPjHhpcY8zyw/s1600/GTA04_5_QtMoko2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGG4YWSl1NT8yZzYG2HDXN3xVdzCExa2HGUWRjZWTkmJdMt-9jpWPuFdaKAp72UOpLLz3bIp0etjtqaoRCfsFOrsjqrc8pMvY87gOvyPtVYeFhc1QipswmBt9_AMsPjHhpcY8zyw/s400/GTA04_5_QtMoko2.jpg" width="266" /></a></div>
<br />
Next up: brewing something of my own!<br />
<br />TJhttp://www.blogger.com/profile/17762291681744356830noreply@blogger.com4tag:blogger.com,1999:blog-31939153.post-24253120388155738222012-10-06T12:34:00.000+03:002012-10-06T22:58:17.610+03:00Light-weight security, Grub2 password setup problems 1.99 vs 2.00I believe I'm not the only one who thinks that use case oriented Grub2 documentation is hard to find, and a lot of the documentation is obsolete or wrong. My main cause for writing this blog post is a currently unanswered question regarding 2.00, but meanwhile it seems months have passed and still most 1.99 documentation is wrong as well, which might be interesting to some.<br />
<br />
The aim is to prevent grub entries from being edited, while not restricting actual booting. This protection is meant for computers not having any confidential stuff, but just wanting to do some light weight security with the assumption that the computer isn't physically opened.<br />
<br />
<b>Common setup</b><br />
<br />
You will obviously want to disable any automatically generated root access giving entries, by for example uncommenting<b> GRUB_DISABLE_RECOVERY="true"</b> in <i>/etc/default/grub</i> on Debian or Ubuntu. Also you would disable allowing any external boot devices to be used in BIOS/EFI/coreboot, which you would also have protected with a password. And that often means you need to also disable USB legacy support, since some BIOSes tend to offer all USB devices as bootable without password otherwise (note that I guess that could also cause problems accessing setup on desktop computers if your only keyboard is USB).<br />
<br />
<b>1.99</b><br />
<br />
So to first fix the false instructions in <a href="http://ubuntuforums.org/showthread.php?t=1369019">various</a> <a href="https://wiki.archlinux.org/index.php/GRUB2#Security">places</a> - no, setting the superuser in 00_header as instructed is not enough. It might be, but does not apply if eg. old kernels are put into submenu (Ubuntu <a href="https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/718670">bug 718670</a>, Fedora <a href="https://bugzilla.redhat.com/show_bug.cgi?id=836259">bug 836259</a>). The protection from editing does not apply there. And if you remove all but one kernel so that there is no submenu, a submenu will be automatically created when there is a new kernel installed via security updates. I didn't need the submenu feature anyway, so I used to comment out the following lines in <i>/etc/grub.d/10_linux</i>:<br />
<br />
<blockquote class="tr_bq">
<span style="font-family: "Courier New",Courier,monospace;"> #if [ "$list" ] && ! $in_submenu; then<br /> #echo "submenu \"Previous Linux versions\" {"<br /> #in_submenu=:<br /> #fi</span></blockquote>
...<br />
<blockquote class="tr_bq">
<span style="font-family: "Courier New",Courier,monospace;">#if $in_submenu; then<br /># echo "}"<br />#fi</span></blockquote>
<br />
I hope that was useful. I can imagine it causing a couple of family battles if the commonly instructed setup was the only protection used and there's for example a case of two computer savvy siblings that are eager to get to each others' computers...<br />
<br />
<b>2.00 & The Question</b><br />
<br />
The problem with 2.00 is that the superusers setup yields <a href="https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1050851">a non-bootable system</a>, ie. password is required for booting. But Google wasn't smiling at me today! Terrible. Can you help me (and others) with 2.00? The aim would be to have a 1.99-like setup where superuser password protects all entries from editing, but booting is fine without any passwords.<br />
<br />
<b>Update:</b> Thanks, problem solved, see comments! Find the following line in /etc/grub.d/10_linux:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;"> echo "menuentry '$(echo "$os" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/"</span><br />
<br />
And add <span style="font-family: Courier New, Courier, monospace;">--unrestricted</span> there. Don't mix the line with the another menuentry line two lines earlier. The submenu problem doesn't exist anymore in 2.00.<br />
<br />TJhttp://www.blogger.com/profile/17762291681744356830noreply@blogger.com2tag:blogger.com,1999:blog-31939153.post-8092958953185991902012-07-01T02:37:00.000+03:002012-07-01T13:01:43.797+03:00Where computing takes you...Do you ever have those afternoons you get a ”great” idea and you've all the evening time for that task. The task is a relaxing one and won't need much attention, and you can watch a movie or something. But then, it happens that the evening turns into night as you realize a couple of little details adding complexity to the idea, and the task turns out to be much more invasive to your evening than you thought?<br />
<br />
In this example, I got the great idea to upgrade my <a href="http://www.cyrius.com/debian/orion/qnap/ts-109/">Debian running NAS device</a> (thanks Martin for everything!) to use ext4 instead of ext3. The kind of idea that takes a long time for relatively little practical benefit, but it just feels like a nice thing do when you've the extra amounts of nerd time available. It's basically just opening the NAS device up, mounting its hard disk to a laptop via external case, running the <a href="http://kernelnewbies.org/Ext4/#head-3891522e0601162aab24c73c1f148a1e28c6a9d4">tune2fs and fsck</a> then putting the disk back. It just takes a long time for the initial fsck (to make sure everything's intact) and then the required fsck run to get ext4 mountable.<br />
<br />
Only in this situation, it would have been beneficial to have the ext4 support in the <i>flashed</i> initramfs <b><i>before</i></b> the migration. So... before the photo below, I've already:<br />
<ol>
<li>done the ext4 migration and fsck:s </li>
<li>screwed the disk back to the NAS case, attached cables and found that it doesn't boot</li>
<li>(on the laptop with the hard disk attached again tried manually unpacking initramfs and adding ext4 module... also had time to bind mount everything and chroot into the ARM system to run update-initramfs manually... also tried booting with those... until remembered the simple fact that the /boot partition is only for show and also the initramfs is loaded directly from flash)</li>
<li>copied the main root filesystem content from the original disk to another external disk with ext3 partition</li>
<li>attached the another disk (with same UUID:s) to the QNAP NAS device, booted, double-checked that I have now ext4 specified under /etc/initramfs-tools/modules, reconfigured the linux image that also regenerates initramfs and flashes it</li>
</ol>
And in the photo, what's happening is that:<br />
<ol>
<li>I've again the original disk reattached and system booted with the initramfs generated and flashed from the ext3 disk</li>
<li>the NAS device is hanging in the air, cover open, from the closet where I've things stuffed in (normally secured with cable ties), and I need to support it with a knee or one hand since the 2TB disk is much heavier than the small SSD I used as the ext3 disk so the power cable and RJ-45 cable would have pretty heavy load</li>
<li>Since I've only one hand in use and can't use a laptop, I'm logging in via my Nokia N9 and then reflashing the kernel + initramfs from this original disk, just to make sure everything is now alright and also after that flashing it still boots (it does!). Note that I feel like the setup is secure enough for non-interrupted flashing so that I can indeed support the NAS with a knee, use one hand to keep N9 and another hand to take a photo with a camera.</li>
</ol>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghLxL5mXaBPvHF-UcPMebdeQnib-G9rO1GeB3OIK6NEj_z-MfcJS0T_ka_-dps_55afJPf5DBaUnZ73kwZdQxuGOhGD4-R-vwBrZ3VdGIQ3ysiwnPTwsjO8Rv_CLiPtluVHEpjWg/s1600/debian_flashing_via_phone.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghLxL5mXaBPvHF-UcPMebdeQnib-G9rO1GeB3OIK6NEj_z-MfcJS0T_ka_-dps_55afJPf5DBaUnZ73kwZdQxuGOhGD4-R-vwBrZ3VdGIQ3ysiwnPTwsjO8Rv_CLiPtluVHEpjWg/s400/debian_flashing_via_phone.jpg" width="400" /></a></div>
<br />
And so we have had a productive and educating afternoon/evening/night once again. Does this ever happen to you?TJhttp://www.blogger.com/profile/17762291681744356830noreply@blogger.com0tag:blogger.com,1999:blog-31939153.post-84726257582048643722012-05-16T12:58:00.000+03:002012-05-16T12:58:33.927+03:00Tampere Ubuntu 12.04 LTS release party in picturesA couple of photos from the <a href="http://coss.fi/tapahtumat/ubuntufest2012/">Ubuntu release fest in Tampere</a> yesterday.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1YMG0jcPe1rh6jlNw3RaI_-8z7jJ83L2pCdvsELZNJbjiph2XTW-oDVCDq4puDMvddc2eup21A55DLtNqGpjeP-BH6-WWW_YXOyvdZcKJhxAwxCBswzFfx_1514IzAdQXesEhdQ/s1600/IMG_4812.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1YMG0jcPe1rh6jlNw3RaI_-8z7jJ83L2pCdvsELZNJbjiph2XTW-oDVCDq4puDMvddc2eup21A55DLtNqGpjeP-BH6-WWW_YXOyvdZcKJhxAwxCBswzFfx_1514IzAdQXesEhdQ/s400/IMG_4812.JPG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">People gathering up before presentations</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxVEC2Maji_c_L_oIydy1vYYdeg4JehQmjQAILkitwqMk2p_PKsCmKfVkEGUoXJfIu-TPqyyguGQ3RiaVDeNZOJD61brsMFJTdKaN57f9-XB7Tl-eQ3welTwqPygT486xwHE1GVQ/s1600/IMG_4813.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxVEC2Maji_c_L_oIydy1vYYdeg4JehQmjQAILkitwqMk2p_PKsCmKfVkEGUoXJfIu-TPqyyguGQ3RiaVDeNZOJD61brsMFJTdKaN57f9-XB7Tl-eQ3welTwqPygT486xwHE1GVQ/s400/IMG_4813.JPG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><a href="https://en.wikipedia.org/wiki/Tieto">Tieto</a>'s Markus Mannio</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmhWjXmR7MLZVvClBAcgUykPAxiEJTfmDNZY3_4JWObqHt_1RKXvbJoEOP3Rb3AqBIKl5aQkpsbXJcSQO9x7bUSuE9s8PB7i1q5uTb9TMwvkdHh9XZQMP2ggXfSBig4w8YAYBaoA/s1600/IMG_4819.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmhWjXmR7MLZVvClBAcgUykPAxiEJTfmDNZY3_4JWObqHt_1RKXvbJoEOP3Rb3AqBIKl5aQkpsbXJcSQO9x7bUSuE9s8PB7i1q5uTb9TMwvkdHh9XZQMP2ggXfSBig4w8YAYBaoA/s400/IMG_4819.JPG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Again, continuing on how Ubuntu is used at Tieto</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitky91jcOm3OWm0OMUFg12H0IDjIIas0To-I8KbVnx_3s_HgexCcUquLnta0vyHucMl74OhyQsqXkw6rbgX43UAceGaArngW3eo9s9qG37aeamdDMeSuKiM7sP1qdOOek-6ZxgBg/s1600/IMG_4824.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitky91jcOm3OWm0OMUFg12H0IDjIIas0To-I8KbVnx_3s_HgexCcUquLnta0vyHucMl74OhyQsqXkw6rbgX43UAceGaArngW3eo9s9qG37aeamdDMeSuKiM7sP1qdOOek-6ZxgBg/s400/IMG_4824.JPG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A cut to the end of presentations, <a href="http://trine2.com/">Trine 2</a> game licenses from Frozenbyte being raffled. A great game available on Linux.</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQ15r_92AfKq-BFvudv0-RxjnZgQoHCe0ZTJZv-nK6GTqzs3mRBOAAkbhwvrawaGx-eLz32BQaRPvduLWqllYL1K8Lg2sFVU1_aWfrJ9L_nfG-q2Nuatw_17ki0gJ8SFprqAUuqw/s1600/IMG_4827.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQ15r_92AfKq-BFvudv0-RxjnZgQoHCe0ZTJZv-nK6GTqzs3mRBOAAkbhwvrawaGx-eLz32BQaRPvduLWqllYL1K8Lg2sFVU1_aWfrJ9L_nfG-q2Nuatw_17ki0gJ8SFprqAUuqw/s400/IMG_4827.JPG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Tablets running KDE Plasma, and Ubuntu for Android being demoed.</td></tr>
</tbody></table>
<br />
Someone else probably has photos of my generic Ubuntu 12.04 LTS presentation (what's new, what's next), and likewise for the other presentations (<a href="http://www.ubuntu.com/devices/android">Ubuntu for Android</a>, <a href="http://unity.ubuntu.com/projects/utouch/">uTouch</a>) held. Those will be available as slides and videos later on, although do note the whole event was in the crypto-language called Finnish.<br />
<br />
Thanks to the organizers, sponsors and everyone I met, it was a great event with nice little dinner and wine served at the end!<br />
<br />TJhttp://www.blogger.com/profile/17762291681744356830noreply@blogger.com0tag:blogger.com,1999:blog-31939153.post-9862485667864438262012-05-07T06:41:00.000+03:002012-05-07T19:12:47.190+03:00Ubuzen in the Bay AreaEnough said.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRVdhZG9FhaqQz7vJSYDHNT13QGHJ8D_EN7lfpxIOh5gcd0-ANUUrQo97tbeDCEV4lcZZepHNH2irIMSps7ZZTQTSZvkSx74lkbQkdM9ahxdlW-rQkD22luBehccfE_INjqqu-ig/s1600/ubuzen.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRVdhZG9FhaqQz7vJSYDHNT13QGHJ8D_EN7lfpxIOh5gcd0-ANUUrQo97tbeDCEV4lcZZepHNH2irIMSps7ZZTQTSZvkSx74lkbQkdM9ahxdlW-rQkD22luBehccfE_INjqqu-ig/s400/ubuzen.JPG" width="400" /></a></div>
<br />
You can reach me most probably at the UDS on the Oakland side, and most directly via IRC if you don't see me.<br />
<br />
Edit: Launch!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipKIZg9J8cS84gcNRk11z38OZFfiAKwC3A8kPMJ-5-sdb2ZeoRnvvDgOGk0-1iaV0IW5uc8Scwv9H_9-DZMMrvjbDpePbKrkxg7O2583zBLn-gPubYr9XBx5_wF2z53gAhjzAEDg/s1600/IMG_4649.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipKIZg9J8cS84gcNRk11z38OZFfiAKwC3A8kPMJ-5-sdb2ZeoRnvvDgOGk0-1iaV0IW5uc8Scwv9H_9-DZMMrvjbDpePbKrkxg7O2583zBLn-gPubYr9XBx5_wF2z53gAhjzAEDg/s400/IMG_4649.JPG" width="400" /></a></div>TJhttp://www.blogger.com/profile/17762291681744356830noreply@blogger.com0