OSAKANA TAROのメモ帳 のOrange pi PCをLinuxで使う方法 / lobris版UbuntuをOrange pi 2などで使う のページを参考にして入れていきます。
ただ、Ubuntuではなく、Debianの最小構成みたいなものを入れます。
Debian & Ubuntu for Orange PI H3 boards からファイルの置き場所( Google Drive )に行きDebian_jessie_mini.img.xz をダウンロードして、7zipで解凍。SDカードへの書き込みの方法は他のサイトで探してください。
以下の方法は、私がやって上手く行っているみたいだというだけで、素人が適当にやっていることなので、sudoが抜けているとか、それ根本的に間違ってるぞ、とか、普通そんなことしないぞ、とかそのままやっても上手く行かねえ、とか色々突っ込みどころはあるかと思いますが、決して「上手く行かないけど。どうやってやるの?」とか私に質問しないでください。聞かれても正直、わからないです。
焼いたSDカードの中身は Orange PI PC用以外のファイルがたくさん入っているので、以下のように削除して名前を変える、という作業をWindows PC側でします。
これだけ不要なファイル。
消してしまいます。
名前変えます。
名前変えます。
SDカードを突っ込んでOrange PI PCを起動。SSHでつなげますので、キーボードもモニターもつなげなくて良いです。LANケーブルだけルーターにつなぎます。
TeraTermなどでssh
OrangePIのIPアドレスはこの時点ではわからないので探す。
ユーザー名:root
パスワード:orangepi
# インストールした時点ではrootでSSHできてしまう問題がありますが、後で直します。
わかりにくいと思いますが、以下、赤い文字列がコマンドです。
fs_resize
Do you want to resize "/dev/mmcblk0p2" (y/N)? y
passwd
YourRootPassword
# rootパスワード変更(任意の文字列)
shutdown -r now
# 再起動してリサイズを反映させる
再度TeraTermなどでssh
OrangePIのIPはたぶん先ほどのIPアドレス。
ユーザー名:root
パスワード:先ほど変えたroot password
mkdir /etc/skel/public_html
# Webサーバーを運用する予定なら public_htmlというディレクトリがユーザーを追加した時点で自動的に作られる設定。Webサーバー入れないなら不要。
adduser YourUserName
# 自分のユーザー名を追加
groups orangepi
# orangepiの所属しているグループを確認。通常 orangepiとsudoの2つ。
usermod -aG sudo YourUserName
# 先ほど作った自分のユーザー名を sudo グループに設定。YourUserNameはあなたが作りたいユーザー名ですから、そのまま入力しないように。
# sudo ができるようになるための設定。
userdel orangepi
# orangepiユーザーを削除
groupdel orangepi
# orangepiグループを削除
apt-get install vim
# viエディタを使い慣れている人はviがないと話にならないので、この時点でインストール
update-alternatives --config editor
#エディタが違うものになっていたらviに変換するコマンド
----------------------------------------------------------------
esc : %s/hr/jp/g
----------------------------------------------------------------
sources.listがクロアチアになっているので、jpに一括置換。
apt-get update
apt-get install aptitude
# aptではなく、aptitudeを使うので、aptitudeをインストール
# aptよりも強力らしい(正直よく知らんですけど)
aptitude update
aptitude upgrade
su YourUserName
sudo cp -p /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
sudo vi /etc/timezone
Asia/Tokyo # に変更
date
# Sun Dec 13 09:12:46 JST 2015, JSTになっているか確認
sudo dpkg-reconfigure locales
JP.EUC-JP JP.UTF-8にチェック
sudo aptitude install cpufreqd cpufrequtils libcpufreq0
#デフォルトのCPU:1.6Ghzはオーバークロック状態らしいですので、1.2Ghzぐらいに落とします。
sudo vi /etc/cpufreqd.conf
以下のように編集
----------------------------------------------------------------
[Profile]
name=Performance High
minfreq=80%
maxfreq=80%
policy=performance
#exec_post=echo 8 > /proc/acpi/sony/brightness
[/Profile]
----------------------------------------------------------------
sudo vi /etc/init.d/cpufrequtils
GOVERNOR="performance" に変更
sudo /etc/init.d/cpufrequtils restart
# これで良いのか?自信なし。何かdmesgでエラー出てるけど、、、
#以下のスクリプトをコピペしてCPUが回っている周波数と温度などを見ます。
----------------------------------------------------------------
#/bin/bash
while (true); do
cpu_cur=$(( `cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq` / 1000 ))
cpu_max=$(( `cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq` / 1000 ))
cpu_min=$(( `cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq` / 1000 ))
cpu_cur="$(printf "%4s" $cpu_cur)"
cpu_max="$(printf "%4s" $cpu_max)"
cpu_min="$(printf "%4s" $cpu_min)"
tempr=`cat /sys/devices/virtual/hwmon/hwmon1/temp1_input`
tempr="$(printf "%3s" $tempr)"
ddr_cur=$(( `cat /sys/devices/platform/sunxi-ddrfreq/devfreq/sunxi-ddrfreq/cur_freq` / 1000 ))
ddr_max=$(( `cat /sys/devices/platform/sunxi-ddrfreq/devfreq/sunxi-ddrfreq/max_freq` / 1000 ))
ddr_min=$(( `cat /sys/devices/platform/sunxi-ddrfreq/devfreq/sunxi-ddrfreq/min_freq` / 1000 ))
ddr_cur="$(printf "%4s" $ddr_cur)"
ddr_max="$(printf "%4s" $ddr_max)"
ddr_min="$(printf "%4s" $ddr_min)"
echo -ne " CPU (MHz): $cpu_cur (min $cpu_min, max $cpu_max) TEMPERATURE: $tempr MEMORY (MHz): $ddr_cur (min $ddr_min, max $ddr_max) "\\r
sleep 0.2
done
----------------------------------------------------------------
chmod +x sensor.sh
./sensor.sh
# CPU (MHz): 1200 (min 1228, max 1228) TEMPERATURE: 49 MEMORY (MHz): 672 (min 408, max 672)
#これぐらいに落ちていれば、オーバーヒートしないと思います。Ctrl+Cでスクリプトを止められます。
aptitude install zsh
#shellはやっぱりzshだろう
cd
vi .zshrc
#zshの設定はとりあえずこんな感じで。
----------------------------------------------------------------
# Lines configured by zsh-newuser-install
HISTFILE=~/.histfile
HISTSIZE=1000
SAVEHIST=1000
autoload -U compinit; compinit
setopt hist_ignore_all_dups
setopt hist_reduce_blanks
alias lsa='ls -a'
alias lsl='ls -l'
alias lsla='ls -al'
alias -g G='| grep'
alias -g L='| less'
alias -g M='| More'
alias log='cd /var/log'
alias etc='cd /etc'
autoload colors
colors
case ${UID} in
0)
PROMPT="%B%{${fg[red]}%}%/#%{${reset_color}%}%b "
PROMPT2="%B%{${fg[red]}%}%_#%{${reset_color}%}%b "
SPROMPT="%B%{${fg[red]}%}%r is correct? [n,y,a,e]:%{${reset_color}%}%b "
[ -n "${REMOTEHOST}${SSH_CONNECTION}" ] &&
PROMPT="%{${fg[white]}%}${HOST%%.*} ${PROMPT}"
;;
*)
PROMPT="%{${fg[red]}%}%/%%%{${reset_color}%} "
PROMPT2="%{${fg[red]}%}%_%%%{${reset_color}%} "
SPROMPT="%{${fg[red]}%}%r is correct? [n,y,a,e]:%{${reset_color}%} "
[ -n "${REMOTEHOST}${SSH_CONNECTION}" ] &&
PROMPT="%{${fg[white]}%}${HOST%%.*} ${PROMPT}"
;;
esac
autoload -U compinit
compinit
# auto change directory
#
setopt auto_cd
# auto directory pushd that you can get dirs list by cd -[tab]
#
setopt auto_pushd
# command correct edition before each completion attempt
#
setopt correct
# compacked complete list display
#
setopt list_packed
# no remove postfix slash of command line
#
setopt noautoremoveslash
# no beep sound when complete list displayed
#
setopt nolistbeep
alias ls='/bin/ls -F --color=auto'
export PATH=$PATH:/sbin
path_history=($(pwd))
path_history_index=1
path_history_size=1
function push_path_history {
local curr_path
curr_path=$1
if [ $curr_path = $path_history[$path_history_index] ]; then
# do nothing
else
local path_history_cap
path_history_cap=$#path_history
if [ $path_history_index -eq $path_history_cap ]; then
local next_cap
next_cap=$(($path_history_cap * 2))
path_history[$next_cap]=
fi
path_history_index=$(($path_history_index+1))
path_history[$path_history_index]=$curr_path
path_history_size=$path_history_index
fi
}
function - {
if [ $path_history_index -eq 1 ]; then
# do nothing
else
path_history_index=$(($path_history_index-1))
local prev_path
prev_path=$path_history[$path_history_index]
cd $prev_path
fi
}
function + {
if [ $path_history_index -eq $path_history_size ]; then
# do nothing
else
path_history_index=$(($path_history_index+1))
local next_path
next_path=$path_history[$path_history_index]
cd $next_path
fi
}
function reset_path_history {
path_history=($(pwd))
path_history_index=1
path_history_size=1
}
function chpwd {
push_path_history $(pwd)
}
----------------------------------------------------------------
sudo vi /etc/ssh/sshd_config
#sshd_configの編集
----------------------------------------------------------------
PermitRootLogin yes
↓
PermitRootLogin no
# Rootログインを禁止します。
Port 22
↓
Port 50022
#別に22番でよければ、そのままPort 22で
AllowUsers YourUserName
# を最後の行に追加
----------------------------------------------------------------
sudo vi /etc/hostname
YourHostName # host name を適当に入れる
sudo vi /etc/hosts
127.0.0.1 YourHostName # hostnameで設定した名前をここに書く
sudo vi /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1 # 追加。 ipv6は使いません。
sudo aptitude remove isc-dhcp-client
# dhcpを削除する。
sudo vi /etc/network/interfaces
# IPアドレスを固定します。
----------------------------------------------------------------
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.101
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1
----------------------------------------------------------------
IPアドレスはご自分の環境に合わせて適宜書き換えてください。
これで私の環境ではとりあえず動いているようです。上手く行かない場合は、私にはわかりませんので、エラーは後であれこれ弄って何とか直す。Webで探して苦労しながら解決する、というのがこの手のものを使う楽しみというものです。
後はapache2でも、lighttpdでも、asterisk入れて内線電話システムやら、Webcamをつないで motionでも、お好きなように構成していけば楽しみが広がる、と思います。まあ何にしろ、LANの内部だけでやってる方が無難です。
以上、Debian_jessie_mini のやり方だけで、その他のディストリビューションはわかりません。
間違ってるところはご指摘ください。再度申し上げますが、素人があちこちのWebサイトを引いて適当にやっていることなので、、、
以上、Debian_jessie_mini のやり方だけで、その他のディストリビューションはわかりません。
間違ってるところはご指摘ください。再度申し上げますが、素人があちこちのWebサイトを引いて適当にやっていることなので、、、