Nextcloud is very similar to Owncloud, but it has better apps.

 

 

1. Download server packages

wget https://download.nextcloud.com/server/releases/nextcloud-23.0.12.tar.bz2

※ Nextcloud 23 is the last version supporting php7.3

 

2. Install prerequisites

sudo apt install -y apache2 libapache2-mod-php mariadb-server openssl redis-server wget php-imagick php-common php-curl php-gd php-gmp php-bcmath php-imap php-intl php-json php-mbstring php-mysql php-ssh2 php-xml php-zip php-apcu php-redis php-ldap php-phpseclib

 

3. Unzip the downloaded server package

tar -jxvf nextcloud-23.0.12.tar.bz2 -C /var/www/html/
cd /var/www/html
sudo chown www-data:www-data nextcloud -R

4. Access the URL and finish to install

URL: http://<YOUR_IP>/nextcloud

Admin account

 - Username

 - Password

Storage & database

 - Data folder

 - Configure the database

    ★MySQL/MariaDB★

    Database user

    Database password

    Database name = nextcloud

    localhost

 

5. Modify memory cache config

When finished installation, you can check the config file( /var/www/html/nextcloud/config/config.php ).

Add the followings into CONFIG for higher performance.

'memcache.local' => '\OC\Memcache\APCu',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
	'host' => '/var/run/redis/redis-server.sock',
    'port' => 0,
],

 

'Programming > RaspberryPi' 카테고리의 다른 글

Install Owncloud on RaspberryPi  (0) 2023.03.15
Rasbian qbittorrent-nox installation  (0) 2019.11.19
SD card image backup  (0) 2018.10.12
SDcard Partition Resize  (0) 2018.08.21
RaspberryPi Remote Desktop Client  (0) 2018.06.01

1. Download server packages

wget https://download.owncloud.com/server/stable/owncloud-10.11.0.tar.bz2

2. Install prerequisites

sudo apt install -y apache2 libapache2-mod-php mariadb-server openssl redis-server wget php-imagick php-common php-curl php-gd php-gmp php-bcmath php-imap php-intl php-json php-mbstring php-mysql php-ssh2 php-xml php-zip php-apcu php-redis php-ldap php-phpseclib

3. Unzip the downloaded server package

sudo tar -jxvf owncloud-10.11.0.tar.bz2 -C /var/www/html/
cd /var/www/html
sudo chown www-data:www-data owncloud -R

4. Access the URL and finish to install

URL: http://<YOUR_IP>/owncloud

Admin account

 - Username

 - Password

Storage & database

 - Data folder

 - Configure the database

    ★MySQL/MariaDB★

    Database user

    Database password

    Database name = owncloud

    localhost

 

5. Modify memory cache config

When finished installation, you can check the config file( /var/www/html/owncloud/config/config.php ).

Add the followings into CONFIG for higher performance.

'memcache.local' => '\OC\Memcache\APCu',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
	'host' => '/var/run/redis/redis-server.sock',
    'port' => 0,
],

 

'Programming > RaspberryPi' 카테고리의 다른 글

Install Nextcloud on RaspberryPi  (0) 2023.03.15
Rasbian qbittorrent-nox installation  (0) 2019.11.19
SD card image backup  (0) 2018.10.12
SDcard Partition Resize  (0) 2018.08.21
RaspberryPi Remote Desktop Client  (0) 2018.06.01

1. Install pakages

sudo apt-get install network-manager-strongswan

2. Settings - Network - VPN - (Add VPN) - IPsec/IKEv2(strongswan)

Gateway

Address: <HOST IP>

Certificate: <certificate for the host>

Client

Authentication: EAP

Username: <username>

Password: <passwd>

Options

Request an inner IP address

 

참조 https://docs.netgate.com/pfsense/en/latest/recipes/ipsec-mobile-ikev2-client-ubuntu.html

 

'Programming > Linux' 카테고리의 다른 글

Ubuntu 한글 입력  (0) 2022.12.31
PCI device rescan  (0) 2022.09.25
Piping ls to cp  (0) 2020.12.02
How to use GDB  (0) 2020.03.12
PhantomJS Installation on Ubuntu from source  (0) 2018.12.10

Ubuntu 한글 입력

 

1. Settings - Region & Language - Input Sources - (Add an input source) - Korean - Korean

2. Settings - Region & Language - Manage Installed Languages - Install

3. Reboot

4. Settings - Region & Language - Input Sources - (Add an input source) - Korean - Korean(Hangul)

5. Settings - Region & Language - Input Sources - Korean(Hangul) - - Hangul Toggle Key - Hangul - OK

6. Terminal

sudo vi /usr/share/X11/xkb/symbols/altwin
...
key <RALT> { type[Group1] = "TWO_LEVEL",
			symbols[Group1] = [Hangul] };
...

7. Reboot

 

참조 https://shanepark.tistory.com/231

'Programming > Linux' 카테고리의 다른 글

