2013年1月7日月曜日

Raspberry Pi に Arch Linux ( archlinux-hf-2013-07-22 ) を インストールする

2013年8月5日 記述

久々に、www.raspberrypi.org から、Arch LinuxのOSイメージ(archlinux-hf-2013-07-22.img)を

ダウンロードしてインストールしました。

その際、SDカードの使い方が変わっている事を発見しました。

従来:プライマリーパーティションにOSを展開

現在:拡張領域の論理パーティションにOSを展開

現在のOSイメージのSDカード展開では、このポストのStep1「SDcardの全領域」を使う方法が

使えません。従いまして、SDcard全領域を使う方法は、8月4日投稿をご参照ください。

http://robot009.blogspot.jp/2013/08/an-installation-arch-linux-arm-on.html


また、次の2点も変更になっていました。読み替えてご利用ください。

変更点1:
wpa_supplicantのインストールディレクトリーが、変更されている

/usr/sbin/wpa_supplicant →  /usr/bin/wpa_supplicant

変更点2:
/etc/conf.d/network の編集部分に関して、/etc/conf.d がなくっている。
/etc/conf.dディレクトリーを作成する必要があります。

それ以外は、本文の手順で実施可能な事を確認しました。




次の3Stepで、Raspberry PiにArch Linux をinstallする手順を説明します。
Step1: SDcardの全領域を使った最新Arch Linux だけ 環境構築 (section 3) 30分程度
Step2: wifi設定, ユーザ登録, Desktopなどの基本的な運用環境構築 (section 4,5) 40分程度
Step3:ロボット開発運用環境構築 (section 6) 僕専用の項目なので無視して下さい。

この投稿は、自分の忘備録なので、丁寧に説明しています。
細かい説明が必要ない方、および、最初から、固定IPアドレス設定で、
インストールしたい方は ーーー>こちら
ただし、私のロボット開発環境を前提にしています。サーバ用途でも利用できます。

Step1, Step2を行えば、Arch Linux, wifi, Desktop環境が実現できます。Desktopの設定は、downloadするfileが大量なので単独で20分から30分かかります。
ちなみに、私は、ロボット開発運用環境にDesktopは必要ないのでインストールしません。インストールしなければ、Step2は、20分くらいです。時間は、SDカードにより違います。
私の利用しているSDHCは、SanDisk Extreme class 10 16GB です。

Step3のロボットにご興味があれば->> Design Philosoph and concept of my robots
他のソフトのインストール方法、設定方法をまとめたページ は ->> Here Click !

Arch LinuxのHPに、"a lightweight and flexible Linux® distribution that tries to Keep It Simple"と記されています。また"Do-It-Yourself" なdistributionとして提供されています。インストールでは、必要最小限の機能しか導入されません。後から、Desktop も自分で選定して、インストールする必要があります。
私は、Arch Linuxのこの特徴を重視して、ロボット開発用OSとして使っています。
Arch Linuxは、Rolling Release方式の開発が行われており、ほぼ毎日、何かの更新があります。updateするとOSが最新版になります。2012年9月には、glibcの問題で苦労しましたが、それ以外は大きな問題は起こっていません。時々、あれ?って事ありますが、ロボット開発には最適なdistributionだと思います。

Table of Contents (目次)
1. Preparation (準備)
1.1 The first decision (最初に決める事)
1.2 How to select the SD card  (SDカードの選び方)
1.3 Self-powered hub (セルフパワーUSBハブ)
1.4 LAN environment (ネットワーク環境の確認)
1.5 Important commands and setting files for the installation (重要なコマンドファイル)
1.6 Using the full available capacity of SD card (SD Cardの拡張)
1.7 Installation for a dozen Raspberry Pis
1.8 LAN上のPCからのssh接続、ファイル転送 (My recommendation)


