SqueezePlug
From SqueezeboxWiki
SqueezePlug stands for "SqueezeBox-Server on a SheevaPlug!" SheevaPlug is a very small server, perfect for hosting your Squeezebox Server. I did a lot of research to find the optimum system and I'm sure the SheevaPlug is the best compact solution for hosting Squeezebox Server.
Main advantages
- enough performace for your SqueezeBox-Server and all standard plugins
- extremely low power consumption, only 3-5 Watt including 2.5 inch HDD via USB so you can leave it "always on"
- it's cheap, the plug costs less than 100$
- plug and forget system
- very easy to install if you use one of my images and follow this Wiki
- very flexible due to multiple ways of connecting your music library (USB-Drives, NAS, Network-Shares ...)
- very easy to use, maintain und update
- it's absolutely noiseless and has no movings parts, apart from external USB HDDs
- it's very small
- all software used in this project is absolutely free
- the system is open, you can modify it as you like
- ... and a lot more
SqueezePlug --Simple Systems Needs Simple Solutions
This project was formerly called "SqueezeBox-Server for dummies". Please visit my blog: SqueezePlug Blog and you will find everything you need!
- Due to the license status of SqueezeBox Server, sources of SqueezeBox Server are not included in any image of this project, you have to download it by yourself during the configuration process. Doing it with the included script is very easy so don't worry about that!
Preface
You don't have to be a Linux expert: following this guide will provide you with your own SqueezeBox-Server (SBS), with no prior Linux know-how necessary.
- It's very important that you type all commands exactly as described in the Wiki. Please remember that all commands in Linux are case-sensitive.
If you find some faults or improvements, please let me know so that I can change the Wiki, or change it by your self.
Prerequisites
Exept SqueezePlugVM you will need:
- SheevaPlug (I bought mine at NewIT, great company). I recommend the Multi-Boot option.
- U-boot Version 3.4.19 or newer (Version-check described later in this guide)
- SD-Card 4GB or more (SDHC, as fast as possible, class 6 would be fine)
- USB drive, NAS or other file-share for storing the music
- Putty or a similar terminal-program
- Working Internet connection for the SqueezePlug
- optional but recommended: DHCP server from which the SqueezePlug gets its IP-address after starting for the first time
Choose installation method
- This Wiki is constructed in modules. The steps you must follow depend on which installation method you choose and your personal environment
- so be careful to follow the links which match your exact environment.
- There are four installation methods to choose from
- 1. SqueezePlugMain
Preinstalled SqueezePlug including scripts for customization and installation of SBS. If you own a Plug from NewIT (Multi Boot or UBIFS) you don’t have to change anything with the Plug itself. The SqueezePlugMain image comes as a 4GB image, because most of you use such cards, and it has enough space for everything you need. This method is based on the SheevaPlug-Installer method. Choose this version if you want to keep the installation process as easy as possible. This method is the best for people with either very limited, or perhaps no linux know-how.
This method is also very quick, you only need a few steps to run it and don't have to read the complete Wiki.
Next Step for SqueezePlugMain #Prepare the SD-Card
- 2. SqueezePlugBase
This method results in an installation with just Debian Squeeze in an actual version to build your own system, based on this Wiki. The SqueezePlugBase image comes as a 4GB image, because most of you use such cards, and it has enough space for everything you need. This method is based on the method of Martin Michlmayr. Choose this method if you are interested in playing around with the installation. This image can even be used for a standard Debian installation without installing a SqueezeBox-Server and to use it for something else. I chose the Martin Michlmayr method for this because I think it is much easier than messing around with the SheevaPlug-Installer you need for other methods. You can even use this image for the first part of the manual installation of Debian, so you don't have to install the Debian Base System on your own. You can start directly with customizing the system.
Next Step for SqueezePlugBase #Prepare the SD-Card
- 3. SqueezePlugManual
Install it all by yourself using this Wiki. This method is based on the method of Martin Michlmayr. If you like, you can use the image from the SqueezePlugBase method and start right after the steps for installing the base Debian System.
Next Step for SqueezePlugManual #Establishing a Serial-Connection
- 4. SqueezePlugVM
If you are not sure whether a SheevaPlug will be good enough as your SqueezeBox-Server, you can download a virtual SqueezePlug (SqueezePlugVM). The setup works exactly the same way as for a Hardware SheevaPlug. So, you even are able to test whether you have enough knowledge to get it all to work! And you will see that you don’t need any special knowledge. If you like, you can run SqueezePlugVM as your SqueezeBox-Server as well, but you have to keep in mind that running it on a "normal" PC the Power-Consumption would be much higher than with a hardware SqueezePlug. The performance of SqueezePlugVM normally is a little bit faster than from the SqueezePlug. But you will only feel it when scanning the music-library. The performance in normal operating is quite the same.
Next Step for SqueezePlugVM #Setup SqueezePlugVM
- Install Matrix
This matrix describes which steps you have to go, depending on the installation method you choose.
| No. | Installation Step | SP_Main for Multi-Boot | SP_Main | SP_Base | SP_Manual | SP_VM |
|---|---|---|---|---|---|---|
| 3 | #Choose installation method | x | x | x | x | x |
| 4 | #Prepare the SD-Card | x | x | x | ||
| 5 | #Establishing an IP-connection | x | x | |||
| 6 | #Establishing a Serial-connection | x | x | x | ||
| 7 | #Fix SD-Card Bug | (x) | ||||
| 8 | #Check U-Boot Version | x | x | x | ||
| 9 | #Configure U-Boot for SqueezePlugMain | x | ||||
| 10 | #Configure U-Boot for SqueezePlugBase and Manual | x | x | |||
| 11 | #Start the SqueezePlug Script | x | x | x | ||
| 12 | #Install Debian | x | ||||
| 13 | #Network Connection | x | x | |||
| 14 | #Filesharing Connection | x | x | |||
| 15 | #Install Webmin | x | x | |||
| 16 | #Install Samba Server | x | x | |||
| 17 | #Install SqueezeBox-Server | x | x | |||
| 18 | #Tuning SqueezeBox-Server | x | x | |||
| 19 | #Optimize SqueezePlug | x | x | |||
| 20 | #Customize SqueezeBox-Server | x | x | x | x | x |
| 21 | #Update SqueezeBox-Server | (x) | (x) | (x) | (x) | (x) |
| 22 | #Setup SqueezePlugVM | x |
Prepare the SD-Card
The quickest way to get your SqueezePlug up and running is to use one of my images. They are built for people who have either very little or even no knowledge in Linux and don’t want to spend a lot of time doing all the steps on their own.
Please note that sd-cards may differ in size, even if they are labeled as 4 GB cards. For my images I use the same card as NewIT does, i.e. the Integral Ultima Pro 4Gb Class 6 SDHC Card. The newest version of the USB Image Tool has a very cool feature: you can copy larger images to smaller SD-Cards. For that reason I've setup the card I took the image from with a partition smaller than the size the card offers. So you can now use the image for nearly every sd-card.
Images are made with the USB Image Tool for windows systems. You can download it here: USB Image Tool. Make sure you use the newest version because it solves the problem with sd-cards differing in size as mentioned above.
- Install this tool on your windows-system.
- After downloading an image, unpack it to your PC by clicking on the self extracting archive (do a virus-scan before you execute this file).
- Start the USB Image Tool (as administrator) and configure it via the Options tab as shown in the screenshot below
- Be sure to set the tool to “device mode”, not to “volume mode”
- Write the *.img file to your sd-card by clicking the "Restore"-button. Select the image file and hit "OK".
- You can also use larger cards and expand the system partition later using gparted or another tool for expanding partitions
- USB Image Tool Settings
- Next Step for SqueezePlugMain with a SheevaPlug from NewIT (Multi-Boot option) #Establishing an IP-connection
- Next Step for SqueezePlugMain (all other SheevaPlugs) #Establishing a Serial-connection
- Next Step for SqueezePlugBase #Establishing a Serial-connection
Establishing an IP-connection
If you own a SheevaPlug from NewIT (Multi-Boot Option) normally you don't have to change the U-Boot environment settings. You can just make a simple IP-connection to your Plug instead of a serial-connection. This only works if you don't have to go to the system level, because you can't change the boot-behavior of the Plug from the operation-system level. If you like or if an IP-connection doesn't work, you can make a Serial-Connection as well.
Insert your sd-card in the sd-card slot of the plug and boot it. After booting try to connect to the plug via IP.
This option only works if you have a DHCP-server running on your network (normally the internet router) to provide an IP-address for your SqueezePlug.
If a DHCP-server is running, you have to know the IP-address the DHCP-server has assigned to your Plug. One way to look it up is in the router's GUI. If that doesn't work or you don't know how to find it, there are two other ways you can try:
1. Try to ping the netbios name of the SqueezePlug (do it from a DOS-Box of your Windows PC)
ping squeezeplug
If you get an IP-address reported back, you can use this or use the netbios name with a terminal connection using putty (or any other terminal program).
2. If that doesn't work, try to give the SqueezePlug a temporary IP-address.
- Discover a free IP-address form your subnet. Be sure that this IP-address is not used by any other network device by trying a ping to that address. If the ping reports error-messages stating the address specified does not answer you can be sure that this address is free.
- Look up the MAC-address of your SheevaPlug (printed on the back-side of your Plug and looking like this: 00:50:43:xx:xx:xx)
- Open a DOS-Box an type:
arp -s IP-address MAC-address
- Check whether this works by pinging the IP-address
ping IP-address
- Now you should be able to connect to the SqueezePlug via a putty SSH-session using this IP-address.
- If that all doesn't work, you have to make a serial (USB) connection.
- Sometimes the reason you can't connect via IP is that your sd-card is not recognized at boot-time, so you have to change the boot-environment. In that case you'll have to establish a serial connection as well, goto #Establishing a Serial-Connection.
- Settings for a putty IP-connection
- Next Step for SqueezePlugMain if the IP-connection doesn't work #Establishing a Serial-Connection
- Next Step for SqueezePlugMain if the IP-connection works #Start the SqueezePlug Script
Establishing a Serial-connection
The first thing you need to do on Windows is update the FTDI 2232 driver that supports the Plug Computer mini-USB to serial connection. First, you need to be prepared to install three different drivers to get the serial terminal to work.
- Getting the Windows Driver
Look in WindowsTeraTermUSBDriver.zip on the CD that came with your plug or download it from Marvell. This driver is meant for Microsoft Windows XP (but may work elsewhere).
- The first driver install is to recognize the FTDI connection on the other end of the mini-USB cable.
- The second and third drivers are installed to convert the FTDI 2232 controllers to serial terminals.
- Serial Terminal for Windows Vista or Windows 7
Microsoft has made it a little more difficult to get on a serial terminal program now that Vista and the beta of W7 (and thus, probably W7) do not ship with a terminal program for any serial ports (or USB to serial ports). Not to fear, TeraTerm and PuTTY work great as serial terminal programs and have been tested with the Plug Computer's mini-USB cable.
In order to find the COM port to use, go to control panel/system/device manager and look in the Ports section. Sheeva is listed as USB serial port and after it between brackets is the name of the COM port (e.g. COM12). Baudrate to use is 115200 (8N1). If you get problems when you try to interrupt the boot-process because the plug doesn't accept your Any-Key, then try to set the Handshake for the serial connection to NONE.
- Settings for a Putty Serial-Connection
- Next Step for SqueezePlugMain with a SheevaPlug from NewIT (Multi-Boot option) #Fix SD-Card Bug
- Next Step for SqueezePlugMain with other Plugs #Check U-Boot Version
- Next Step for SqueezePlugBase#Check U-Boot Version
- Next Step for SqueezePlugManual#Check U-Boot Version
Fix SD-Card Bug
The reason why an IP-Connection to the Plug failed may be because your sd-card doesn't work properly. Some sd-cards are not recognized at boot-time with the standard environment variables, so you have to change the boot-environment. In that case you have to change the bootcmd_mmc variable to initialize the sd-card twice as a workaround.
- Form the marvel prompt type:
Marvell>> setenv 'bootcmd_mmc=setenv bootargs $(bootargs_console) $(bootargs_root_mmc); mmcinit; mmcinit; ext2load mmc 0:1 0x800000 /uImage; bootm 0x00800000' saveenv reset
- Check whether the card is recognized at boot-time now. If not, try another card.
- Next Step for SqueezePlugMain with a SheevaPlug from NewIT (Multi-Boot option) #Start the SqueezePlug Script
Check U-Boot Version
If you own a SheevaPlug like the original factory set Sheeva Dev Kit you have to check your u-boot version (the boot system of your SheevaPlug) and perhaps update it and change some u-boot environment variables as described in this Wiki. This can only be done via serial connection.
- establish a serial (USB) Connection to your SheevaPlug.
- interrupt the booting-process by hitting <return> several times. If you are not quick enough, boot the linux-system from NAND and shut it down afterwards by typing:
login as: root pw: nosoup4u shutdown –r now
- Interrupt the booting-process again by hitting <return> several times.
- Check your version of the u-boot environment:
Marvell>> version
- If you're running a version of u-boot older than 3.4.19 you have to update u-boot before proceeding with the next steps!
This can be accomplished in two different ways. Either you use a USB stick (recommended) or do it with the "TFTP-method" if you don't have a USB stick at hand.
First of all, get the updated uboot version. I recommend installing version 3.4.23. It is not the newest version, but it is stable and works properly for our purpose. Newer versions may cause some trouble. You can download version 3.4.23 here: U-Boot 3.4.23
- USB stick method
For this method you need an USB stick formatted with FAT or FAT32 filesystem. Apart from that any stick will work as we need less than 1 MB of free space on it.
- Download the uboot.bin file as described above and copy it to your USB stick.
- Plug the stick in your SheevaPlug.
- Establish a serial connection to your plug if you haven't done so already and type the following commands (copy and paste will also work):
Marvell>> usb start Marvell>> fatload usb 0:1 0x0800000 uboot.bin Marvell>> nand erase 0x0 0xa0000 Marvell>> nand write 0x0800000 0x0 0xa0000
Reboot your plug by typing the following command:
Marvell>> reset
- TFTP method
For updating the uboot version via this method you need TFTP software. I recommend using Tftpd32 which you can find here: TFTP Server.
Be sure to set "TFTP Security" to "none".
- TFTP security settings
- Install the TFTP-Server
- Download the U-Boot file
- Copy the file uboot.bin to your TFTP server dirctory.
- Start your SheevaPlug, connect the serial console and type the following commands:
Marvell>> setenv serverip 192.168.1.2 # IP of your TFTP server Marvell>> setenv ipaddr 192.168.1.200 # IP-address of your SheevaPlug Marvell>> bubt uboot.bin
The upgrade process will ask whether you want to change the environment:
Override Env parameters? (y/n) n
Make sure to answer "n" here.
After that reboot your plug by typing the following command:
Marvell>> reset
Regardless of the method used you can verify that the new version is installed correctly as described at the start of this section.
If you need more information on updating U-Boot read here: update u-boot
- Next Step for SqueezePlugMain #Configure U-Boot for SqueezePlugMain
- Next Step for SqueezePlugBase #Configure U-Boot for SqueezePlugBase and Manual
- Next Step for SqueezeBoxManual #Configure U-Boot for SqueezePlugBase and Manual
Configure U-Boot for SqueezePlugMain
The following settings only apply for SheevaPlug models which are not setup as multi-boot Plugs and without the UBIFS-Filesystem installed on the NAND. Therefore these setting apply for Plugs with a JFFS-Filesystem installed on the NAND only. The Basic SheevaPlug is coming with this setup for example.
- First, save your environment settings by typing in the serial console (Putty):
Marvell>> printenv
You now get output with all your environment settings.
- You should copy this to the clipboard by right-clicking the top bar of your putty window and choosing "Copy all to clipboard" then paste this in a txt-file and save it.
- From the serial console (Putty) type these commands, one after the other, and confirm after every line by hitting <return>. Copy each line to the clipboard (<ctrl> + <c>) and paste this in the Putty window by clicking the right mouse button.
- SD-Boot only
With these settings the plug will only boot from the SD-Card, not from the NAND:
- Please note that you have to set the value of the ethaddr variable to the MAC-Address of your Plug (look it up from the backside of the Plug).
Marvell>> setenv arcNumber 2097 Marvell>> setenv bootargs_console console=ttyS0,115200 Marvell>> setenv bootargs_root root=/dev/mmcblk0p2 rootdelay=5 Marvell>> setenv bootcmd 'setenv bootargs $(bootargs_console) $(bootargs_root); mmcinit; mmcinit; ext2load mmc 0:1 0x800000 /uImage; bootm 0x00800000' Marvell>> setenv ethaddr 00:50:43:xx:xx:xx Marvell>> setenv filesize 32D62A Marvell>> setenv mainlineLinux yes Marvell>> setenv real_bootcmd 'setenv bootargs $(bootargs_console) $(bootargs_root); mmcinit; mmcinit; ext2load mmc 0:1 0x800000 /uImage; bootm 0x00800000' Marvell>> saveenv
- If you like to restore the original settings to boot from NAND do this:
setenv bootargs 'console=ttyS0,115200 mtdparts=nand_mtd:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs) rw root=/dev/mtdblock1 rw ip=10.4.50.4:10.4.50.5:10.4.50.5:255.255.255.0:DB88FXX81:eth0:none' setenv bootargs_root root=/dev/mtdblock2 ro setenv bootcmd nand read.e 0x800000 0x100000 0x400000; bootm 0x800000 setenv cesvcid ULULULULULULPPULULULULULDA setenv console console=ttyS0,115200 setenv mainlineLinux no setenv run_diag no saveenv
- Select boot
- If you like your system being able to choose between booting from NAND or from SD-Card you can do the following:
setenv bootargs_root_factory root=/dev/mtdblock2 ro setenv mtdpartitions_factory mtdparts=nand_mtd:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs) rw root=/dev/mtdblock1 rw setenv prepare_factory_settings 'setenv arcNumber;setenv mainlineLinux no; setenv run_diag no;setenv console console=ttyS0,115200;setenv cesvcid ULULULULULULPPULULULULULDA;' setenv bootcmd_factory 'run prepare_factory_settings;setenv bootargs $(bootargs_console) $(mtdpartitions_factory);nand read.e 0x800000 0x100000 0x400000; bootm 0x800000'
setenv prepare_mmc_settings 'setenv mainlineLinux yes;setenv arcNumber 2097;setenv run_diag;' setenv bootargs_root_mmc root=/dev/mmcblk0p2 rootdelay=5 setenv bootcmd_mmc 'run prepare_mmc_settings;setenv bootargs $(bootargs_console) $(bootargs_root_mmc); mmcinit; mmcinit; ext2load mmc 0:1 0x800000 /uImage; bootm 0x00800000'
- To boot from SD-Card do the following
run prepare_mmc_settings saveenv reset run bootcmd_mmc
- To boot from NAND do the following
run prepare_factory_settings saveenv reset run bootcmd_factory
- Next Step for SqueezePlugMain #Start the SqueezePlug Script
Configure U-Boot for SqueezePlugBase and Manual
The following settings apply for all SheevaPlug models if you want to make a SqueezePlugBase or Manual installation.
- First save your environment settings by typing in the serial console (Putty):
Marvell>> printenv
You now get output with all your current environment settings.
- You should copy this to the clipboard by choosing "Copy all to clipboard" then paste this in a txt-file and save it. If something goes wrong, you are able to revert to these settings.
- From the serial console (Putty) type these commands, one after the other, and confirm after every line by hitting <return>. Copy each line to the clipboard (<ctrl> + <c> and paste this in the Putty window by clicking the right mouse button:
Marvell>> setenv mainlineLinux yes Marvell>> setenv arcNumber 2097 Marvell>> setenv bootargs_console console=ttyS0,115200 Marvell>> setenv bootcmd_mmc 'mmcinit; mmcinit; ext2load mmc 0 0x01100000 /uInitrd; ext2load mmc 0 0x00800000 /uImage' Marvell>> setenv bootcmd 'setenv bootargs $(bootargs_console); run bootcmd_mmc; bootm 0x00800000 0x01100000' Marvell>> saveenv
If you want to restore the original settings, do the following:
- Look up the original settings from your saved environment variables for the variables you have changed.
It look like this for example:
mainlineLinux=yes.
- To reset the value type:
Marvell>> setenv mainlineLinux no Marvell>> saveenv
Do this for each variable you have changed and don't forget the:
Marvell>> saveenv
at the end!
If this still doesn't work try the following:
- Reset u-boot to the factory-settings:
Marvell>> resetenv Marvell>> reset
- After that, type in the variables as above again.
- Next Step for SqueezePlugBase #Network Connection
- Next Step for SqueezePlugManual #Install Debian
Start the SqueezePlug Script
To finish the configuration of the SqueezePlug, insert the sd-card in the slot of your plug if you haven't already. At the serial console type the following command to reboot your plug:
Marvell>> reset
If you are using the SqueezePlugMain method, you can do the final configuration quickly by just running the SqueezePlug Script. It configures your network settings, your filesharing connections and installs SBS automatically. If you don't wish to use this script you can also do all necessary configuration steps by hand.
- Logon to SqueezePlug:
login as: root pw: nosoup4u
- On your running system, start the SqueezePlug Config Script by typing:
squeezeplug:~# setup
- At the first step of the script you should configure your plug by choosing "Configuration". After the configuration has finished, the plug reboots.
- After rebooting, run the script again and install SqueezeBoxServer by choosing "Install"
squeezeplug:~# setup
The rest is very easy, just follow the steps as described.
- HINT
- If you have problems pasting the download link in the SqueezePlug menu (I suggest you are using putty to connect to your SqueezePlug) try using <shift> + <right-click> on the input line!
- Next Step for SqueezePlugMain #Customize SqueezeBox-Server
- Next Step for SqueezePlugVM #Customize SqueezeBox-Server
Install Debian
If you don't want to use one of my images you can go all the way by yourself. This method is based on the method of Martin Michlmayr. If you like, you can use the image from the SqueezePlugBase method and start right after the steps for installing the base Debian System.
Prepare the system
- Format your sd-card with fat32 from your windows system.
- Copy the files uImage and uIntrd to your sd-card.
- Download the files here:
Attention: If you download the files with IE, the files get an .txt suffix: Delete this before copying the files to the sd-card.
- Boot your SheevaPlug and interrupt the boot-process by hitting <return> several times. If you are not quick enough, boot the linux-system from NAND and shut it down afterwards by typing:
login as: root pw: nosoup4u shutdown –r now
- Interrupt the booting-process again by hitting <return> several times.
- Type in the following commands:
Marvell>> mmcinit Marvell>> fatload mmc 0:1 0x0800000 /uInitrd Marvell>> fatload mmc 0:1 0x400000 /uImage Marvell>> setenv bootargs console=ttyS0,115200n8 base-installer/initramfs-tools/driver-policy=most Marvell>> bootm 0x400000 0x0800000
Setup Debian
- The bootstrap system starts and you can begin the installation of Debian.
The installation itself should be pretty standard. The installer knows about the SheevaPlug and will create a bootable kernel and ramdisk at the end of the installation.
- For the partitioning choose "guided partitioning"
If this won't work, do the partitioning of the sd-card manually and not automatically.
- Then: Erase the existing partitions and data and build new ones.
- All partitions are primary partitions.
- The essential parameters for the installation are:
- Partitions
- Partition: /boot; Size: 128 MB; file-system: ext2; Flag: boot
- Partition: Swap; Size: 256 MB; file-system: swap
- Partition: /; Size: Rest of space; file-system: ext3
Software Selection
- SSH server
- Standard system utilities
- Notebook
The steps above are from the the documentation here http://www.cyrius.com/debian/kirkwood/sheevaplug/install.html. If you want you can also read it there.
Special hint: By pressing <ctrl> + <c> you can copy the commands selected from the wiki to the clipboard. Then click the right mouse button to paste the commands to the putty terminal.
- Start the system and login:
login as: root pw: nosoup4u
Install more packages
Now you should update your new system and install some more packages. If you think you don't need the package, just leave it:
- Update the system with the newest packages available:
squeezeplug:~# apt-get --yes update squeezeplug:~# apt-get --yes upgrade
- Install ntfs-3g for connecting NTFS USB-drives to your SqueezePlug:
squeezeplug:~# apt-get --yes install ntfs-3g
- Install NFS for establishing NFS-Connections from your SqueezePlug like a NAS-Connection:
squeezeplug:~# apt-get --yes install nfs-common portmap
- Install a SAMBA-Client to connect your SqueezePlug to a SAMBA Share:
squeezeplug:~# apt-get --yes install smbfs
- Install ntpdate to get the correct time from the Internet:
squeezeplug:~# apt-get --yes install ntpdate
- Install file:
squeezeplug:~# apt-get --yes install file
- Install dialog
squeezeplug:~# apt-get --yes install dialog
- Install MySQL
squeezeplug:~# apt-get --yes install mysql-common mysql-server mysql-server-5.1
- Set the password for MySQL root: nosoup4u and repeat it
- Clean up the system:
squeezeplug:~# apt-get --yes clean
- Next Step for SqueezePlugManual #Network Connection
Network Connection
The next step you should do from the serial console, because you change network settings. Restarting the network interface of your SheevaPlug during this causes the IP-connection to quit.
- Login to the system and configure your network settings:
squeezeplug login: root Password: nosoup4u squeezeplug:~# nano /etc/network/interfaces
- Change the file like this (depends on your network setup).
You can replace the whole text of the file by deleting the original text and paste the following text. Delete the "#" as you need it:
# This file describes the network interfaces available on your system # and how to activate them. # # The loopback network interface auto lo iface lo inet loopback # # The primary network interface allow-hotplug eth0 # # Your settings start here: # # for DHCP use: # iface eth0 inet dhcp # # for static IP use something like this (depends on your network setup): # iface eth0 inet static # address 192.168.2.102 # netmask 255.255.255.0 # network 192.168.2.0 # Broadcast 192.168.2.255 # gateway 192.168.2.1 # # settings from the SqueezePlug script starts here:
- Write the file with <ctrl> + <o>, confirm the filename with <return> and quit nano with <ctrl> + <x>
- Shutdown and restart the network with the new settings:
squeezeplug:~# ifdown eth0 squeezeplug:~# ifup eth0
You now can choose between connecting via USB-Serial connection or network connection for the further steps. I suggest checking the interface settings first and then connect via network connection:
squeezeplug:~# ifconfig
- Proof the settings and if they are correct, make a new network connection (SSH) via putty.
- Next Step for SqueezePlugBase #Filesharing Connection
- Next Step for SqueezePlugManual #Filesharing Connection
Filesharing Connection
Your way to connect a music library depends on your personal environment. Options discussed in this wiki are:
- USB Fat/Fat32 drive -- see #USB Fat/Fat32 drive
- USB NTFS drive -- see #USB NTFS drive
- NFS Connection (normaly a NAS-Connection) -- see #NFS Connection
- Samba Client Connection -- see #Samba Client Connection
- If you like, you can setup more than one filesharing connection type.
- There may be other options. Please tell me or complete this wiki.
- For all types of file-share connections you need a mount point. For simplicity we create mount points for every type of connection:
squeezeplug:~# mkdir -p /mnt/nfs/music /mnt/samba/music /mnt/usb/music
- Edit the rc.local file for forcing the system to mount usb-drives on every start:
squeezeplug:~# nano /etc/rc.local
It should look like this:
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. mount -a exit 0
USB Fat/Fat32 drive
- Plug the USB-drive in to your SqueezePlug.
- Find out the name of your USB-drive by typing:
squeezeplug:~# fdisk -l | grep FAT32
You now see the name of the USB-drive.
- Remember the name and edit the fstab-file:
squeezeplug:~# nano /etc/fstab # /dev/sda1 /mnt/usb/music vfat rw,user,auto 0 0
- Delete the "#" and replace /dev/sda1 with your drive name.
- Write the file with <ctrl> + <o>, confirm the filename with <return> and quit nano with <ctrl> + <x>
- Mount all drives:
squeezeplug:~# mount -a
If you like to update files on the USB drive from a Workstation on your network, you can choose between dfferent possibilities:
- Configure a Samba Server -- look at #Install Samba Server.
- Use Secure Copy e.g. WinSCP
- Use FileZilla
- ...
- Next Step for SqueezePlugBase #Install Webmin
- Next Step for SqueezePlugManual #Install Webmin
USB NTFS drive
- Plug the USB-drive in to your SqueezePlug.
- Find out the name of your USB-drive by typing:
squeezeplug:~# fdisk -l | grep NTFS
You now see the name of the USB-drive.
- Remember the name and edit the fstab-file:
squeezeplug:~# nano /etc/fstab # /dev/sda1 /mnt/usb/music ntfs-3g defaults,locale=en_US.utf8 0 0
- Delete the "#" and replace /dev/sda1 with your drive name.
- Write the file with <<ctrl>> + <<o>>, confirm the filename with <<return>> and quit nano with <<ctrl>> + <<x>>
- Mount all drives:
squeezeplug:~# mount -a
If you like to update files on the USB drive from a Workstation on your network, you can choose between dfferent possibilities:
- Configure a Samba Server -- look at #Install Samba Server.
- Use Secure Copy e.g. WinSCP
- Use FileZilla
- ...
- Next Step for SqueezePlugBase #Install Webmin
- Next Step for SqueezePlugManual #Install Webmin
NFS Connection
- Configure your NAS to accept connections from the SqueezePlug. Consult your NAS documentation.
squeezeplug:~# nano /etc/fstab # 192.168.2.100:/raid/data/iTunes_music /mnt/nfs/music nfs defaults 0 0
- Delete the "#" and replace 192.168.2.100:/raid/data/iTunes_music with your connection data.
- Write the file with <ctrl> + <o>, confirm the filename with <return> and quit nano with <ctrl> + <x>
- Mount all drives:
squeezeplug:~# mount -a
- Next Step for SqueezePlugBase #Install Webmin
- Next Step for SqueezePlugManual #Install Webmin
Samba Client Connection
With these settings you get a connection from your SqueezePlug to a samba share. Use this if your music-library is stored on a samba server on your network.
- First make sure that your Samba-Share is working properly. It is in my opinion best to test with a client-system other than the SqueezePlug initially, just to make sure that the share is working. Set the user and the rights for your Samba-Connection and remember the values
- Edit /etc/fstab:
#//192.168.2.10/samba /mnt/samba/music smbfs username=<username>,password=<password>
- Delete the "#" and replace 192.168.2.10/samba and <username> and <password> with your connection data.
- Write the file with <ctrl> + <o>, confirm the filename with <return> and quit nano with <ctrl> + <x>
- Mount all drives:
squeezeplug:~# mount -a
- Next Step for SqueezePlugBase #Install Webmin
- Next Step for SqueezePlugManual #Install Webmin
Install Webmin
- Edit sources list for installing webmin:
squeezeplug:~# nano /etc/apt/sources.list
- Add the lines:
# webmin repository deb http://download.webmin.com/download/repository sarge contrib
- Write the file with <ctrl> + <o>, confirm the filename with <return> and quit nano with <ctrl> + <x>
squeezeplug:~# cd /root squeezeplug:~# wget http://www.webmin.com/jcameron-key.asc squeezeplug:~# apt-key add jcameron-key.asc squeezeplug:~# rm jcameron-key.asc
- You will now be able to install webmin:
squeezeplug:~# apt-get --yes update squeezeplug:~# apt-get --yes install webmin
(this will take a while …)
Make a connection to webmin from a web browser:
- https:/<your ip address of SqueezePlug>:10000
- Login with user: root pw: nosoup4u (Ignore the missing certificate hint).
Change timezone and time
Do it from webmin:
- Hardware
- System Time
- set timezone
- set timeserver (for example: ptbtime1.ptb.de)
- System Time
- Next Step for SqueezePlugBase #Install Samba Server
- Next Step for SqueezePlugManual #Install Samba Server
Install Samba Server
If you want to get a connection to the USB drive directly connected to your SqueezePlug you best install a Samba Server on the SqueezePlug. You than will be able to connect to the USB drive by a file connection from your Windows Workstation. This is very useful to update files in the music library.
Setting up a Samba Server normally is a bit tricky. If you do this by webmin, it's pretty easy. This part of the Wiki assumes that you have installed webmin before.
- Be sure that you have plugged your usb drive and configured it, so that it is well mounted.
- Start a webmin session from your browser.
https://<your ip address of SqueezePlug>:10000
- Ignore the certificate warning
- Choose "Un-used Modules" from the left navigation
- Choose "Samba Windows File Sharing"
- Install the Samba Server
- After the Samba Server is installed, choose "Servers"
- Choose "Samba Windows File Sharing"
- Choose "Create a new file share"
- Give a name for the share: In "Share name" type maybe <music>
- Choose a directory to share: /mnt/usb/music and click "o.k."
- Click "create"
Now you should see the share in the list.
- Click on it
- Click on "Security and Access Control"
- Select "Guest Access?" "yes"
- Click on "Save"
- Click on "File Permissions"
- At "Force Unix user" select "root"
- Click on "Save"
The setting for the workgroup comes from the domain-name of the SqueezePlug. This name depends on your setup. If you use one of my images the name is set to "workgroup". Be sure to setup the workgroup name to the name of your local windows workgroup. If your windows workgroup has a different name than "workgroup" change the name by using webmin:
- Choose "Windows Networking" from "Global Configuration"
- At "Workgroup" type in the name of your workgroup
- At "Security" choose "Share level"
Now you are able to make a connection from your Windows Workstations to the USB drive connected to your SqueezePlug.
- Next Step for SqueezePlugBase #Install SqueezeBox-Server
- Next Step for SqueezePlugManual #Install SqueezeBox-Server
Install SqueezeBox-Server
- Download the latest version of Squeezebox-Server from here: SqueezeBox-Server Download
You can download the installation-package directly to your SqueezePlug and install SBS directly from the plug.
- Do the following:
- Create a directory for installation and download SBS
squeezeplug:~# cd / squeezeplug:~# mkdir install squeezeplug:~# cd install squeezeplug:~# wget http://downloads.slimdevices.com/SqueezeboxServer_v7.4.2/squeezeboxserver_7.4.2_all.deb squeezeplug:~# dpkg -i squeezeboxserver_7.4.2_all.deb
- Ignore any errors like this: “Errors were encountered while processing: squeezeboxserver”
squeezeplug:~# apt-get --yes install -f
- Set the password for MySQL root: nosoup4u and repeat it
- If you want to free a little space on the SqueezePlug do this:
squeezeplug:~# apt-get --yes clean
- Next Step for SqueezePlugBase #Tuning SqueezeBox-Server
- Next Step for SqueezePlugManual #Tunig SqueezeBox-Server
Tuning SqueezeBox-Server
Tuning the SBS-Server is very important! Without tuning, full scans of the music-library may cause the server to fail!
- Stop SBS:
squeezeplug:~# /etc/init.d/squeezeboxserver stop
- Rename my.cnf in your cache folder:
squeezeplug:~# mv /var/lib/squeezeboxserver/cache/my.cnf /var/lib/squeezeboxserver/cache/my.old
It’s o.k. if this file does not exist! Goto the next step.
- Rename the my.tt file in /usr/share/squeezeboxserver/MySQL :
squeezeplug:~# mv /usr/share/squeezeboxserver/MySQL/my.tt /usr/share/squeezeboxserver/MySQL/my.old
- Copy the my.tt.txt file from the post: SBS-Tuning File to the /usr/share/squeezeboxserver/MySQL folder and rename to my.tt
squeezeplug:~# cd /usr/share/squeezeboxserver/MySQL squeezeplug:~# wget http://forums.slimdevices.com/attachment.php?attachmentid=7061 squeezeplug:~# mv attachment.php?attachmentid=7061 my.tt
- Start squeezeboxserver:
squeezeplug:~# /etc/init.d/squeezeboxserver start
- Next Step for SqueezePlugBase #Optimize SqueezePlug
- Next Step for SqueezePlugManual #Optimize SqueezePlug
Optimize SqueezePlug
This step is to optimize your SqueezePlug. You will renew the SSL-Keys of the Plug to get your personal and unique Keys and you will set the system up to reduce flash writings on the sd-card, so that it will live a little longer.
- Renew the SSL keys:
squeezeplug:~# ssh-keygen -q -f /etc/ssh/ssh_host_key -N '' -t rsa1 squeezeplug:~# ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N '' -t rsa
- Type "y" when asked for overwriting existing keys
squeezeplug:~# ssh-keygen -f /etc/ssh/ssh_host_dsa_key -N '' -t dsa
- Type "y" when asked for overwriting existing keys
- Tuning Debian by reducing flash writing:
This is from http://www.plugcomputer.org/plugwiki/index.php/Reduce_Flash_Writes
squeezeplug:~# echo 0 >/proc/sys/vm/swappiness squeezeplug:~# echo 5 > /proc/sys/vm/laptop_mode squeezeplug:~# echo 1500 > /proc/sys/vm/dirty_writeback_centisecs squeezeplug:~# echo 1500 > /proc/sys/vm/dirty_expire_centisecs
- To make the change permanent add a line to /etc/sysctl.conf:
squeezeplug:~# nano /etc/sysctl.conf
- add the lines:
vm.swappiness=0 vm.laptop_mode=5 vm.dirty_writeback_centisecs=1500 vm.dirty_expire_centisecs=1500
- Change /etc/fstab:
squeezeplug:~# nano /etc/fstab
- Add the line:
rootfs / rootfs relatime,rw 0 0
- Next Step for SqueezePlugBase #Customize SqueezeBox-Server
- Next Step for SqueezePlugManual #Optimize SqueezePlug
Customize SqueezeBox-Server
Some settings have to be made at the SqueezeBox-Server itself:
- Connect to your SBS by typing http://<IP of Your SqueezePlug>:9000 in your web browser.
- Put in your data for mysqueezebox.com.
- Configure the path to your music library and playlists.
- Stop scanning the database.
To show the correct artwork (especially for the Controller), the next step is very important.
- Store your artwork in the same folder as the songs. Store it as “folder.jpg” in every album folder.
Example:
- Williams, Robbie
- Reality Killed The Radio Star
- folder.jpg
- Reality Killed The Radio Star
- Type your path to your music library in “Advanced” “Artwork Folder”.
- Type %folder.jpg in “Advanced” “Artwork”.
- Make a complete scan of your database.
- Customize SBS as you like.
- Congratulations you have finished!!!
Update SqueezeBox-Server
If you like to update your SqueezeBox-Server this can be accomplished very easily. You can do it manually by just installing a newer version over the old one or you can use my script. If you do it manually, you'll have to tune the SqueezeBox-Server again after installing. If you use the script it will be all done for you automatically!
- On Your running system start the SqueezePlug Script:
squeezeplug:~# setup
The rest is very easy, just follow the steps as described.
Setup SqueezePlugVM
If you are not sure whether a SheevaPlug will be good enough as your SqueezeBox-Server, you can download a virtual SqueezePlug (SqueezePlugVM). The setup works exactly the same way as for a Hardware SheevaPlug. So you can even test whether you have enough knowledge to get it all to work! And you will see that you don’t need any special knowledge. If you like, you can run the SqueezePlugVM Server as your SqueezeBox-Server as well, but you have to keep in mind that running it on a "normal" PC the Power-Consumption will be much higher than with a hardware SqueezePlug. The performance of SqueezePlugVM normally is a little bit faster than the SqueezePlug. But you will only feel it when scanning the music-library. The performance in normal operating is quite the same.
If you like to get the real feeling of SqueezePlug you should run SqueezePlugVM and connect to it via putty. Then you get exactly the same experience as working with a real plug. You can use the Wiki exactly the same way for a SqueezePlugVM as for a normal Plug!
One very cool thing is: you are even able to get sound out of the SqueezePlugVM. There are two ways to do that: one is already included in SqueezePlugVM i.e. SqueezeSlave. The other one is SoftSqueeze, which you have to install on your host (or any other system in your network). Both possibilities are described later.
Have fun!
You can run SqueezePlugVM in VMWare or in VirtualBox. I prefer VirtualBox because it's totally free, you don't have to register and it works on every processor, unlike the VMWare Player. For that reason I explain how to set it up in VirtualBox in detail. Feel free to use VMWare as well!
- Download VirtualBox here: VirtualBox
- Install it
- Download the image for SqueezePlugVM from my blog: SqueezePlug Blog
- Expand the archive
- Open VirtualBox and create a new virtual machine
- In the menu click on "File" and then on "Virtual Media Manager"
- Add the SqueezePlugVM.vmdk file as a hard disc to the Virtual Media Manager:
- Confirm with "Ok"
- Click on the "New" button:
- Type in the setting as you see above.
- Give the SqueezePlugVM 512 MB RAM, that's the same as the hardware plug:
- Choose the SqueezePlugVM.vmdk file as the hard disc:
- Change the boot order:
- Delete the other storage devices:
- enable audio:
- Choose the network connection. I prefer bridged mode:
- The settings should look like this:
Now you can run your SqueezePlugVM. Use it like a real hardware plug. If you feel it's good to work with, you will certianly like the SheevaPlug as well. You can even connect your music-library to the SqueezePlugVM by USB or any other way described in this wiki.
- Logon to your SqueezePlugVM:
login as: root pw: nosoup4u
- Now you can setup your system by starting the squeezeplug-configuration script:
- Next Step for SqueezePlugVM #Start the SqueezePlug Script
- Optionally, you can install SqueezeSlave or SoftSqueeze
- SqueezeSlave
If you like to get sound-output directly from SqueezePlugVM you can do this by starting SqueezeSlave, a headless SqueezeBox-Player already installed on the SqueezePlugVM.
- From the console just type:
squeezeplug:~# squeezeslave &
to start squeezeslave.
Now you should see the SqueezeSlave Player like any other SqueezeBox_Player on your network and you should hear sound if you play a song.
If that won't work, you should do this:
- Identify your working soundcard on the SqueezePlug:
squeezeplug:~# squeezeslave -L
The working soundcard is indicated with a "*"
- Start the alsamixer to configure your soundcard by typing:
squeezeplug:~# alsamixer
- Select your soundcard, power up all sliders and set them to OO by typing <M> like shown:
- SoftSqueeze
And you can go one step further: Install SoftSqueeze on the host you run SqueezePlugVM, connect SoftSqueeze to your SqueezePlugVM and get the whole feeling of SqueezeBox! SoftSqueeze is Java and so it runs on every system. Setting it up is very easy, don't worry!
SqueezePlugV2 (beta)
This Chapter describes a new way to get a SqueezePlug. SqueezePlugV2 uses a completely different install method and has some major advantages against previous versions. If you choose this method, you will get:
- a dual Boot Plug with every plug
- a new u-boot version 3.4.27
- a Debian System on NAND and SD-Card
- a brand new Linux kernel on NAND an SD-Card 2.6.34
- SBS on NAND is also possible
- SBS version 7.6 with a massive increase of performance
- all pretty things from SqueezePlug-Server
- You can use this methode to unbrick bricked plugs. For that reason the SqueezePlugRescue-System is not needed anymore!
- What do you need?
- SheevaPlug (any version)
- USB miniport cable as shipped with the plug
- two usb-sticks (One minimum 1GB and one minimum 2 GB
- Working Internet connection from the Host (PC) to the Plug
- Process in brief
- Create a Ubuntu USB-Stick
- Start the Ubuntu-Stick from your PC
- Modify this system with a script
- Connect the SheevaPlug
- Start the flash process to get a SheevaPlug with:
the choice of an installation on the NAND and/or on an SD-Card.
After the plug is ready, you will modify it to a SqueezePlug.
During the last step you will configure your SqueezePlug and your SBS-Server with a script as you already know.
- 1. Build the Host-System on an USB-Stick
- You will need a 2GB USB Stick or a larger one
- Download the Universal USB Installer from here: universal-usb-installer
- Start the Universal USB Installer
- Select Ubuntu 10.04 Desktop i386
- Check the Check-box "Download the ISO (optional)"
- Select the drive letter for your USB-drive
- Check the Check-box "Check this box if you want to format the drive"
- In "select a Persistence option for your USB (Optional)" select 1GB Casper-RW
The installer will install your stick, this will take some time.
- 2. Prepare the PlugStick
You will need a USB-Stick to plug in the SheevaPlug during the installation process. You will create this stick with the next steps:
- Download the files for the stick from here: PlugStick
- Format one of the sticks (the smaller one) with Fat32 from your PC
- Extract the SPV2PlugStick.zip image to the root of this USB-Drive
- Unplug the Stick safely from your PC and plug it into the SheevaPlug
- 3. Start the installation process
- Please do the next steps on your PC, not on the sheevaPlug
- Start the Ubuntu Host-System from your USB-Stick
- Start a Firefox session
- Download the SPV2HostSrcipt from my SqueezePlug blog: SPV2HostSrcipt
- Open a File-Manager from Places/Home Folder.
- Change to the Downloads directory.
- Right-click on the SPV2HostScript.zip file and extract it here
- Left-Click on the file SPV2HostScript.sh and choose "Run in Terminal"
- Answer any question with yes
- Go back to the root directory and then to the spv2 directory (if you don't see this directory press F5)
- Left-click on the directory sheevaplug-installer-v1.0\
- Left-click on the directory uboot\
- Left-click on the directory uboot-env\
- Double-click on the file uboot-nand-custom.txt and choose display
- Goto Line 11 and change the MAC-Address according to the address on the back of your SheevaPlug
- Double-click on the file uboot-mmc-custom.txt and choose display
- Goto Line 9 and change the MAC-Address according to the address on the back of your SheevaPlug
- Open two terminals from Applications/Accessories/Terminal
- Connect the SheevaPlug to the PC by the miniport-adaptor
- Plug in the Plug-Stick to your SheevaPlug if thats not already done
- Insert the SD-Card to the Plug if you like to install on SD-Card
- Connect the Plug to power
- On both terminals change to the spv2 directory:
ubuntu@ubuntu:~$ cd /spv2
- on the first terminal type:
ubuntu@ubuntu:~$ ./flashnand.sh
to install the system on the NAND
or
ubuntu@ubuntu:~$ ./flashmmc.sh
to install the system on SD-Card.
If you wish to install SqueezePlug on both NAND and on SD-Card choose installation to SD-Card first (flashmmc.sh) and then to NAND (flashnand.sh).
If this goes wrong and you get an error message directly after starting the script, unplug the SheevaPlug from power, power-up again and start the script once more quickly after powering-up. This process lasts 5 minutes or more and the process stops with an error message:
**** openocd FAILED **** Is the mini USB cable connected? **** Try powering-down, then replugging the Sheevaplugubuntu@ubuntu:/sheeva$
Ignore this message and go to the other terminal.
- on the second terminal type:
ubuntu@ubuntu:~$ ./screen.sh
- Watch the process. This will last 5 minutes more. After finishing this process the plug reboots and shows you a Linux prompt.
If you boot without a SD-Card you will see some error messages at the boot-process. These messages are because you have no SD-Card inserted yet. After a little while, the system boots from the NAND.
If you boot with a SD-Card, you won't see these error messages.
- Login with user root and password nosoup4u
- Congratulations, you are finished
Now you have a SqueezePlug like the multi-boot option from NewIT.
- Type "setup" to start the SqueezePlug-Script. The script in this version is configured to install SBS 7.6 with MySQL-lite. You can type in any download-path for SBS 7.6 you like. Don't type in a path to older versions like SBS 7.5. SBS 7.5 needs MySQL and that is not installed! If you wish to install version 7.5 do it manually, not with the script.
Appendix
Images
- You will find all images here
- SqueezePlug Images
What else will you need?
- Boostrap Files for Debian installation
- Squeezebox-Server
- Tuning file for SBS database
- U-boot Version 3.4.23
md5sum is 02ddee1875376ed2b28ffc0111472c9b
Version 3.4.23 is not the newest one but works fine. Some people reported problems with newer versions. NewIT uses this version.
- Tools
- Putty -- terminal-program for serial IP-connections to your SqueezePlug
- USB Image Tool -- tool for making the sd-cards from the images
- SDFormatter -- tool to format sd-cards
- TFTP-Server -- TFTP-Server to update the u-boot environmemt
- VirtualBox -- Virtulisation Software for SqueezePlugVM
- SoftSqueeze -- Software SqueezeBox Player
- MP3Tag -- very good tagging tool
- FLAC Frontend -- tool to make flac files
- Foobar -- tool I used to convert files mp4 -> flac
- universal-usb-installer -- Tool to install Linux on an USB-Stick
Useful links
- Marvell -- manufacturer of the ARM Processors
- Globalscales -- manufacturer of the SheevaPlug
- NewIT -- distributor of the SheevaPlug in Europe
- Debian on SheevaPlug -- Website describing how-to install Debian on SheevaPlug
- Update U-Boot -- Website describing updating U-boot
- plugcomputer.org -- Community site for plugcomputing
- Serial Connection to your Plug -- how-to make a serial connection to your SheevaPlug
- SheevaPlug Installer -- The SheevaPlug Installer to repair the SheevaPlug if something goes completly wrong
- Documentation of nano -- Documentation of nano, texteditor for Linux I prefer to use.
Known Bugs
- Bug in partitioning the sd-card if you install Debian "the long way". Workaround: Do the partitioning manually as described.
- Someone reported that the SBS Server starts in German. All the local settings are in English, I believe. I'm still searching for the bug! Workaround: change the language by going to Squeezeboxserver Settings, Basic Settings page, and selecting the language of your choice.
- Ignore the error message at boot time: "Setting kernel variables ...error: "net.ipv6.bindv6only" is an unknown key
failed." It's because you don't use IPv6.
Setenv commands for resetting Sheevaplug
Here are the setenv commands for resetting Sheevaplug.
Factory Settings
These settings are from the u-boot version 3.4.23, if you use an other version they might be different! You will get these settings if you do a resetenv from the Marvell prompt
autoload=no baudrate=115200 bootargs=console=ttyS0,115200 mtdparts=nand_mtd:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs) rw root=/dev/mtdblock1 rw ip=10.4.50.4:10.4.50.5:10.4.50.5:255.255.255.0:DB88FXX81:eth0:none bootargs_end=:::DB88FXX81:eth0:none bootargs_root=root=/dev/mtdblock2 ro bootcmd=nand read.e 0x800000 0x100000 0x400000; bootm 0x800000 bootdelay=3 CASset=min cesvcid=ULULULULULULPPULULULULULDA console=console=ttyS0,115200 disaMvPnp=no disL2Cache=no disL2Prefetch=yes enaAutoRecovery=yes enaCpuStream=no enaDCPref=yes enaICPref=yes enaMonExt=no enaWrAllo=no ethact=egiga0 ethaddr=00:50:43:xx:xx:xx ethmtu=1500 ethprime=egiga0 image_name=uImage ipaddr=10.10.0.1 loadaddr=0x02000000 loads_echo=0 mainlineLinux=no MALLOC_len=1 mvNetConfig=mv_net_config=(00:11:88:0f:62:81,0:1:2:3),mtu=1500 mvPhoneConfig=mv_phone_config=dev0:fxs,dev1:fxs nandEcc=1bit netbsd_en=no netmask=255.255.0.0 netretry=no pexMode=RC rcvrip=169.254.100.100 rootpath=/mnt/ARM_FS/ run_diag=no sata_dma_mode=yes serverip=10.10.0.2 setL2CacheWT=yes standalone=fsload 0x2000000 $(image_name);setenv bootargs $(console) root=/dev/mtdblock0 rw ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvPhoneConfig); bootm 0x2000000; stderr=serial stdin=serial stdout=serial usb0Mode=host vxworks_en=no yuk_ethaddr=00:00:00:EE:51:81
- Please note that you have to setup the ethaddr to your MAC-Address (look it up from the backside of the Plug).
NewIT Multi-Boot Option
These are the setting for the multi-boot option from NewIT:
arcNumber=2097 autoload=no baudrate=115200 bootargs_console=console=ttyS0,115200 bootargs_end=:::DB88FXX81:eth0:none bootargs_root_mmc=root=/dev/mmcblk0p2 rootdelay=5 bootargs_root_nand=ubi.mtd=1 root=ubi0:rootfs rootfstype=ubifs bootargs_root=ubi.mtd=1 root=ubi0:rootfs rootfstype=ubifs bootcmd_mmc=setenv bootargs $(bootargs_console) $(bootargs_root_mmc); mmcinit; ext2load mmc 0:1 0x800000 /uImage; bootm 0x00800000 bootcmd_nand=setenv bootargs $(bootargs_console) $(mtdpartitions) $(bootargs_root_nand); nand read.e 0x00800000 0x00100000 0x00400000; bootm 0x00800000 bootcmd=run bootcmd_mmc; run bootcmd_nand bootdelay=3 CASset=min console=console=ttyS0,115200 mtdparts=nand_mtd:0xc0000@0(uboot)ro,0x1ff00000@0x100000(root) disaMvPnp=no disL2Cache=no disL2Prefetch=yes enaAutoRecovery=yes enaCpuStream=no enaDCPref=yes enaICPref=yes enaMonExt=no enaWrAllo=no ethact=egiga0 ethaddr=00:50:43:01:xx:xx ethmtu=1500 ethprime=egiga0 filesize=32D62A image_name=uImage ipaddr=10.4.50.165 loadaddr=0x02000000 loads_echo=0 mainlineLinux=yes MALLOC_len=1 mtdpartitions=mtdparts=orion_nand:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs) mvNetConfig=mv_net_config=(00:11:88:0f:62:81,0:1:2:3),mtu=1500 mvPhoneConfig=mv_phone_config=dev0:fxs,dev1:fxs nandEcc=1bit nandEnvBase=a0000 netbsd_en=no netmask=255.255.255.0 netretry=no pcieTune=no pexMode=RC rcvrip=169.254.100.100 real_bootcmd=run bootcmd_mmc; run bootcmd_nand recover1=setenv mainlineLinux yes; setenv arcNumber 2097; setenv bootcmd run recover2; saveenv; reset recover2=run recover3; setenv bootcmd $(real_bootcmd); saveenv; setenv bootargs $(bootargs_console) $(mtdpartitions root=/dev/ram0 rw ramdisk=0x01100000,8M install_type=nand; bootm 0x00800000 0x01100000 recover3=run recover4; nand erase clean 0x00100000 0x00400000; nand write.e 0x00800000 0x00100000 0x00400000 recover4=usb start; fatload usb 0 0x00800000 uImage; fatload usb 0 0x01100000 initrd rootpath=/mnt/ARM_FS/ sata_dma_mode=yes serverip=10.4.50.5 setL2CacheWT=yes standalone=fsload 0x2000000 $(image_name);setenv bootargs $(console) root=/dev/mtdblock0 rw ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvPhoneConfig); bootm 0x2000000; stderr=serial stdin=serial stdout=serial usb0Mode=host vxworks_en=no yuk_ethaddr=00:00:00:EE:51:81
- Please note that you have to setup the ethaddr to your MAC-Address (look it up from the backside of the Plug).
- Restoring the multi-boot settings
If you wish to restore the settings for the multi-boot option do this: (Keep in mind, that you will need an UBIFS-NAND version to boot from NAND with this settings.)
- At the Marvell prompt type:
Marvell>> resetenv Marvell>> reset
- After booting is completed type the following commands one after the other:
Marvell>> setenv arcNumber 2097 Marvell>> setenv bootargs_console console=ttyS0,115200 Marvell>> setenv bootargs_root_mmc root=/dev/mmcblk0p2 rootdelay=5 Marvell>> setenv bootargs_root_nand ubi.mtd=1 root=ubi0:rootfs rootfstype=ubifs Marvell>> setenv bootargs_root ubi.mtd=1 root=ubi0:rootfs rootfstype=ubifs Marvell>> setenv bootcmd_mmc 'setenv bootargs $(bootargs_console) $(bootargs_root_mmc); mmcinit; ext2load mmc 0:1 0x800000 /uImage; bootm 0x00800000' Marvell>> setenv bootcmd_nand 'setenv bootargs $(bootargs_console) $(mtdpartitions) $(bootargs_root_nand); nand read.e 0x00800000 0x00100000 0x00400000; bootm 0x00800000' Marvell>> setenv bootcmd 'run bootcmd_mmc; run bootcmd_nand' Marvell>> setenv ethaddr 00:50:43:01:xx:xx Marvell>> setenv filesize 32D62A Marvell>> setenv mainlineLinux yes Marvell>> setenv mtdpartitions mtdparts=orion_nand:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs) Marvell>> setenv real_bootcmd 'run bootcmd_mmc; run bootcmd_nand' Marvell>> saveenv
- Please note that you have to setup the ethaddr to your MAC-Address (look it up from the backside of the Plug).
SD-Card Option
- These are the setting for the sd-card option from NewIT
arcNumber=2097 autoload=no baudrate=115200 bootargs_console=console=ttyS0,115200 bootargs_end=:::DB88FXX81:eth0:none bootargs_root=root=/dev/mmcblk0p2 rootdelay=5 bootcmd=setenv bootargs $(bootargs_console) $(bootargs_root); mmcinit; ext2load mmc 0:1 0x800000 /uImage; bootm 0x00800000 bootdelay=3 CASset=min console=console=ttyS0,115200 mtdparts=nand_mtd:0xc0000@0(uboot)ro,0x1ff00000@0x100000(root) disaMvPnp=no disL2Cache=no disL2Prefetch=yes enaAutoRecovery=yes enaCpuStream=no enaDCPref=yes enaICPref=yes enaMonExt=no enaWrAllo=no ethact=egiga0 ethaddr=00:50:43:xx:xx:xx ethmtu=1500 ethprime=egiga0 filesize=32D62A image_name=uImage ipaddr=10.4.50.165 loadaddr=0x02000000 loads_echo=0 mainlineLinux=yes MALLOC_len=1 mvNetConfig=mv_net_config=(00:11:88:0f:62:81,0:1:2:3),mtu=1500 mvPhoneConfig=mv_phone_config=dev0:fxs,dev1:fxs nandEcc=1bit nandEnvBase=a0000 netbsd_en=no netmask=255.255.255.0 netretry=no pcieTune=no pexMode=RC rcvrip=169.254.100.100 real_bootcmd=setenv bootargs $(bootargs_console) $(bootargs_root); mmcinit; ext2load mmc 0:1 0x800000 /uImage; bootm 0x00800000 recover1=setenv mainlineLinux yes; setenv arcNumber 2097; setenv bootcmd run recover2; saveenv; reset recover2=run recover3; setenv bootcmd $(real_bootcmd); saveenv; setenv bootargs $(bootargs_console) root=/dev/ram0 rw ramdisk=0x01100000,8M install_type=mmc; bootm 0x00800000 0x01100000 recover3=usb start; fatload usb 0 0x00800000 uImage; fatload usb 0 0x01100000 initrd rootpath=/mnt/ARM_FS/ sata_dma_mode=yes serverip=10.4.50.5 setL2CacheWT=yes standalone=fsload 0x2000000 $(image_name);setenv bootargs $(console) root=/dev/mtdblock0 rw ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvPhoneConfig); bootm 0x2000000; stderr=serial stdin=serial stdout=serial usb0Mode=host vxworks_en=no yuk_ethaddr=00:00:00:EE:51:81
- Please note that you have to setup the ethaddr to your MAC-Address (look it up from the backside of the Plug).
- Restoring the sd-card settings
If you wish to restore the settings for the sd-card option do this:
- At the Marvell prompt type:
Marvell>> resetenv Marvell>> reset
- After booting is completed type the following commands one after the other:
Marvell>> setenv arcNumber 2097 Marvell>> setenv bootargs_console console=ttyS0,115200 Marvell>> setenv bootargs_root root=/dev/mmcblk0p2 rootdelay=5 Marvell>> setenv bootcmd 'setenv bootargs $(bootargs_console) $(bootargs_root); mmcinit; ext2load mmc 0:1 0x800000 /uImage; bootm 0x00800000' Marvell>> setenv ethaddr=00:50:43:xx:xx:xx Marvell>> setenv filesize 32D62A Marvell>> setenv mainlineLinux=yes Marvell>> setenv 'real_bootcmd=setenv bootargs $(bootargs_console) $(bootargs_root); mmcinit; ext2load mmc 0:1 0x800000 /uImage; bootm 0x00800000' Marvell>> saveenv
- Please note that you have to setup the ethaddr to your MAC-Address (look it up from the backside of the Plug).
Building Images
This is just for me, to remember what to do if making images. You will not need it at all:
- Set the interface to DHCP
squeezeplug:~# nano /etc/network/interfaces
- Delete the files:
squeezeplug:~# rm /etc/udev/rules.d/* squeezeplug:~# rm /lib/udev/write_net_rules * add "mount -a" before exit 0 nano /etc/rc.local
- copy the scrips and make the executetable
- make a logical link to setup
- Delete some packages
squeezeplug:~# apt-get remove exim4 exim4-base exim4-config exim4-daemon-light
- Update the system
squeezeplug:~# apt-get --yes update squeezeplug:~# apt-get --yes upgrade squeezeplug:~# apt-get clean squeezeplug:~# history -c squeezeplug:~# cd /root squeezeplug:~# rm .bash_history
Install squeezeslave on SqueezePlugVM
copy squeezeslave to /usr/bin chmod 777 squeezeslave
squeezeplug:~# apt-get install alsa squeezeplug:~# apt-get install subversion squeezeplug:~# apt-get install libasound2-dev squeezeplug:~# apt-get install libncurses5-dev squeezeplug:~# apt-get install liblircclient-dev squeezeplug:~# squeezeslave &
Last edited:
--Truehl 12:46, 18 June 2010 (PDT)--Truehl 13:56, 7 April 2010 (PDT)
















