2014年6月19日

H@H on Rpi

畢竟是本網誌第200篇文章, 當然要符合一貫的原則, 那就是低調與實用(誤)
這篇教學需要有很多背景知識, 畢竟自己也花了很多時間研究, 但成果非常豐碩, 在外島期間伺服器完全正常運作, 替我累積了1.8G的資料以及1000多的Hath值, 如果你聽不懂我在說什麼那是正常的, 如果你聽得懂, 也有興趣玩看看, 那就繼續往下閱讀吧


本文要介紹如何利用樹梅派(以下簡稱Rpi)運行H@H(也就是某熊貓站的P2P軟體), 因此使用者要對Rpi與H@H這兩個東西有些初步的認識, 才能得心應手, 因為我其實懶得重頭教學起。 順帶一題除了我之外, 該網站上也有很多高手是利用樹梅派運行的, 請參考此

硬體設備
Rpi model B
16G記憶卡(cache約可存10G)

程式碼如下

1.升級樹梅派

sudo apt-get update
sudo apt-get upgrade

2.初步設定

安裝 vim 或習慣的文字編輯軟體
sudo apt-get install vim

開啟ssh遠端登入服務, 即可把樹梅派的線路簡化成2條(電源+網路)

3.samba 

網芳, 可與windows做連結, 可利用樹梅派載檔案再丟到windows中
如果只是要純粹賺積分那就跳過

其中samba檔的設定如下
unix charset    = utf8
display charset = utf8
dos charset     = cp950
security = share

新增一個資料夾 /hath

[hath]                                  
        comment    =
        path       = /hath                
        writable   = yes                
        browseable = yes                
        guest ok   = yes

重點在...該資料夾要777

4.java

這是重點, jdk7會導致樹梅派上傳極限值大幅下降(以我為例好像是36kb/s), 所以必須用jdk6或jdk8, icetea提供的我則沒有測試過

wget http://www.java.net/download/JavaFXarm/jdk-8-ea-b36e-linux-arm-hflt-29_nov_2012.tar.gz
tar zxf jdk-8-ea-b36e-linux-arm-hflt-29_nov_2012.tar.gz
rm jdk-8-ea-b36e-linux-arm-hflt-29_nov_2012.tar.gz
sudo mv ./jdk1.8.0/ /opt/
sudo chown root:root -R /opt/jdk1.8.0/
sudo ln -s /opt/jdk1.8.0/ /opt/jdk8


sudo nano -w /etc/profile
添加
PATH="$PATH":/opt/jdk8/bin
JAVA_HOME=/opt/jdk8

sudo update-alternatives --install "/usr/bin/java" "java" "/opt/jdk1.8.0/bin/java" 1

5.mount

因為我直接灌在16G的記憶卡中, 無須掛載其他磁碟
但若要掛載其他磁碟增加容量, 就要考慮到電腦重新開機時要自動掛載
還有外掛2.5吋硬碟的話, 該USB HUB 要有主動供電的能力, 不然會有I/O錯誤或是讀不到的情況

6.hath檔案

上網下載H@H的主程式, 解壓縮到/hath中
此時可以先試運行

sudo java -jar HentaiAtHome.jar

登入帳號看看能否運轉, 可以的話代表前述java設定無誤


顯示綠色Online就代表成功了, 以樹梅派不超頻的狀況, 冷開機可能要達10分鐘, 若是正常起動可能也要3~5分鐘, 要耐心等待, 超頻的話時間可以減半, 但注意散熱。

7.rc.local

開機自動啟動H@H程式, 僅須修改rc.local檔, 開機就會執行此程式

sudo vim /etc/rc.local

添加以下兩行, 注意第二行末紅色部分是指把H@H的輸出資料寫入到datalog檔案中, 並且不在螢幕顯示, 這樣的好處是可以遠端登入Rpi中監控H@H的運行狀況, 缺點是datalog檔會越來越大, 半年大約1.8G, 但可以讓他自行清理, 不然就改成 >> /dev/null & 就不會有檔案產生, 但似乎無法監控, 詳情請參考鳥哥資料流導向

cd /hath
sudo java -jar HentaiAtHome.jar --disable_bwm --disable_logging --skip_free_space_check --use_more_memory >> datalog &


8.crontab

自行清理, 看要多久自動關機清理一次, 一週或是一個月很洽當, 但不清理也沒關係, 把datalog檔變成黑洞(/dev/null), 而且樹梅派很穩定, 我自己半年沒關過都沒問題

crontab -e(不登入時會也會執行)

添加以下, 代表每天晚上9點55分會執行reboot.sh檔
55 21 * * *  /home/pi/reboot.sh

修改完後 重新啟動
sudo /etc/init.d/cron restart

並在/home/pi/底下新增可讀可寫可執行的reboot.sh檔(777), 內容如下
#!/bin/bash
sudo kill $(ps aux|grep 'java'|grep -v 'grep'|awk '{print $2}')
sleep 30
rm /hath/datalog
sudo shutdown -r  now
exit 0

如此一來就大功告成了, 試著重新開機看是否有自動運行H@H, 然後到指定時間是否有自動重開, 重開完是否又自動運行, 並且datalog檔是否有移除更新

9.其餘設定

遠端登入時, 利用tail指令監控datalog的變化
tail -f /hath/datalog

樹梅派內建溫度監控(單位是度, 目前裸殼平均是50, 若有風冷可以降到36)
cat /sys/class/thermal/thermal_zone0/temp | awk '{print $1/1000}'

檢查cache已有的容量, 建議網路上設10G即可
du -sh /hath/cache/



3 則留言:

  1. etc/rc.local 中可補上 renice

    cd /hath
    sudo java -jar HentaiAtHome.jar --disable_bwm --disable_logging --skip_free_space_check --use_more_memory >> datalog &
    sleep 5
    sudo renice -5 $(pgrep 'java')
    exit 0

    回覆刪除