BerryBoot の kernel で起動してるってこと?

ここのところ、Fedora21 – 22 ばっかりを触っていまして、オフィシャルのRaspbian からちょっと離れていました。

で、Raspbian の image も BerryBoot 用に変換しようと思い、見てみると BerryBoot でインストールするオフィシャルの Raspbian は、2015 年の2 月に作成されています。

 

ん? これはちょっと古いやつですかね?オフィシャルの最新は、リリースノートを見ると、

http://downloads.raspberrypi.org/raspbian/release_notes.txt
2015-05-05:
  * Updated UI changes
  * Updated firmware
  * Install raspberrypi-net-mods
  * Install avahi-daemon
  * Add user pi to new i2c and spi groups
  * Modified udev rules for i2c and spi devices
2015-02-16:
  * Newer firmware with various fixes
  * New Sonic Pi release
  * Pi2 compatible RPi.GPIO
  * Updated Wolfram Mathematica
2015-01-31:
  * Support for Pi2
  * Newer firmware
  * New Sonic Pi release
  * Updated Scratch
  * New Wolfram Mathematica release
  * Updated Epiphany

::

とやっているようです。なので、変換してiscsi boot に入れてみました。いろんなバージョンを入れ替えできるので、便利です。(と、このときは思っていまいたが、、、)

img 変換の手順はメモしたのを見ながら、やればあんなに苦労したのに、あっさり。手順書っていうのは大切ですね。

 

恒例のUnixBench は以下のようでした。

========================================================================
   BYTE UNIX Benchmarks (Version 5.1.3)

   System: pi: GNU/Linux
   OS: GNU/Linux -- 3.18.10v7-aufs -- #1 SMP PREEMPT Wed Apr 1 00:07:44 CEST 2015
   Machine: armv7l (unknown)
   Language: en_US.utf8 (charmap="ANSI_X3.4-1968", collate="ANSI_X3.4-1968")
   CPU 0: ARMv7 Processor rev 5 (v7l) (0.0 bogomips)
          
   CPU 1: ARMv7 Processor rev 5 (v7l) (0.0 bogomips)
          
   CPU 2: ARMv7 Processor rev 5 (v7l) (0.0 bogomips)
          
   CPU 3: ARMv7 Processor rev 5 (v7l) (0.0 bogomips)
          
   20:41:56 up 7 min,  2 users,  load average: 0.61, 0.18, 0.07; runlevel 2

------------------------------------------------------------------------
Benchmark Run: 月  7月 20 2015 20:41:56 - 21:10:14
4 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables        3316993.9 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                      554.5 MWIPS (10.0 s, 7 samples)
Execl Throughput                                491.3 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks         49985.5 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           13538.4 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        149986.5 KBps  (30.0 s, 2 samples)
Pipe Throughput                              207549.3 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  37800.2 lps   (10.0 s, 7 samples)
Process Creation                               1425.8 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   1298.1 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    332.3 lpm   (60.1 s, 2 samples)
System Call Overhead                         459612.1 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0    3316993.9    284.2
Double-Precision Whetstone                       55.0        554.5    100.8
Execl Throughput                                 43.0        491.3    114.2
File Copy 1024 bufsize 2000 maxblocks          3960.0      49985.5    126.2
File Copy 256 bufsize 500 maxblocks            1655.0      13538.4     81.8
File Copy 4096 bufsize 8000 maxblocks          5800.0     149986.5    258.6
Pipe Throughput                               12440.0     207549.3    166.8
Pipe-based Context Switching                   4000.0      37800.2     94.5
Process Creation                                126.0       1425.8    113.2
Shell Scripts (1 concurrent)                     42.4       1298.1    306.1
Shell Scripts (8 concurrent)                      6.0        332.3    553.8
System Call Overhead                          15000.0     459612.1    306.4
                                                                   ========
System Benchmarks Index Score                                         174.7

