係数のやる気のない備忘録

文章力ないじゃん自分

Raspberry pi でChromium + Selenium でのスクレイピングがうまく行かなかった話

過去にChromium Driverが入らないよーって記事を書いたのですが、かなり簡単になったのでメモ。


sudo apt install chromium-chromedriver

 

で行けるようになりました!

driver = webdriver.Chrome('/usr/lib/chromium-browser/chromedriver')

でパスを指定して実行すれば動く!いぇい!!!

 

Headlessモード(バックグラウンドで実行)するには

 

options = webdriver.ChromeOptions()
options.add_argument('--headless')
driver = webdriver.Chrome(chrome_options=options)

 

を追加。

Arduino UNOでPythonを使ってシリアル通信をすると再起動してしまう件

ArduinoUNOとPyserialを利用してシリアル通信を試みていた。

が、どうしてもシリアルを送ると再起動してしまう。

Leonardoだと問題なくできるのでプログラムの問題でもないし、本体が壊れているわけでもなかった。

 

調べるとpyserialはCOMポートを開く際にDTRがLowになり、

LowになるとArduino UNOが再起動してしまうことがわかった。

 

なので、シリアルオープンのコマンドを

 

com = serial.Serial("port",9600)

で一行にせず

com = serial.Serial()
com.port = port
com.baudrate = baud
com.timeout = 1
com.setDTR(False)
com.open()

とすることでDTR信号が送られず、UNOが再起動されずに正常に通信できるようになった。

 

stackoverflow.com

Chinachuで録画サーバーを作る(その1)

https://chinachu.moe/

録画鯖を4〜5年前に作ったが、そろそろHDDの寿命が来る。

せっかくなのでこの機会にまるまる環境を置き換えることにした。

perl+しょぼカレはね、うん。

 

今までの環境

ProLiant MicroServer N54L

メモリ4GB

HDD500GB+3TB+4TB

foltia Anime Locker Ver4.0

使いまわすもの

PT3×1

SCR3310-NTTCom

 

今回の環境

富士通 TX1310 M3

PGダイレクトで13000円位で購入

HDD 500GB+4TB

500GBはあまりものを、4TBは新規購入

OS:Ubuntu 18.04

PT3

SCR3310-NTTCom

 

OSインストール

chinachuやる人はこれくらい知ってると思うので簡略。

 

Ubuntuをダウンロード

Win32DiskImagerでUSBメモリに書き込み。(ISO→IMGに。)

USBメモリから起動。(BIOSRAID→ACHIにしておく)

インストール後

sudo apt update

sudo apt upgrade

いつもの。

 

Mirakurun入れる前に色々準備

カードリーダー入れる

なんかいろいろ入れる。

apt -y install pcscd pcsc-tools libpcsclite-dev autoconf build-essential curl git-core libssl-dev libtool libboost-all-dev pkg-config yasm dkms unzip

終わったらカードリーダーが動作するか確認。

pcsc_scan | grep "Japanese Chijou Digital"

Japanese Chijou Digital B-CAS Card (pay TV)

とでればおk。Curl+Cで止める。

PT3ドライバ入れ替え

デフォルトのPT3のドライバを止める。

sudo nano /etc/modprobe.d/blacklist.conf

末尾に blacklist earth-pt3 を追加。

入れ終わったら以下実行。

cd /tmp

git clone https://github.com/m-tsudo/pt3.git

cd pt3/

 

インストールは

sudo bash ./dkms.install

もしくは

make

make install

で。

 arib25ライブラリ

mkdir ~/git

cd ~/git

git clone https://github.com/stz2012/libarib25.git

cd libarib25/

cmake .

make

sudo make install

sudo /sbin/ldconfig

recpt1

cd /tmp

wget http://hg.honeyplanet.jp/pt1/archive/tip.tar.bz2

tar xvjf tip.tar.bz2

cd pt1-"hogehoge"   注意"hogehoge"はランダム

cd recept1/

sed -i".org" 's/pt1video/pt3video/g' pt1_dev.h

./autogen.sh

./configure --enable-b25

make

make install

 

 

Mirakurunインストール

Node.jsインストール

sudo apt install curl

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