2. Making a boot SD card (SD cardの作成)
2.1 Helpful tips
2.2 Download a SD card image ( SD card imageファイルをダウンロードする)
2.3 Writing a SD card image (SD card にimage を書き込む)
2.3.1 Writing tool for Windows users (windows 用toolで書き込む)
2.3.2  Writing tool for Linux users (参考例)

3. SD cardの全領域を使った基本Arch Linux環境の構築
3.1 helpful tips
3.2 The first booting (最初のboot 指差し確認しながら)
3.3 Resize partition & swap & 最初のupgrade
3.3.1 Resize partition (2GBパーテションサイズの拡張)
3.3.2 Making a swapfile (スワップファイルを作る)
3.3.2 The first upgrade (最初のアップグレード)

4. 基本的な運用環境構築
4.1 Installing common tools
4.2 wifi (無線LAN)
4.2.1 dhcp
   (1) wifi パッケージのインストール
   (2) systemd wifi 設定ファイルの編集
   (3) 手動起動
   (4) 接続状態の確認
   (5) OS起動時にwifi起動するsystemdの設定
   (6) 接続できない時
4.2.2 static IP address
   (1) Disable dhcp
   (2) Writing a custom files for the systemd
   (3) Using unit
   (4) DNS                                        (important)
4.3 Add user
4.4 日本時間に設定する
4.5 Desktop (LXDE or X.Org)
4.6 How to configure GPU memory size

5. Aftertreatment

6. How to setup the environment to develop the robotics


------------------------------------------------------------------------------------------------------------

1. 準備

1.1 The first decision (最初に決める事)
インストールは、一発で済ませたいですね。その為に 何のために使うのか? 決める必要があります。
使用目的  Purpose of use
         ・まずは、試してみたい
         ・ホームサーバーにしたい
         ・開発環境を作りたい
         ・分散コンピューティングをしたい
        など


僕は、分散コンピューティングのロボットの開発に使っている。それを前提にインストールして環境を作ります。

Arch Linuxを「まずは、試してみたい」ということであれば、2.2, 2.3, 3.2 の項目の手順でインストールすれば十分かもしれない。

1.2 How to select the SD card
SDカードによっては、認識しない、イメージが書き込めるが使用中に何かおかしくなる、ddコマンドの書き込みしか認識されないなどの事象が発生します。家にあったいろいろなメーカのSDカードで試しました。結果的には、SanDiskのカードに落ち着きました。SDカードで、つままづくと面倒なので、これから購入する人は、他の方の情報を含めてSD カードを選んで下さい。
私のおすすめ SD card -> Click (SD card のブログが、新しいタブで開きます。)

SDHC カード実績情報 (yasnariさん情報 感謝感謝)
Transcend  class10              16GBx2, 8GBx3, 4GBx4, 32GBx2
KINGMAX  class10              8GB
amazon BASICS class10     32GB, 16GB, 8GB
amazon BASICS class10     32GB microSDHC(class10)


1.3 Self-powered hub (セルフパワーUSBハブ)
Raspberry Piは、外部電源から700mAの供給を受けているだけです。
従って、USBを使って外部機器を接続する場合には、セルフパワーUSBハブが必要になります。
この事は、OSには関係なくRasPi共通です。

ただし、差し込むUSB機器によっては、相性が合わない場合があります。
私の場合は無線LANのdongleと相性が悪く、気がつくまで時間が掛かりました。

1.4 LAN environment (ネットワーク環境の確認)
ネットワーク環境については、多分このページを見ている方は、問題がないと思います。
ただ、インストール作業完了までは、有線LANがよいと思います。

無線LAN用の機器については、こちらに紹介があります。(英語)

1.5 Important commands and setting files 
for the installation.
(1) pacman
OSのアップデート、パッケージインストール・アップデートに使います。
         (packageとは、簡単に言えば、目的の機能を実現する関連ソフトの集まりです)
