Dec 142013
 

Last weekend I purchased a Raspberry Pi model A board (of course the board in the Picture is a model B, just imagine it without the ethernet jack). Even though it doesn’t have ethernet, only has 256mb of memory, and a single USB port. I want it to work headless. My 2-wire router for my home DSL has a USB port available that after testing proved to work fine on the Model A.

1231072_418013378319800_705667144_n

I can stick this on the router and it will sit on the public side of my Cisco ASA 5505, making it a nice addition to my overly complicated home network.

I only had a 4gb Class 10 SDHC card lying around that works well with the Raspberry Pi, so I decided to reduce the weight of Raspbian somewhat to increase the amount of disk space. This is what I have discovered so far.

NOTE: I’m using 2013-07-26-wheezy-raspbian.img. Your mileage will vary.

First I ran raspi-config, set the localization, and then adjusted the memory split to 1 since I will not be using any video.

Since the Model A doesn’t have an ethernet port, whatever you stick on the USB port will get the ‘eth0’ interface. So in /etc/network/interfaces, I have the following to give it a static address:

pi@raspberrypi /etc/network $ cat interfaces
auto lo

iface lo inet loopback
#iface eth0 inet dhcp
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.254

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

I want it to have a static IP address obviously. That’s the only thing I really did with the etc configuration files.

The rest is pulling all the X11 crap out. This includes GNOME, CUPS, etc. Pulling out the ALSA/sound/decoders/wireless/cd packages also helps to reduce the drive usage.

Here is a compiled list of packages I removed with apt-get purge.

