Freelink - Convert the LinkStation into a Full-fledged Debian Linux Server
This article Based on work by frontalot and mox69. Originally by frontalot. at Linkstationwiki.org
How to Convert the LinkStation into a Full-fledged Debian Linux Server
The following guide will attempt to explain the steps involved in converting a stock Buffalo LinkStation into a fully functional Linux system with Samba administered via Webmin/SSH. The following is a list of things that I will assume from the reader:
- You have a basic understanding of Linux command line functions.
- Your LinkStation must be connected to the Internet! I have mine connected via a standard 5 port router to take advantage of the router's DHCP capabilities.
- It will be handy to have the IP addresses of your ISP’s DNS servers.
- You know the current IP address of your LinkStation.
- Some familiarity with the Linux text editor called “vi.”
Note: The HS-DGL300 was tested to be flushed to latest stock firmware for the HS (1.62, Jul 2008). After this the HG freelink firmware was flashed using the Firmware-Updater.exe from the stock firmware distribution (you must copy the exe to the freelink directory). The box must be restarted and the HG freelink firmware must be re-applied using the Firmware-Updater.exe from the HG freelink distribution. The IP address prior to this update will be retrieved by DHCP, as the box is in emergency mode and therefore shows up as "-EM" in the Firmware updater (using the Firmware-Updater.exe from the HG freelink distribution). Finally, after flashing and reboot, the IP address will be retrieved by DHCP by the debian system and you could telnet to it and proceed as described below. See also 
2) Flash The The LinkStation firmware flasher
- Open the archive and carefully read the included README file for any specific instructions.
- Disable any firewall(s), including any built-in Windows firewall
- Make sure the LinkStation and your PC are on the same sub-network. This likely requires that you change the IP address (and probably the subnet-mask) of your PC and router to a different IP address (out of the box the LS should start out on 192.168.1.XXX but in EM Mode it will have a static IP address of 192.168.11.150)
- Run the firmware updater executable HD-???LAN FWUpdate-english.exe
- After finding your LinkStation, press the "Renew Firmware" button, and wait. Have patience, and keep calm. If you think the Firmware updater is acting strange, do not try to disconnect the LinkStation or abort the update in another way. You may see an error from the firmware updater when the process is complete. Don't panic right away. This is because the updater can no longer reach the Linkstation since the IP address has probably changed. Don't panic, move on to the next step.
- After flashing connect your LinkStation up to a network with a DHCP server so that it can get an IP address on your network. For many people this might default to 192.168.1.XXX depending on your existing network config.
- Find your LinkStation on the network: Your linkstation is trying to get its IP address through DHCP. Figure out what IP it is now using and telnet to that IP address. Telnet to it with PuTTYtel (or your favorite telnet client.) You will be at the root shell.
Debian GNU/Linux 3.1 %h
3) Change the root password
- If you want to name your LinkStation something besides LinkStation, type the following commands (replacing BuffaloNas with your choice of name):
echo “127.0.0.1 BuffaloNas” > /etc/hosts hostname BuffaloNas export hosts echo “BuffaloNas” > /etc/hostname
- Do you need to use static network settings? Click here.
4) Test your Internet connection:
if you get no response you will have to edit the /etc/resolv.conf file and add a DNS server address to the bottom
#frontalot's static setup (adjust to your network settings) # search nameserver 192.168.1.1 nameserver <<DNS SERVER IP>>
5) Now we can begin installing software. Debian uses a program called The Advanced Packaging Tool (apt) to manage the software on your computer. Think of it as a very advanced command line version of Windows add / remove programs. First update the apt package list and install SSH:
note: You might need to edit your /etc/apt/sources.list file, changing all references to "stable" with "etch" since etch is no longer the stable Debian distribution
6) Then install OpenSSH:
note: this step is only necessary for the PowerPC(LS1,HG) versions of freelink. The MIPSel(LS2) version comes with SSH enabled
apt-get install ssh
7) Answer the installation prompts, making sure to enable the SSH daemon (server). Now use your favorite SSH program to make sure we can SSH in (I prefer PuTTY). If SSH is working you should be able to log in like this:
8) You should upgrade all currently installed programs:
9) Now close out your telnet session and disable the telnet daemon (utelnetd):
10) Let's install specific packages. Type the following at the SSH prompt:
apt-get install samba smbfs
11) For Debian, Webmin no longer exists in the Stable repository. It was removed some time ago from unstable at the request of the maintainer. As a result it never made it into testing and at present does not exist in Etch (the current Stable)
Look here for instructions on installing Webmin, you will have to install modules from WITHIN webmin:
12) Install the Samba module from within Webmin and configure:
13) You must add your computer's IP address to the list of allowed hosts:
15) And connect to Webmin via HTTPS, e.g., https://_LINKSTATION_IP_:10000
16) Congratulations, you have successfully installed FreeLink. now you may want to:
- Free up some space on hda1
- Correct the system time and setup Network Time Protocol (NTP)
- Install a 2.6.XX kernel
- Have a look at other Debian specific articles
Static IP Address
3a) Only for users who need static network settings you must edit /etc/network/interfaces:
# we always want the loopback interface # auto lo iface lo inet loopback # # default dynamic setup (no adjustment necessary) # auto eth0 iface eth0 inet dhcp hostname `hostname` # # frontalot's static setup (adjust to your network settings) # # auto eth0 # iface eth0 inet static # address 192.168.1.3 # network 192.168.1.0 # netmask 255.255.255.0 # broadcast 192.168.1.255
3b) You must correctly edit this file to reflect your network settings. In our example:
# we always want the loopback interface # auto lo iface lo inet loopback # # default dynamic setup (no adjustment necessary) # # auto eth0 #iface eth0 inet dhcp # hostname `hostname` # #frontalot's static setup (adjust to your network settings) # auto eth0 iface eth0 inet static address 192.168.1.3 network 192.168.1.0 netmask 255.255.255.0 broadcast 192.168.1.255 gateway 192.168.1.1
The gateway definition is necessary if you are sitting in an intranet, e.g. internet
3c) Save the file and exit vi. To change the DNS servers edit:
#frontalot's static setup (adjust to your network settings) # search nameserver 192.168.1.1
3d) We will be using the following DNS servers in our example:
#frontalot's static setup (adjust to your network settings) # search nameserver 192.168.1.1 nameserver 22.214.171.124 nameserver 126.96.36.199
3e) Save the file and exit vi.
3f) Reboot before you move on to step 4
DHCP IP Address for LS2 running the 2.4 Kernel
The dhcp-client package that provides DHCP for LS2 does not work; as some of the necessary values in the 2.4 kernel are not predefined. So, instead of using dhcp-client, we can use pump, which is both a BOOTP and DHCP client written by RedHat.
1) Uninstall dhcp-client:
apt-get remove dhcp-client
2) Install pump:
apt-get install pump
3) Use the normal dhcp configuration in /etc/network/interfaces and /etc/resolv.conf