{"id":263,"date":"2018-05-15T17:30:16","date_gmt":"2018-05-15T09:30:16","guid":{"rendered":"https:\/\/wp.yaanren.win\/?p=263"},"modified":"2018-05-15T17:30:16","modified_gmt":"2018-05-15T09:30:16","slug":"seafile-server-on-arm64-aarch64-working","status":"publish","type":"post","link":"https:\/\/wp.625300.xyz\/?p=263","title":{"rendered":"Seafile server on arm64 (aarch64). &#8211; WORKING"},"content":{"rendered":"<div id=\"topic-title\" class=\"ember-view\">\n<div class=\"container\">\n<div class=\"title-wrapper\"><\/div>\n<\/div>\n<\/div>\n<div class=\"container posts\">\n<div id=\"ember800\" class=\"ember-view\">\n<div id=\"ember954\" class=\"ember-view\">\n<div class=\"timeline-container timeline-docked\">\n<div class=\"topic-timeline\">\n<div class=\"timeline-controls\"><\/div>\n<div class=\"timeline-scrollarea-wrapper\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"row\">\n<section id=\"topic\" class=\"topic-area\" data-topic-id=\"1405\">\n<div class=\"posts-wrapper\">\n<div id=\"ember813\" class=\"ember-view\">\n<div class=\"post-stream\">\n<div class=\"topic-post clearfix topic-owner regular\">\n<article id=\"post_1\" class=\"boxed onscreen-post\" data-post-id=\"3726\" data-user-id=\"565\">\n<div class=\"row\">\n<div class=\"topic-body clearfix\">\n<div class=\"topic-meta-data\">\n<div class=\"read-state read\" title=\"Post is unread\"><\/div>\n<\/div>\n<div class=\"regular contents\">\n<div class=\"cooked\">\n<p>Hey!<\/p>\n<p>I just landed into seafile, and found out that you have a wonderful RPi server! Thanks for that!<\/p>\n<p>On the other side, my RPi is busy with some video content, so I wanted to try the server on my Pine64, which is arm64 (aarch64) linux powered\u2026 But, it failed miserably.<br \/>\nIt\u2019s something I can do to help development on the aarch architecture? I\u2019d be happy to use one of my boxes to compile seafile in aarch64\u2026<\/p>\n<hr \/>\n<p>Now, the workaround\/how-to to make it work on a aarch64, but I warn you: It\u2019s very ugly.<\/p>\n<pre><code>&gt; Generating ccnet configuration in \/home\/seafile\/ccnet...\n&gt; .\/setup-seafile.sh: line 483: \/home\/seafile\/seafile-server-6.0.6\/seafile\/bin\/ccnet-init: No such file or directory\n<\/code><\/pre>\n<p>and doing a fast \u201cfile\u201d, it looks for the ld.linux.armhf, which I don\u2019t have on my box\u2026<\/p>\n<pre><code>&gt; seafile@pine64:~\/seafile-server-6.0.6$ file \/home\/seafile\/seafile-server-6.0.6\/seafile\/bin\/ccnet-init\n&gt; \/home\/seafile\/seafile-server-6.0.6\/seafile\/bin\/ccnet-init: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter \/lib\/ld-linux-armhf.so.3, for GNU\/Linux 2.6.26, BuildID[sha1]=3202b5db82317ff70cbfc50e050c436d8919f72c, stripped\n<\/code><\/pre>\n<p>The thing is, it doesn\u2019t find it because is libc6-aarch64, not libc6-armhf (Although aarch64 is still architecture compatible). So\u2026 installing cross libraries and some armhf libs by hand, ccnet-init executed and the installer resulted ok:<\/p>\n<p>created symlink to the ld.linux-armhf.so.3 and also libselinux1 on a common place and updated LD_LIBRARY_PATH:<br \/>\nexport LD_LIBRARY_PATH=\/usr\/arm-linux-gnueabihf\/lib\/:\/home\/seafile\/lib\/arm-linux-gnueabihf\/<\/p>\n<p>And voil\u00e1, setup finished, seafile started and seahub working also.<\/p>\n<pre><code>&gt; seafile@pine64:~\/seafile-server-6.0.6$ LD_LIBRARY_PATH=\/usr\/arm-linux-gnueabihf\/lib\/:\/home\/seafile\/lib\/arm-linux-gnueabihf\/ .\/seafile.sh start\n\n&gt; [12\/07\/16 16:44:52] ..\/common\/session.c(132): using config file \/home\/seafile\/conf\/ccnet.conf\n&gt; Starting seafile server, please wait ...\n&gt; Seafile server started\n\n&gt; Done.\n<\/code><\/pre>\n<p>Please contact me if willing to compile on aarch64 and need anything\u2026<br \/>\nDraakuns.<\/p>\n<\/div>\n<section class=\"post-menu-area clearfix\">\n<nav class=\"post-controls clearfix\">\n<div class=\"actions\">\n<div class=\"like-button\"><\/div>\n<\/div>\n<\/nav>\n<\/section>\n<\/div>\n<section class=\"post-actions\"><\/section>\n<div class=\"post-links-container\">\n<ul class=\"post-links\">\n<li><a class=\"track-link inbound\" href=\"https:\/\/forum.seafile.com\/t\/seafile-installation-issue-on-raspberry-pi-aarch64\/1948\/2\"><i class=\"fa fa-link d-icon d-icon-link\" aria-hidden=\"true\"><\/i>Seafile installation issue on Raspberry PI, aarch64<span class=\"badge badge-notification clicks\">1<\/span><\/a><\/li>\n<\/ul>\n<\/div>\n<div class=\"topic-map\"><\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<div class=\"topic-post clearfix regular\">\n<article id=\"post_2\" class=\"boxed onscreen-post\" data-post-id=\"3868\" data-user-id=\"588\">\n<div class=\"row\">\n<div class=\"topic-body clearfix\">\n<div class=\"topic-meta-data\">\n<div class=\"post-info post-date\"><\/div>\n<div class=\"read-state read\" title=\"Post is unread\"><\/div>\n<\/div>\n<div class=\"regular contents\">\n<div class=\"cooked\">\n<p>When you say<\/p>\n<blockquote><p>\u201cSo\u2026 installing cross libraries and some armhf libs by hand\u201d<\/p><\/blockquote>\n<blockquote><p>created symlink to the ld.linux-armhf.so.3 and also libselinux1 on a common place and updated LD_LIBRARY_PATH:<br \/>\nexport LD_LIBRARY_PATH=\/usr\/arm-linux-gnueabihf\/lib\/:\/home\/seafile\/lib\/arm-linux-gnueabihf\/<\/p><\/blockquote>\n<p>can you please provide the details? I am struggling to make it work on my arm64 (odroid-c2) device.<\/p>\n<\/div>\n<section class=\"post-menu-area clearfix\">\n<nav class=\"post-controls clearfix\">\n<div class=\"actions\">\n<div class=\"like-button\"><\/div>\n<\/div>\n<\/nav>\n<\/section>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<div class=\"topic-post clearfix regular\">\n<article id=\"post_3\" class=\"boxed onscreen-post\" data-post-id=\"3903\" data-user-id=\"588\">\n<div class=\"row\">\n<div class=\"topic-body clearfix\">\n<div class=\"topic-meta-data\">\n<div class=\"read-state read\" title=\"Post is unread\"><\/div>\n<\/div>\n<div class=\"regular contents\">\n<div class=\"cooked\">\n<p><strong>Wow! So I finally figured it out and managed to run Seafile on Odroid-C2.<\/strong><\/p>\n<p><strong>It is much easier than I expected. I am running the raspberry server version of Seafile (v 6.6), available at\u00a0<a href=\"https:\/\/github.com\/haiwen\/seafile-rpi\/releases\" rel=\"nofollow noopener\">https:\/\/github.com\/haiwen\/seafile-rpi\/releases\u00a0<span class=\"badge badge-notification clicks\" title=\"61 clicks\">61<\/span><\/a><\/strong><\/p>\n<p><strong>On my Odroid-C2, I am running diet-pi, but I am sure it will also work with most other debian-based distributions.<\/strong><\/p>\n<p><strong>Here goes the step-by-step, after booting up diet-pi, and connecting it to the internet:<\/strong><\/p>\n<ol>\n<li><strong>Add armhf as a supported architecture:<\/strong><\/li>\n<\/ol>\n<blockquote><p><strong>dpkg &#8211;add-architecture armhf<\/strong><\/p><\/blockquote>\n<ol start=\"2\">\n<li><strong>Update your packages:<\/strong><\/li>\n<\/ol>\n<blockquote><p><strong>apt-get update<\/strong><\/p><\/blockquote>\n<ol start=\"3\">\n<li><strong>Install aptitude<\/strong><\/li>\n<\/ol>\n<blockquote><p><strong>apt-get install aptitude<\/strong><\/p><\/blockquote>\n<ol start=\"4\">\n<li><strong>Install libc6:armhf using aptitude*<\/strong><\/li>\n<\/ol>\n<blockquote><p><strong>aptitude install libc6:armhf<\/strong><\/p><\/blockquote>\n<ol start=\"5\">\n<li><strong>Download and untar Seafile from\u00a0<a href=\"https:\/\/github.com\/haiwen\/seafile-rpi\/releases\" rel=\"nofollow noopener\">https:\/\/github.com\/haiwen\/seafile-rpi\/releases\u00a0<span class=\"badge badge-notification clicks\" title=\"61 clicks\">61<\/span><\/a><\/strong><\/li>\n<li><strong>Install seafile`s dependencies<\/strong><\/li>\n<\/ol>\n<blockquote><p><strong>sudo aptitude -y install python2.7 python-setuptools python-simplejson python-imaging sqlite3<\/strong><\/p><\/blockquote>\n<ol start=\"7\">\n<li><strong>Install seafile!<\/strong><\/li>\n<\/ol>\n<blockquote><p><strong>.\/setup-seafile.sh<\/strong><\/p><\/blockquote>\n<ol start=\"8\">\n<li><strong>Profit!<\/strong><\/li>\n<\/ol>\n<hr \/>\n<p>*The reason I am using aptitude to install libc6 is that diet-pi main aarch64 repository contains a newer libc6 than the one available at the armhf repository. However, aptitude detects this problem an offers you the possibility of downgrading automatically.<\/p>\n<p>I find it awesome that armhf is compatible with aarch64! This approach can be used to run many other apps that are still not compiled especifically for aarch64.<\/p>\n<\/div>\n<section class=\"post-menu-area clearfix\">\n<nav class=\"post-controls clearfix\">\n<div class=\"actions\">\n<div class=\"like-button\"><\/div>\n<\/div>\n<\/nav>\n<\/section>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<div class=\"topic-post clearfix regular\">\n<article id=\"post_4\" class=\"boxed onscreen-post\" data-post-id=\"5703\" data-user-id=\"842\">\n<div class=\"row\">\n<div class=\"topic-body clearfix\">\n<div class=\"topic-meta-data\">\n<div class=\"read-state read\" title=\"Post is unread\"><\/div>\n<\/div>\n<div class=\"regular contents\">\n<div class=\"cooked\">\n<p>Thanks relima, this was useful!<br \/>\nI just setup my seafile server on odroid-c2 running hardkernel ubuntu image.<\/p>\n<p><strong>After<\/strong><\/p>\n<pre><strong><code class=\"hljs cs\">dpkg --<span class=\"hljs-keyword\">add<\/span>-architecture armhf\napt-<span class=\"hljs-keyword\">get<\/span> update\n<\/code><\/strong><\/pre>\n<p><strong>I needed to install<\/strong><\/p>\n<pre><strong><code class=\"hljs css\"><span class=\"hljs-selector-tag\">apt<\/span> <span class=\"hljs-selector-tag\">install<\/span> <span class=\"hljs-selector-tag\">libselinux1<\/span><span class=\"hljs-selector-pseudo\">:armhf<\/span>\n<span class=\"hljs-selector-tag\">apt<\/span> <span class=\"hljs-selector-tag\">install<\/span> <span class=\"hljs-selector-tag\">libssl1<\/span><span class=\"hljs-selector-class\">.0<\/span><span class=\"hljs-selector-class\">.0<\/span><span class=\"hljs-selector-pseudo\">:armhf<\/span>\n<span class=\"hljs-selector-tag\">apt<\/span> <span class=\"hljs-selector-tag\">install<\/span> <span class=\"hljs-selector-tag\">sqlite3<\/span><span class=\"hljs-selector-pseudo\">:armhf<\/span>\n<\/code><\/strong><\/pre>\n<p><strong>to let the installer execute properly. After that all went well\u00a0<\/strong><img decoding=\"async\" class=\"emoji\" title=\":slight_smile:\" src=\"https:\/\/forum.seafile.com\/images\/emoji\/twitter\/slight_smile.png?v=5\" alt=\":slight_smile:\" \/><\/p>\n<\/div>\n<section class=\"post-menu-area clearfix\">\n<nav class=\"post-controls clearfix\">\n<div class=\"actions\">\n<div class=\"like-button\"><\/div>\n<p><i class=\"fa fa-pencil d-icon d-icon-pencil\" aria-hidden=\"true\"><\/i><\/div>\n<\/nav>\n<\/section>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<div class=\"topic-post clearfix regular\">\n<article id=\"post_5\" class=\"boxed onscreen-post\" data-post-id=\"19618\" data-user-id=\"2258\">\n<div class=\"row\">\n<div class=\"topic-body clearfix\">\n<div class=\"topic-meta-data\">\n<div class=\"read-state read\" title=\"Post is unread\"><\/div>\n<\/div>\n<div class=\"regular contents\">\n<div class=\"cooked\">\n<p>So I was trying to get this working in a NanoPi NEO2, a 64 bit ARM SBC:<\/p>\n<pre><code>Operating System: Debian GNU\/Linux 9 (stretch)\nKernel: Linux 4.14.18-sunxi64\nArchitecture: arm64\n<\/code><\/pre>\n<p>Just following the instructions on the manual I got:<br \/>\nOSError: [Errno 2] No such file or directory<\/p>\n<p>After installing\u00a0<code>libc6:armhf<\/code>\u00a0via\u00a0<code>apt-get install libc6:armhf<\/code>\u00a0I get:<\/p>\n<pre><code>Generating ccnet configuration ...\n\n\/mnt\/SU1\/apps\/seafile\/seafile-server-6.2.5\/seafile\/bin\/ccnet-init: error while loading shared libraries: libselinux.so.1: cannot open shared object file: No such file or directory\n<\/code><\/pre>\n<p>So as suggested by\u00a0<a class=\"mention\" href=\"https:\/\/forum.seafile.com\/u\/gitbock\">@gitbock<\/a>\u00a0I tried\u00a0<code>apt-get install libselinux1:armhf libssl1.0.0:armhf<\/code>\u00a0however:<\/p>\n<pre><code>Package 'libssl1.0.0:armhf' has no installation candidate\n<\/code><\/pre>\n<p>And then I tried to run the setup again and I get:<\/p>\n<pre><code>Generating ccnet configuration ...\n\n\nError: Failed to generate ccnet configuration\n<\/code><\/pre>\n<p>Any tips on how to debug \/ fix this? Thank you.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Hey! I just landed into seafile, and found out that you&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[30],"tags":[],"class_list":["post-263","post","type-post","status-publish","format-standard","hentry","category-30"],"_links":{"self":[{"href":"https:\/\/wp.625300.xyz\/index.php?rest_route=\/wp\/v2\/posts\/263","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wp.625300.xyz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wp.625300.xyz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wp.625300.xyz\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/wp.625300.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=263"}],"version-history":[{"count":0,"href":"https:\/\/wp.625300.xyz\/index.php?rest_route=\/wp\/v2\/posts\/263\/revisions"}],"wp:attachment":[{"href":"https:\/\/wp.625300.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=263"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wp.625300.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=263"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wp.625300.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=263"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}