Ubuntu IKEV2 VPN 설정  (0) 2022.12.31
PCI device rescan  (0) 2022.09.25
Piping ls to cp  (0) 2020.12.02
How to use GDB  (0) 2020.03.12
PhantomJS Installation on Ubuntu from source  (0) 2018.12.10

1. Write back / write through / write evict

These policies determine how to handle a write hit.

Hit means that the requested cache block exists at the current level cache.

 

Write back just handles the request at the current level cache only. Later, when this block would be evicted to the lower level, the modified data would be applied. In other words, the updated data would exist at the current level only.

 

Write through handles the request not only at the current level cache but to lower levels. In other words, the updated data would be exist at current level and lower levels.

 

Write evict passes the request to lower level and invalidates the cache block at the current level. In other words, the updated data would exist at the lower level only. 

 

2. Write allocation / no write allocation

These policies determine how to handle a write miss.

Miss means that the requested cache block does not exist at the current level cache.

 

No write allocation just passes the request to the lower level. 

 

Write allocation handles the request at the current level. In this case, the cache block would be fetched ahead or not, regarding to the following fetch policies.

 

3. Fetch on write / lazy fetch on read

Fetch on write: When a write miss is handled with write allocation policy, the cache block would be fetched ahead.

 

Lazy fetch on read: When a write miss is handled with write allocation policy, the cache block would not be fetched, and the data just written to the current level cache. In this case, the modified sectors must be marked, and when the cache block would be fetched for read hit, the modified sectors would be applied.

 

'Programming > Computer Architecture' 카테고리의 다른 글

Basic of the DRAM Subsystem  (0) 2019.04.19
echo 1 | sudo tee /sys/bus/pci/devices/<port>/remove
echo 1 | sudo tee /sys/bus/pci/rescan

 

'Programming > Linux' 카테고리의 다른 글

Ubuntu IKEV2 VPN 설정  (0) 2022.12.31
Ubuntu 한글 입력  (0) 2022.12.31
Piping ls to cp  (0) 2020.12.02
How to use GDB  (0) 2020.03.12
PhantomJS Installation on Ubuntu from source  (0) 2018.12.10

There are various kinds of synthesis and implementation strategies in Xilinx Vivado.

When you have timing violations with your own codes, which you can check with the timing report, you need to modify your own codes to shorten the critical paths. However the timing violation came from the IPs which are already proven, you can use other synthesis and implemenation strategies.

 

Different strategies makes different timing, area, and power

Someone gives an example.(https://miscircuitos.com/vivado-synthesis-and-implementation-strategies/)

 

Below table shows my case. I cannot test for all of strategies, because it consumes so many time.

It seems that synthesis strategy make very few changes with my design.

 

There is no a absolute winner of synthesis and implementation strategy. You need to use various strategies but it may need some time, computing power and storages. In my case, I ran 8 synthesis strategies and 19 implementation strategies for each of synthesis. It takes about 2 days with 24 parallel processing on total 56 thread intel CPU, and it releases 96GB of data.

 

'Programming > Xilinx' 카테고리의 다른 글

SDK baremetal HW-time measurement  (0) 2021.12.07
SDK pointer vs array  (0) 2021.12.04
ERROR: [USF-XSim-62] 'elaborate' step failed with errors  (0) 2021.01.14
Vivado [Opt 31-67] Issue  (0) 2020.12.30
ZCU102 Evaluation Kit SODIMM issue  (0) 2020.12.21

When you need to check the execution time in Xilinx SDK,

you can use below code.

Note that the timer should be enabled

#include <stdio.h>
#include "xtime_l.h"

int main(void){
	XTime t;
    
    XTime_StartTimer(); //enable timer
    
    XTime_GetTime(&t);
    printf("t = %lf\n", (double)t/COUNTS_PER_SECOND);
    
    return 0;
}

When you are using Xilinx SDK, you have to distinguish pointer and array. If you declare a variable as a pointer, you have to use it as a pointer not array. If a pointer is used as array, synchoronous interrupt handler(exception) may occur.

 

volatile unsigned int* mem;

for(i=0; i<SIZE; i++){
	mem[i] = i; //Synchoronous Interrupt Handler(exception) may occur
    //you have to use like this
    //*(mem+i) = i;
}

Bash if statement can be used with regular expression

if [[ "hello world" =~ "hello" ]] ## this is true
then
    echo "'hello world' has 'hello'"
fi

if [[ "hello" =~ "hello world" ]] ## this is false
then
    echo "'hello' has 'hello world'"
fi

if [[ "hello world" =~ e.* ]] ## this is true
then
    echo "'hello world' has 'e' followed by any character"
fi

Note that

 - the bracket should be double

 - use "=~", not "~="

 - use the regular expression without quotation mark

 - the lefthand-side should be a container

'Programming > Bash Script' 카테고리의 다른 글

Bash script argument parsing with getopts  (0) 2020.01.23
Bash script for statement  (0) 2018.05.21
Bash Script case statement  (0) 2018.02.06
Bash Script Variable Split by Space  (0) 2018.02.04
Bash Script Echo  (0) 2018.02.04

+ Recent posts