寒い朝

コンピュータ系のことを書きます

Pentium3でも快適なPC環境がほしい

2000年頃買ったPentium3 850MHzの超低スペックノートPCでまともに動く環境を構築してみた。目指すのは少ないインストール容量と軽快な動作、文章作成やNASのへのアクセスなど。OSはArchlinux。

ディスプレイマネージャ

lightdm lxdm

重くはないが、ログオン画面まで多少待たされる。

xinit + XDM

非常に素早い。 ついでにXDMの使い方がよくわからなかったのでメモる。XDMは他のディスプレイマネージャと違って自分でセッションを定義する必要がある。その際xinitのデフォルトのxinitrcを使わないとdbusなどが起動せず動きがおかしくなる。

#xinitとXDMのインストール
sudo pacman -S xorg-xinit xorg-xdm

#startxで起動できるようにする
cp /etc/X11/xinit/xinitrc ~/.xinitrc
vim ~/.xinitrc    #.xinitrcの編集
chmod 744 ~/.xinitrc

#XDMを有効化する
sudo systemctl enable xdm
sudo systemctl start xdm

ウィンドウマネージャ

Xfce

軽いことで有名なデスクトップ環境。使えるが多少重い。

Openbox(LXDE

軽いことで有名なウィンドウマネージャ。ウィンドウの移動がまだ重い。

jwm

最軽量級と感じた一品。ウィンドウが移動時に枠だけになる設定にすると非常にスムーズになった。

<!-- The move mode (outline or opaque) -->
<MoveMode>outline</MoveMode>

<!-- The resize mode (outline or opaque) -->
<ResizeMode>outline</ResizeMode>

.jwmrc

日本語入力

fcitx-mozc

IMEは日本人にとって最も大切なソフトなので妥協はできない。動作は大して重くない。

ターミナル

xterm

もちろん軽いが、日本語が打てなかったりコピペできなかったりするので、物足りない。

LXTerminal

LXDEのターミナル。依存は少なく、機能は十分ある。ターミナルについては他にも軽くて良い物がありそうだけど、自分はそんなにこだわりがない。

ファイルマネージャ

PCManFM

LXDEのファイルマネージャ。XfceのThunarより依存パッケージは少ないが重さは同程度か。

gvfs-smb

これをインストールするだけでNASのデータをPCManFMで見ることができた。

ブラウザ

Firefox Chromium ...

非常に重い。そこそこ最近のPCでも思い時があるのだから当たり前だ。Javascriptを使ってるサイトなどは重くて見れたもんじゃないし、そうでなくてもスクロールがカックカクだ。

Midori

Illegal Instructionで落ちる。

Opera

動きはまずまずだが、更新が止まった旧バージョンのOperaしか使えなかった。理由は32bitOSだからだと思う。

NetSurf

Javascriptはガン無視で表示が崩れやすく、多少カクカクスクロールだが、軽快さはだいぶマシ。ページがちゃんと見れない場合を除いて及第点だ。GMailもJavadcript無し版では使えた。ただ、URLバー以外で日本語が打てないことが致命的。

PDFビューア

MuPDF

普通に使える。

ワープロソフト

Abiword

LibreOfficeは論外であるが、Abiwordも少々重く快適とは言えない。GTK3であるのと依存するパッケージが多い。

Zim

Wikiライクな操作性で、装飾文字・見出し・ツリー型ページ構成を交えて文章が書ける。ワープロソフトと分類していいのかは若干疑問だが、依存パッケージも少なく軽快で好感がもてる。

音楽プレーヤ

deadbeef

シンプルで軽い。NASからのファイルを再生しようとするとロードが長い。

LXMusic

シンプルで軽い。NASの音声ファイルををファイルマネージャからドラッグして追加できない。

Audacious

シンプルで軽い。依存パッケージが少し多い。

alsamixer(in alsa-utils)

ミュートを解除しましょう。

その他

LXTask

タスクマネージャ。必要最低限。

galculator-gtk2

電卓。

GPicView

画像ビューア。

総括

GTK2アプリとLXDE関連アプリで固めた形になった。選択肢は少ないが、軽いソフトを集めて使えばそれなりに使えるような気がする。ブラウザはダメだが。総合的にPuppy Linuxより軽いのではないか。

f:id:microwaver17:20150921164738j:plain

Google App EngineでFlaskを使うまで

Flaskとは

非常にコンパクトなPython用のWebアプリケーションのフレームワークです。詳しくは適当にググってください。

短い方法

「今すぐ試す」から始める

https://cloud.google.com/appengine/

長い方法

SDKのインストール

このページに書いてある通りにダウンロードする。

https://cloud.google.com/appengine/downloads

virtualenvの設定

自分の環境ではpythonコマンドがpython3.4にリンクしている。そのままではSDKのコマンドが使えないので、virtualenvを使って環境を用意する。もしかしたら環境変数PATHを一時的に書き換えるだけでも良かったかもしれない。

# python27フォルダが作られる
% virtualenv -p /usr/bin/python2.7 python27

# pythonをpython2.7に
% source ./python27/bin/activate
# pythonをpython3.4にもどす
% deactivate

Flaskのインストール

Google側で用意されていないので、アプリのディレクトリにインストールする。

mkdir lib
pip install -t lib flask

外部ライブラリの場所を設定する。

from google.appengine.ext import vendor
vendor.add('lib')

appengine_config.py

アプリの設定

version: 1
runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /.*
  script: main.app

app.yaml

アプリの作成

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
  return 'hello flask'

main.py

ローカルで実行

ローカルでサーバーを立ち上げる。初回起動時にアップデートをチェックするか聞かれる。自分は適当にYesにしてしまった。立ち上げたらhttp://localhost:8080にアクセスする。

% dev_appserver.py ./
INFO     2015-09-17 15:08:08,100 sdk_update_checker.py:229] Checking for updates to the SDK.
INFO     2015-09-17 15:08:08,387 sdk_update_checker.py:257] The SDK is up to date.
INFO     2015-09-17 15:08:08,435 api_server.py:205] Starting API server at: http://localhost:34218
INFO     2015-09-17 15:08:08,469 dispatcher.py:197] Starting module "default" running at: http://localhost:8080
INFO     2015-09-17 15:08:08,470 admin_server.py:118] Starting admin server at: http://localhost:8000

