{"id":539,"date":"2024-12-08T14:49:12","date_gmt":"2024-12-08T07:49:12","guid":{"rendered":"https:\/\/nbvps.anhtuanlqd.com\/?p=539"},"modified":"2025-02-06T13:32:43","modified_gmt":"2025-02-06T06:32:43","slug":"install-entware-on-synology-nas","status":"publish","type":"post","link":"https:\/\/nbvps.anhtuanlqd.com\/?p=539","title":{"rendered":"Install Entware on Synology NAS"},"content":{"rendered":"\n<p>\u0110\u1ed1i v\u1edbi <strong>Synology<\/strong> th\u00ec l\u00e0m nh\u01b0 sau: <\/p>\n\n\n\n<p><strong>D\u00f9ng &#8220;sudo su&#8221;<\/strong><a href=\"https:\/\/github.com\/Entware\/Entware\/wiki\/Install-on-Synology-NAS\/_edit\"><\/a><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir -p \/volume1\/@Entware\/opt\nrm -rf \/opt\nmkdir \/opt\nmount -o bind \"\/volume1\/@Entware\/opt\" \/opt\nln -s \/volume1\/@Entware\/opt\/ \/opt\nwget -O - https:\/\/bin.entware.net\/x64-k3.2\/installer\/generic.sh | \/bin\/sh\n\necho 'export PATH=$PATH:\/opt\/bin' >> ~\/.bashrc\nsource ~\/.bashrc<\/code><\/pre>\n\n\n\n<p><strong>Sau khi c\u00e0i th\u00e0nh c\u00f4ng, m\u1ed7i l\u1ea7n c\u1ea7n c\u00e0i package, v\u00e0 l\u00e0m nh\u01b0 sau v\u1edbi v\u00ed d\u1ee5 l\u00e0 c\u00e0i unzip:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo \/opt\/bin\/opkg install unzip<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Introduction<a href=\"https:\/\/github.com\/Entware\/Entware\/wiki\/Install-on-Synology-NAS#introduction\"><\/a><\/h2>\n\n\n\n<p><a href=\"https:\/\/www.synology.com\/en-global\/knowledgebase\/DSM\/tutorial\/General\/What_kind_of_CPU_does_my_NAS_have\">ARM &amp; intel based devices<\/a>&nbsp;are supported. DSM version must be 3.2 or higher. Use armv5 installer for Marvell Kirkwood mv6282 cpu, you can use armv7 installer for newer ARM cpu&#8217;s. Although armv7 repo was compiled with cortex-a9 optimization it was successfully tested on Marvell Armada XP based NAS. Use aarch64 installer for Realtek RTD129x CPU (64 bit arm).<\/p>\n\n\n\n<p>Guide tested on Synology DS1618+ w\/ DSM 6.2-23739 Update 1&nbsp;<br>Guide tested on Synology DS920+ w\/ DSM 7.0-41890<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Deploying Entware<a href=\"https:\/\/github.com\/Entware\/Entware\/wiki\/Install-on-Synology-NAS#deploying-entware\"><\/a><\/h2>\n\n\n\n<p><strong>1<\/strong>. Create a folder on your hdd (outside rootfs)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir -p \/volume1\/@Entware\/opt<\/code><\/pre>\n\n\n\n<p><strong>2<\/strong>. Remove&nbsp;<code>\/opt<\/code>&nbsp;and mount optware folder<\/p>\n\n\n\n<p>Make sure that&nbsp;<code>\/opt<\/code>&nbsp;folder is empty (Optware is not installed), we will&nbsp;<strong>remove<\/strong>&nbsp;<code>\/opt<\/code>&nbsp;folder with its contents at this step.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rm -rf \/opt\nmkdir \/opt\nmount -o bind \"\/volume1\/@Entware\/opt\" \/opt<\/code><\/pre>\n\n\n\n<p>Note : if the bind command doesn&#8217;t work, try to create a link instead :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ln -s \/volume1\/@Entware\/opt\/ \/opt<\/code><\/pre>\n\n\n\n<p><strong>3<\/strong>. Run install script depending on the processor (uname -m to know)<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>for armv8 (aarch64) &#8211; Realtek RTD129x<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>wget -O - https:\/\/bin.entware.net\/aarch64-k3.10\/installer\/generic.sh | \/bin\/sh<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>for armv5<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>wget -O - https:\/\/bin.entware.net\/armv5sf-k3.2\/installer\/generic.sh | \/bin\/sh<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>for armv7<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>wget -O - https:\/\/bin.entware.net\/armv7sf-k3.2\/installer\/generic.sh | \/bin\/sh<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>for x64<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>wget -O - https:\/\/bin.entware.net\/x64-k3.2\/installer\/generic.sh | \/bin\/sh<\/code><\/pre>\n\n\n\n<p><strong>4<\/strong>. Create Autostart Task<\/p>\n\n\n\n<p>Create a triggered user-defined task in Task Scheduler.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Goto: DSM &gt; Control Panel &gt; Task Scheduler<\/li>\n\n\n\n<li>Create &gt; Triggered Task &gt; User Defined Script\n<ul class=\"wp-block-list\">\n<li>General\n<ul class=\"wp-block-list\">\n<li>Task: Entware<\/li>\n\n\n\n<li>User: root<\/li>\n\n\n\n<li>Event: Boot-up<\/li>\n\n\n\n<li>Pretask: none<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Task Settings\n<ul class=\"wp-block-list\">\n<li>Run Command: (see bellow)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/bin\/sh\n\n# Mount\/Start Entware\nmkdir -p \/opt\nmount -o bind \"\/volume1\/@Entware\/opt\" \/opt\n\/opt\/etc\/init.d\/rc.unslung start\n\n# Add Entware Profile in Global Profile\nif grep  -qF  '\/opt\/etc\/profile' \/etc\/profile; then\n\techo \"Confirmed: Entware Profile in Global Profile\"\nelse\n\techo \"Adding: Entware Profile in Global Profile\"\ncat &gt;&gt; \/etc\/profile &lt;&lt;\"EOF\"\n\n# Load Entware Profile\n&#91; -r \"\/opt\/etc\/profile\" ] &amp;&amp; . \/opt\/etc\/profile\nEOF\nfi\n\n# Update Entware List\n\/opt\/bin\/opkg update<\/code><\/pre>\n\n\n\n<p><strong>6<\/strong>. Reboot your NAS.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Tips<a href=\"https:\/\/github.com\/Entware\/Entware\/wiki\/Install-on-Synology-NAS#tips\"><\/a><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Firmware update erases&nbsp;<code>\/opt<\/code>&nbsp;folder. You should deploy Entware outside of rootfs and create symlink to&nbsp;<code>\/opt<\/code>&nbsp;or use&nbsp;<code>mount -o bind<\/code>. After firmware update you may need to edit&nbsp;<code>\/etc\/rc.local<\/code>&nbsp;and&nbsp;<code>\/root\/.profile<\/code>&nbsp;files once more.<\/li>\n\n\n\n<li>You can create task that start after Entware has loaded.\n<ul class=\"wp-block-list\">\n<li>Create &gt; Triggered Task &gt; User Defined Script\n<ul class=\"wp-block-list\">\n<li>General\n<ul class=\"wp-block-list\">\n<li>Task: Entware &#8211; iperf3 Server<\/li>\n\n\n\n<li>User: root<\/li>\n\n\n\n<li>Event: Boot-up<\/li>\n\n\n\n<li>Pretask:&nbsp;<strong>Entware<\/strong>&nbsp;(name of the other entware task)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Task Settings\n<ul class=\"wp-block-list\">\n<li>Run Command: (see bellow)\n<ul class=\"wp-block-list\">\n<li><code># Run ( \/opt\/bin\/iperf3 -s -D -p 5201 ) as GUEST user.<\/code><\/li>\n\n\n\n<li><code>sudo -H -u guest bash -c 'echo \"I am $USER, with uid $UID\"; \/opt\/bin\/iperf3 -s -D -p 5201'<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p><a href=\"https:\/\/github.com\/Entware\/Entware\/wiki\/_Footer\/_edit\"><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0110\u1ed1i v\u1edbi Synology th\u00ec l\u00e0m nh\u01b0 sau: D\u00f9ng &#8220;sudo su&#8221; Sau khi c\u00e0i th\u00e0nh c\u00f4ng, m\u1ed7i l\u1ea7n c\u1ea7n c\u00e0i package, v\u00e0 l\u00e0m nh\u01b0 sau v\u1edbi v\u00ed d\u1ee5 l\u00e0 c\u00e0i unzip: Introduction ARM &amp; intel based devices&nbsp;are supported. DSM version must be 3.2 or higher. Use armv5 installer for Marvell Kirkwood mv6282 cpu, you can use [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_eb_attr":"","footnotes":""},"categories":[50,2,5],"tags":[189,190],"class_list":["post-539","post","type-post","status-publish","format-standard","hentry","category-command","category-linux","category-synology","tag-entware","tag-fusermount3"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/nbvps.anhtuanlqd.com\/index.php?rest_route=\/wp\/v2\/posts\/539","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nbvps.anhtuanlqd.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nbvps.anhtuanlqd.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nbvps.anhtuanlqd.com\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/nbvps.anhtuanlqd.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=539"}],"version-history":[{"count":4,"href":"https:\/\/nbvps.anhtuanlqd.com\/index.php?rest_route=\/wp\/v2\/posts\/539\/revisions"}],"predecessor-version":[{"id":591,"href":"https:\/\/nbvps.anhtuanlqd.com\/index.php?rest_route=\/wp\/v2\/posts\/539\/revisions\/591"}],"wp:attachment":[{"href":"https:\/\/nbvps.anhtuanlqd.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=539"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nbvps.anhtuanlqd.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=539"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nbvps.anhtuanlqd.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=539"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}