
OpenBSD on HP Stream 7 - ingve
http://www.tedunangst.com/flak/post/OpenBSD-on-HP-Stream-7
======
userbinator
_Microsoft released the Anniversary Update to Windows 10, but increased the
free space requirement needed to install the update to exceed what’s possible
on devices with only 32GB_

I often wonder whether we have completely lost any notion of how big storage
devices have become or how much data is required to do something, because 32GB
is still extremely huge to me. _Thirty-two billion_ bytes. It perplexes me
what Windows would need that much space for, and whether most of it is
actually really necessary. I suppose it could be a case of "little things add
up".

The OpenBSD installer is under 300MB, although it doesn't include all that
much: [https://www.openbsd.org/ftp.html](https://www.openbsd.org/ftp.html)

~~~
digi_owl
Best i can tell, at least 3 complete version of Windows hiding behind a single
UI.

And while the capacity is huge in a numerical sense, crazily enough it does
not take much entertainment content to pack it to the brim.

Depending on your taste in compression, you get between 16 and 32 HD movies on
there (ignoring the space needed for the OS).

And i have a "casual" game here on my Android tablet (8GB) that is bordering
on a gig on its own. It quickly adds up...

~~~
glhaynes
_Best i can tell, at least 3 complete version of Windows hiding behind a
single UI._

What do you mean? Having both 32-/64-bit versions of things? Or separate
versions of DLLs for compatibility mode(s)? Something else?

~~~
digi_owl
All of the above.

You have 32-bit compatibility layers going back to Windows 95, including
whatever is needed to render a GUI from that era. And you have 64-bit,
possibly going as far back as Windows XP.

~~~
ZenoArrow
Are you sure? IIRC, from Windows 7 onwards XP compatibility was handled with a
VM, and I'm fairly confident there's little in the way of Win95 support in
Windows 10 (bear in mind Windows 10 is a continuation of the Windows NT line
of operating systems, the Win9x operating systems were not in this lineage).

[http://lifehacker.com/5245396/set-up-and-use-xp-mode-in-
wind...](http://lifehacker.com/5245396/set-up-and-use-xp-mode-in-windows-7)

~~~
asveikau
> IIRC, from Windows 7 onwards XP compatibility was handled with a VM

You have a funny definition of "is handled with". Your link describes manually
installing additional, optional software to get a VM, not a feature of the
Windows OS. I don't think very many people have done this and plenty of XP-era
software "just works" without it.

~~~
ZenoArrow
XP mode exists in Windows 7 and beyond because Microsoft doesn't promise full
compatibility with Windows XP. If some XP software "just works" it's no
guarantee that it will continue to work as Windows changes. Furthermore,
regarding "optional software to get a VM, not a feature of the Windows OS", XP
Mode is a feature of the OS in the sense that the seamless integration with
the apps running in the VM was designed by Microsoft for the purpose of
supporting older software.

[https://www.microsoft.com/en-
gb/download/details.aspx?id=800...](https://www.microsoft.com/en-
gb/download/details.aspx?id=8002)

Out of interest, which XP-era software just works without it? I'm not talking
about software that has been compiled for later Windows versions, I'm talking
about software that hasn't been updated since XP.

~~~
asveikau
> XP mode exists in Windows 7

Simply, it does not. Do a clean install. It's not there. That is why you have
to go to that web page and click that big "download" button.

> Out of interest, which XP-era software just works without it?

Almost everything.

PS: I was on the windows team during development of 7.

~~~
ZenoArrow
> "Simply, it does not. Do a clean install. It's not there. That is why you
> have to go to that web page and click that big "download" button."

The assertion made was that Windows 10 contains multiple versions of Windows
under the hood. If XP was one of these OS then there would be no need for that
'big download button', yet it exists. Why do you think that is?

> "PS: I was on the windows team during development of 7."

Good, then you can clear up what incompatibilities Windows 7 has with older
Windows versions. For example, what level of support is there for Windows 95
software?

~~~
asveikau
I didn't work on app compat, but there are a number of things that come to
mind.

The first line of defense is that over the years and on average Win32 and COM
were not built stupidly, but with an eye towards compatibility. It's a stable
API. The fact that over history there have been 3 independent kernels (9x, NT,
CE) that speak it and you could reasonably have a single code base running on
all 3 does some good in this area. (And 9x/NT were largely binary compatible.)
And hence there are simple things like: don't change function signatures
release to release, don't change COM vtables without introducing a new
interface leaving the old one in place, introduce size and version fields in
structures so that future versions can add to them without breaking old
callers, etc.

But there are also mitigations for incorrect or impolite misuse of Win32 that
might be common in old software.

Example: If a 32-bit application writes to C:\Windows or some such like
programs used to (and a current OS would have locked down by permissions),
Vista and higher will redirect to AppData\Local\VirtualStore in the user's
home directory. [1]

Example: Certain features like DEP and ASLR are opt-in at the binary level. An
old binary will get an executable stack and no ASLR by default because old
code might rely on these.

Example: There is actually a framework of app compat shims for common
historical misuse of Win32 API. [2] When I worked at MS some time ago I used
to read these in the source tree when I was bored or for simple
amusement/curiosity. One of them for a particular 9x game always stuck in my
mind, it had to do with API misuse and differences between 9x kernel32.dll
(typically traps into the kernel right away) and NT kernel32.dll (which
usually calls into ntdll after doing some user mode conversion), but maybe I
won't go into more detail than that here ...

So my point is... You've got a stable API in Win32, you've got fairly
conservative introduction of features that tend to break things, you've even
got a way to selectively change how APIs behave for popular old apps. These
things work pretty well by and large. Why waste a bunch of time and disk space
with VMs?

On your side of the fence there is a VM host built into the Windows kernel
(Hyper-V) and I think RDP can make remote apps (where "remote" could mean
inside a VM guest) look pretty good. That is probably what is happening in "XP
Mode". I don't think it'll necessarily do a better job than just Windows being
Windows, which IMO does pretty well for most old software.

Citations using publicly available sources:

[1] Wikipedia article for UAC -
[https://en.wikipedia.org/wiki/User_Account_Control](https://en.wikipedia.org/wiki/User_Account_Control)
: For example, if an application attempts to write to a directory such as
"C:\Program Files\appname\settings.ini" to which the user does not have write
permission, the write will be redirected to
"C:\Users\username\AppData\Local\VirtualStore\Program
Files\appname\settings.ini".

[2] Random blog post about the app compat shims - just googled this for public
evidence of my claim:
[https://blogs.technet.microsoft.com/askperf/2011/06/17/demys...](https://blogs.technet.microsoft.com/askperf/2011/06/17/demystifying-
shims-or-using-the-app-compat-toolkit-to-make-your-old-stuff-work-with-your-
new-stuff/)

------
brynet
It doesn't look like Ted mentioned it, but the EFI fb driver / efifb(4) should
stay attached if inteldrm is disabled. This will allow X11 to start using the
wsfb X framebuffer driver..

This would probably get you something beyond just a cool device to ssh into,
of course suspend/resume will not work on an EFI console.. so proper support
will need to wait until our inteldrm is updated! :-)

------
chucky_z
Ahhh... I don't know enough about *BSD, I was really craving more details from
this article. "Mind the device name!" (Why?) "USB keyboards don’t work with
the in kernel configurator, but we can save changes using config -ef on
another machine to disable acpibat." (Like, over ssh, onto the usb, how?)

Still cool that OpenBSD runs on one of those little tablets though!

~~~
brynet
config(8) is a utility that has two purposes, the first is to turn a kernel
configuration file (GENRIC/GENRIC.MP) into a build directory for compiling,
second to modify a resulting ELF kernel binary using an interface similar to
the boot time kernel configuration prompt UKC>

For example, when booting OpenBSD you can type boot -c in the bootloader to
enter the UKC> prompt to disable integrated drivers from attaching, i.e:

ukc> disable acpibat

ukc> quit

..continues booting the kernel, but this doesn't work with USB keyboards as
there is no USB stack before the kernel is even loaded, this works better with
PS/2 keyboards and serial consoles.

You can also boot the same USB flash drive on another computer, run the config
utility against an OpenBSD kernel, repeat the same UKC commands, and save a
modified kernel with those changes so that a boot can proceed on the HP Stream
7.

------
jefflinwood
Fascinating - I have an HP Stream 7, and it's just a little too slow as a
Windows tablet to be worth using for casual web browsing or Windows apps. The
form factor is great - it's a little thicker than a Nexus 7 tablet (closer to
a Kindle Fire 7), but the processor, ram, and storage all need some
performance boosts.

Makes me wonder what a real Surface Mini would have been like!

As a side note, it's a shame that the Anniversary Update requires so much
space. With the new emphasis on Chromebook-class Windows computers (the new
netbooks), it's going to be important to keep all of these $99-$299 Windows 10
computers updated.

~~~
nu5500
I have a $99 10" tablet with 32GB, 2GB RAM and Z3735F CPU running Anniversary
Update just fine (surprisingly well I would say)... but the only way that AU
would install was from a 8GB USB stick built with the Windows Media Creation
tool. A clean install of AU left 17GB free of 28.4GB. I don't think this is
anything a general consumer would go through though, so probably most of these
devices will effectively be left on the November update from last year. But, I
wanted to point out that saying the AU update is too large for 32GB devices is
factually incorrect.

~~~
Sanddancer
I'm thinking part of the problem is that you end up with a layer cake of
recovery partitions. HP's then MS's, etc. I ended up deleting and resizing
partitions on mine to get me the extra space needed to get it usable.

------
DanBC
> Of course, there’s no X at this point. And definitely no touch screen. And
> no internal networking. However, by keeping our USB hub attached, we can
> drive the console and access the network. At least until the battery is
> depleted, even if we have no way of knowing how long that will be since we
> disabled all the ACPI devices, which also means no suspend or resume.

> But it’s all worth it to know that we’ve unshackled this device from the
> proprietary operating system it ships with.

It's quite exciting to see the BSD folks working on these minimal notebooks.

One of the longest (the longest?) threads on the Ubuntu forums are people
trying to install Ubuntu on a similar device, the Asus X205ta.

[https://ubuntuforums.org/showthread.php?t=2254322&s=035dc3be...](https://ubuntuforums.org/showthread.php?t=2254322&s=035dc3be3608240196a583a40f92066d)

Here's the Arch wiki:
[https://wiki.debian.org/InstallingDebianOn/Asus/X205TA](https://wiki.debian.org/InstallingDebianOn/Asus/X205TA)

Here are people talking about drivers for sound:
[https://bugzilla.kernel.org/show_bug.cgi?id=95681](https://bugzilla.kernel.org/show_bug.cgi?id=95681)

~~~
brynet
It's even easier for us to boot because OpenBSD doesn't use GRUB. OpenBSD's
EFI loader is a port of the existing second-stage loader, boot(8). It can load
both i386 and amd64 kernels, and there are EFI binaries for 64-bit and 32-bit
firmware on the USB install media.

At this time 32-bit or 'i386' kernels don't support EFI yet, but there aren't
many 32-bit CPUs out there.. more people probably run into the 32-bit EFI
firmware with 64-bit CPU scenario.

I think Ted even wrote about the Asus X205TA on his blog before.

------
yahesop
Somewhat related:
[https://github.com/Manouchehri/vi8/blob/master/Ubuntu_instru...](https://github.com/Manouchehri/vi8/blob/master/Ubuntu_instructions.md)

The devices boast the same specs (Z3735F/Z8300 Intel CPU, 2 GB RAM, 32 GB
eMMC).

------
Annatar
Falls under the cool but impractical category. Of course, if there were an
OpenBSD powered, functional equivalent of an Apple iPad, that would be
awesome.

~~~
brynet
I don't know.. OpenBSD is working pretty great on Chrombooks for instance,
including the touchscreen. It wouldn't be too impractical to run on these
tablet-like computers.

[https://jcs.org/notaweblog/2016/08/26/openbsd_chromebook/](https://jcs.org/notaweblog/2016/08/26/openbsd_chromebook/)

[https://jcs.org/talks/2016/09/07/chibug_openbsd_on_the_chrom...](https://jcs.org/talks/2016/09/07/chibug_openbsd_on_the_chromebook_pixel/)

------
tomduncalf
Off topic but any suggestions for cool things to do with an HP Steam 7? I
bought one when they were on a really cheap sale because I'm too much of a
gadget fiend to pass up a half decent tablet for £50 :) but I've not used it
for anything at all...

~~~
alxmdev
Looks like Ubuntu 16.04 runs fine on it [1], you could turn it into a small
personal server, put GitLab on it, whatever :-) I have a Raspberry Pi 3 with
Ubuntu MATE sitting around and am likewise looking to put it to good use.

[1] [http://h30434.www3.hp.com/t5/Windows/Linux-on-the-HP-
Stream-...](http://h30434.www3.hp.com/t5/Windows/Linux-on-the-HP-Stream-
tablet/td-p/4829188)

~~~
tomduncalf
Nice! I will give this a go for sure. Thanks :)

------
djsumdog
If you click on the commit that talks about Zaurus removal, you'll see the CVS
patch.

I do like the OpenBSD community and they were helpful when I was trying to
install it onto a laptop, but why are they still using CVS? Surely the
headaches of CVS would start to get to you after the decades.

~~~
toyg
Or the opposite: after 15+ years with one tool, you'll master it to a level
that is very hard to give up. All the annoyances by now have workarounds, all
the problems are accounted for, all the monitoring and hardening is in place
(and for openbsd in particular: all the code has been audited and reviewed
several times). Why lose all that in name of some abstract productivity gain
that will likely be offset by years of pain getting up to speed with the new
tool?

~~~
0x0
Would signed commits be a value add over CVS? You'd think the security
conscious OpenBSD ecosystem would value a way to verify the integrity of the
source tree for any given commit or tag or release. I have to admit I'm not an
OpenBSD user so I have no idea if they have something similar for CVS these
days?

