| Both sides previous revision Previous revision Next revision | Previous revision |
| rpi_autism [2019/08/05 15:51] – [Notify completion of downloading] 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: {{material>assignment_turned_in}} AUTiSM Rainbow (official) | {{material>create}} ''라몽'' (korean) | Name: {{mdi>cards?28&color=#37000A}} ''**AUTiSM** Rainbow'' (official) | {{mdi>creation?28&color=#37000A}} ''라몽'' (korean) |
| |
| ---- | ---- |
| |
| ==== Specification ==== | ===== Specification ===== |
| |
| {{material>developer_board?32&color=#9E0031}} 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]] |
| |
| {{material>sd_storage?32&color=#9E0031}} {{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% |
| /home/meson/repository ext4 459G 143G 294G 33% | ~/repository ext4 459G 289G 147G 67% |
| /home/meson/storage ext4 459G 318G 118G 73% | ~/storage ext4 459G 179G 257G 42% |
| </code> | </code> |
| |
| {{material>network_wifi?32&color=#8E0045}} ① 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'') |
| |
| {{material>ondemand_video?32&color=#770058}} 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> |
| * 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> |
| * ''replace'' HDD enclosure for ''~/repository'' & ''~/storage'' <sub> --- Updated on //2018/09/04 20:33//</sub> | * ''replace'' HDD enclosure for ''~/repository'' & ''~/storage'' <sub> --- Updated on //2018/09/04 20:33//</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. |
| | |
| | ---- |