sudo apt install nodejs

node -v

 

Mirakurunインストール

sudo npm install pm2 -g

sudo npm install mirakurun -g --unsafe --production

Rivarunは入れなくてよし。

Mirakurun設定ファイル編集

サーバー設定

sudo mirakurun config server

ポートとか変えるならここで。

チューナー設定

sudo mirakurun config tuners

PT3×1ならたぶんそのままで動く。

PLEXチューナーの場合は以下参考に。

カーネルバージョンの指定等もあるので要注意。

www.jifu-labo.netチャンネル設定

sudo mirakurun config channels

 

 

Chinachuインストール

chinachu用にユーザーを作る。

sudo adduser chinachu

sudo -i -u chinachu

sudo apt install git

cd ~/chinachu

./chinachu installer

実行すると

Chinachu Installer Menu:
[!] These are installed under all /home/chinachu/chinachu/...
[!] Recommend the Auto installation.
1) Auto (full) 3) Node.js Environment 5) ffmpeg
2) submodule 4) Node.js Modules
what do you install? >

1を入力、Enter。

 

設定ファイル作成

echo "[]" > rules.json

cp config.sample.json config.json

nano config.json

vimは嫌でしょ。

 

config.json内の

uid をnullから"chinachu"に

recordedDirを保存先に変更(末尾は/で)

細かいところは公式見ればわかるはず。

Gamma Configuration · Chinachu/Chinachu Wiki · GitHub

 

起動

./chinachu service wui execute

プログラムが終了しなければ正常に動作しているはず。

Ctrl+Cで抜ける。

 

自動起動設定

sudo pm2 start processes.json


chinachu-operator x 1 x 0.9.5-gamma.0 x fork x online x 0 x 0% x 28.4 MB 
chinachu-wui x 0 x 0.9.5-gamma.0 x fork x online x 0 x 1.2% x 171.9 MB 
mirakurun-server x 2 x 2.7.1 x fork x online x 0 x 5.7% x 157.2 MB 

3つあること確認

mirakurunがなかったら

sudo mirakurun stop

sudo mirakurun start

で3つ出るように。

3つ揃ったら

sudo pm2 save

sudo pm2 startup

で次回から3つが起動する。


EPG取得

./chinachu update

これで

http://localhost:20772/#!/schedule/table/

に番組表が出てくるはず。

ライブ視聴もできれば完成、なはず。

 

 

 

以下参考。

kusano-k.hatenablog.com

www.jifu-labo.net

ksmksks.hateblo.jp

  

UbuntuにNVIDIAドライバーを入れようとしたらつまづいた話

友人の研究室にお手伝いでたまに行く。

どうやら今回はGTX1060を積んだLinuxサーバーを作るみたい。

だけどnvidiaのドライバーがうまく入らないらしい。

なんで俺に聞くんだと思いつつ、いろいろ試したのをメモする。

しかし、正しい方法はわからないので参考にはあまりしないでほしい。*1

 

0,今回の環境

OS:Ubuntu 18.04

GPU:GTX1060

 

1,事前準備

ドライバー削除

dpkg -l | grep nvidia
dpkg -l | grep cuda

 

すでにnvidiaの何かが入っているかもしれない。

入っていたら

sudo apt-get --purge remove nvidia-*
sudo apt-get --purge remove cuda-*

で消しておく。消した場合はここで再起動。

 

GUICUI

ログイン状態にしてCtrl+Alt+F1 で,CUI画面にする。

 

XWindow的なのを止める

$ sudo service lightdm stop
$ pkill Xorg

GUIを提供するサービス?を止める。

止めないと入らない(はず)。

 

注意:自分はこの方法で止めずに

sudo systemctl set-default multi-user.target

CUIにしてインストール。インストール後に

sudo systemctl set-default graphical.target

GUIに戻した。

 

2,リポジトリ(ppa)を登録

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update

 

3,ドライバーのインストール

sudo apt-get install nvidia-384

本当は390を入れたいが、384が最新であり実質390なので多分大丈夫。

*2

 

4,確認

reboot

再起動後に

dpkg -l | grep nvidia

nvidia-smi

 

多分実行できるはず。

 