------------------------------------------------------------------------
Benchmark Run: 月  7月 20 2015 21:10:14 - 21:39:00
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables       12869914.9 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     2212.6 MWIPS (10.0 s, 7 samples)
Execl Throughput                               1143.7 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks         69133.5 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           18287.4 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        220513.0 KBps  (30.0 s, 2 samples)
Pipe Throughput                              802846.4 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 139871.0 lps   (10.0 s, 7 samples)
Process Creation                               3197.1 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   2636.1 lpm   (60.1 s, 2 samples)
Shell Scripts (8 concurrent)                    347.5 lpm   (60.3 s, 2 samples)
System Call Overhead                        1719885.8 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   12869914.9   1102.8
Double-Precision Whetstone                       55.0       2212.6    402.3
Execl Throughput                                 43.0       1143.7    266.0
File Copy 1024 bufsize 2000 maxblocks          3960.0      69133.5    174.6
File Copy 256 bufsize 500 maxblocks            1655.0      18287.4    110.5
File Copy 4096 bufsize 8000 maxblocks          5800.0     220513.0    380.2
Pipe Throughput                               12440.0     802846.4    645.4
Pipe-based Context Switching                   4000.0     139871.0    349.7
Process Creation                                126.0       3197.1    253.7
Shell Scripts (1 concurrent)                     42.4       2636.1    621.7
Shell Scripts (8 concurrent)                      6.0        347.5    579.2
System Call Overhead                          15000.0    1719885.8   1146.6
                                                                   ========
System Benchmarks Index Score                                         406.7

 

まぁ、OS が変わったからといって劇的に変化があるわけじゃないんですが。

CPUのFREQは、

root@pi:~# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

1000000★

root@pi:~# uname -a

Linux pi 3.18.10v7-aufs #1 SMP PREEMPT Wed Apr 1 00:07:44 CEST 2015 armv7l GNU/Linux

root@pi:~#

ん? 今気が付いたんですが、kernel が、BerryBoot のaufs のなんですが?

root@pi:/mnt# lsmod

Module                  Size  Used by

cfg80211              366024  0

rfkill                 14438  1 cfg80211

snd_bcm2835            17419  0

snd_pcm                68808  1 snd_bcm2835

snd_seq                49800  0

snd_seq_device          4906  1 snd_seq

snd_timer              16630  2 snd_pcm,snd_seq

snd                    47011  5 snd_bcm2835,snd_timer,snd_pcm,snd_seq,snd_seq_device

evdev                   9303  2

joydev                  8397  0

uio_pdrv_genirq         2865  0

uio                     7319  1 uio_pdrv_genirq

iscsi_tcp               8496  2

libiscsi_tcp           11808  1 iscsi_tcp

libiscsi               33727  2 libiscsi_tcp,iscsi_tcp

root@pi:/mnt#

root@pi:/mnt#

root@pi:/mnt# cat /proc/modules

cfg80211 366024 0 – Live 0x7f095000

rfkill 14438 1 cfg80211, Live 0x7f08d000

snd_bcm2835 17419 0 – Live 0x7f084000

snd_pcm 68808 1 snd_bcm2835, Live 0x7f06b000

snd_seq 49800 0 – Live 0x7f058000

snd_seq_device 4906 1 snd_seq, Live 0x7f053000

snd_timer 16630 2 snd_pcm,snd_seq, Live 0x7f04a000

snd 47011 5 snd_bcm2835,snd_pcm,snd_seq,snd_seq_device,snd_timer, Live 0x7f037000

evdev 9303 2 – Live 0x7f02b000

joydev 8397 0 – Live 0x7f025000

uio_pdrv_genirq 2865 0 – Live 0x7f021000

uio 7319 1 uio_pdrv_genirq, Live 0x7f01c000

iscsi_tcp 8496 2 – Live 0x7f015000

libiscsi_tcp 11808 1 iscsi_tcp, Live 0x7f00e000

libiscsi 33727 2 iscsi_tcp,libiscsi_tcp, Live 0x7f000000

root@pi:/mnt#

uBoot で BerryBoot のiSCSIが有効になっているカーネルからchrootするときにこれって変えれるんだろうか?

FATフォーマットのconfig.txt は次のようになっています。

disable_overscan=1

start_x=1

gpu_mem=128

# Berryboot settings, do not change

initramfs berryboot.img

[pi2]

kernel=kernel_rpi2_aufs.img

arm_freq_min=900

arm_freq=1000

core_freq_min=450

core_freq=500

sdram_freq=500

over_voltage=2

[pi1]

kernel=kernel_rpi_aufs.img

cma_lwm=16

cma_hwm=32

cma_offline_start=16

起動しているカーネルは、kernel_rpi2_aufs.img っていうことですね。そのカーネルからルートファイルシステムにchroot する感じだと思うのですが、img 作るときに、/lib/modules/ 配下を入れていないので、こうなるんですかね?

kernel_rpi2_aufs.img の中がどうなっているのか気になりますね。そもそも、raspai がブートする仕組みっていうのがどうゆう流れになっているかを把握しないとだめですね。