drag n drop

調べたことを書きます

raspberry piにlinuxをインストールする

きっかけ:

VM環境は、ホストOSのネットワークアダプタに異常が出ることがある

cygwinmingwは、パッケージマネージャでインストールできる自由度が低い

手持ちの余ってるノートPCにCentOSを入れようとしたが、電源端子が壊れていた

 

ということで、RPiにlinuxを入れてリモートで使うことにした

RedHat系が使いたいので、pidoraを選ぶ

ちなみに、Debian系の方が、パッケージマネージャの自由度が高いらしい

 

Raspberry Piに使用するSDカードを準備する

あらかじめFAT32でフォーマットしておく

SD Formatter 4.0を使用した

SD Card Formatter - SD Association

 

Raspberry PiのOSのインストーラを用意する

NOOBS 1.4.0を使用した

Download Zipでダウンロード

zipの中身をそのままSDカードのルートにコピペする

Downloads | Raspberry Pi

 

pidora専用のイメージ書き込みソフトを使う手もあるけど、

自分の場合、こっちを使うと、ネットワークがタイムアウトしやすくなった

原因は分からない

参考:Raspberry Pi に pydora 18 をセットアップする手順 | Pocketstudio.jp log3

 

Raspberry Piを起動

SDカードをRaspberry Piに差して、microUSB電源を差す

sshでリモート接続できるようになるまで、HDMI接続で画面を見ながら作業する

 

pidora専用のイメージ書き込みソフトを使う場合は、

SDのルートにheadlessファイルとconfig.txtを作成して初期設定を書き込めば、

OSが自動でインストールされ、一度も画面を見ずに初期設定を完了できるらしい

このとき、rootのデフォルトのパスワードはraspberrypi

今回は試していない

参考:Setup | Deblog | Page 2

   Some initial configurations for Headless Raspberry Pi

 

OS選択画面でPidoraを選択

Language: English (US), Keyboard: jp を選択

Language: Japaneseを選択してもいいが、画面によっては文字化けしてしまう

その他の画面は、デフォルトの選択肢でいい

参考:Raspberry Pi Documentation

http://www.raspberrypi.org/documentation/installation/images/noobs.png

 

pidoraのインストールが終わると、自動で再起動する

タイムゾーンや、アカウントの設定を行う

userアカウントを作るときに、Add to Administrators groupをチェックしておくと、

wheelグループに属した状態になるので、チェックしたままにした

swapは0にしてもいいけど、そのままにした

UIはTextにする

 

UIをGraphicalのままにしてしまった場合、下記のコマンドでTextに変更できる

$ sudo systemctl disable lightdm.service

参考:Fedora 21をCUIで起動する方法

 

pidoraで起動

作成したアカウントでログインする

 

sudoでパスワードを訊かれないように変更する

$ sudo nano /etc/sudoers

## Same thing without a password

%wheel ALL=(ALL) NOPASSWD: ALL

$ sudo reboot

 

ifconfigが入ってないのでインストールする

$ sudo yum update -y

$ sudo yum install -y net-tools 

 

リモート接続するために、固定IPを設定する(下記は定義例)

ifconfigで、ネットワークとデバイスを確認する

 

 $ sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

#BOOTPROTO=dhcp

BOOTPROTO=static

ONBOOT=yes

NM_CONTROLLED=yes

IPADDR=192.168.0.102

NETMASK=255.255.255.0

GATEWAY=192.168.0.1

DNS1=192.168.0.1

 

$ sudo nano /etc/resolv.conf

nameserver 8.8.8.8

 

$ sudo nano /etc/sysconfig/network

これはいじらなくてもいいみたい

 

$ sudo network restart

ネットワークを再起動

 

参考:[Linux]CentOSで手動で固定IPアドレスの設定を行う | QUALL - blog

   Raspberry PiにPidoraを入れた話 | 世界を疑え

 

sshでログイン出来るようにする

$ sudo nano /etc/ssh/sshd_config

PermitRootLogin no

PermitEmptyPasswords no

PasswordAuthentication yes

$ sudo systemctl restart sshd.service

