ref: 15f77527b6ffc8ec6449c65189493ea220855a87
dir: /changeblog/1608028434.ht/
<article> <header> <h2>9front on Lenovo Thinkpad Twist</h2> <b>Tue, 15 Dec 2020 11:33:54 +0100</b> </header> <p style="margin-top: 0; margin-bottom: 0.50in"></p> <p style="margin-top: 0; margin-bottom: 0.21in"></p> <p style="line-height: 1.4em; margin-left: 1.00in; text-indent: 0.00in; margin-right: 1.00in; margin-top: 0; margin-bottom: 0; text-align: center;"> <span style="font-size: 12pt"><b>9front on Lenovo Thinkpad Twist</b></span></p> <p style="margin-top: 0; margin-bottom: 0.21in"></p> <p style="margin-top: 0; margin-bottom: 0.21in"></p> <p style="margin-top: 0; margin-bottom: 0.42in"></p> <p style="margin-top: 0; margin-bottom: 0.21in"></p> <p style="margin-top: 0; margin-bottom: 0.05in"></p> <p style="margin-top: 0; margin-bottom: 0.50in"></p> <p style="line-height: 1.2em; margin-left: 1.00in; text-indent: 0.00in; margin-right: 1.00in; margin-top: 0; margin-bottom: 0; text-align: justify;"> <span style="font-size: 10pt">A few weeks ago I removed archlinux from my remaining machine. I noticed how the new lenovo keyboards aren’t good and the trackpoint is crap. That’s why I still prefer the Thinkpad T61, even without battery. </span></p><p style="margin-top: 0; margin-bottom: 0.05in"></p> <p style="line-height: 1.2em; margin-left: 1.00in; text-indent: 0.35in; margin-right: 1.00in; margin-top: 0; margin-bottom: 0; text-align: justify;"> <span style="font-size: 10pt">Anyways, I’ll try to describe the process of the installation. The installation itself went according to the FQA, I’ll just add some notes. </span></p><p style="margin-top: 0; margin-bottom: 0.17in"></p> <p style="line-height: 1.2em; margin-left: 1.00in; text-indent: 0.00in; margin-right: 1.00in; margin-top: 0; margin-bottom: 0; text-align: justify;"> <span style="font-size: 10pt"><b>Process </b></span></p><p style="margin-top: 0; margin-bottom: 0.05in"></p> <p style="line-height: 1.2em; margin-left: 1.00in; text-indent: 0.35in; margin-right: 1.00in; margin-top: 0; margin-bottom: 0; text-align: justify;"> <span style="font-size: 10pt">First I had to disable UEFI completely and switch to legacy BIOS. I know 9front can handle UEFI somehow, but I never got it working on any machine. To make 9front work with legacy BIOS I had to change the SSD layout from GPT to MBR. This was possible, just remove all partitions and use the command line to create DOS partitions. Then the SSD was detected as MBR/non-GPT and I could proceed with default installation. </span></p><p style="margin-top: 0; margin-bottom: 0.05in"></p> <p style="line-height: 1.2em; margin-left: 1.00in; text-indent: 0.35in; margin-right: 1.00in; margin-top: 0; margin-bottom: 0; text-align: justify;"> <span style="font-size: 10pt">After installation I needed to get WIFI working. Thanks to 9front developers I was able to use BSD drivers as documented in the FQA. In my case I just grabbed the </span><span style="font-size: 10pt"><tt>iwn-2030</tt></span><span style="font-size: 10pt"> drivers, placed them in </span><span style="font-size: 10pt"><tt>/lib/firmware</tt></span><span style="font-size: 10pt"> and built the kernel from scratch. </span></p><p style="margin-top: 0; margin-bottom: 0.05in"></p> <p style="line-height: 1.2em; margin-left: 1.00in; text-indent: 0.35in; margin-right: 1.00in; margin-top: 0; margin-bottom: 0; text-align: justify;"> <span style="font-size: 10pt">Enabling ACPI in the </span><span style="font-size: 10pt"><tt>plan9.ini</tt></span><span style="font-size: 10pt"> and starting </span><span style="font-size: 10pt"><tt>aux/acpi</tt></span><span style="font-size: 10pt"> went without errors, only </span><span style="font-size: 10pt"><tt>bad opcode</tt></span><span style="font-size: 10pt"> warnings showed up. Still, everything works as expected, so I didn’t investigate further. </span></p><p style="margin-top: 0; margin-bottom: 0.17in"></p> <p style="line-height: 1.2em; margin-left: 1.00in; text-indent: 0.00in; margin-right: 1.00in; margin-top: 0; margin-bottom: 0; text-align: justify;"> <span style="font-size: 10pt"><b>Issues and Troubleshooting </b></span></p><p style="margin-top: 0; margin-bottom: 0.05in"></p> <p style="line-height: 1.2em; margin-left: 1.00in; text-indent: 0.00in; margin-right: 1.00in; margin-top: 0; margin-bottom: 0; text-align: justify;"> <span style="font-size: 10pt">I had exactly </span><span style="font-size: 10pt"><b>two</b></span><span style="font-size: 10pt"> issues. The first is the </span><span style="font-size: 10pt"><tt>bad opcode</tt></span><span style="font-size: 10pt"> as described earlier. </span></p><p style="margin-top: 0; margin-bottom: 0.05in"></p> <p style="line-height: 1.2em; margin-left: 1.00in; text-indent: 0.35in; margin-right: 1.00in; margin-top: 0; margin-bottom: 0; text-align: justify;"> <span style="font-size: 10pt">The second is a big surprise. Backlight controls work out of the box! I know older machines handle this directly without using the operating system, but this was a modern machine. Still it worked with only one tradeoff: </span></p><p style="margin-top: 0; margin-bottom: 0.05in"></p> <p style="line-height: 1.2em; margin-left: 1.00in; text-indent: 0.35in; margin-right: 1.00in; margin-top: 0; margin-bottom: 0; text-align: justify;"> <span style="font-size: 10pt">It always prints </span><span style="font-size: 10pt"><i>lapicerrors</i></span><span style="font-size: 10pt"> on the console. I didn’t find a good way to disable them, so I just added a hidden window in my riostart that just </span><span style="font-size: 10pt"><tt>cat</tt></span><span style="font-size: 10pt">/dev/kprint so the errors don’t fill the screen. </span></p><p style="margin-top: 0; margin-bottom: 0.17in"></p> <p style="line-height: 1.2em; margin-left: 1.00in; text-indent: 0.00in; margin-right: 1.00in; margin-top: 0; margin-bottom: 0; text-align: justify;"> <span style="font-size: 10pt"><b>Bonus: conntosrv </b></span></p><p style="margin-top: 0; margin-bottom: 0.05in"></p> <p style="line-height: 1.2em; margin-left: 1.00in; text-indent: 0.00in; margin-right: 1.00in; margin-top: 0; margin-bottom: 0; text-align: justify;"> <span style="font-size: 10pt">As a bonus I have a small script that saves me lots of installation time. I have a server with my $home directory, including some configuration in my </span><span style="font-size: 10pt"><tt>lib/profile</tt></span><span style="font-size: 10pt">. On my terminals (laptops) I just work in my $home like it was right there on my machine. </span></p><p style="margin-top: 0; margin-bottom: 0.05in"></p> <p style="line-height: 1.2em; margin-left: 1.00in; text-indent: 0.35in; margin-right: 1.00in; margin-top: 0; margin-bottom: 0; text-align: justify;"> <span style="font-size: 10pt">To make this happen I placed the little script in my terminal’s </span><span style="font-size: 10pt"><tt>/cfg/$sysname/conntosrv</tt></span><span style="font-size: 10pt"> and called in the </span><span style="font-size: 10pt"><tt>/cfg/$sysname/termrc</tt></span><span style="font-size: 10pt">. </span></p><p style="margin-top: 0; margin-bottom: 0.05in"></p> <p style="line-height: 1.2em; margin-left: 1.00in; text-indent: 0.35in; margin-right: 1.00in; margin-top: 0; margin-bottom: 0; text-align: justify;"> <span style="font-size: 10pt">The script contains: </span></p><p style="margin-top: 0; margin-bottom: 0.08in"></p> <p style="line-height: 1.1em; margin-left: 1.28in; text-indent: 0.00in; margin-right: 1.00in; margin-top: 0; margin-bottom: 0; text-align: justify;"> <span style="font-size: 9pt"><tt>#!/bin/rc</tt></span></p> <p style="margin-top: 0; margin-bottom: 0.15in"></p> <p style="line-height: 1.1em; margin-left: 1.28in; text-indent: 0.00in; margin-right: 1.00in; margin-top: 0; margin-bottom: 0; text-align: justify;"> <span style="font-size: 9pt"><tt>echo -n ’connect to server: ’</tt></span></p> <p style="line-height: 1.1em; margin-left: 1.28in; text-indent: 0.00in; margin-right: 1.00in; margin-top: 0; margin-bottom: 0; text-align: justify;"> <span style="font-size: 9pt"><tt>server=‘{read}</tt></span></p> <p style="margin-top: 0; margin-bottom: 0.15in"></p> <p style="line-height: 1.1em; margin-left: 1.28in; text-indent: 0.00in; margin-right: 1.00in; margin-top: 0; margin-bottom: 0; text-align: justify;"> <span style="font-size: 9pt"><tt>if(~ $#server 0){</tt></span></p> <p style="line-height: 1.1em; margin-left: 1.28in; text-indent: 0.00in; margin-right: 1.00in; margin-top: 0; margin-bottom: 0; text-align: justify;"> <span style="font-size: 9pt"><tt> echo not connecting to services >[1=2]</tt></span></p> <p style="line-height: 1.1em; margin-left: 1.28in; text-indent: 0.00in; margin-right: 1.00in; margin-top: 0; margin-bottom: 0; text-align: justify;"> <span style="font-size: 9pt"><tt> exit</tt></span></p> <p style="line-height: 1.1em; margin-left: 1.28in; text-indent: 0.00in; margin-right: 1.00in; margin-top: 0; margin-bottom: 0; text-align: justify;"> <span style="font-size: 9pt"><tt>}</tt></span></p> <p style="margin-top: 0; margin-bottom: 0.15in"></p> <p style="line-height: 1.1em; margin-left: 1.28in; text-indent: 0.00in; margin-right: 1.00in; margin-top: 0; margin-bottom: 0; text-align: justify;"> <span style="font-size: 9pt"><tt>if(! test -e /net/dns)</tt></span></p> <p style="line-height: 1.1em; margin-left: 1.28in; text-indent: 0.00in; margin-right: 1.00in; margin-top: 0; margin-bottom: 0; text-align: justify;"> <span style="font-size: 9pt"><tt> ndb/dns -r</tt></span></p> <p style="margin-top: 0; margin-bottom: 0.15in"></p> <p style="line-height: 1.1em; margin-left: 1.28in; text-indent: 0.00in; margin-right: 1.00in; margin-top: 0; margin-bottom: 0; text-align: justify;"> <span style="font-size: 9pt"><tt>auth/factotum</tt></span></p> <p style="line-height: 1.1em; margin-left: 1.28in; text-indent: 0.00in; margin-right: 1.00in; margin-top: 0; margin-bottom: 0; text-align: justify;"> <span style="font-size: 9pt"><tt>for(i in $server){</tt></span></p> <p style="line-height: 1.1em; margin-left: 1.28in; text-indent: 0.00in; margin-right: 1.00in; margin-top: 0; margin-bottom: 0; text-align: justify;"> <span style="font-size: 9pt"><tt> rimport -Cc $i /n/$i</tt></span></p> <p style="line-height: 1.1em; margin-left: 1.28in; text-indent: 0.00in; margin-right: 1.00in; margin-top: 0; margin-bottom: 0; text-align: justify;"> <span style="font-size: 9pt"><tt>}</tt></span></p> <p style="line-height: 1.1em; margin-left: 1.28in; text-indent: 0.00in; margin-right: 1.00in; margin-top: 0; margin-bottom: 0; text-align: justify;"> <span style="font-size: 9pt"><tt>bind -c ’/n/’^$server(1)^’/usr/’^$user /usr/$user</tt></span></p> <p style="margin-top: 0; margin-bottom: 0.17in"></p> <p style="margin-top: 0; margin-bottom: 0.08in"></p> <p style="margin-top: 0; margin-bottom: 0.05in"></p> <p style="line-height: 1.2em; margin-left: 1.00in; text-indent: 0.35in; margin-right: 1.00in; margin-top: 0; margin-bottom: 0; text-align: justify;"> <span style="font-size: 10pt">As you can see, the scrips connects to all servers you input at the prompt. It takes the first to be your $home, all others are imported to </span><span style="font-size: 10pt"><tt>/n</tt></span><span style="font-size: 10pt">. </span></p><p style="margin-top: 0; margin-bottom: 0.50in"></p> </article>