Editing Overview on modifying the Synology Server, bootstrap, ipkg etc
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
==Welcome== | ==Welcome== | ||
Welcome to the | Welcome to the modifications section of the Synology Wiki. In this section you will find content produced by '''users''' of Synology Servers enabling you to expand on or change the functionality provided by the standard Synology Firmware. | ||
This wiki page will help you understand what is involved and help you to get started modding your | This wiki page will help you understand what is involved and help you to get started modding your Synlogy server. It is assumed you have already read the [[General Disclaimer on Modifying the Synology Server]]?! | ||
Again | Again this Wiki area is produced by users like you, if you find a Wiki page unclear or lacking detail, or you find out how to do something that is not covered by a Wiki, then please improve this wiki area, it is simple to do and helps us all. | ||
==What is a Synology Server== | ==What is a Synology Server== | ||
A Synology Server is a powerful | A Synology Server is a powerful linux based device designed for Network Attached Storage (NAS). It is very similar to a Personal Computer running the Linux operating system, just with less RAM, less CPU power and lacking the hardware to directly support a monitor, keyboard and mouse etc. | ||
==What can I do by Modifying a Synology Server== | ==What can I do by Modifying a Synology Server== | ||
Despite not being a PC, using the provided management web interface and the [[Modifications|Command Line Interface]] you can take full control of the device, change the way it operates and install additional software. Much of the software is available free of charge produced by users like you. There can be many advantages to using a device such as a Synology Server rather than a PC, small footprint, low power consumption, and dedication to the set tasks. | Despite not being a PC, using the provided management web interface and the [[Modifications|Command Line Interface]] you can take full control of the device, change the way it operates and install additional software. Much of the software is available free of charge produced by users like you. There can be many advantages to using a device such as a Synology Server rather than a PC, small footprint, low power consumption, and dedication to the set tasks. | ||
However, modifying your NAS will invalidate your software support warranty, although not normally your hardware warranty, as described in [[General Disclaimer on Modifying the Synology Server]]. Modifying your Synology Server is also not without considerable risk of making it either temporarily unstable or temporarily unuseable. In virtually all cases the Synology Server can be returned to its former as new condition (in software terms) by fully re-installing the Synology firmware. Re-installing the firmware can (but not normally) result in | However, modifying your NAS will invalidate your software support warranty, although not normally your hardware warranty, as described in [[General Disclaimer on Modifying the Synology Server]]. Modifying your Synology Server is also not without considerable risk of making it either temporarily unstable or temporarily unuseable. In virtually all cases the Synology Server can be returned to its former as new condition (in software terms) by fully re-installing the Synology firmware. Re-installing the firmware can (but not normally) result in loosing your data, so ensure you have a backup of your data before modifying the NAS. | ||
==What do I need to do== | ==What do I need to do== | ||
Line 27: | Line 27: | ||
===for Integrated 3rd-Party Applications=== | ===for Integrated 3rd-Party Applications=== | ||
With firmware 637 synology provided developers with the access and documentation to produce 3rd-Party application software that integrates with the synology web based Management GUI (see [[Synology_NAS_Server_3rd-Party_Application_Integration]]). For synology users 3rd-Party applications that have been integrated provide the potential to simplify the installation of 3rd-Party Applications and the ability to install/use/manage them via the Synology web based Managemant GUI. | With firmware 637 synology provided developers with the access and documentation to produce 3rd-Party application software that integrates with the synology web based Management GUI (see [[Synology_NAS_Server_3rd-Party_Application_Integration]]). For synology users 3rd-Party applications that have been integrated provide the potential to simplify the installation of 3rd-Party Applications and the ability to install/use/manage them via the Synology web based Managemant GUI. At this point in time (FW 637 just released) the author is not aware of any Integrated 3rd-Party applications, however this situation is likely to change fairly quickly. For a list of available Synology Integrated 3rd-Party applications and other related information see [[Synology_NAS_Server_3rd-Party_Application_Integration]]. | ||
===for compiled/binary programs=== | ===for compiled/binary programs=== | ||
Compiled/binary programs (compiled from source code programs, see below) are the most powerfull type of program you can install on the Synology Server. They can provide rich content and wide functionality but this comes with increased potential for corrupting the Server compared to php applications. The compiled programs are distributed as binaries (usually with no file name extension but sometimes with a .bin extension). Some of these binaries require other programs to be installed on your machine so they can run. If you want to use a binary it must have been compiled specifically for | Compiled/binary programs (compiled from source code programs, see below) are the most powerfull type of program you can install on the Synology Server. They can provide rich content and wide functionality but this comes with increased potential for corrupting the Server compared to php applications. The compiled programs are distributed as binaries (usually with no file name extension but sometimes with a .bin extension). Some of these binaries require other programs to be installed on your machine so they can run. If you want to use a binary it must have been compiled specifically for your synology hardware platform, i.e. see [[Is my NAS an ARM or a PowerPC CPU model]]. Each of these processors require programs compiled specifically for them, a program compiled for PPC processors will not work on an ARM processor, and vice versa. | ||
To | To run a binary program: | ||
#Drop it in a folder on your NAS e.g. "/volume1/public". If you are using an ftp client (e.g. windows file explorer) you won't see the "/volume1" path, just your shared folder name e.g. "public". Note: this directory ("public") is not created on all NAS's, if you do not have it you can create it in the web management GUI | |||
#Drop it in a folder on your NAS e.g. "/volume1/public". If you are using an ftp client (e.g. windows file explorer) you won't see the "/volume1" path, just your shared folder name e.g. "public". Note: this directory ("public") is not created on all NAS's, if you do not have it you can create it in the web management GUI | |||
#Enable and then login using the [[Modifications|Command Line Interface]] as "root" | #Enable and then login using the [[Modifications|Command Line Interface]] as "root" | ||
#Change Directory to the folder where you put the file using the cd command, e.g. "cd /volume1/public". Note: when using the [[Modifications|Command Line Interface]] all the shared directories ("music", "web", "video", "photo" etc.) are located in "/volume1" | #Change Directory to the folder where you put the file using the cd command, e.g. "cd /volume1/public". Note: when using the [[Modifications|Command Line Interface]] all the shared directories ("music", "web", "video", "photo" etc.) are located in "/volume1" | ||
#Make sure the binary file has execute permisions using the command "ls -l" (if it has execute permissions you will see an "x" in the permissions string). If it doesn't have execute permission give it execute permisison using by entering the command "chmod | #Make sure the binary file has execute permisions using the command "ls -l" (if it has execute permissions you will see an "x" in the permissions string). If it doesn't have execute permission give it execute permisison using by entering the command "chmod +x XXXX.XXX" where XXXX.XXX is the name of the file | ||
#Run | #Run the progran by entering "./XXXX.XXX" | ||
You can find compiled programs for the ARM CPU [[Compiled_programs_for_Marvell_mv5281_ARM-based_Synology_Products|here]] (If you compile any of your own please add them). | |||
The compiled program "screen" which you can find [[Compiled_programs_for_Marvell_mv5281_ARM-based_Synology_Products|here]] (for ARM CPU's) is an example, it has no other dependecies, so you can just copy the single file and imediately run the program. No need for ipkg, bootstrap or anything else. | |||
===for source code programs=== | |||
As stated above compiled/binary programs (compiled from source code programs) are the most powerfull type of program you can install on the Synology Server. They can provide rich content and wide functionality but this comes with increased potential for corrupting the Server compared to php applications. Source code programs are the source of compiled/binary programs (see above) but need compiling into binaries before they can be used. Often the easiest way to do this is using the ipkg package handler. The source code applications are distributed in an uncompiled state so that they can be compiled by the installer to suit the target hardware platform. Consequently you do not need to worry about [[Is my NAS an ARM or a PowerPC CPU model]] when selecting a source code program as your compiler (see ipkg below) will handle this for you. | |||
As an example, if you take a look at [http://ipkg.nslu2-linux.org/feeds/optware/syno-x07/cross/unstable/ http://ipkg.nslu2-linux.org/feeds/optware/syno-x07/cross/unstable/] you will find some 900 packages you can use on ARM based synology products using ipkg to compile and install them. | |||
==== | ====ipkg==== | ||
To make the installation, update and removal process of software easier the computing industry adopted the principle of [http://en.wikipedia.org/wiki/Package_management_system the Package Management System]. [http://en.wikipedia.org/wiki/Ipkg ipkg] is a dpkg-inspired, very lightweight Itsy Package Management System for small Linux systems and embedded devices, such as the Synology Servers. ipkg is often the | To make the installation, compiling, update and removal process of software easier the computing industry adopted the principle of [http://en.wikipedia.org/wiki/Package_management_system the Package Management System]. [http://en.wikipedia.org/wiki/Ipkg ipkg] is a dpkg-inspired, very lightweight Itsy Package Management System for small Linux systems and embedded devices, such as the Synology Servers. Synology products do not currently come with ipkg installed hence the installation of ipkg is often the first recomended step to install applications that require compilation. | ||
However ipkg is also dependant a few other software bits and pieces that are also not installed on the synology servers. This is where the Bootstrap programs are used as they automate the installation of ipkg and the other packages it needs. | |||
The alternative to using ipkg is to use compiled binaries as decribed previously, but for these you are dependant on other Synology users with the same hardware configuration to make these Binaries available to you. | |||
ipkg is | |||
After you have installed ipkg (see the bootstrap section below), you can install ipkg packages of programs using the command "ipkg install xxxx" where xxxx is the name of the package. Once the package is installed you can run it using "xxxx" where xxxx is the name of the program you just installed (this is normally the same as the package name, but not always). | After you have installed ipkg (see the bootstrap section below), you can install ipkg packages of programs using the command "ipkg install xxxx" where xxxx is the name of the package. Once the package is installed you can run it using "xxxx" where xxxx is the name of the program you just installed (this is normally the same as the package name, but not always). | ||
Line 61: | Line 59: | ||
For help with ipkg commands use "ipkg -help". | For help with ipkg commands use "ipkg -help". | ||
====Bootstrap==== | |||
A bootstrap is a script that installs ipkg. The bootstraps are specific to the processor in your Synology Server, so make sure you use a compatible one, see [[ | A bootstrap is a script that installs ipkg. The bootstraps are specific to the processor in your Synology Server, so make sure you use a compatible one, see [[Is my NAS an ARM or a PowerPC CPU model]]. | ||
You | You are best checking the forum for the latest info on the best bootstrap to use. If you are an experienced linux user the page [[How to Install Bootstrap]] gives clear instructions how to install '''ipkg''', you may find it more concise and therefore quicker to follow than the more detailed information provided below for beginers. | ||
Popular Bootstraps are: | Popular Bootstraps are: | ||
For | For PPC models | ||
[http://www.nslu2-linux.org/wiki/DS101/DS101BootStrap www.nslu2-linux.org/wiki/DS101/DS101BootStrap] which uses [http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/unstable/ http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/unstable/] as its feed. | |||
[http:// | |||
For | For ARM models | ||
[http://www.buechse.de/SYNOLOGY/syno-x07-bootstrap_1.0-jb_arm.xsh www.buechse.de/SYNOLOGY/syno-x07-bootstrap_1.0-jb_arm.xsh] which uses [http://ipkg.nslu2-linux.org/feeds/optware/syno-x07/cross/unstable/ http://ipkg.nslu2-linux.org/feeds/optware/syno-x07/cross/unstable/] as its feed. | |||
The | The bootstraps are normally .xsh files. To install a .xsh file (and therefore the bootstrap): | ||
#Reboot your NAS. | #Reboot your NAS. | ||
#Enable and then Login to the [[Modifications|Command Line Interface]] as user "root", password is the same as for admin. | #Enable and then Login to the [[Modifications|Command Line Interface]] as user "root", password is the same as for admin. | ||
#Change to a directory such as | #Change to a directory such as /volume1/public (note this directory is not created on all NAS's, if you dont have it you can create it in the web management GUI), i.e. enter the command "cd /volume1/public" | ||
#Get the NAS to download the bootstrap, e | #Get the NAS to download the bootstrap, i.e. if you have an ARM model enter the command "wget http://www.buechse.de/SYNOLOGY/syno-x07-bootstrap_1.0-jb_arm.xsh" | ||
#Now run the .xsh script, e.g. if you have an ARM model and used the buechse bootstrap enter the command "sh syno-x07-bootstrap_1.0-jb_arm.xsh" | |||
#Now run the .xsh script, e.g. if you have an | #After the script has finished you can delete the script file, e.g. for ARM and buechse bootstrap users enter the command "rm syno-x07-bootstrap_1.0-jb_arm.xsh" | ||
#After the script has finished you can delete the script file, e.g. for | #Update the ipkg list of installed products using the command "ipkg update" | ||
#Update the ipkg installed packages to the latest versions using the command "ipkg upgrade" | |||
#Finished, you can now install ipkg packages using the command "ipkg install xxxx" where xxxx is the name of the package. You can list all the available packages using the command "ipkg list". As this is a long list you can filter it using the command "ipkg list | grep xxxx" where xxxx is the text you want to search for. | |||
#Update the ipkg list of | |||
# | |||
#Finished, you can now install ipkg packages using the command "ipkg install xxxx" where xxxx is the name of the package. You can list all the available packages using the command "ipkg list". As this is a long list you can filter it using the command "ipkg list | grep xxxx" where xxxx is the text you want to search for | |||
Note: IPKG expects to find your IPKG files/programs in the path "/opt". As the synology NAS's put all your files in "/volume1" the bootstraps put your IPKG files/programs in "/volume1/opt" but then mount this directory so it ALSO appears as "/opt". Hence, do not think that "/volume1/opt" and "/opt" are duplicated files, they are not duplicated, they are in fact exactly the same directory. | |||
====Toolchain==== | ====Toolchain==== | ||
A Toolchain is a | A Toolchain is a developers plugin that allows programmers to develop programs for target systems, in our case the Synology Servers. Unless you are going to write/modify programs you won't need Toolchain. | ||
If you do want to create your own ipkg | If you do want to create your own ipkg pakages see [http://www.nslu2-linux.org/wiki/Optware/AddAPackageToOptware http://www.nslu2-linux.org/wiki/Optware/AddAPackageToOptware] | ||
==Other usefull sources of info== | ==Other usefull sources of info== | ||
This Synology Wiki area and the Synology forum are your main sources, however, other very usefull areas are: | This Synology Wiki area and the Synology forum are your main sources, however, other very usefull areas are: | ||
*[http://www.nslu2-linux.org NSLU2-LINUX] | *[http://www.nslu2-linux.org NSLU2-LINUX] | ||
*[http://synology.nas-central.org/index.php/Main_Page NAS-Central] | *[http://synology.nas-central.org/index.php/Main_Page NAS-Central] | ||
*[http://oinkzwurgl.org/diskstation flipflip's DiskStation Resources] | *[http://oinkzwurgl.org/diskstation flipflip's DiskStation Resources] | ||
*[http://www.freeos.com/articles/3102 An overview of the Linux filesystem] | *[http://www.freeos.com/articles/3102 An overview of the Linux filesystem] | ||