参考:Server World - ネットワークサーバー構築

 

リモート接続する準備が出来たので、Windowsから接続してみる

RLoginを使用した 

Software Library

rlogin/telnet/ssh(クライアント)ターミナルソフト

エントリーを作成し、アドレス・user name・passwordを入力

socket port:ssh 文字セット:utf-8 にした

接続して、認証は、はい を選択

これで接続できるはず

 

自分の場合は、最初やったときに、エラーが出た

10061エラーは、接続先の固定IPを、WindowsPCと同じにしていたのが原因だった

10060エラーは、GUIから固定IPを設定したときに出た

ifconfigで確認したら設定と違うIPになっていた

前述のように、コマンドラインで固定IPを指定したら、エラーは出なくなった

あと、LAN端子が最後までささってないのが原因でつながらないというのもあった

yum updateのときにタイムアウトになったらこれを疑ってみる)

 

RLoginは、STFPファイルの転送が行えるが、なぜかたまに機能しないので、

WinSCPを使っている

WinSCP - 窓の杜ライブラリ

 

おまけ:

GUIを使用しないため、gpuメモリを最小にする

$ sudo nano /boot/config.txt

gpu_mem=32

$ sudo reboot

$ vcgencmd get_mem gpu

gpu=32Mと表示されたらOK 

最小は16だが、16MBでは足りないのか、16にすると勝手に128MBになった

 

pidora20ならおそらく大丈夫だと思うが、もしこの方法で反映されない場合は、

ファームウェアを最新のものに書き換えると、反映されるようになるらしい。

$ cd /boot
$ sudo wget -O bootcode.bin https://github.com/raspberrypi/firmware/raw/master/boot/bootcode.bin
$ sudo wget -O fixup.dat https://github.com/raspberrypi/firmware/raw/master/boot/fixup.dat
$ sudo wget -O fixup_cd.dat https://github.com/raspberrypi/firmware/raw/master/boot/fixup_cd.dat
$ sudo wget -O start.elf https://github.com/raspberrypi/firmware/raw/master/boot/start.elf
$ sudo wget -O start_cd.elf https://github.com/raspberrypi/firmware/raw/master/boot/start_cd.elf

$ sudo reboot

参考:http://www.raspberrypi.org/forums/viewtopic.php?f=51&t=81123

   http://www.raspberrypi.org/forums/viewtopic.php?f=51&t=37962

 

make installしたパッケージを管理するコマンドを入れる

wget http://downloads.sourceforge.net/project/porg/porg-0.7.tar.gz

$ tar xf porg-0.7.tar.gz

$ cd porg-0.7

$ ./configure --disable-grop

$ make

$ sudo make install

$ sudo make logme

参考:pacoからporgへ - Qiita

 

このとき、sudo make logmeがエラーになることがある

porgのPATHが通ってない可能性がある

$ which porg

which: no porg in なんたら、と出たら、PATHが通ってない

$ sudo nano /etc/sudoers

Defaults secure_path の行に、/usr/local/bin を追加する 

$ source ~/.bash_profile

bashを再起動する

これで、porgのPATHが通る

参考:sudo実行時に$PATHが通っていない場合の設定 | 黒川仁の文具堂ブログ三昧

 

以降、ソースコードからインストールするときは、下記の流れでインストールする

$ ./configure (無いときもある)

$ make

$ make check または $ make test (無いときもある)

$ sudo porg -lD make install

下記のコマンドで、インストールしたパッケージ一覧が表示される

$ porg -a

 

tmuxを入れる

1つの窓でbashや各コマンドを複数のpaneで同時に開けるらしい

$ sudo yum install -y tmux

tmuxで起動

tmux detachで、セッションを保存して終了

tmux attachで、最後に保存したセッションを復元して起動

 

tmuxを使っていると、上下スクロールは、Ctrl+B [ を押す必要があって面倒

$ ls -h | less というように、lessにパイプすると、

実行内容を上下キーでスクロールして見れるので、便利

lessは、qで終了する

 

開発用のパッケージを入れる

$ yum groupinstall -y "Development Tools" "Development Libraries"

 

おわり