pacmanは大変良くできています。インストール時には、次の3つを覚えていれば問題ありません。
・Upgrade all packages  :   pacman -Syu  (In this result, OS and packages upgraded)
・Install packages          :   pacman -S  package package ,,,,,
・Delete packages         :   pacman -R  package package ,,,,,


/etc/pacman.d/mirrorlist にミラーサーバの記述があります。ダウンロードが遅い場合には、変更してみて下さい。

(2) fdisk
SDカードの全部の記録領域を使える様に設定するコマンドです。使用方法は、3.2に書いてあります。

(3) resize2fs
SDカードの全部の記録領域を使える様に変更するコマンドです。使用方法は、3.2に書いてあります。

(4) /etc/hostname
ホスト名が設定されているファイルです。ホスト名の変更は、直接編集しないで、3.3.3の方法で実施します。
(旧)ファイル内の文字列を変更して、rebootすればホスト名が変わります。

1.6 Using the full available capacity of SD card
ダウンロードしたSDカードイメージは2GBの構成になっています。試すだけであれば問題ありません。SD cardは、メモリーの外部記憶装置なのでpartitionを拡張すれば良いです。ハードディスクとなどと違い、partition分割などはしなくても良いと考えます。fdisk と resize2fsを使います。

1.7 Installation for a dozen Raspberry Pis
複数台のインストールをする場合には、最初に1台分のインストールを行い、それを他のSDカードにコピーします。その後、hostnameやssh関連の設定をすれば早く済みます。コマンド例は、下記です。バックアップ先のデバイス名や、ファイルの格納先は、自分の環境に書き直します。ちなみに、私は13台のRasPiのBootDiskをこの用に作成しています。あまり良い方法ではありません.
- backup
  dd if=/dev/sdc of=/home/user/sdcardimg.dd
- restore
 dd if=/home/user/sdcardimg.dd of=/dev/sdc


1.8 LAN上のPCからのssh接続、
ファイル転送ソフト(my recommendation)
PC用 Tera term, winSCP
Ubuntu   FileZilla
これらのソフトを使って、LAN接続後のRasPiに接続できます。現在のSDカードイメージは、安定しています。また、起動後にdhcpクライアント、SSHDサーバが起動するので、dhcpサーバがある環境では、他のマシンからssh接続ができます。設定はssh接続して行った方が楽です。


2. Making a boot SD card
2.1 Helpful tips
手順通りにすれば、大丈夫です。問題が起こった時には、違うSD cardで試して見ましょう。

2.2 Download a SD card image
下記から、ダウンロードして下さい。
http://www.raspberrypi.org/downloads


2.3 Writing a SD card image
次の2つの方法で、可能です。大多数の方は、windows環境のツールを使われると思います。私は、ddコマンドで作成しています。理由は、ddコマンドで作成したboot diskしか起動しない場合があったからです。

2.3.1 Writing tool for windows users
windows OS環境で、Boot用SDカードを作る為には、
下記から、書き込み用プログラム(Win32DiskImager)をダウンロードして使います。
https://launchpad.net/win32-image-writer/+download
ダウンロードしいた圧縮ファイルを解凍して、ダブルクリックすれば起動します。
その後、メッセージに従って、ダウンロードしたファイル、および書き込み先を指定するればOKです。


2.3.2 Writing tool for Linux users(参考例)
下の例は、OS X V10.8ですが、ddコマンドが使える場合には同じオペレーションです。最初に、download してきた、ファイルを解凍します。その後、次の手順で書き込みます。raw diskとして書き込む必要があるので、umountしています。その後、書き込んでいますデバイス名は、自分の環境にして書き直して下さい。 df -h で確認可能です。
sudo diskutil unmount /dev/disk2s2
sudo dd bs=1m if=~/Downloads/archlinux-hf-2013-02-11.img of=/dev/rdisk2


書き込み時間は、Macmini  i5  2.5GHz で、1分くらいです。


