Both sides previous revision Previous revision Next revision | Previous revision |
rpi_autism [2020/03/19 05:38] – [Specification] Júne Park | rpi_autism [2023/06/09 09:48] (current) – [Specification] Júne Park |
---|
<nav> | <nav> |
* {{fa>server?color=#8B0000}} Linux | * {{fa>server?color=#8B0000}} Linux |
* [[:rpi_common|General Things on Raspbian]] | * [[:rpi_common|■ General Things on Raspbian]] |
* [[:rpi_autism|Media Ditorium ─ AUTiSM Rainbow]] | * [[:rpi_autism|Media Ditorium ─ AUTiSM Rainbow]] |
* [[:rpi_epigen|Private Cellarium ─ EPiGEN Crystal]] | * [[:rpi_epigen|Private Cellarium ─ EPiGEN Crystal]] |
* [[:rpi_nimbus|Webius Officium ─ NiMBUS deBlanc]] | * [[:rpi_nimbus|Webius Officium ─ NiMBUS deBlanc]] |
* [[:debian_common|General info on Debian Linux]] | * [[:debian_common|■ General info on Debian Linux]] |
* [[:deb_mutism|Opus Imperium ─ MUTiSM Magnum]] | * [[:deb_mutism|Opus Imperium ─ MUTiSM Magnum]] |
| * [[:deb_gilead|Actu Periculum ─ GiLEAD Argenta]] |
| * [[:deb_debris|Finca LaDichium ─ DEBRiS Chrome]] |
* {{fa>windows?color=#0000A0}} Windows | * {{fa>windows?color=#0000A0}} Windows |
* [[:pc_common|Common Works on Windows]] | * [[:pc_common|■ Common Works on Windows]] |
* [[:pc_mesonism|Primus Workstation ─ MESONiSM]] | * [[:pc_mesonism|Primus Workstation ─ MESONiSM]] |
* [[:pc_mesonium|Manibus Tablet ─ MESONiUM]] | * [[:pc_mesonium|Manibus Tablet ─ MESONiUM]] |
* [[:pc_mesonity|Praevus Station ─ MESONiTY]] | * [[:pc_mesonity|Praevus Station ─ MESONiTY]] |
* {{fa>android?color=#006400}} Android | * {{fa>android?color=#006400}} Android |
* [[:cell_common|Common Stuffs on Androids]] | * [[:cell_common|■ Common Stuffs on Androids]] |
* [[:cell_epiaux|Júne's Primus ─ EPiAUX 5X]] | * [[:cell_epiaux|Júne's Primus ─ EPiAUX 5X]] |
* [[:cell_epihex|Júne's Extentus ─ EPiHEX 6]] | * [[:cell_epihex|Júne's Extentus ─ EPiHEX 6]] |
| * [[:cell_epimer|Júne's Maximus ─ EPiMER 5P]] |
* [[:cell_epinex|Júne's Secondus ─ EPiNEX 5]] | * [[:cell_epinex|Júne's Secondus ─ EPiNEX 5]] |
* [[:cell_epitab|Júne's Laminus - EPiTAB 7]] | * [[:cell_epitab|Júne's Laminus - EPiTAB 7]] |
| |
| |
===== Media Ditorium ─ AUTiSM Rainbow ===== | ====== Media Ditorium ─ AUTiSM Rainbow ====== |
| |
{{:rpi_autism.jpg?nolink&250|}} | {{:rpi_autism.jpg?nolink&250|}} |
| |
Name: {{mdi>cards?24&color=#37000A}} AUTiSM Rainbow (official) | {{mdi>creation?24&color=#37000A}} ''라몽'' (korean) | Name: {{mdi>cards?28&color=#37000A}} ''**AUTiSM** Rainbow'' (official) | {{mdi>creation?28&color=#37000A}} ''라몽'' (korean) |
| |
---- | ---- |
| |
==== Specification ==== | ===== Specification ===== |
| |
{{mdi>raspberry-pi?32&color=#37000A}} Model: [[https://www.raspberrypi.org/products/raspberry-pi-2-model-b//|Raspberry Pi 2 Model B+]] | [[wp>Raspberry_Pi#Model_B|Raspbierry Pi Model B]] | {{mdi>raspberry-pi?32&color=#37000A}} Model: [[https://www.raspberrypi.org/products/raspberry-pi-2-model-b//|Raspberry Pi 2 Model B+]] | [[wp>Raspberry_Pi#Model_B|Raspbierry Pi Model B]] |
| |
{{mdi>database-plus?32&color=#37000A}} {{fa>database}} 500G on ''~/storage'' | {{fa>database}} 500G on ''~/repository'' --- {{fa>plug}} [[SECURED:JUNE_HARDWARE#data_storage|Storage in details]] {{fa>lock}} | {{mdi>database-plus?32&color=#37000A}} Storages --- {{mdi>harddisk}} [[SECURED:JUNE_HARDWARE#data_storage|Storage in details]] {{fa>lock}} |
| * {{mdi>database?color=#37000A}} ''**500G**'' --- ''~/storage'' partition {{fa>usb?14&color=#005eb8}} |
| * {{mdi>database?color=#37000A}} ''**500G**'' --- ''~/repository'' partition {{fa>usb?14&color=#005eb8}} |
| |
=== Live status of storages === | === Live status of storages === |
| |
<code ini> | <code ini> |
Mounted on Type Size Used Avail Use% | Mounted on Type Size Used Avail Use% |
~/storage ext4 459G 322G 114G 74% | ~/repository ext4 459G 289G 147G 67% |
~/repository ext4 459G 253G 183G 59% | ~/storage ext4 459G 179G 257G 42% |
</code> | </code> |
| |
{{mdi>lan?32&color=#37000A}} ① Wired (''eth0'') | ② Wireless {{fa>usb?color=#000000}} (''wlan0'') | ③ Wired {{fa>usb?color=#000000}} (''eth1'') --- {{fa>wifi}} [[SECURED:HOME_NETWORK#dhcp_assigned_ip|Júne's home network]] {{fa>lock}} | {{mdi>server-network?32&color=#37000A}} --- {{mdi>wifi-strength-3-lock}} [[SECURED:HOME_NETWORK#dhcp_assigned_ip|Júne's home network]] {{fa>lock}} |
| * {{mdi>lan?color=#37000A}} Wired (''AUTiSM-enx001'') |
| * {{mdi>wifi?color=#37000A}} Wireless {{fa>usb?14&color=#030303}} (''AUTiSM-wlx001'') |
| * {{mdi>lan?color=#37000A}} Wired {{fa>usb?14&color=#030303}} (''AUTiSM-enx003'') |
| |
{{mdi>video-wireless-outline?32&color=#37000A}} Video streaming and archives | {{mdi>video-wireless-outline?32&color=#37000A}} Video streaming and archives |
==== +Work logs ==== | ==== +Work logs ==== |
| |
| * Fixed ''conveyance daemon'' due to wrong lib sharing <sub> --- Updated on //2023/05/06 21:11// </sub> |
| * Disable ''transmission web'' port, ''9090'' & ''9091'' and build ''proxy_pass'' pages <sub> --- Updated on //2020/07/11 03:22// </sub> |
* Plugin Wired Giga LAN {{fa>usb}} <sub> --- Updated on //2020/02/22 03:34// </sub> | * Plugin Wired Giga LAN {{fa>usb}} <sub> --- Updated on //2020/02/22 03:34// </sub> |
* physically exchange hard disk enclosures <sub> --- Updated on //2019/06/23 22:57// </sub> | * physically exchange hard disk enclosures <sub> --- Updated on //2019/06/23 22:57// </sub> |
| |
---- | ---- |
| ===== Operation manuals ===== |
| ==== Install Samba service ==== |
| |
==== Setup Samba service ==== | Update systems with latest packages |
| |
''Run update'' | |
<code bash> | <code bash> |
sudo apt-get update && sudo apt-get dist-upgrade -y | sudo apt update && sudo apt dist-upgrade -y |
</code> | </code> |
| |
''Install'' samba server and related components | Install **Samba** service and related components |
<code bash> | <code bash> |
sudo apt-get install samba samba-common-bin | sudo apt install samba samba-common-bin |
</code> | </code> |
| |
''Add samba user'' | === Add Samba user === |
<code bash> | <code bash> |
sudo smbpasswd -a userid | sudo smbpasswd -a userid |
</code> | </code> |
| |
Type user's password twice correctly ''edit'' **samba config file** --- ''/etc/samba/smb.conf'' | Set user's password correctly. |
| |
| === Set configuration === |
| |
| Edit Samba configuration file --- ''/etc/samba/smb.conf'' |
| |
| <button type="danger" size="sm" icon="mdi mdi-settings-box">[[https://wiki.meson.one/doku.php?id=secured:server_config#machine_specific|Live Configuration]]</button> |
<code ini> | <code ini> |
[userid] | [userid] |
</code> | </code> |
| |
If you need to specify ''Work Group'' name for Windows, find ''workgroup'' and edit | If you need to specify **Workgroup** name with Windows machines, |
| |
workgroup = YOURWORKGRP | <code ini> |
| workgroup = MYWORKGROUP |
| </code> |
| |
''restart samba service'' | === Restart Samba service === |
| |
<code bash> | <code bash> |
sudo /etc/init.d/samba restart | sudo /etc/init.d/smbd restart |
| </code> |
| or |
| <code bash> |
| sudo systemctl restart smbd.service |
</code> | </code> |
| |
| |
==== Setup Transmission ==== | ==== Setup Transmission ==== |
| |
Build up Transmission (daemon + web remote) and configuration. Reference: Fundamental [[http://meson.in/2gTAppK|information on BitTorrent]] in {{flag>kr}} Korean (한국어). User should understand basic operation on BitTorrent. If not, your server will have tremendous traffics, which reduce your network resource. | Build up Transmission (daemon + web remote) and configuration. Reference: Fundamental [[http://meson.in/2gTAppK|information on BitTorrent]] in {{flag>kr}} Korean (한국어). User should understand basic operation on BitTorrent. If not, your server will have tremendous traffics, which reduce your network resource. |
| |
Install transmission | === Install transmission === |
<code bash> | <code bash> |
sudo apt-get install transmission-daemon | sudo apt install transmission-daemon |
</code> | </code> |
Decide a few directories to store torrent files for downloads. Do not use directory located on SD memory but use directories mount on {{fa>usb?color=#000000}} USB attached storages. Assume external {{fa>usb?color=#000000}} USB HDD is attached at ''/dev/sda'' and mount on ''/home/userid/BitTorrent'' | |
| === Setup working directories === |
| |
| Decide a few directories to store torrent files for downloads. Do not use directory located on SD memory {{mdi>micro-sd}} but use directories mount on USB {{fa>usb?color=#000000}} attached storage. Assume external USB {{fa>usb?color=#000000}} HDD is ''/dev/sda'' and mount on ''/home/userid/BitTorrent'' |
<code bash> | <code bash> |
sudo mount /dev/sda /home/userid/BitTorrent | sudo mount /dev/sda /home/userid/BitTorrent |
</code> | </code> |
| |
Create three directories for transmission to work efficiently. | Create three directories (arbitrary names) for transmission to work efficiently. |
<code bash> | <code bash> |
mkdir /home/userid/BitTorrent/Downloaded | mkdir /home/userid/BitTorrent/Downloaded |
mkdir /home/userid/BitTorrent/Downloading | mkdir /home/userid/BitTorrent/Downloading |
mkdir /home/userid/BitTorrent/WillDownload | mkdir /home/userid/BitTorrent/WillDownload |
</code> | </code> |
| |
''Downloaded'' is for the finished files, ''Downloading'' is for the downloading files (still downloading or seeding) and ''WillDownload'' is used for watching directory, where you put ''.torrent'' file will start downloading automatically. | ''Downloaded'' is for the finished files, ''Downloading'' is for the downloading files (still downloading or seeding) and ''WillDownload'' is used for watching directory, where you put ''.torrent'' file will start downloading automatically. |
| |
Basically, transmission daemon is operated by user named ''debian-transmission'' and also group ''debian-transmission''. Therefore, next step you have to set folder and file permission. | Basically, transmission daemon is operated by user named ''debian-transmission'' and also group ''debian-transmission''. Therefore, next step you have to set folder and file permission. |
| |
<code bash> | <code bash> |
sudo chgrp debian-transmission /home/userid/BitTorrent/Downloaded | sudo chgrp debian-transmission /home/userid/BitTorrent/Downloaded |
sudo chgrp debian-transmission /home/userid/BitTorrent/Downloading | sudo chgrp debian-transmission /home/userid/BitTorrent/Downloading |
sudo chgrp debian-transmission /home/userid/BitTorrent/WillDownload | sudo chgrp debian-transmission /home/userid/BitTorrent/WillDownload |
| |
sudo chmod 770 /home/userid/BitTorrent/Downloaded | sudo chmod 770 /home/userid/BitTorrent/Downloaded |
sudo chmod 770 /home/userid/BitTorrent/Downloading | sudo chmod 770 /home/userid/BitTorrent/Downloading |
sudo chmod 770 /home/userid/BitTorrent/WillDownload | sudo chmod 770 /home/userid/BitTorrent/WillDownload |
</code> | </code> |
| |
BitTorrent directories allow full permission to owner and ''debian-transmission'' group and ''userid'' is also its member. So ''debian-transmission'' and ''userid'' users have full permission to create, edit and delete. | BitTorrent directories allow full permission to owner and ''debian-transmission'' group and ''userid'' is also its member. So ''debian-transmission'' and ''userid'' users have full permission to create, edit and delete. |
| |
| === Set configuration === |
| |
Edit ''/etc/transmission-daemon/settings.json'' | Edit ''/etc/transmission-daemon/settings.json'' |
| |
| <button type="danger" size="sm" icon="mdi mdi-settings-box">[[https://wiki.meson.one/doku.php?id=secured:server_config|Live Configuration]]</button> |
| |
<code yaml> | <code yaml> |
</code> | </code> |
| |
Last string line does not have **'',''**. Save ''settings.json'' and restart transmission daemon. | Last string line does not have **'',''**. Save ''settings.json'' |
| |
| === Restart Transmission === |
| |
<code bash> | <code bash> |
sudo systemctl restart transmission-daemon.service | sudo systemctl restart transmission-daemon.service |
</code> | </code> |
| |
If there is no error, transmission daemon works correctly and you can access transmission web remote in your browser. | If there is no error, transmission daemon works correctly and you can access transmission web remote in your browser. |
Assume machine's IP address (internal) is 192.168.50.10. Transmission Web Interface can be accessed with ''http://192.168.50.10:9090''. Port number can be changed ''"rpc-port": 9090'' and it could be better when it comes to security. | Assume machine's IP address (internal) is 192.168.50.10. Transmission Web Interface can be accessed with ''http://192.168.50.10:9090''. Port number can be changed ''"rpc-port": 9090'' and it could be better when it comes to security. |
| |
Set download/upload speed limits in options. | Set download/upload speed limits in options. |
| |
{{fa>sticky-note?color=#FFFF33&2x}} Edit ''html'' page: edit ''/usr/share/transmission/web/index.html'' | === Edit service webpages === |
| |
| {{mdi>web?color=#52325d}} Page for Transmission Web is ''/usr/share/transmission/web/index.html'' |
| |
| |
---- | ---- |
| |
==== Multiple Transmission daemons in single machine ==== | ==== Dual Transmissions in single machine ==== |
Can apply to duplicate (any) services with (if any) different port or setting. | |
| If need more than one Transmission Web service, duplicate daemon in a single machine. Each service can be serviced with different port number. |
| |
| === Stop the Transmission === |
| |
<code bash> | <code bash> |
sudo systemctl stop transmission-daemon.service | sudo systemctl stop transmission-daemon.service |
</code> | </code> |
| |
| |
<code bash> | <code bash> |
sudo apt-get update && sudo apt-get dist-upgrade -y | sudo apt update && sudo apt dist-upgrade -y |
</code> | </code> |
| |
Copy daemon resources and scripts. Call second daemon ''conveyance-daemon'' (whatever you want, it's fine.) | === Duplicate Transmission daemon === |
| |
| Copy daemon resources and scripts. Call the second daemon as ''**conveyance-daemon**'' |
| |
<code bash> | <code bash> |
sudo cp /usr/bin/transmission-daemon /usr/bin/conveyance-daemon | sudo cp /usr/bin/transmission-daemon /usr/bin/conveyance-daemon |
sudo cp /etc/init.d/transmission-daemon /etc/init.d/conveyance-daemon | sudo cp /etc/init.d/transmission-daemon /etc/init.d/conveyance-daemon |
sudo cp -a /var/lib/transmission-daemon /var/lib/conveyance-daemon | sudo cp -a /var/lib/transmission-daemon /var/lib/conveyance-daemon |
sudo cp -a /etc/transmission-daemon /etc/conveyance-daemon | sudo cp -a /etc/transmission-daemon /etc/conveyance-daemon |
sudo cp /etc/default/transmission-daemon /etc/default/conveyance-daemon | sudo cp /etc/default/transmission-daemon /etc/default/conveyance-daemon |
</code> | </code> |
| |
| |
<code bash> | <code bash> |
sudo ln -sf /etc/conveyance-daemon/settings.json /var/lib/conveyance-daemon/info/settings.json | sudo ln -sf /etc/conveyance-daemon/settings.json /var/lib/conveyance-daemon/info/settings.json |
</code> | </code> |
| |
Edit ''/etc/init.d/conveyance-daemon'' | === Edit the second daemon === |
| |
NAME=transmission-daemon | Edit ''/etc/init.d/conveyance-daemon'' and change ''NAME'' with ''conveyance-daemon'' |
to | |
| <code ini> |
NAME=conveyance-daemon | NAME=conveyance-daemon |
| </code> |
| |
Edit ''/etc/conveyance-daemon/settings.json''. Compare and check settings with default values. | Edit ''/etc/conveyance-daemon/settings.json''. Compare and check settings with default values. |
| |
<code yaml> | <button type="danger" size="sm" icon="mdi mdi-settings-box">[[https://wiki.meson.one/doku.php?id=secured:server_config|Live Configuration]]</button> |
| |
| |
| <code ini> |
"download-dir": "new download path of conveyance-daemon" | "download-dir": "new download path of conveyance-daemon" |
"peer-port": 51414, | "peer-port": 51414, |
| |
<code bash> | <code bash> |
sudo update-rc.d conveyance-daemon defaults | sudo update-rc.d conveyance-daemon defaults |
</code> | </code> |
| |
Start original and duplicated daemon to check any errors or conflicts | === Restart services === |
| |
| Start the original and the duplicated daemon to check any errors or conflicts |
| |
<code bash> | <code bash> |
sudo systemctl start transmission-daemon.service | sudo systemctl start transmission-daemon.service |
sudo systemctl start conveyance-daemon.service | sudo systemctl start conveyance-daemon.service |
</code> | </code> |
| |
==== Notify completion of downloading ==== | ==== Notify completion of downloading ==== |
| |
When downloading in Transmission is finished, send simple ''notification'' via ''**PushBullet**'' or ''**Telegram**''. | When downloading finishes in Transmission, get **notification** via message services. |
| |
Option A. via ''**PushBullet**'' | === Getting API from PushBullet === |
| |
''get'' API key from PushBullet --- [[https://www.pushbullet.com/#settings|Create Access Token]] | Get API key from PushBullet service --- [[https://www.pushbullet.com/#settings/account|Create Access Token]] |
| |
* API key is like ''o.8jh96v9p49vW73X3U4HByxo87MLVw4kM'' | * API key is like ''o.8jh96v9p49vW73X3U4HByxo87MLVw4kM'' |
| |
{{fa>telegram?color=#0088cc}} Option B. via ''**Telegram**'' | === Getting API from Telegram === |
| |
''get'' API key & chat_id --- [[https://telegram.me/botfather|Create your own Bot]] with ''/newbot'' command. | To get API from {{mdi>telegram?color=#0088cc}} **Telegram**, need to create Telegram Bot by which notification is sending. |
| |
''Create'' Bot and finish ''settings'' such as Bot Name, Description, Profile image and so on. | Create Telegram Bot --- [[https://telegram.me/botfather|Create your own Bot]] with ''/newbot'' command. |
| |
''Find'' **''API key''** from BotFather. | Finish with specific information in ''settings'' such as **Bot Name**, **Description**, **Profile image** and so on. |
| |
| After finishing Bot, find the API key from **BotFather**. |
| |
* API key is like ''977114901:279gLSo-d7XZokF4QqM69ZfF3xBKtnYQqMk'' | * API key is like ''977114901:279gLSo-d7XZokF4QqM69ZfF3xBKtnYQqMk'' |
| |
''Find'' **''chat_id''** from API key | To create script, it requires **''chat_id''** from API key. To figure out ''chat_id'', |
| |
To figure out ''chat_id'', | Goto ''https://api.telegram.org/bot**977114901:279gLSo-d7XZokF4QqM69ZfF3xBKtnYQqMk**/getUpdates'' |
| |
''https://api.telegram.org/bot**977114901:279gLSo-d7XZokF4QqM69ZfF3xBKtnYQqMk**/getUpdates'' | If result returns nothing like ''chat_id'', go to Telegram and **give some chats with your Bot**. Of course, your Bot never answers you. |
| |
If this URL returns no ''chat_id'', go to Telegram and **give some chats with your Bot**. Of course, your Bot never answers you. | Then visit again and it shows something like ''{"id":**29329664**,"first_name": ....},'' and ''**id**'' is your ''chat_id'' is ''29329664'' |
| |
After sending some chats, go URL again. It shows something like ''{"id":**29329664**,"first_name": ....},'' and ''**id**'' is your ''chat_id'' is ''29329664'' | === Modify Transmission service === |
| |
Stop daemon: ''sudo systemctl stop transmission-daemon.service'' | Stop Transmission |
| |
Edit ''sudo vi /etc/transmission-daemon/settings.json'' | <code bash> |
| sudo systemctl stop transmission-daemon.service |
| </code> |
| |
| Append the following lines in ''/etc/transmission-daemon/settings.json'' |
| |
<code json> | <code ini> |
"script-torrent-done-enabled": true, | "script-torrent-done-enabled": true, |
"script-torrent-done-filename": "/opt/script/download-done.sh", | "script-torrent-done-filename": "/opt/script/download-done.sh", |
</code> | </code> |
| |
Make execute file. | === Make executive script === |
| |
<code bash> | <code bash> |
sudo mkdir /opt/script | sudo mkdir /opt/script |
sudo touch /opt/script/download-done.sh | sudo touch /opt/script/download-done.sh |
sudo chown debian-transmission:debian-transmission /opt/script/download-done.sh | sudo chown debian-transmission:debian-transmission /opt/script/download-done.sh |
sudo chmod +x /opt/script/download-done.sh | sudo chmod +x /opt/script/download-done.sh |
sudo vi /opt/script/download-done.sh | sudo vi /opt/script/download-done.sh |
</code> | </code> |
| |
=== Script for Pushbullet (Option A) === | Put script with the following option: |
| |
| <button type="danger" size="sm" icon="mdi mdi-script-text-outline">[[https://wiki.meson.one/doku.php?id=secured:server_script|Live Scripts]]</button> |
| |
| |
| == Script for Pushbullet == |
<code bash> | <code bash> |
#!/bin/bash | #!/bin/bash |
</code> | </code> |
| |
=== Script for Telegram (Option B) === | == Script for Telegram == |
<code bash> | <code bash> |
#!/bin/bash | #!/bin/bash |
</code> | </code> |
| |
=== Script for Slack using WebHooks (Option C) === | == Script with Webhook == |
| |
| Webhook is HTTP push API for general purpose. Message services such as Slack {{mdi>slack?color=#e9a820}} provide |
<code bash> | <code bash> |
#!/bin/bash | #!/bin/bash |
WebHook address and setup instruction is guided by Slack (tm). | WebHook address and setup instruction is guided by Slack (tm). |
| |
| === Restart Transmission === |
| |
Restart daemon ''sudo systemctl start transmission-daemon.service'' | <code bash> |
| sudo systemctl start transmission-daemon.service |
| </code> |
| |
---- | ---- |
| |
| ===== Solved problems ===== |
| |
| ==== hash sum mismatch during apt-get update ==== |
| |
| <text type="danger">{{fa>bug}} **Symptom**</text>: Error ''hash sum mismatch'' shows during updating. This problem has something to do with ''slow connection'' or ''connection failure'' due to bad network situation. |
| |
| <text type="info">{{fa>lightbulb-o}} **Solution**</text>: |
| |
| <code bash> |
| sudo vi /etc/apt/source.lists |
| </code> |
| |
| Remove downloaded repository information from the ''/var/lib/apt/lists/'' directory. |
| |
| <code bash> |
| sudo rm -rf /var/lib/apt/lists/* |
| </code> |
| |
| Change mirror address seemingly to be fast. |
| |
| [[https://www.raspbian.org/RaspbianMirrors|Raspbian Mirrors]] {{mdi>source-repository-multiple?color=#000000}} |
| |
| This is a kind of temporary problem due to network condition. |
| |
| ---- |