ii  lxde                                  4+nmu1                       all          LXDE metapackage
ii  lxde-common                           0.5.5-6                      all          LXDE configuration data
ii  lxde-core                             4+nmu1                       all          LXDE core metapackage
ii  lxde-icon-theme                       0.5.0-1                      all          LXDE standard icon theme
ii  lxinput                               0.3.2-1                      armhf        LXDE keyboard and mouse configuration
ii  lxmenu-data                           0.1.2-2                      all          LXDE freedesktop.org menu specification
ii  lxpanel                               0.5.10-1                     armhf        LXDE panel
ii  lxpolkit                              0.1.0-4                      armhf        LXDE PolicyKit authentication agent
ii  lxrandr                               0.1.2-3                      armhf        LXDE monitor configuration tool
ii  lxsession                             0.4.6.1-4                    armhf        LXDE default session manager
ii  lxsession-edit                        0.2.0-3                      armhf        LXDE application session editor
ii  lxshortcut                            0.1.2-3                      armhf        LXDE application shortcut editor
ii  lxtask                                0.1.4-3+rpi1                 armhf        LXDE task manager
ii  lxterminal                            0.1.11-4                     armhf        LXDE terminal emulator
ii  lxappearance                          0.5.2-1+b1                   armhf        LXDE GTK+ theme switcher
ii  xserver-common                        2:1.12.4-6                   all          common files used by various X servers
ii  xserver-xorg                          1:7.7+3~deb7u1               armhf        X.Org X server
ii  xserver-xorg-core                     2:1.12.4-6                   armhf        Xorg X server - core server
ii  xserver-xorg-input-all                1:7.7+3~deb7u1               armhf        X.Org X server -- input driver metapackage
ii  xserver-xorg-input-evdev              1:2.7.0-1+b2                 armhf        X.Org X server -- evdev input driver
ii  xserver-xorg-input-synaptics          1.6.2-2                      armhf        Synaptics TouchPad driver for X.Org server
ii  xserver-xorg-video-fbdev              1:0.4.2-4+b2                 armhf        X.Org X server -- fbdev display driver
ii  x11-common                            1:7.7+3~deb7u1               all          X Window System (X.Org) infrastructure
ii  x11-utils                             7.7~1                        armhf        X11 utilities
ii  x11-xkb-utils                         7.7~1                        armhf        X11 XKB utilities
ii  x11-xserver-utils                     7.7~3                        armhf        X server utilities
ii  dbus-x11                              1.6.8-1+deb7u1               armhf        simple interprocess messaging system (X11 deps)
ii  libx11-6:armhf                        2:1.5.0-1+deb7u1+wheezy      armhf        X11 client-side library
ii  libx11-data                           2:1.5.0-1+deb7u1+wheezy      all          X11 client-side library
ii  libx11-xcb1:armhf                     2:1.5.0-1+deb7u1+wheezy      armhf        Xlib/XCB interface library
rc  libfontenc1:armhf                     1:1.1.1-1                    armhf        X11 font encoding library
ii  libxau6:armhf                         1:1.0.7-1                    armhf        X11 authorisation library
ii  libxdmcp6:armhf                       1:1.1.1-1                    armhf        X11 Display Manager Control Protocol library
rc  libxfont1                             1:1.4.5-2                    armhf        X11 font rasterisation library
rc  libxkbfile1:armhf                     1:1.0.8-1                    armhf        X11 keyboard file manipulation library
rc  libxpm4:armhf                         1:3.5.10-1                   armhf        X11 pixmap library
rc  libxres1:armhf                        2:1.0.6-1+deb7u1             armhf        X11 Resource extension library
rc  libxv1:armhf                          2:1.0.7-1+deb7u1             armhf        X11 Video extension library
rc  libxxf86dga1:armhf                    2:1.1.3-2+deb7u1             armhf        X11 Direct Graphics Access extension library
rc  libxxf86vm1:armhf                     1:1.1.2-1+deb7u1             armhf        X11 XFree86 video mode extension library
rc  tk8.4                                 8.4.19-5                     armhf        Tk toolkit for Tcl and X11, v8.4 - run-time files
ii  penguinspuzzle                        20120902-1                   armhf        3d puzzle game for Raspberry Pi (web version at penguinspuzzle.appspot.com)
rc  cups-bsd                              1.5.3-5                      armhf        Common UNIX Printing System(tm) - BSD commands
rc  libcups2:armhf                        1.5.3-5                      armhf        Common UNIX Printing System(tm) - Core library
rc  libcupsimage2:armhf                   1.5.3-5                      armhf        Common UNIX Printing System(tm) - Raster image library
rc  libcdio-cdda1                         0.83-4+b1                    armhf        library to read and control digital audio CDs
rc  libcdio-paranoia1                     0.83-4+b1                    armhf        library to read digital audio CDs with error correction
rc  libmad0                               0.15.1b-7                    armhf        MPEG audio decoder library
rc  libsndfile1:armhf                     1.0.25-5                     armhf        Library for reading/writing audio files
rc  gnome-accessibility-themes            3.4.2-2.1                    all          Accessibility themes for the GNOME desktop
rc  libgnome-keyring0:armhf               3.4.1-1                      armhf        GNOME keyring services library
rc  libsoup-gnome2.4-1:armhf              2.38.1-2                     armhf        HTTP library implementation in C -- GNOME support library
rc  libqt4-network:armhf                  4:4.8.2+dfsg-11+rpi1         armhf        Qt 4 network module
rc  libqt4-xml:armhf                      4:4.8.2+dfsg-11+rpi1         armhf        Qt 4 XML module
rc  libqtcore4:armhf                      4:4.8.2+dfsg-11+rpi1         armhf        Qt 4 core module
rc  libqtdbus4:armhf                      4:4.8.2+dfsg-11+rpi1         armhf        Qt 4 D-Bus module library
rc  libmad0                               0.15.1b-7                    armhf        MPEG audio decoder library
rc  libcdio-cdda1                         0.83-4+b1                    armhf        library to read and control digital audio CDs
rc  libcdio-paranoia1                     0.83-4+b1                    armhf        library to read digital audio CDs with error correction
rc  libcdio13                             0.83-4+b1                    armhf        library to read and control CD-ROM
ii  libasound2:armhf                      1.0.25-4                     armhf        shared library for ALSA applications
rc  libmikmod2:armhf                      3.1.12-5                     armhf        Portable sound library
ii  alsa-base                             1.0.25+3~deb7u1              all          ALSA driver configuration files
ii  alsa-utils                            1.0.25-4                     armhf        Utilities for configuring and using ALSA
rc  libjbig2dec0                          0.11+20120125-1              armhf        JBIG2 decoder library - shared libraries
rc  libjavascriptcoregtk-1.0-0            1.8.1-3.4+rpi1               armhf        Javascript engine library for GTK+
rc  libjavascriptcoregtk-3.0-0            1.8.1-3.4+rpi1               armhf        Javascript engine library for GTK+
ii  firmware-atheros                      0.36+wheezy.1                all          Binary firmware for Atheros wireless cards
ii  firmware-brcm80211                    0.36+wheezy.1                all          Binary firmware for Broadcom 802.11 wireless cards
ii  firmware-libertas                     0.36+wheezy.1                all          Binary firmware for Marvell Libertas 8xxx wireless cards
ii  firmware-ralink                       0.36+wheezy.1                all          Binary firmware for Ralink wireless cards
ii  firmware-realtek                      0.36+wheezy.1                all          Binary firmware for Realtek wired and wireless network adapters
ii  wireless-tools                        30~pre9-8                    armhf        Tools for manipulating Linux Wireless Extensions
ii  libiw30:armhf                         30~pre9-8                    armhf        Wireless tools - library
rc  libusbmuxd1                           1.0.7-2                      armhf        USB multiplexor daemon for iPhone and iPod Touch devices - library