5,CUDAも

CUDA Toolkit 10.0 Download | NVIDIA Developer

  1. `sudo dpkg -i cuda-repo-ubuntu1804-10-0-local-10.0.130-410.48_1.0-1_amd64.deb`
  2. `sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub`
  3. `sudo apt-get update`
  4. `sudo apt-get install cuda`

(注意:正しく入るかは未確認)

 

最後に

この方法のほうがいいかもしれない。

slackware.jp

 

参考ブログ

以下参考

swytel.hatenablog.com

qiita.com

swytel.hatenablog.com

*1:じゃあなぜブログにするのかって話でもあるが

*2:Ubuntu – Details of package nvidia-384 in bionic

ThinkPad X240のブート画面ロゴを変更した話

購入したX240、win7だったのでwin10に上げたのですが、ブート時のロゴがwindowsの窓なんですよね。

あれ、いかにもアップデートした感じで嫌じゃないですか。

 

windows10 boot logo - Google 検索

まさにこれ。

BIOSでもUEFIでもこれが出るの嫌ですよね、じゃあ書き換えられないのかって?

ThinkPadだとこれが書き換え可能なんです。

 

How to change the BIOS boot screen logo image on Lenovo Laptops

英語だけど詳細な画像つき。

ThinkPadのブートロゴを弄ろう « PC関連 « Tankの暇潰し工作記

説明が簡単だけど日本語。

 

これらのブログの通りやるだけですが、一応手順を説明すると

 

1,BIOSのアップデートツールをダウンロードをする

2,ダウンロードしたEXEを開く

3,C:\DRIVERS\FLASH\ランダムな英数字(だったはず)にあるBIOS_LOGO.txtを読む。

4,それに従ってロゴファイルを作成、txtと同じディレクトリに置く。

5,アップデート!

 

はい簡単。

 

注意点としてはLOGO2は完全なEFIブートでないと読み込みがされないという点です。

そのためにはCSMを無効にしたりLegacyBootを無効にしたり(SecureBootは無効でいい)する必要があります。*1

 

BIOSだとブートがLOGO1が読み込み→windows窓になります。それはそれでいいかもだけど。

*1:言うまでもなくGPTの必要あり

ThinkPad X240を買った

突然ですがThinkpad X240を買いました。

 

ヤフオクで液晶が汚れていない、割と良さげな個体が出てたのでつい購入してしまったのです。

最近リースアップ上がりが結構出ているみたいで最安だと10k切るみたい。

 

 

購入したのがこれ

 

ここからWWAN積んだり、*1SSD変えたりBIOS書き換えたりした。

*1:コンフルのはついているが自分のは別ルートなのでついていない

Raspberry pi で chromium+selenium + chromiumDriver が上手く動かなかった話

追記

pyu666.hatenablog.jp

こちらを参考にしてください。以下古い記事。

 

4ヶ月ぶりの投稿です。

 

seleniumとBeautifulSoupを使ってスクレイピングしようと思ったのですが

Raspberry Piで実行するときに引っかかったのでメモ。

 

 

Raspberry Pi + Selenium で検索

ほとんどの人が Selenium + Firefox +geckodriver で動くと書いてあった

が、新しくウインドウが開くだけでリンクが開けなかった。

いろいろ調べたものの、

 

・原因がFirefoxのバージョンアップに伴う仕様変更(しかも大規模更新)

 →現時点で動いても、バージョンアップですぐ動かなくなる可能性がある

・動作しても非常に遅い(分単位でかかるみたい)

 

ことから、一旦保留にした。

 

Firefoxが駄目ならChromiumを使えばいいじゃない

Chromiumseleniumを利用している人を見つけた。

www.reddit.com

基本的にはここに書かれている流れに沿って行う。

 

ただ、最新バージョンのChromium-driverを入れてしまうと、RaspberryPiに入っているChromiumが古いため動作しない。

 

ページ内に書かれているリンクだと最新版が入ってしまうので、意図的にバージョンが低いものをインストール。

launchpad.net

 

で、


driver = webdriver.Chrome('/usr/lib/chromium-browser/chromedriver')

driver.get('http://www.google.com/')

 

すると動いた。