-
bit-babbler (0.6) unstable; urgency=medium
* Update the libvirt Suggests to include libvirt-clients, since libvirt-bin
got split into a bunch of pieces in Jessie (because GNOME, see #679074),
and -clients is where virsh has moved to now.
* Add configure tests for the functions udev_device_get_tags_list_entry and
udev_device_get_sysattr_list_entry which were added in udev 154 and 167
respectively. The RHEL/CentOS 6 release appears to ship with udev 147,
so we can't use them there, and it won't be fully EOL for some time yet.
That's not a big deal, we only use them to output extra device information
when the debug level is cranked up, so we can just omit that code on any
systems where they aren't supported.
* Include xlocale.h explicitly on platforms where we need that for strtod_l.
* Initialise struct addrinfo more portably. There's little point to trying
to be clever with static initialisers while g++ has limited support for
them in C++ code, just do it in a way that will work everywhere.
* Add an explicit guard rather than a platform check around the code to
append a wstring as UTF-8 and disable it by default for all platforms now.
We don't actually need or use that anywhere here right now, and there are
more platforms than MSW where wchar_t is unspecified and/or insane. So
we'll worry about enabling it again if we ever do need it here, since we
do want this to be portable to those still.
* Automatically add -D_REENTRANT for compilers that don't do that themselves
when -pthread is used.
* Preserve the Chi^2 statistic when long term results need to be normalised
to prevent wrap around, and improve the precision on scaling the other
metrics to minimise discontinuities, especially on machines with a 32-bit
size_t where the normalisation is more likely to be needed in practice.
Many thanks to George Tsegas for his extensive testing, and careful and
critical attention to questioning all of the results of that.
* Fix the framing/status check to handle devices plugged into USB 1.0 ports.
Apparently there are still a few of those left in the wild.
-- Ron Lee <email address hidden> Fri, 17 Jun 2016 23:36:55 +0930
-
bit-babbler (0.5) unstable; urgency=medium
* Add more options to optimise for minimal power consumption. The defaults
before now were mostly focussed on keeping a good supply of fresh entropy
being regularly mixed into the kernel pool, and on minimising the risk of
starvation delays when demand is high. But there's an equally important
group of users who not only want good entropy, but also want to minimise
idle power usage as much as possible. So we now have some extra tunables
to better support that too.
The rate at which new entropy is mixed into the kernel pool even when it
has not fallen below its low water mark is now directly configurable, as
is the rate at which we throttle down requesting more entropy from the
hardware when real demand for it falls. Tuning these can minimise how
often we are responsible for waking the CPU on an otherwise idle system.
It is also now possible to configure the devices to be released when we
expect to be idle beyond a given period of time, which will allow them to
be powered down and suspended, and only woken again when we do need more
entropy from them. There are new udev rules which automatically enable
the USB autosuspend feature of the Linux kernel for them when they are
plugged in, which means this will work without needing to manually set
all that up (unless you want to further tweak the parameters there too).
* Don't create the control socket by default when only a limited number of
output --bytes are requested. It can still be enabled explicitly if you
do want it available while they are being read, but that's normally of
fairly limited use, and it's otherwise just annoying to have to remember
to explicitly disable it when extracting a block of entropy in this way,
and confusing to users if it complains they don't have permission to
(re)create it in the default location.
* Defer device initialisation until the pool threads have been started.
Most users won't really notice any difference from that, but when you
have 100 devices in a machine together then even small delays quickly
add up to become a thumb twiddling pause if they are serialised rather
than being run in parallel.
* Better support for pass-through to libvirt managed virtual machines when
there is more than one BitBabbler device in the host.
This is still more painful than it really ought to be, but we now have a
big enough hammer pounding on enough of the rough edges in libvirt support
for things to work like USB devices should be expected to work. They can
be hotplugged dynamically without admin intervention to the guest machines
you want them assigned to, and assigned to guest machines without fragile
hacks based on which USB port they are plugged into.
-- Ron Lee <email address hidden> Wed, 23 Dec 2015 00:38:47 +1030
-
bit-babbler (0.4) unstable; urgency=medium
* Switch to using libusb-1.0 now. It turns out that libusb-0.1 doesn't
actually work on kFreeBSD, it only builds there ... which isn't very
helpful. The kFreeBSD port actually uses FreeBSD's own libusb which also
provides a compatibility API for libusb-1.0 - and we need to jump through
a few small extra hoops to use it, but it has the advantage of actually
working, which is a plus. This also means we immediately get much better
support and lots of bugfixes for non-Debian platforms too, so this should
work everywhere that current releases of libusb do now.
* Drop libftdi. This is partly a consequence of the above, since a version
of it built with libusb-1.0 isn't widely available, and partly a result of
realising we weren't really using anything from it that we couldn't just
do more easily and more directly though libusb ourselves anyway. Our code
ended up being significantly refactored and simplified as a result of this
and it opened the way for a number of additional easy improvements too.
* Drop the --device-num option for selecting devices. Having an arbitrary
enumeration isn't really all that useful in hotplug environments, and the
--device-id option now transparently supports selecting devices by their
serial number, or by either their logical or physical address on the bus,
so the duplication there was only becoming a source of confusion.
* More speed and efficiency tuning. As a result of now having more direct
control over the device we've been able to notably reduce some of the
overheads of streaming data out of it, which means we're now using less
CPU cycles with an increase in throughput for the same device clock rate.
* Make the libudev build dependency conditional on linux-any so the kFreeBSD
buildds will actually want to build it. We can't do much for Hurd until
someone actually ports libusb-1.0 to it.
* Make the use of signals which may not exist on all platforms conditional,
which should enable this to build on MIPS, Sparc, and Alpha too.
-- Ron Lee <email address hidden> Sat, 05 Dec 2015 04:40:11 +1030
-
bit-babbler (0.3) unstable; urgency=medium
* Include a simple example script for reading from the UDP socket.
* Include the documentation for configuring virtual machine pass-through
in the binary package as well.
* Document how to deal with cgroups mandatory access control when using
devices inside libvirt managed virtual machines.
* Initial upload to Debian, Closes: #805979
-- Ron Lee <email address hidden> Tue, 24 Nov 2015 23:15:24 +1030