3. SD cardの全領域を使った基本Arch Linux環境の構築
3.1 Helpful tips
もっとも、緊張する作業ですが3.2を参照して落ち着いて作業をすれば、大丈夫です
また、3.2の項目を満たせば、ハードウェアの異常は無いと考えてよいです。


3.2 The first booting (指差し確認しながら)
・最初は、USBハブをつなげない
・電源は、まだ入れない
・USBキーボートをRasPiに接続する
・boot イメージの入った、SDカードを、挿入する
・LANケーブルを挿入する
・HDMIケーブルを挿入する、ディスプレーの電源を入れる
・RasPiのに、電源のUSBを挿入する

・PasPiのLEDがつく
・ディスプレーに、RasPiのロゴが出る
・ディスプレーに、処理の状態が次々に現れる。
・ディスプレーの最後に、次の文字が現れる。

Arch Linux 3.2.27-5-ARCH* (tty1)
alarmpi login :


電源を入れて、5秒以内で上記のプロンプト状態になります。
user : root,  password : root でログインできます。
LANに接続してあれば、dhcp, OpenNTP, OpenSSHが、動いています。

LANに接続できれば、RaspPi本体は正常に動いていると考えられます。

3.3 Resize Partition & Swapfile & 最初のupgrade
SD cardのOS領域は、最初は2GBです。それより大きな容量のSD cardの場合には、残りの領域が未使用です。その領域を使う為の処理です。fdiskで設定し再起動します。その後に、resize2fsを実際の変更をすればSD cardの全ての領域が利用できます。次に512MBのswapファイルを作成します。Arch Linuxを最新にする為にOSやパッケージのupgradeを行います。

下の例は、Macmini(192.168.11.xx)からSSH接続で、RasPi(192.168.11.3)にloginして操作した例です。僕は、最初からssh接続でインストール作業をしています。
従って、ディスプレーを接続してインストールする場合は、ssh接続は無視して下さい。
初めてのインストールは、ディスプレーを接続した方が、感動があります。
青太字斜体入力です。また、対象のSD cardは16GBです。下記に表示される数字が違うだけで、32GBでも8GBでも問題はないと思います。

3.3.1 Resize Partition
Macmini:~ nao$ ssh root@192.168.11.3  ホストIDは自分の環境に置き換える
root@192.168.11.3's password:                    root  を入力する

[root@alarmpi ~]# fdisk /dev/mmcblk0  このまま入力  パーテション変更
Welcome to fdisk (util-linux 2.21.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p          このまま入力 現在の設定を表示
Disk /dev/mmcblk0: 15.9 GB, 15931539456 bytes
4 heads, 16 sectors/track, 486192 cylinders, total 31116288 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c21e5
Device Boot  Start       End      Blocks   Id  System 現在2GBの使用である事が分かる
/dev/mmcblk0p1   *    2048      194559       96256    c  W95 FAT32 (LBA)
/dev/mmcblk0p2      194560   386252   1833984   83  Linux
Command (m for help): d          このまま入力 パーテションの削除
Partition number (1-4): 2          このまま入力 2番目を指定
Partition 2 is deleted
Command (m for help): n          このまま入力 新しいパーテション設定
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p):                                             enter キー押下 default設定
Using default response p
Partition number (1-4, default 2):                     enter キー押下 default設定
Using default value 2
First sector (194560-31116287, default 194560): enter キー押下 default設定
Using default value 194560
Last sector, +sectors or +size{K,M,G} (194560-31116287, default 31116287): 
Using default value 31116287                                              enter キー押下 default設定
Partition 2 of type Linux and of size 14.8 GiB is set
Command (m for help): w          このまま入力 設定値の書込み
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@alarmpi ~]# reboot         再起動

Macmini:~ nao$ ssh root@192.168.11.3 再度、MacからRasPiにSSH接続
root@192.168.11.3's password:                root を入力する