アップロード

Google Developers Consoleにアクセス。

https://console.developers.google.com/

登録をしたら頑張ってプロジェクトを作成する。プロジェクトIDはそのままURLになるので、よく考えて決めるべき。

次のコマンドでアプリがアップロードされる。

appcfg.py -A <プロジェクトID> update ./

認証が求められ、アップロードがうまく行けば http://プロジェクトID.appspot.com/ から見れるようになる。URLは、コンピュート -> App Engine -> ダッシュボード にも書いてある。

参考文献

GAEのチュートリアル: https://cloud.google.com/appengine/docs/python/gettingstartedpython27

GAEにないライブラリを使う: https://cloud.google.com/appengine/docs/python/tools/libraries27

Flaskのチュートリアル: http://a2c.bitbucket.org/flask/quickstart.html

Googleのドキュメントが英語しかなくてつらい。

Linuxでハイレゾ対応USB-DACを使う

自分の環境

  • OS: ArchLinux
  • USB-DAC: TEAC UD-H01

Ubuntuとかでも多分同じだと思います。

ハイレゾにしない場合

USB Audio Class対応のUSB-DACは、ただ接続するだけで使えるようになります。OS付属のサウンドコントロールのツールやpavucontrol(PulseAudio音量設定)でデバイスを有効にすれば、どんなプレーヤーでも使えるはずです。ただし、排他的にデバイスを利用できないし、サンプリング周波数も44.1kHzとかになってしまう。

ハイレゾで聞きたい場合

Linuxのサウンドシステム

Linuxのサウンド周りのデータの流れは、

PulseAudio -> ALSA -> サウンドデバイス

となっているようです。以下の図がわかりやすいです。

