by Brandon Lucia, Andrew Olmstead, and David Balatero
Released April 2014
Welcome to the most unnecessarily complicated netcat album release format yet.
In this repository, you will be able to compile your own kernel module, create a
/dev/netcat
device and redirect its output into an audio player (tested with mplayer and play from SoX as well).
ogg123 - < /dev/netcat
This repository contains the album's track data in source files, that (for complexity's sake) came from .ogg
files that were
encoded from .wav
files that were created from .mp3
files that were encoded from the mastered
.wav
files which were generated from ProTools final mix .wav
files that were created from
24-track analog tape.
If complexity isn't your thing, you can go to our webpage and follow the links to a digital download or a cassette tape of our album.
We've only tested this on Ubuntu Linux. Sure, it's real easy to grab another operating system ISO and test it out, but after a day toiling in the bitmines, who has the energy?
Other people report:
vmalloc=192M
on a 32-bit i686 Debian machine (3.13-1-686-pae).First, install some dependencies:
sudo apt-get install build-essential vorbis-tools linux-headers-$(uname -r)
Check out the repo:
git clone https://github.com/usrbinnc/netcat-cpi-kernel-module.git
cd netcat-cpi-kernel-module
Next, build the module by running:
make
Building will take a long time. Hang with it. Building also requires several gigabytes of memory. We're not totally sure why, but we think it is because the compiler is making lots of copies of several large, static arrays that contain track data.
After you build, you need to load the module and see if it is working, so you can run:
sudo insmod netcat.ko
dmesg
You should see output like the following from dmesg
:
[ 2606.528153] [netcat]: netcat - Cycles Per Instruction - Kernel Module Edition - 2014
[ 2606.528153] [netcat]: netcat is Brandon Lucia, Andrew Olmstead, and David Balatero
[ 2606.528153] [netcat]: 'ogg123 - < /dev/netcat' to play.
Finally, put on some headphones, and run:
ogg123 - < /dev/netcat
Track information will show up in the output of dmesg
:
[ 612.411529] [netcat]: Now playing track 2 - The Internet is an Apt Motherfucker
If you've read this far, god help us all.
Loading the module may fail due to kernel memory allocation limits:
insmod: ERROR: could not insert module netcat.ko: Cannot allocate memory
also indicated by the errors like the following in dmesg
:
[195207.149213] vmap allocation for size 37806080 failed: use vmalloc=<size> to increase size.
[195207.149216] vmalloc: allocation failure: 37798136 bytes
[195207.149217] insmod: page allocation failure: order:0, mode:0xd2
This can happen especially on 32-bit kernels. The Vmalloc limit can be
increased by passing vmalloc=<size>
to your kernel command-line
(typically 128Mb on 32-bit kernels, increasing it to vmalloc=192M
should be sufficient). Some information how to overcome this problem
can be found in the
MythTV wiki.