[root@alarmpi ~]# resize2fs /dev/mmcblk0p2 このまま入力 拡張処理(2分位)
resize2fs 1.42.5 (29-Jul-2012)
Filesystem at /dev/mmcblk0p2 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/mmcblk0p2 to 3865216 (4k) blocks.
The filesystem on /dev/mmcblk0p2 is now 3865216 blocks long.
[root@alarmpi ~]# df -h             このまま入力 変更結果の確認
Filesystem      Size  Used Avail Use% Mounted on
rootfs           15G  405M   14G   3% /      15Gに増えています
/dev/root     15G  405M   14G   3% /
devtmpfs         92M     0   92M   0% /dev
tmpfs            92M     0   92M   0% /dev/shm
tmpfs            92M  256K   92M   1% /run
tmpfs            92M     0   92M   0% /sys/fs/cgroup
tmpfs            92M     0   92M   0% /tmp
/dev/mmcblk0p1   94M   37M   58M  39% /boot

3.3.2 Making a Swapfile
                                            
[root@alarmpi ~]# dd if=/dev/zero of=/swapfile.img bs=1M count=512
512+0 records in         Swap file 作成 512MBのファイル (1分)
512+0 records out
536870912 bytes (537 MB) copied, 28.2801 s, 19.0 MB/s
[root@alarmpi ~]# mkswap /swapfile.img                        このまま入力
Setting up swapspace version 1, size = 524284 KiB
no label, UUID=456776ef-d759-4e1e-92ec-65daa5fdc3c2
[root@alarmpi ~]# swapon /swapfile.img                            このまま入力

[root@alarmpi ~]# cat /proc/swaps                             swap file の確認
Filename Type Size Used Priority
/swapfile.img                     file 524284 0 -1

[root@alarmpi ~]# vi /etc/fstab  
        起動時にmountする為に/etc/fstabの最後に次の1行追加
                                        /swapfile.img none swap sw 0 0

3.3.3 The first upgrade
ホスト名の変更は、必須ではありません。

[root@alarmpi ~]# pacman -Syu       最初のupgrade (20分位)
[root@alarmpi ~]# hostnamectl set-hostname rcmp-sv01 ホスト名変更
[root@alarmpi ~]# reboot

これで、SD cardの全領域を使った、最新Arch Linux だけ の環境が、構築できました。
後は、目的に応じたパッケージの導入や、設定です。

4. 基本的な運用環境構築
4.1 Installing common tools
(1) lshw   接続されているハードウェア情報表示
(2) sudo

[root@rcmp-sv01 ~]# pacman -S lshw sudo 

4.2 wifi (無線LAN)  DHCP利用
私は、価格重視で、BUFFALO WLI-UC-GNMを使っています。これは、Ralink RT8070 チップを使っています。現在のインストールイメージには、Ralink RT8070のfirmware, driverとも入っていますので簡単に使えます。wifi設定の方法や、使うコマンドは、他にもいろいろあります。このやり方だけが、全てではありません。

(1) wifi パッケージのインストール
[root@rcmp-sv01 ~]# pacman -S   wpa_supplicant wireless_tools

(2) wifi 設定ファイルの編集
[root@rcmp-sv01 ~]# vi /etc/wpa_supplicant/wpa_supplicant.conf
下の例は、家のLANとPockect Wifiの2つの設定です。priorityで同じ環境にあった場合の優先順位を決めています。有線順位は、家が高いです。このように、記述しておくと、自動的に切り替わります。その他は、標準的なWPAPA2-PSKの設定方法であり、ssidとpskの部分を変更すれば、そのまま使えます

# ----- add my block 19/08/2012 ----------
network={
ssid="家のESSID"
proto=RSN
priority=1
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP
psk="家用のKEY"
}

network={
ssid="Pocket WifiのESSID"
proto=RSN
priority=10
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP
psk="Pocket Wifi用のKEY"
}