https://wiki.ubuntulinux.jp/UbuntuStudioTips/Setup/UbuntuSoundSystem?action=AttachFile&do=get&target=soundStructure-PulseAudio.png https://wiki.ubuntulinux.jp/UbuntuStudioTips/Setup/UbuntuSoundSystem

つまり、音声ファイルそのままの周波数で再生するためにはALSAに直接データを送るべき、ということです、たぶん(Windowsで言えばWASAPI排他モードに当たるのでしょうか)。

設定

まず、PulseAudioがUSB-DACを利用しないようにします。pavucontrol(PulseAudio音量設定)をインストールし、設定タブから使いたいデバイスをオフにします。これはCUIでできるかもしれません。 f:id:microwaver17:20150917135936p:plain

次に、自分のUSB-DACがどう認識さているか確認します。card2, stream0 は違う数字かもしれません。

% cat /proc/asound/card2/stream0 
TEAC TEAC USB AUDIO DEVICE at usb-0000:00:13.2-2, high speed : USB Audio

Playback:
  Status: Stop
  Interface 3
    Altset 1
    Format: S16_LE
    Channels: 2
    Endpoint: 3 OUT (ASYNC)
    Rates: 32000, 44100, 48000, 88200, 96000, 176400, 192000
    Data packet interval: 125 us
  Interface 3
    Altset 2
    Format: S24_3LE
    Channels: 2
    Endpoint: 3 OUT (ASYNC)
    Rates: 32000, 44100, 48000, 88200, 96000, 176400, 192000
    Data packet interval: 125 us

次にプレーヤーの設定です。ALSAで直接再生できるプレーヤーをいくつか探してみたところAudaciousが良さそうでした。PCMデバイスをUSB-DACに設定します。いくつか同デバイスの項目が出てきたので、デジタルで送ってくれそうなS/PDIFに設定しました。ビット震度は先程のFormatの一番高い値にしたいのですが、S24_3LEとあるのに24ビットにできませんでした。"_3"が付いているのはは3ビット単位で転送するフォーマットのようで、Audaciousではその設定ができないようです、たぶん。 f:id:microwaver17:20150917140030p:plain

以上です。

AMDのAPUが出してるCPU温度がおかしい

microwaver17です。よろしく。

先日、新しい自作PCAMD A8-7600で組みました。前のがIntel Core2Duo E8600だったのでかなり早く感じます。Googleマップがサクサク動くのが嬉しいです。

CPUの温度はUEFIBIOS)の設定画面や専用ソフトで見れますが、組み上がってCPU温度をUEFIでチェックしてみると、アイドル状態なのに60度こえていてビックリ。 f:id:microwaver17:20150917005543j:plain

小さいケースで作ったし、付属品のCPUクーラーじゃダメかな・・・と思い別のクーラーをわざわざ買ってしまったんですが、結果としては不要だったようです。

というのも、AMDのCPUの温度は当てにならないらしいのです。正確な値を知るためにはマザーボードが測定している値を見る必要があるみたいです。 f:id:microwaver17:20150917013952j:plain

この図のCPUTINがどうやらマザーボードの値のようです。自分はLinux環境ですが、WindowsでもHWMonitorやマザーボードツールで見ることができます。一応見た感じ正しいっぽかったですが、正しい証拠は今のところないです。

ちなみに、主なパーツ構成は以下の通り。

AMD A-series プロセッサ A8 7600 Socket FM2+ AD7600YBJABOX

AMD A-series プロセッサ A8 7600 Socket FM2+ AD7600YBJABOX

AMD A8-7600

ASRock FM2A88X ATX FM2A88X-ITX+

ASRock FM2A88X ATX FM2A88X-ITX+

ASRock FM2A88X-ITX

Cooler Master Elite 130 Cube PCケース CS4742 RC-130-KKN1-JP

Cooler Master Elite 130 Cube PCケース CS4742 RC-130-KKN1-JP

CoolarMaster Elite 130 Cube

サイズ ロープロファイルCPUクーラー 小太刀 リビジョンB  SCKDT-1100

サイズ ロープロファイルCPUクーラー 小太刀 リビジョンB SCKDT-1100

サイズ 小太刀