After this, I ran apt-get autoremove in order to clean up unused dependencies. So far I have the flash usage down to 940mb. I know I can go lower, but it is a start.

Dec 122013
 

Here’s a helpful tip, see here for more details.

I was working on a script to remove specific Modern packages from Windows 8.1 and I needed a quick way to see what was installed. “get-appxprovisionedpackage -online” yielded the following useless results.

PS C:\windows\system32> get-appxprovisionedpackage -online

DisplayName  : Microsoft.BingFinance 
Version      : 2013.809.632.3676 
Architecture : neutral 
ResourceId   : ~ 
PackageName  : Microsoft.BingFinance_2013.809.632.3676_neutral_~_8wekyb3d8bbwe

DisplayName  : Microsoft.BingFoodAndDrink 
Version      : 2013.820.258.2561 
Architecture : neutral 
ResourceId   : ~ 
PackageName  : Microsoft.BingFoodAndDrink_2013.820.258.2561_neutral_~_8wekyb3d8bbwe

The list is longer, but you get the idea. Anyway it’s completely useless to me. The solution is to use select-object to pick out the PackageName value from the collection of objects. Simple really, just use a pipe along with the “select-object” cmdlet then specify the name of the value you want.:

PS C:\windows\system32> get-appxprovisionedpackage -online | select-object PackageName

PackageName
-----------
Microsoft.BingFinance_2013.809.632.3676_neutral_~_8wekyb3d8bbwe
Microsoft.BingFoodAndDrink_2013.820.258.2561_neutral_~_8wekyb3d8bbwe
Microsoft.BingHealthAndFitness_2013.813.243.3760_neutral_~_8wekyb3d8bbwe
Microsoft.BingMaps_2013.809.2206.5385_neutral_~_8wekyb3d8bbwe
Microsoft.BingNews_2013.809.636.2800_neutral_~_8wekyb3d8bbwe
Microsoft.BingSports_2013.809.637.2803_neutral_~_8wekyb3d8bbwe
Microsoft.BingTravel_2013.809.639.25_neutral_~_8wekyb3d8bbwe

Ahh. Much better. Now I could take that output and figure out which Modern apps to delete. I will probably start with Bing.