(3) 手動起動
ifconfigを使っていますが、/sbin/ip link set dev wlan0 up でも同じです。お好みで。。。
[root@rcmp-sv01 ~]# /sbin/ifconfig wlan0 up
[root@rcmp-sv01 ~]# /usr/sbin/wpa_supplicant -B -Dwext -iwlan0 
                                -c/etc/wpa_supplicant/wpa_supplicant.conf
[root@rcmp-sv01 ~]# /usr/sbin/dhcpcd wlan0

(4) 接続状態の確認
[root@rcmp-sv01 system]# ifconfig wlan0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.11.4  netmask 255.255.255.0  broadcast 192.168.11.255
        inet6 fe80::xxxx:xxxx:xxxx:95f4  prefixlen 64  scopeid 0x20<link>
        ether xx:xx:xx:xx:95:f4  txqueuelen 1000  (Ethernet)
        RX packets 304  bytes 36770 (35.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 21  bytes 2096 (2.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

(5) OS起動時にwifi起動するsystemdの設定
systemdに変更になっているので、次の様に設定して、rebootします。
[root@rcmp-r01 ~]# cd /etc/systemd/system
[root@rcmp-sv01 system]# vi wifi.service          下記の内容を記述する
[root@rcmp-sv01 system]# cat wifi.service
Description=wifi
Wants=network.target
Before=network.target
BindsTo=sys-subsystem-net-devices-wlan0.device
After=sys-subsystem-net-devices-wlan0.device
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/sbin/ifconfig wlan0 up
ExecStart=/usr/sbin/wpa_supplicant -B -Dwext -iwlan0 
-c/etc/wpa_supplicant/wpa_supplicant.conf
ExecStart=/sbin/dhcpcd wlan0
[Install]
WantedBy=multi-user.target
[root@rcmp-sv01 system]# systemctl enable wifi   起動時実行の有効化
ln -s '/etc/systemd/system/wifi.service' '/etc/systemd/system/multi-user.target.wants/wifi.service'
[root@rcmp-sv01 system]# reboot

(6) 接続できない時
これで、wifi接続できない場合には、設定ファイル、または  wifi dongleの、driver もしくは firmwareが正しくインストールされているか?確認する必要があります。
参考:firmware=0.22の時は、半日毎にシステム再起動が必要でした。

[root@rcmp-sv01 ~]# lshw         出力されるメッセ時のこのセクションを確認する
  *-network:0
       description: Wireless interface
       physical id: 1
       bus info: usb@1:1.3.4
       logical name: wlan0
       serial: xx:xx:xx:a9:24:e6
       capabilities: ethernet physical wireless
       configuration: broadcast=yes driver=rt2800usb driverversion=3.2.27-18-ARCH+ firmware=0.29 ip=192.168.11.21 link=yes multicast=yes wireless=IEEE 802.11bgn

firmwareの場所:/lib/firmware
driver の場所:/usr/src/linux-3.6.11-2-ARCH+/drivers/net/wireless

これで、有線LANのケーブルを外せます。後は、全てssh接続の作業です。
今は、最初のboot時からsshで作業をしています。

4.2.2 static IP address 固定アドレス利用
How to run the static IP address wifi.

Raspberry Piの有線LANおよび増設した無線LANの両方を固定アドレスにする設定は
こちら Here ! ただし、wpa_supplicant.confの設定ができるている事が前提です。

(1) Disable dhcp
If you run the wifi using above, you stop the wifi service and dhcpcd service.
[root@rcmp-sv01 system]# systemctl disable dhcpd@wlan0.service
[root@rcmp-sv01 system]# systemctl disable dhcpcd@wlan0.service
[root@rcmp-sv01 system]# systemctl disable wifi.service
rm '/etc/systemd/system/multi-user.target.wants/wifi.service'

(2) Writing a custom files for the systemd
[root@rcmp-sv01 system]# vi /etc/conf.d/netwifistaticip    edit a new file
[root@rcmp-sv01 system]# cat /etc/conf.d/netwifistaticip
interface=wlan0
address=192.168.11.70         static IP address
netmask=24
broadcast=192.168.11.255
gateway=192.168.11.1
[root@rcmp-sv01 system]# vi /etc/systemd/system/netwifistaticip.service
[root@rcmp-sv01 system]# cat /etc/systemd/system/netwifistaticip.service
[Unit]
Description=Network Connectivity
Wants=network.target
Before=network.target
[Service]
Type=oneshot
RemainAfterExit=yes
EnvironmentFile=/etc/conf.d/netwifistaticip
ExecStart=/sbin/ip link set dev ${interface} up
ExecStart=/usr/sbin/wpa_supplicant -B -Dwext -i${interface} 
-c/etc/wpa_supplicant/wpa_supplicant.conf
ExecStart=/sbin/ip addr add ${address}/${netmask} broadcast ${broadcast} dev ${interface}
ExecStart=/sbin/ip route add default via ${gateway}
ExecStop=/sbin/ip addr flush dev ${interface}
ExecStop=/sbin/ip link set dev ${interface} down

(3) Using unit
[root@rcmp-sv01 system]# systemctl enable netwifistaticip.service
[root@rcmp-sv01 system]# ln -s '/etc/systemd/system/netwifistaticip.service' 
'/etc/systemd/system/multi-user.target.wants/netwifistaticip.service'
[root@rcmp-sv01 system]# systemctl start netwifistaticip.service


(4) DNS
If you use a static IP on your Raspberry Pi,  you need to add a DNS address in /etc/resolv.conf.
If you are able to ping this address, you may try adding this nameserver to your /etc/resolv.conf file. It is the address of Google's primary DNS serve.
[root@rcmp-sv01 ~]# ping -c 3 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=46 time=46.4 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=46 time=50.1 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=46 time=50.2 ms
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 46.446/48.952/50.259/1.791 ms
[root@rcmp-sv01 ~]# vi /etc/resolv.conf
[root@rcmp-sv01 ~]# cat /etc/resolv.conf
# Generated by dhcpcd
# /etc/resolv.conf.head can replace this line
# /etc/resolv.conf.tail can replace this line
#nameserver 192.168.11.1                      # your DNS 
nameserver 8.8.8.8                            # 8.8.8.8 ping OK

\(^o^)(-------------------)(^o^)/

4.3 Add user
ユーザ追加と、sudoの設定をします。

(1) pacman -S sudo     4.1で実施済み

(2) useraddで、ユーザを登録。グループは、wheel、uucpを指定。
useraddコマンドの仕様が変わったみたいです。コマンドラインでどうぞ。passwdコマンドで仮のパスワードを設定します。ssh接続の為に必要です。
[root@rcmp-sv01 system]# useradd -m -g wheel -G users,video,uucp,tty,lp -u 100 nao
この画面情報は、3ヶ月まえのコマンドの画面です。
Login name.......:  nao                 sample id
UID..............:  100                        sample UID
Initial group....:  wheel               administrator group
Additional groups: users video uucp tty lp  option for developing the robotics
Home directory...:  /home/nao
Shell............:  /bin/bash
Expiry date......:  [ Never ]

(3)(仮)パスワード設定
[root@rcmp-sv01 system]#passwd nao
passwd nao
Enter new UNIX password:  xxxxxx
Retype new UNIX password:  xxxxxx
passwd: password updated successfully


(4) visudoで、上記ユーザがいちいちパスワードを入力しないように変更
[root@rcmp-sv01 system]# visudo
## Same thing without a password
#%wheel ALL=(ALL) NOPASSWD: ALL                            delete a  '#"

4.4 Change timezon
[root@rcmp-sv01 ~]# timedatectl set-timezone Japan       or
[root@rcmp-sv01 ~]# timedatectl set-timezone Asia/Tokyo


4.5 Desktop (LXDE or X.Org)
Arch Linuxと同様に、simpleなDesktop LXDE (Lightweight X11 Desktop Environment)の
インストールが、お薦めです。下記の内容は、参照先を抜粋した内容です。
Raspberry財団の推奨OS RaspBian "wheezy"のDesktopも、LXDEです。
また、LinuxのDesktopのルーツは、X11と呼ばれるウィンドシステムです。それを受け継ぐ、X.Orgもあります。ただし、玄人向けです。

(1) LXDE
詳しくは、このページ-> Click
[root@rcmp-sv01 ~]# pacman -Syu
[root@rcmp-sv01 ~]# pacman -S lxde xorg-xinit xf86-video-fbdev
[root@rcmp-sv01 ~]# pacman -S leafpad obconf gpicview gedit leafpad: editor
[root@rcmp-sv01 ~]# mkdir ~/.config
[root@rcmp-sv01 ~]# mkdir ~/.config/openbox
[root@rcmp-sv01 ~]# cp /etc/xdg/openbox/menu.xml /etc/xdg/openbox/rc.xml /etc/xdg/openbox/autostart ~/.config/openbox
[root@rcmp-sv01 ~]# xinit /usr/bin/lxsession run

私は、gedit (プログラム開発用editor), gimp (画像処理用)を追加します。

(2) X.Org
詳しくは、このページ-> Click
[root@rcmp-sv01 ~]# pacman -Syu
[root@rcmp-sv01 ~]# pacman -S xorg
[root@rcmp-sv01 ~]# startx

LXDEは、Linux のDesktopでは最軽量だと思います。私もUbuntuのDesktop として使っています。
X.Orgは、LXDEなどの元になっているX11です。X11は、もう20年以上存在しています。良いソフトと言うのは、生き続ける例だと思います。
20年以上前、X11の日本語化を某商社から頼まれた事がありました。(仕事は受けませんでしたが)とりあえず、ソースを読みました。自分も、その前にスクラッチでマルチウィンドシステムを作っていたので、良く理解できたと同時に「プログラムって、こう書くんだ!」と認識させられました。
マルチウィンドシステム作ったので某商社から依頼があったのですが、、、
当時は一般的なPCのOSがDOSでした。その上に、疑似マルチタスクの環境を作り、マルチウィンドの3次元GISを作りました。27カ国語対応をしましたが、とっても疲れました。ちなみに、そのときの私の本職は都市計画のコンサルタントです。図面の色塗りが嫌いだったので、GISシステムを作ったら、いろいろな所から発注があり、最後は27カ国語対応となってしまいました。面白かったのは、ヘリコプター用のナビゲーションシステムです。車の数倍のスピードで飛ぶヘリコプターの動きに会わせて地図をスクロールするのは、当時のCPU i80386では大変でした。今だったら普通のノートPCで簡単に出来ます。GISに関しては、公的機関の標準化の委員などもしたので、行き着くとこまで行った感があり3年目で引継し、元の仕事に戻りました。
GISのCore部分のソフトウェア技術などは、ほとんど進歩していません。データとアプリケーションは多くなりました。ハードウェアの性能が飛躍的に良くなったので、Core部分のソフトを進化させる必要がないのです。しかし、本当に必要なのは時間の次元を持った空間DBです。今回は、農業工程をロボットで自動化する為に必要な時間軸を持った空間DBを作る事にしました。私の時計を、20年前に戻して、、、、、
すみません、つい余計な事を書いてしまいました。

4.6 How to configure GPU memory size
Click   HERE!

5. Aftretreatment (後処理)
Delete download files.
Make your installation manual using your notes and this document .

6. How to setup the environment to develop robotics.
Please access our site, if you hava a interest to our robotics.
http://www.tomato-farm.com/robot/setup.html

Hope this helps.

Peace!


0 件のコメント:

コメントを投稿