Pi2 に Fedora22

RedHat 系のほうが仕事柄、コマンドが慣れているのでRASPBIAN より、Fedora がいいなぁと思って、入らないのかなと調べていたら、どうやらいけるようなので試してみました。以下に、Pi2 でブートするFedora22 のイメージを作る手順をメモしておきます。

 

準備するもの

・ネットにつながる、ubuntu OS (バーチャルボックス)

これは、以下のスクリプトを動作させてimg を作るためです。

Fedora Image Builder for Raspberry Pi 2

xzdec , git , partx は必要なようです。

※入ってなかったら、apt-get install 入れるパッケージ で入れてね。

・Fedora の ARM 用にビルドされたイメージのURL

  http://ftp.iij.ad.jp/pub/linux/fedora/releases/22/Images/armhfp/ 以下にあります

国内の近場だと自分の場合は、IIJ になるので上記にしました。

いろいろあるけども、とりあえずFedora-Minimal-armhfp-22-3-sda.raw.xz にしてみました。

 

▼Step 1

ubuntu OS をバーチャルボックスへインストール。必要な上記のソフトウェアを入れる。

自分は、手元のiso 保管庫にあった ubuntu 12.04 LTS にしました。14 でもお好みで。

 

▼Step 2

以下な感じで、img を作るスクリプトをgit からコピー

junkhack@ubu:~$ mkdir raspi2
junkhack@ubu:~$ cd raspi2/

junkhack@ubu:~/raspi2$ git clone https://github.com/spartacus06/rpi2-fedora-image-builder.git
Cloning into ‘rpi2-fedora-image-builder’…
remote: Counting objects: 80, done.
remote: Total 80 (delta 0), reused 0 (delta 0), pack-reused 80
Unpacking objects: 100% (80/80), done.
junkhack@ubu:~/raspi2$

以下のようにローカルに作成されます。git 便利ですね。

junkhack@ubu:~/raspi2$ ll
合計 12
drwxrwxr-x 3 junkhack junkhack 4096  7月  2 22:45 ./
drwxr-xr-x 4 junkhack junkhack 4096  7月  2 22:43 ../
drwxr-xr-x 5 junkhack junkhack 4096  7月  2 22:45 rpi2-fedora-image-builder/
junkhack@ubu:~/raspi2$
junkhack@ubu:~/raspi2$ cd rpi2-fedora-image-builder/
junkhack@ubu:~/raspi2/rpi2-fedora-image-builder$ ll
合計 44
drwxr-xr-x 5 junkhack junkhack 4096  7月  2 22:45 ./
drwxrwxr-x 3 junkhack junkhack 4096  7月  2 22:45 ../
drwxrwxr-x 8 junkhack junkhack 4096  7月  2 22:45 .git/
-rw-rw-r– 1 junkhack junkhack   54  7月  2 22:45 .gitignore
-rw-rw-r– 1 junkhack junkhack 1108  7月  2 22:45 LICENSE
-rw-rw-r– 1 junkhack junkhack 2507  7月  2 22:45 README.md
-rwxrwxr-x 1 junkhack junkhack   69  7月  2 22:45 clean.sh*
-rwxrwxr-x 1 junkhack junkhack 3533  7月  2 22:45 mkimage.sh*
drwxrwxr-x 2 junkhack junkhack 4096  7月  2 22:45 sample-resources/
drwxrwxr-x 4 junkhack junkhack 4096  7月  2 22:45 scripts/
-rw-rw-r– 1 junkhack junkhack  161  7月  2 22:45 settings.conf.example
junkhack@ubu:~/raspi2/rpi2-fedora-image-builder$ cp settings.conf.example settings.conf

ツリー構造はこんな感じです。

junkhack@ubu:~/raspi2/rpi2-fedora-image-builder$ tree ./
./
├── LICENSE
├── README.md
├── clean.sh
├── mkimage.sh
├── sample-resources
│   ├── config.txt
│   ├── fbturbo_drv.so
│   └── xorg.conf
├── scripts
│   ├── boot
│   │   ├── 10_firmware.sh
│   │   └── 20_config.sh
│   └── root
│       ├── 10_modules.sh
│       ├── 20_fstab.sh
│       └── 30_fbturbo.sh
├── settings.conf
└── settings.conf.example

4 directories, 14 files

 

設定ファイルをコピーして、中を以下のように書き換えます。

IMAGEURL="http://ftp.iij.ad.jp/pub/linux/fedora/releases/22/Images/armhfp/Fedora-Minimal-armhfp-22-3-sda.raw.xz”
# size in MB
BOOTSIZE=200
ROOTSIZE=3600
COMPRESS=0

 

あとはスクリプトを実行。

junkhack@ubu:~/raspi2/rpi2-fedora-image-builder$ ./mkimage.sh

Using settings.conf

BOOTSIZE is 200 MB

ROOTSIZE is 3600 MB

IMAGEFILE is Fedora-Minimal-armhfp-22-3-sda.raw

Downloading image…

::略

HTTP による接続要求を送信しました、応答を待っています… 200 OK

長さ: 301285980 (287M) [application/x-xz]

`Fedora-Minimal-armhfp-22-3-sda.raw.xz’ に保存中

100%[===========================================================================================================>] 301,285,980  107K/s   時間 31m 46s

2015-07-02 23:20:52 (154 KB/s) – `Fedora-Minimal-armhfp-22-3-sda.raw.xz’ へ保存完了 [301285980/301285980]

Extracting image…

Extracting rootfs…

Creating boot partition…

Mounting boot filesystem…

しばらくすると、以下のように sudo のパスワード聞いてきたり(設定によりますが)しますので、

 

[sudo] password for junkhack: パスワードいれてね。

 

まだ続きがあるようです。

 

Calling boot scripts…

scripts/boot/10_firmware.sh

Cloning firmware repo…

Cloning into ‘firmware’…

remote: Counting objects: 8953, done.

remote: Compressing objects: 100% (4902/4902), done.

Receiving objects:   0% (60/8953), 11.10 MiB | 173 KiB/s

 

眠いのでこのままほっておきます。

 

[sudo] password for junkhack: パスワードいれてね。

scripts/boot/20_config.sh

Unmounting boot filesystem…

Preparing root partition…

resize2fs 1.42 (29-Nov-2011)

Mounting root filesystem…

Calling root scripts…

scripts/root/10_modules.sh

Copying kernel modules…

scripts/root/20_fstab.sh

Creating fstab…

scripts/root/30_fbturbo.sh

Unmounting root filesystem…

Creating image…

警告: 管理者権限がありません。パーミッションに注意してください。

警告: 管理者権限がありません。パーミッションに注意してください。

警告: 管理者権限がありません。パーミッションに注意してください。

Fedora-Minimal-armhfp-22-3-sda.raw.img created successfully.

junkhack@ubu:~/ダウンロード/rpi2-fedora-image-builder-master$

 

Fedora-Minimal-armhfp-22-3-sda.raw.img があれば成功したようです。

 

▼Step 3

img を SD Card へ書き込み。

osx の場合は、以下のように書き込みます

 

$ sudo dd bs=1m if="./Fedora-Minimal-armhfp-22-3-sda.raw.img" of="/dev/rdisk3"★sdcard のデバイス

Password:

省略。急激な眠気がきたので、本日の作業終了。お楽しみは明日に取っておきます。

pi2でFedora22

SDに書き込みが終わって、Pi2 でブート。無事に起動してくれました。が、しかし、、、

写真 3

 

、、、、悪戦苦闘すること、1時間、、、、うキーですね。

 

写真はありませんが、最初ウィザードみたいなのがあって、root のパスワードやユーザ追加、タイムゾーンなどの設定などが出来るのですが、それをやってもログインできず。

 

むかついたので、SD を 違うLinux でマウントさせ shadow や sudo設定や、passwd 、ホームディレクトリとbash設定をして無事にログインできました。この初期に出るウィザードがうまく動作していない模様。

 

写真 1

で、あとから気が付いたのですが、kernel が4.0,7 ですと? Fedora22 って、この間リリースされたやつですか。yum が廃止されdnf に変わってしまいました。うーん、、、、fedora21 にするべきですかね。

写真 2 

 

とりあえず、リモートから ssh でのログインも出来たので少し遊んで様子を見て、こりゃだめだと思えば、Fedora21 のkernel 3系にします。

pi2 fedora22 その後

[root@localhost ~]# which dnf
-bash: which: コマンドが見つかりません
[root@localhost ~]# 

 

なんですと!

Minimal なだけに368 パッケージしか入っていません。dnf 使っていれますが、どうやら yum の部分を dnl にすればいいようです。とりあえず、入れてみます。

[root@localhost ~]# dnf install which
Last metadata expiration check performed 0:15:44 ago on Fri Jul  3 09:14:17 2015.
Dependencies resolved.
=====================================================================================================================================================
 Package                          アーキテクチャ                     バージョン                              リポジトリー                       容量
=====================================================================================================================================================
インストールしています:
 which                            armv7hl                            2.20-10.fc22                            fedora                             44 k

トランザクションの要約
=====================================================================================================================================================
インストール  1 Package

総ダウンロード容量: 44 k
インストール済み容量: 70 k
これでいいですか? [y/N]y
パッケージをダウンロードしています:
which-2.20-10.fc22.armv7hl.rpm                                                                                        37 kB/s |  44 kB     00:01    
-----------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                 8.0 kB/s |  44 kB     00:05     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  インストールしています: which-2.20-10.fc22.armv7hl                                                                                             1/1 
  Verifying             : which-2.20-10.fc22.armv7hl                                                                                             1/1 

インストール:
  which.armv7hl 2.20-10.fc22                                                                                                                         

完了しました!
[root@localhost ~]#

 

さてと、楽しみながら触りますか。ちょっと、蒸し暑いのでお風呂入ってきますか。すっきりしてやりますぞ。

tar も gcc も入っていないので、まずはあれこれ作業しながらないものを入れていきます。

 

とりあえず、UnixBench。ラズベリアンよりも遅い感じですかね?

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

   System: localhost.localdomain: GNU/Linux
   OS: GNU/Linux -- 4.0.7-v7+ -- #801 SMP PREEMPT Tue Jun 30 18:38:23 BST 2015
   Machine: armv7l (armv7l)
   Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
   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)
          
   09:55:43 up 58 min,  1 user,  load average: 0.35, 0.27, 0.20; runlevel 3

------------------------------------------------------------------------
Benchmark Run: 金  7月 03 2015 09:55:43 - 10:23:51
4 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables        2385350.1 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                      364.8 MWIPS (9.9 s, 7 samples)
Execl Throughput                                362.2 lps   (29.8 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks         44168.6 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           13376.0 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        129949.5 KBps  (30.0 s, 2 samples)
Pipe Throughput                              121003.4 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  18406.2 lps   (10.0 s, 7 samples)
Process Creation                                797.5 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                    573.4 lpm   (60.1 s, 2 samples)
Shell Scripts (8 concurrent)                    164.2 lpm   (60.3 s, 2 samples)
System Call Overhead                         274094.8 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0    2385350.1    204.4
Double-Precision Whetstone                       55.0        364.8     66.3
Execl Throughput                                 43.0        362.2     84.2
File Copy 1024 bufsize 2000 maxblocks          3960.0      44168.6    111.5
File Copy 256 bufsize 500 maxblocks            1655.0      13376.0     80.8
File Copy 4096 bufsize 8000 maxblocks          5800.0     129949.5    224.1
Pipe Throughput                               12440.0     121003.4     97.3
Pipe-based Context Switching                   4000.0      18406.2     46.0
Process Creation                                126.0        797.5     63.3
Shell Scripts (1 concurrent)                     42.4        573.4    135.2
Shell Scripts (8 concurrent)                      6.0        164.2    273.7
System Call Overhead                          15000.0     274094.8    182.7
                                                                   ========
System Benchmarks Index Score                                         113.2

------------------------------------------------------------------------
Benchmark Run: 金  7月 03 2015 10:23:51 - 10:52:09
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables        9503183.1 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     1466.9 MWIPS (10.0 s, 7 samples)
Execl Throughput                                970.2 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks         70550.9 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           20414.5 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        205565.3 KBps  (30.0 s, 2 samples)
Pipe Throughput                              479922.4 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  67560.2 lps   (10.0 s, 7 samples)
Process Creation                               1860.7 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   1287.2 lpm   (60.1 s, 2 samples)
Shell Scripts (8 concurrent)                    175.5 lpm   (61.0 s, 2 samples)
System Call Overhead                        1064369.7 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0    9503183.1    814.3
Double-Precision Whetstone                       55.0       1466.9    266.7
Execl Throughput                                 43.0        970.2    225.6
File Copy 1024 bufsize 2000 maxblocks          3960.0      70550.9    178.2
File Copy 256 bufsize 500 maxblocks            1655.0      20414.5    123.4
File Copy 4096 bufsize 8000 maxblocks          5800.0     205565.3    354.4
Pipe Throughput                               12440.0     479922.4    385.8
Pipe-based Context Switching                   4000.0      67560.2    168.9
Process Creation                                126.0       1860.7    147.7
Shell Scripts (1 concurrent)                     42.4       1287.2    303.6
Shell Scripts (8 concurrent)                      6.0        175.5    292.6
System Call Overhead                          15000.0    1064369.7    709.6
                                                                   ========
System Benchmarks Index Score                                         279.9

 

もう少し遊んでみます。

 

[root@localhost UnixBench]# sysctl -a
dev.scsi.logging_level = 0
fs.aio-max-nr = 65536
fs.aio-nr = 0
fs.binfmt_misc.status = enabled
fs.dentry-state = 97722    92070    45    0    0    0
fs.dir-notify-enable = 1
fs.epoll.max_user_watches = 334671
fs.file-max = 93880
fs.file-nr = 800    0    93880
fs.inode-nr = 18373    332
fs.inode-state = 18373    332    0    0    0    0    0
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 128
fs.inotify.max_user_watches = 8192
fs.lease-break-time = 45
fs.leases-enable = 1
fs.mqueue.msg_default = 10
fs.mqueue.msg_max = 10
fs.mqueue.msgsize_default = 8192
fs.mqueue.msgsize_max = 8192
fs.mqueue.queues_max = 256
fs.nfs.idmap_cache_timeout = 6
fs.nfs.nfs_callback_tcpport = 0
fs.nfs.nfs_congestion_kb = 31104
fs.nfs.nfs_mountpoint_timeout = 500
fs.nfs.nlm_grace_period = 0
fs.nfs.nlm_tcpport = 0
fs.nfs.nlm_timeout = 10
fs.nfs.nlm_udpport = 0
fs.nfs.nsm_local_state = 0
fs.nfs.nsm_use_hostnames = 0
fs.nr_open = 1048576
fs.overflowgid = 65534
fs.overflowuid = 65534
fs.pipe-max-size = 1048576
fs.protected_hardlinks = 1
fs.protected_symlinks = 1
fs.quota.allocated_dquots = 0
fs.quota.cache_hits = 0
fs.quota.drops = 0
fs.quota.free_dquots = 0
fs.quota.lookups = 0
fs.quota.reads = 0
fs.quota.syncs = 1108
fs.quota.warnings = 1
fs.quota.writes = 0
fs.suid_dumpable = 0
fscache.object_max_active = 4
fscache.operation_max_active = 2
kernel.acct = 4    2    30
kernel.auto_msgmni = 0
kernel.cad_pid = 1
kernel.cap_last_cap = 37
kernel.core_pattern = |/usr/lib/systemd/systemd-coredump %p %u %g %s %t %e
kernel.core_pipe_limit = 0
kernel.core_uses_pid = 1
kernel.ctrl-alt-del = 0
kernel.dmesg_restrict = 0
kernel.domainname = (none)
kernel.ftrace_dump_on_oops = 0
kernel.ftrace_enabled = 1
kernel.hostname = localhost.localdomain
kernel.hotplug = 
kernel.hung_task_check_count = 32768
kernel.hung_task_panic = 0
kernel.hung_task_timeout_secs = 120
kernel.hung_task_warnings = 10
kernel.keys.gc_delay = 300
kernel.keys.maxbytes = 20000
kernel.keys.maxkeys = 200
kernel.keys.root_maxbytes = 25000000
kernel.keys.root_maxkeys = 1000000
kernel.kptr_restrict = 0
kernel.max_lock_depth = 1024
kernel.modprobe = /sbin/modprobe
kernel.modules_disabled = 0
kernel.msgmax = 8192
kernel.msgmnb = 16384
kernel.msgmni = 32000
kernel.ngroups_max = 65536
kernel.osrelease = 4.0.7-v7+
kernel.ostype = Linux
kernel.overflowgid = 65534
kernel.overflowuid = 65534
kernel.panic = 0
kernel.panic_on_oops = 0
kernel.panic_on_warn = 0
kernel.perf_cpu_time_max_percent = 25
kernel.perf_event_max_sample_rate = 100000
kernel.perf_event_mlock_kb = 516
kernel.perf_event_paranoid = 1
kernel.pid_max = 32768
kernel.poweroff_cmd = /sbin/poweroff
kernel.print-fatal-signals = 0
kernel.printk = 7    4    1    7
kernel.printk_delay = 0
kernel.printk_ratelimit = 5
kernel.printk_ratelimit_burst = 10
kernel.pty.max = 4096
kernel.pty.nr = 2
kernel.pty.reserve = 1024
kernel.random.boot_id = f7b46809-df60-44f9-b951-d19475845c6c
kernel.random.entropy_avail = 1283
kernel.random.poolsize = 4096
kernel.random.read_wakeup_threshold = 64
kernel.random.urandom_min_reseed_secs = 60
kernel.random.uuid = a430aadc-542a-4ae4-baf6-ea9e00d8c2f2
kernel.random.write_wakeup_threshold = 896
kernel.randomize_va_space = 2
kernel.real-root-dev = 0
kernel.sched_autogroup_enabled = 1
kernel.sched_child_runs_first = 0
kernel.sched_domain.cpu0.domain0.busy_factor = 32
kernel.sched_domain.cpu0.domain0.busy_idx = 2
kernel.sched_domain.cpu0.domain0.cache_nice_tries = 1
kernel.sched_domain.cpu0.domain0.flags = 4143
kernel.sched_domain.cpu0.domain0.forkexec_idx = 0
kernel.sched_domain.cpu0.domain0.idle_idx = 1
kernel.sched_domain.cpu0.domain0.imbalance_pct = 125
kernel.sched_domain.cpu0.domain0.max_interval = 8
kernel.sched_domain.cpu0.domain0.max_newidle_lb_cost = 27812
kernel.sched_domain.cpu0.domain0.min_interval = 4
kernel.sched_domain.cpu0.domain0.name = DIE
kernel.sched_domain.cpu0.domain0.newidle_idx = 0
kernel.sched_domain.cpu0.domain0.wake_idx = 0
kernel.sched_domain.cpu1.domain0.busy_factor = 32
kernel.sched_domain.cpu1.domain0.busy_idx = 2
kernel.sched_domain.cpu1.domain0.cache_nice_tries = 1
kernel.sched_domain.cpu1.domain0.flags = 4143
kernel.sched_domain.cpu1.domain0.forkexec_idx = 0
kernel.sched_domain.cpu1.domain0.idle_idx = 1
kernel.sched_domain.cpu1.domain0.imbalance_pct = 125
kernel.sched_domain.cpu1.domain0.max_interval = 8
kernel.sched_domain.cpu1.domain0.max_newidle_lb_cost = 49157
kernel.sched_domain.cpu1.domain0.min_interval = 4
kernel.sched_domain.cpu1.domain0.name = DIE
kernel.sched_domain.cpu1.domain0.newidle_idx = 0
kernel.sched_domain.cpu1.domain0.wake_idx = 0
kernel.sched_domain.cpu2.domain0.busy_factor = 32
kernel.sched_domain.cpu2.domain0.busy_idx = 2
kernel.sched_domain.cpu2.domain0.cache_nice_tries = 1
kernel.sched_domain.cpu2.domain0.flags = 4143
kernel.sched_domain.cpu2.domain0.forkexec_idx = 0
kernel.sched_domain.cpu2.domain0.idle_idx = 1
kernel.sched_domain.cpu2.domain0.imbalance_pct = 125
kernel.sched_domain.cpu2.domain0.max_interval = 8
kernel.sched_domain.cpu2.domain0.max_newidle_lb_cost = 24479
kernel.sched_domain.cpu2.domain0.min_interval = 4
kernel.sched_domain.cpu2.domain0.name = DIE
kernel.sched_domain.cpu2.domain0.newidle_idx = 0
kernel.sched_domain.cpu2.domain0.wake_idx = 0
kernel.sched_domain.cpu3.domain0.busy_factor = 32
kernel.sched_domain.cpu3.domain0.busy_idx = 2
kernel.sched_domain.cpu3.domain0.cache_nice_tries = 1
kernel.sched_domain.cpu3.domain0.flags = 4143
kernel.sched_domain.cpu3.domain0.forkexec_idx = 0
kernel.sched_domain.cpu3.domain0.idle_idx = 1
kernel.sched_domain.cpu3.domain0.imbalance_pct = 125
kernel.sched_domain.cpu3.domain0.max_interval = 8
kernel.sched_domain.cpu3.domain0.max_newidle_lb_cost = 67147
kernel.sched_domain.cpu3.domain0.min_interval = 4
kernel.sched_domain.cpu3.domain0.name = DIE
kernel.sched_domain.cpu3.domain0.newidle_idx = 0
kernel.sched_domain.cpu3.domain0.wake_idx = 0
kernel.sched_latency_ns = 18000000
kernel.sched_migration_cost_ns = 500000
kernel.sched_min_granularity_ns = 2250000
kernel.sched_nr_migrate = 32
kernel.sched_rr_timeslice_ms = 10
kernel.sched_rt_period_us = 1000000
kernel.sched_rt_runtime_us = 950000
kernel.sched_shares_window_ns = 10000000
kernel.sched_time_avg_ms = 1000
kernel.sched_tunable_scaling = 1
kernel.sched_wakeup_granularity_ns = 3000000
kernel.sem = 32000    1024000000    500    32000
kernel.shm_rmid_forced = 0
kernel.shmall = 268435456
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.stack_tracer_enabled = 0
kernel.sysctl_writes_strict = 0
kernel.sysrq = 16
kernel.tainted = 0
kernel.threads-max = 14682
kernel.timer_migration = 1
kernel.traceoff_on_warning = 0
kernel.tracepoint_printk = 0
kernel.usermodehelper.bset = 4294967295    63
kernel.usermodehelper.inheritable = 4294967295    63
kernel.version = #801 SMP PREEMPT Tue Jun 30 18:38:23 BST 2015
net.core.busy_poll = 0
net.core.busy_read = 0
net.core.default_qdisc = fq_codel
net.core.dev_weight = 64
net.core.flow_limit_cpu_bitmap = 0
net.core.flow_limit_table_len = 4096
net.core.message_burst = 10
net.core.message_cost = 5
net.core.netdev_budget = 300
net.core.netdev_max_backlog = 1000
net.core.netdev_rss_key = 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
net.core.netdev_tstamp_prequeue = 1
net.core.optmem_max = 10240
net.core.rmem_default = 163840
net.core.rmem_max = 163840
net.core.rps_sock_flow_entries = 0
net.core.somaxconn = 128
net.core.tstamp_allow_data = 1
net.core.warnings = 0
net.core.wmem_default = 163840
net.core.wmem_max = 163840
net.core.xfrm_acq_expires = 30
net.core.xfrm_aevent_etime = 10
net.core.xfrm_aevent_rseqth = 2
net.core.xfrm_larval_drop = 1
net.ipv4.conf.all.accept_local = 0
net.ipv4.conf.all.accept_redirects = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.all.arp_accept = 0
net.ipv4.conf.all.arp_announce = 0
net.ipv4.conf.all.arp_filter = 0
net.ipv4.conf.all.arp_ignore = 0
net.ipv4.conf.all.arp_notify = 0
net.ipv4.conf.all.bootp_relay = 0
net.ipv4.conf.all.disable_policy = 0
net.ipv4.conf.all.disable_xfrm = 0
net.ipv4.conf.all.force_igmp_version = 0
net.ipv4.conf.all.forwarding = 0
net.ipv4.conf.all.igmpv2_unsolicited_report_interval = 10000
net.ipv4.conf.all.igmpv3_unsolicited_report_interval = 1000
net.ipv4.conf.all.log_martians = 0
net.ipv4.conf.all.mc_forwarding = 0
net.ipv4.conf.all.medium_id = 0
net.ipv4.conf.all.promote_secondaries = 1
net.ipv4.conf.all.proxy_arp = 0
net.ipv4.conf.all.proxy_arp_pvlan = 0
net.ipv4.conf.all.route_localnet = 0
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.all.secure_redirects = 1
net.ipv4.conf.all.send_redirects = 1
net.ipv4.conf.all.shared_media = 1
net.ipv4.conf.all.src_valid_mark = 0
net.ipv4.conf.all.tag = 0
net.ipv4.conf.default.accept_local = 0
net.ipv4.conf.default.accept_redirects = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.default.arp_accept = 0
net.ipv4.conf.default.arp_announce = 0
net.ipv4.conf.default.arp_filter = 0
net.ipv4.conf.default.arp_ignore = 0
net.ipv4.conf.default.arp_notify = 0
net.ipv4.conf.default.bootp_relay = 0
net.ipv4.conf.default.disable_policy = 0
net.ipv4.conf.default.disable_xfrm = 0
net.ipv4.conf.default.force_igmp_version = 0
net.ipv4.conf.default.forwarding = 0
net.ipv4.conf.default.igmpv2_unsolicited_report_interval = 10000
net.ipv4.conf.default.igmpv3_unsolicited_report_interval = 1000
net.ipv4.conf.default.log_martians = 0
net.ipv4.conf.default.mc_forwarding = 0
net.ipv4.conf.default.medium_id = 0
net.ipv4.conf.default.promote_secondaries = 1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.default.proxy_arp_pvlan = 0
net.ipv4.conf.default.route_localnet = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.secure_redirects = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.default.shared_media = 1
net.ipv4.conf.default.src_valid_mark = 0
net.ipv4.conf.default.tag = 0
net.ipv4.conf.eth0.accept_local = 0
net.ipv4.conf.eth0.accept_redirects = 1
net.ipv4.conf.eth0.accept_source_route = 0
net.ipv4.conf.eth0.arp_accept = 0
net.ipv4.conf.eth0.arp_announce = 0
net.ipv4.conf.eth0.arp_filter = 0
net.ipv4.conf.eth0.arp_ignore = 0
net.ipv4.conf.eth0.arp_notify = 0
net.ipv4.conf.eth0.bootp_relay = 0
net.ipv4.conf.eth0.disable_policy = 0
net.ipv4.conf.eth0.disable_xfrm = 0
net.ipv4.conf.eth0.force_igmp_version = 0
net.ipv4.conf.eth0.forwarding = 0
net.ipv4.conf.eth0.igmpv2_unsolicited_report_interval = 10000
net.ipv4.conf.eth0.igmpv3_unsolicited_report_interval = 1000
net.ipv4.conf.eth0.log_martians = 0
net.ipv4.conf.eth0.mc_forwarding = 0
net.ipv4.conf.eth0.medium_id = 0
net.ipv4.conf.eth0.promote_secondaries = 0
net.ipv4.conf.eth0.proxy_arp = 0
net.ipv4.conf.eth0.proxy_arp_pvlan = 0
net.ipv4.conf.eth0.route_localnet = 0
net.ipv4.conf.eth0.rp_filter = 1
net.ipv4.conf.eth0.secure_redirects = 1
net.ipv4.conf.eth0.send_redirects = 1
net.ipv4.conf.eth0.shared_media = 1
net.ipv4.conf.eth0.src_valid_mark = 0
net.ipv4.conf.eth0.tag = 0
net.ipv4.conf.lo.accept_local = 0
net.ipv4.conf.lo.accept_redirects = 1
net.ipv4.conf.lo.accept_source_route = 1
net.ipv4.conf.lo.arp_accept = 0
net.ipv4.conf.lo.arp_announce = 0
net.ipv4.conf.lo.arp_filter = 0
net.ipv4.conf.lo.arp_ignore = 0
net.ipv4.conf.lo.arp_notify = 0
net.ipv4.conf.lo.bootp_relay = 0
net.ipv4.conf.lo.disable_policy = 1
net.ipv4.conf.lo.disable_xfrm = 1
net.ipv4.conf.lo.force_igmp_version = 0
net.ipv4.conf.lo.forwarding = 0
net.ipv4.conf.lo.igmpv2_unsolicited_report_interval = 10000
net.ipv4.conf.lo.igmpv3_unsolicited_report_interval = 1000
net.ipv4.conf.lo.log_martians = 0
net.ipv4.conf.lo.mc_forwarding = 0
net.ipv4.conf.lo.medium_id = 0
net.ipv4.conf.lo.promote_secondaries = 0
net.ipv4.conf.lo.proxy_arp = 0
net.ipv4.conf.lo.proxy_arp_pvlan = 0
net.ipv4.conf.lo.route_localnet = 0
net.ipv4.conf.lo.rp_filter = 0
net.ipv4.conf.lo.secure_redirects = 1
net.ipv4.conf.lo.send_redirects = 1
net.ipv4.conf.lo.shared_media = 1
net.ipv4.conf.lo.src_valid_mark = 0
net.ipv4.conf.lo.tag = 0
net.ipv4.fwmark_reflect = 0
net.ipv4.icmp_echo_ignore_all = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_errors_use_inbound_ifaddr = 0
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.ipv4.icmp_msgs_burst = 50
net.ipv4.icmp_msgs_per_sec = 1000
net.ipv4.icmp_ratelimit = 1000
net.ipv4.icmp_ratemask = 6168
net.ipv4.igmp_max_memberships = 20
net.ipv4.igmp_max_msf = 10
net.ipv4.igmp_qrv = 2
net.ipv4.inet_peer_maxttl = 600
net.ipv4.inet_peer_minttl = 120
net.ipv4.inet_peer_threshold = 65664
net.ipv4.ip_default_ttl = 64
net.ipv4.ip_dynaddr = 0
net.ipv4.ip_early_demux = 1
net.ipv4.ip_forward = 0
net.ipv4.ip_forward_use_pmtu = 0
net.ipv4.ip_local_port_range = 32768    61000
net.ipv4.ip_local_reserved_ports = 
net.ipv4.ip_no_pmtu_disc = 0
net.ipv4.ip_nonlocal_bind = 0
net.ipv4.ipfrag_high_thresh = 4194304
net.ipv4.ipfrag_low_thresh = 3145728
net.ipv4.ipfrag_max_dist = 64
net.ipv4.ipfrag_secret_interval = 0
net.ipv4.ipfrag_time = 30
net.ipv4.neigh.default.anycast_delay = 100
net.ipv4.neigh.default.app_solicit = 0
net.ipv4.neigh.default.base_reachable_time_ms = 30000
net.ipv4.neigh.default.delay_first_probe_time = 5
net.ipv4.neigh.default.gc_interval = 30
net.ipv4.neigh.default.gc_stale_time = 60
net.ipv4.neigh.default.gc_thresh1 = 128
net.ipv4.neigh.default.gc_thresh2 = 512
net.ipv4.neigh.default.gc_thresh3 = 1024
net.ipv4.neigh.default.locktime = 100
net.ipv4.neigh.default.mcast_solicit = 3
net.ipv4.neigh.default.proxy_delay = 80
net.ipv4.neigh.default.proxy_qlen = 64
net.ipv4.neigh.default.retrans_time_ms = 1000
net.ipv4.neigh.default.ucast_solicit = 3
net.ipv4.neigh.default.unres_qlen = 34
net.ipv4.neigh.default.unres_qlen_bytes = 65536
net.ipv4.neigh.eth0.anycast_delay = 100
net.ipv4.neigh.eth0.app_solicit = 0
net.ipv4.neigh.eth0.base_reachable_time_ms = 30000
net.ipv4.neigh.eth0.delay_first_probe_time = 5
net.ipv4.neigh.eth0.gc_stale_time = 60
net.ipv4.neigh.eth0.locktime = 100
net.ipv4.neigh.eth0.mcast_solicit = 3
net.ipv4.neigh.eth0.proxy_delay = 80
net.ipv4.neigh.eth0.proxy_qlen = 64
net.ipv4.neigh.eth0.retrans_time_ms = 1000
net.ipv4.neigh.eth0.ucast_solicit = 3
net.ipv4.neigh.eth0.unres_qlen = 34
net.ipv4.neigh.eth0.unres_qlen_bytes = 65536
net.ipv4.neigh.lo.anycast_delay = 100
net.ipv4.neigh.lo.app_solicit = 0
net.ipv4.neigh.lo.base_reachable_time_ms = 30000
net.ipv4.neigh.lo.delay_first_probe_time = 5
net.ipv4.neigh.lo.gc_stale_time = 60
net.ipv4.neigh.lo.locktime = 100
net.ipv4.neigh.lo.mcast_solicit = 3
net.ipv4.neigh.lo.proxy_delay = 80
net.ipv4.neigh.lo.proxy_qlen = 64
net.ipv4.neigh.lo.retrans_time_ms = 1000
net.ipv4.neigh.lo.ucast_solicit = 3
net.ipv4.neigh.lo.unres_qlen = 34
net.ipv4.neigh.lo.unres_qlen_bytes = 65536
net.ipv4.netfilter.ip_conntrack_buckets = 15360
net.ipv4.netfilter.ip_conntrack_checksum = 1
net.ipv4.netfilter.ip_conntrack_count = 2
net.ipv4.netfilter.ip_conntrack_generic_timeout = 600
net.ipv4.netfilter.ip_conntrack_icmp_timeout = 30
net.ipv4.netfilter.ip_conntrack_log_invalid = 0
net.ipv4.netfilter.ip_conntrack_max = 59264
net.ipv4.netfilter.ip_conntrack_tcp_be_liberal = 0
net.ipv4.netfilter.ip_conntrack_tcp_loose = 1
net.ipv4.netfilter.ip_conntrack_tcp_max_retrans = 3
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close = 10
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 432000
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_last_ack = 30
net.ipv4.netfilter.ip_conntrack_tcp_timeout_max_retrans = 300
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent2 = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120
net.ipv4.netfilter.ip_conntrack_udp_timeout = 30
net.ipv4.netfilter.ip_conntrack_udp_timeout_stream = 180
net.ipv4.ping_group_range = 1    0
net.ipv4.route.error_burst = 500
net.ipv4.route.error_cost = 100
net.ipv4.route.gc_elasticity = 8
net.ipv4.route.gc_interval = 60
net.ipv4.route.gc_min_interval = 0
net.ipv4.route.gc_min_interval_ms = 500
net.ipv4.route.gc_thresh = -1
net.ipv4.route.gc_timeout = 300
net.ipv4.route.max_size = 2147483647
net.ipv4.route.min_adv_mss = 256
net.ipv4.route.min_pmtu = 552
net.ipv4.route.mtu_expires = 600
net.ipv4.route.redirect_load = 2
net.ipv4.route.redirect_number = 9
net.ipv4.route.redirect_silence = 2048
net.ipv4.tcp_abort_on_overflow = 0
net.ipv4.tcp_adv_win_scale = 1
net.ipv4.tcp_allowed_congestion_control = cubic reno
net.ipv4.tcp_app_win = 31
net.ipv4.tcp_autocorking = 1
net.ipv4.tcp_available_congestion_control = cubic reno
net.ipv4.tcp_base_mss = 512
net.ipv4.tcp_challenge_ack_limit = 100
net.ipv4.tcp_congestion_control = cubic
net.ipv4.tcp_dsack = 1
net.ipv4.tcp_early_retrans = 3
net.ipv4.tcp_ecn = 2
net.ipv4.tcp_fack = 1
net.ipv4.tcp_fastopen = 1
net.ipv4.tcp_fastopen_key = 00000000-00000000-00000000-00000000
net.ipv4.tcp_fin_timeout = 60
net.ipv4.tcp_frto = 2
net.ipv4.tcp_fwmark_accept = 0
net.ipv4.tcp_invalid_ratelimit = 500
net.ipv4.tcp_keepalive_intvl = 75
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_time = 7200
net.ipv4.tcp_limit_output_bytes = 131072
net.ipv4.tcp_low_latency = 0
net.ipv4.tcp_max_orphans = 4096
net.ipv4.tcp_max_reordering = 300
net.ipv4.tcp_max_syn_backlog = 128
net.ipv4.tcp_max_tw_buckets = 4096
net.ipv4.tcp_mem = 22215    29620    44430
net.ipv4.tcp_min_tso_segs = 2
net.ipv4.tcp_moderate_rcvbuf = 1
net.ipv4.tcp_mtu_probing = 0
net.ipv4.tcp_no_metrics_save = 0
net.ipv4.tcp_notsent_lowat = -1
net.ipv4.tcp_orphan_retries = 0
net.ipv4.tcp_reordering = 3
net.ipv4.tcp_retrans_collapse = 1
net.ipv4.tcp_retries1 = 3
net.ipv4.tcp_retries2 = 15
net.ipv4.tcp_rfc1337 = 0
net.ipv4.tcp_rmem = 4096    87380    6291456
net.ipv4.tcp_sack = 1
net.ipv4.tcp_slow_start_after_idle = 1
net.ipv4.tcp_stdurg = 0
net.ipv4.tcp_syn_retries = 6
net.ipv4.tcp_synack_retries = 5
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_thin_dupack = 0
net.ipv4.tcp_thin_linear_timeouts = 0
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_tso_win_divisor = 3
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_tw_reuse = 0
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_wmem = 4096    16384    4194304
net.ipv4.tcp_workaround_signed_windows = 0
net.ipv4.udp_mem = 22215    29620    44430
net.ipv4.udp_rmem_min = 4096
net.ipv4.udp_wmem_min = 4096
net.ipv4.xfrm4_gc_thresh = 32768
net.ipv6.anycast_src_echo_reply = 0
net.ipv6.auto_flowlabels = 0
net.ipv6.bindv6only = 0
net.ipv6.conf.all.accept_dad = 1
net.ipv6.conf.all.accept_ra = 1
net.ipv6.conf.all.accept_ra_defrtr = 1
net.ipv6.conf.all.accept_ra_from_local = 0
net.ipv6.conf.all.accept_ra_mtu = 1
net.ipv6.conf.all.accept_ra_pinfo = 1
net.ipv6.conf.all.accept_redirects = 1
net.ipv6.conf.all.accept_source_route = 0
net.ipv6.conf.all.autoconf = 1
net.ipv6.conf.all.dad_transmits = 1
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.all.force_mld_version = 0
net.ipv6.conf.all.force_tllao = 0
net.ipv6.conf.all.forwarding = 0
net.ipv6.conf.all.hop_limit = 64
net.ipv6.conf.all.max_addresses = 16
net.ipv6.conf.all.max_desync_factor = 600
net.ipv6.conf.all.mc_forwarding = 0
net.ipv6.conf.all.mldv1_unsolicited_report_interval = 10000
net.ipv6.conf.all.mldv2_unsolicited_report_interval = 1000
net.ipv6.conf.all.mtu = 1280
net.ipv6.conf.all.ndisc_notify = 0
net.ipv6.conf.all.proxy_ndp = 0
net.ipv6.conf.all.regen_max_retry = 3
net.ipv6.conf.all.router_solicitation_delay = 1
net.ipv6.conf.all.router_solicitation_interval = 4
net.ipv6.conf.all.router_solicitations = 3
net.ipv6.conf.all.suppress_frag_ndisc = 1
net.ipv6.conf.all.temp_prefered_lft = 86400
net.ipv6.conf.all.temp_valid_lft = 604800
net.ipv6.conf.all.use_tempaddr = 0
net.ipv6.conf.default.accept_dad = 1
net.ipv6.conf.default.accept_ra = 1
net.ipv6.conf.default.accept_ra_defrtr = 1
net.ipv6.conf.default.accept_ra_from_local = 0
net.ipv6.conf.default.accept_ra_mtu = 1
net.ipv6.conf.default.accept_ra_pinfo = 1
net.ipv6.conf.default.accept_redirects = 1
net.ipv6.conf.default.accept_source_route = 0
net.ipv6.conf.default.autoconf = 1
net.ipv6.conf.default.dad_transmits = 1
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.default.force_mld_version = 0
net.ipv6.conf.default.force_tllao = 0
net.ipv6.conf.default.forwarding = 0
net.ipv6.conf.default.hop_limit = 64
net.ipv6.conf.default.max_addresses = 16
net.ipv6.conf.default.max_desync_factor = 600
net.ipv6.conf.default.mc_forwarding = 0
net.ipv6.conf.default.mldv1_unsolicited_report_interval = 10000
net.ipv6.conf.default.mldv2_unsolicited_report_interval = 1000
net.ipv6.conf.default.mtu = 1280
net.ipv6.conf.default.ndisc_notify = 0
net.ipv6.conf.default.proxy_ndp = 0
net.ipv6.conf.default.regen_max_retry = 3
net.ipv6.conf.default.router_solicitation_delay = 1
net.ipv6.conf.default.router_solicitation_interval = 4
net.ipv6.conf.default.router_solicitations = 3
net.ipv6.conf.default.suppress_frag_ndisc = 1
net.ipv6.conf.default.temp_prefered_lft = 86400
net.ipv6.conf.default.temp_valid_lft = 604800
net.ipv6.conf.default.use_tempaddr = 0
net.ipv6.conf.eth0.accept_dad = 1
net.ipv6.conf.eth0.accept_ra = 1
net.ipv6.conf.eth0.accept_ra_defrtr = 0
net.ipv6.conf.eth0.accept_ra_from_local = 0
net.ipv6.conf.eth0.accept_ra_mtu = 1
net.ipv6.conf.eth0.accept_ra_pinfo = 0
net.ipv6.conf.eth0.accept_redirects = 1
net.ipv6.conf.eth0.accept_source_route = 0
net.ipv6.conf.eth0.autoconf = 1
net.ipv6.conf.eth0.dad_transmits = 1
net.ipv6.conf.eth0.disable_ipv6 = 0
net.ipv6.conf.eth0.force_mld_version = 0
net.ipv6.conf.eth0.force_tllao = 0
net.ipv6.conf.eth0.forwarding = 0
net.ipv6.conf.eth0.hop_limit = 64
net.ipv6.conf.eth0.max_addresses = 16
net.ipv6.conf.eth0.max_desync_factor = 600
net.ipv6.conf.eth0.mc_forwarding = 0
net.ipv6.conf.eth0.mldv1_unsolicited_report_interval = 10000
net.ipv6.conf.eth0.mldv2_unsolicited_report_interval = 1000
net.ipv6.conf.eth0.mtu = 1500
net.ipv6.conf.eth0.ndisc_notify = 0
net.ipv6.conf.eth0.proxy_ndp = 0
net.ipv6.conf.eth0.regen_max_retry = 3
net.ipv6.conf.eth0.router_solicitation_delay = 1
net.ipv6.conf.eth0.router_solicitation_interval = 4
net.ipv6.conf.eth0.router_solicitations = 3
net.ipv6.conf.eth0.suppress_frag_ndisc = 1
net.ipv6.conf.eth0.temp_prefered_lft = 86400
net.ipv6.conf.eth0.temp_valid_lft = 604800
net.ipv6.conf.eth0.use_tempaddr = 0
net.ipv6.conf.lo.accept_dad = -1
net.ipv6.conf.lo.accept_ra = 1
net.ipv6.conf.lo.accept_ra_defrtr = 1
net.ipv6.conf.lo.accept_ra_from_local = 0
net.ipv6.conf.lo.accept_ra_mtu = 1
net.ipv6.conf.lo.accept_ra_pinfo = 1
net.ipv6.conf.lo.accept_redirects = 1
net.ipv6.conf.lo.accept_source_route = 0
net.ipv6.conf.lo.autoconf = 1
net.ipv6.conf.lo.dad_transmits = 1
net.ipv6.conf.lo.disable_ipv6 = 0
net.ipv6.conf.lo.force_mld_version = 0
net.ipv6.conf.lo.force_tllao = 0
net.ipv6.conf.lo.forwarding = 0
net.ipv6.conf.lo.hop_limit = 64
net.ipv6.conf.lo.max_addresses = 16
net.ipv6.conf.lo.max_desync_factor = 600
net.ipv6.conf.lo.mc_forwarding = 0
net.ipv6.conf.lo.mldv1_unsolicited_report_interval = 10000
net.ipv6.conf.lo.mldv2_unsolicited_report_interval = 1000
net.ipv6.conf.lo.mtu = 65536
net.ipv6.conf.lo.ndisc_notify = 0
net.ipv6.conf.lo.proxy_ndp = 0
net.ipv6.conf.lo.regen_max_retry = 3
net.ipv6.conf.lo.router_solicitation_delay = 1
net.ipv6.conf.lo.router_solicitation_interval = 4
net.ipv6.conf.lo.router_solicitations = 3
net.ipv6.conf.lo.suppress_frag_ndisc = 1
net.ipv6.conf.lo.temp_prefered_lft = 86400
net.ipv6.conf.lo.temp_valid_lft = 604800
net.ipv6.conf.lo.use_tempaddr = -1
net.ipv6.flowlabel_consistency = 1
net.ipv6.fwmark_reflect = 0
net.ipv6.icmp.ratelimit = 1000
net.ipv6.ip6frag_high_thresh = 4194304
net.ipv6.ip6frag_low_thresh = 3145728
net.ipv6.ip6frag_secret_interval = 0
net.ipv6.ip6frag_time = 60
net.ipv6.mld_max_msf = 64
net.ipv6.mld_qrv = 2
net.ipv6.neigh.default.anycast_delay = 100
net.ipv6.neigh.default.app_solicit = 0
net.ipv6.neigh.default.base_reachable_time_ms = 30000
net.ipv6.neigh.default.delay_first_probe_time = 5
net.ipv6.neigh.default.gc_interval = 30
net.ipv6.neigh.default.gc_stale_time = 60
net.ipv6.neigh.default.gc_thresh1 = 128
net.ipv6.neigh.default.gc_thresh2 = 512
net.ipv6.neigh.default.gc_thresh3 = 1024
net.ipv6.neigh.default.locktime = 0
net.ipv6.neigh.default.mcast_solicit = 3
net.ipv6.neigh.default.proxy_delay = 80
net.ipv6.neigh.default.proxy_qlen = 64
net.ipv6.neigh.default.retrans_time_ms = 1000
net.ipv6.neigh.default.ucast_solicit = 3
net.ipv6.neigh.default.unres_qlen = 34
net.ipv6.neigh.default.unres_qlen_bytes = 65536
net.ipv6.neigh.eth0.anycast_delay = 100
net.ipv6.neigh.eth0.app_solicit = 0
net.ipv6.neigh.eth0.base_reachable_time_ms = 30000
net.ipv6.neigh.eth0.delay_first_probe_time = 5
net.ipv6.neigh.eth0.gc_stale_time = 60
net.ipv6.neigh.eth0.locktime = 0
net.ipv6.neigh.eth0.mcast_solicit = 3
net.ipv6.neigh.eth0.proxy_delay = 80
net.ipv6.neigh.eth0.proxy_qlen = 64
net.ipv6.neigh.eth0.retrans_time_ms = 1000
net.ipv6.neigh.eth0.ucast_solicit = 3
net.ipv6.neigh.eth0.unres_qlen = 34
net.ipv6.neigh.eth0.unres_qlen_bytes = 65536
net.ipv6.neigh.lo.anycast_delay = 100
net.ipv6.neigh.lo.app_solicit = 0
net.ipv6.neigh.lo.base_reachable_time_ms = 30000
net.ipv6.neigh.lo.delay_first_probe_time = 5
net.ipv6.neigh.lo.gc_stale_time = 60
net.ipv6.neigh.lo.locktime = 0
net.ipv6.neigh.lo.mcast_solicit = 3
net.ipv6.neigh.lo.proxy_delay = 80
net.ipv6.neigh.lo.proxy_qlen = 64
net.ipv6.neigh.lo.retrans_time_ms = 1000
net.ipv6.neigh.lo.ucast_solicit = 3
net.ipv6.neigh.lo.unres_qlen = 34
net.ipv6.neigh.lo.unres_qlen_bytes = 65536
net.ipv6.route.gc_elasticity = 9
net.ipv6.route.gc_interval = 30
net.ipv6.route.gc_min_interval = 0
net.ipv6.route.gc_min_interval_ms = 500
net.ipv6.route.gc_thresh = 1024
net.ipv6.route.gc_timeout = 60
net.ipv6.route.max_size = 4096
net.ipv6.route.min_adv_mss = 1220
net.ipv6.route.mtu_expires = 600
net.ipv6.xfrm6_gc_thresh = 32768
net.netfilter.nf_conntrack_acct = 0
net.netfilter.nf_conntrack_buckets = 15360
net.netfilter.nf_conntrack_checksum = 1
net.netfilter.nf_conntrack_count = 2
net.netfilter.nf_conntrack_events = 1
net.netfilter.nf_conntrack_expect_max = 228
net.netfilter.nf_conntrack_frag6_high_thresh = 4194304
net.netfilter.nf_conntrack_frag6_low_thresh = 3145728
net.netfilter.nf_conntrack_frag6_timeout = 60
net.netfilter.nf_conntrack_generic_timeout = 600
net.netfilter.nf_conntrack_helper = 1
net.netfilter.nf_conntrack_icmp_timeout = 30
net.netfilter.nf_conntrack_icmpv6_timeout = 30
net.netfilter.nf_conntrack_log_invalid = 0
net.netfilter.nf_conntrack_max = 59264
net.netfilter.nf_conntrack_tcp_be_liberal = 0
net.netfilter.nf_conntrack_tcp_loose = 1
net.netfilter.nf_conntrack_tcp_max_retrans = 3
net.netfilter.nf_conntrack_tcp_timeout_close = 10
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_established = 432000
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_last_ack = 30
net.netfilter.nf_conntrack_tcp_timeout_max_retrans = 300
net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 60
net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 120
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_unacknowledged = 300
net.netfilter.nf_conntrack_timestamp = 0
net.netfilter.nf_conntrack_udp_timeout = 30
net.netfilter.nf_conntrack_udp_timeout_stream = 180
net.netfilter.nf_log.0 = NONE
net.netfilter.nf_log.1 = NONE
net.netfilter.nf_log.10 = NONE
net.netfilter.nf_log.11 = NONE
net.netfilter.nf_log.12 = NONE
net.netfilter.nf_log.2 = NONE
net.netfilter.nf_log.3 = NONE
net.netfilter.nf_log.4 = NONE
net.netfilter.nf_log.5 = NONE
net.netfilter.nf_log.6 = NONE
net.netfilter.nf_log.7 = NONE
net.netfilter.nf_log.8 = NONE
net.netfilter.nf_log.9 = NONE
net.nf_conntrack_max = 59264
net.unix.max_dgram_qlen = 10
vm.admin_reserve_kbytes = 8192
vm.block_dump = 0
vm.dirty_background_bytes = 0
vm.dirty_background_ratio = 10
vm.dirty_bytes = 0
vm.dirty_expire_centisecs = 3000
vm.dirty_ratio = 20
vm.dirty_writeback_centisecs = 500
vm.dirtytime_expire_seconds = 43200
vm.drop_caches = 0
vm.extfrag_threshold = 500
vm.laptop_mode = 0
vm.legacy_va_layout = 0
vm.lowmem_reserve_ratio = 32
vm.max_map_count = 65530
vm.min_free_kbytes = 3894
vm.mmap_min_addr = 4096
vm.nr_pdflush_threads = 0
vm.oom_dump_tasks = 1
vm.oom_kill_allocating_task = 0
vm.overcommit_kbytes = 0
vm.overcommit_memory = 0
vm.overcommit_ratio = 50
vm.page-cluster = 3
vm.panic_on_oom = 0
vm.percpu_pagelist_fraction = 0
vm.stat_interval = 1
vm.swappiness = 60
vm.user_reserve_kbytes = 29417
vm.vfs_cache_pressure = 100
[root@localhost UnixBench]#

pi2 fedora22 でOC

前回、Pi2に、Fedora22 を入れて、UnixBench を計測したときは、279.9 でちょっと残念だったので設定がどうなっているのか見てみました。

・現在のCPU 動作クロックを確認し、上げてみます。raspi-configはないので、/proc/配下の値をとりあえず見てみます。

[root@pi2 boot]# cat /proc/cpuinfo 
processor    : 0
model name    : ARMv7 Processor rev 5 (v7l)
BogoMIPS    : 38.40
Features    : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm 
CPU implementer    : 0x41
CPU architecture: 7
CPU variant    : 0x0
CPU part    : 0xc07
CPU revision    : 5

processor    : 1
model name    : ARMv7 Processor rev 5 (v7l)
BogoMIPS    : 38.40
Features    : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm 
CPU implementer    : 0x41
CPU architecture: 7
CPU variant    : 0x0
CPU part    : 0xc07
CPU revision    : 5

processor    : 2
model name    : ARMv7 Processor rev 5 (v7l)
BogoMIPS    : 38.40
Features    : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm 
CPU implementer    : 0x41
CPU architecture: 7
CPU variant    : 0x0
CPU part    : 0xc07
CPU revision    : 5

processor    : 3
model name    : ARMv7 Processor rev 5 (v7l)
BogoMIPS    : 38.40
Features    : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm 
CPU implementer    : 0x41
CPU architecture: 7
CPU variant    : 0x0
CPU part    : 0xc07
CPU revision    : 5

Hardware    : BCM2709
Revision    : a21041
Serial        : 00000000********
[root@pi2 boot]# 

※このあたりには出ないようです。

・/boot/config.txt で、設定できるようなのでやってみます。

[root@pi2 boot]# cat /etc/fstab 
UUID=7c321d6b-f2b0-4783-9576-e3dfe657f9b3 / ext4 defaults,noatime 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 0
[root@pi2 boot]# 

[root@pi2 boot]# blkid
/dev/mmcblk0p1: SEC_TYPE="msdos" UUID="509F-31B8" TYPE="vfat" PARTUUID="0008037c-01"
/dev/mmcblk0p2: LABEL="_/" UUID="7c321d6b-f2b0-4783-9576-e3dfe657f9b3" TYPE="ext4" PARTUUID="0008037c-02"
/dev/mmcblk0: PTUUID="0008037c" PTTYPE="dos"
[root@pi2 boot]# 

以下の感じにファイルを作成し、リブートしてみました。

--- /boot/cmdline.txt
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

--- /boot/config.txt
arm_freq_min=900
arm_freq=1000
core_freq_min=450
core_freq=500
#sdram_freq=500
over_voltage_min=0
over_voltage=2

・以下で、確認します。が、負荷をかけても変わらず。

・温度(34428と出たら34.428度と読み替え)

#cat /sys/class/thermal/thermal_zone0/temp

・最大スピード

#cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq

・現在のスピード

# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

負荷をかけてもCPUクロックがあがらないのは、何かが足りないようですね。

※ツールを入れて確認してみることにします。

 

・ツールを入れる

[root@pi2 UnixBench]# dnf install cpufrequtils

・以下の感じで、現在の設定を確認できるようです。

[root@pi2 UnixBench]# cpupower frequency-info
analyzing CPU 0:
  driver: BCM2835 CPUFreq
  CPUs which run at the same hardware frequency: 0 1 2 3
  CPUs which need to have their frequency coordinated by software: 0 1 2 3
  maximum transition latency: 355 us.
  hardware limits: 600 MHz - 900 MHz
  available frequency steps: 600 MHz, 900 MHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance
  current policy: frequency should be within 600 MHz and 900 MHz.
                  The governor "powersave★" may decide which speed to use
                  within this range.
  current CPU frequency is 600 MHz (asserted by call to hardware).
[root@pi2 UnixBench]# 

・powersave    は、負荷に関わらず、変動可能範囲内の最低のクロックで動作 で動作している模様。

参考 http://d.hatena.ne.jp/kakurasan/20070720/p1

 

省電力モードというところでしょうか。とりあえず、この設定を変えて、600Mhz ~ 900Mhz で動作するようにしてみます。

 

・負荷がかかったら、すぐクロックがあがるように ondemand に設定してみます。

[root@pi2 UnixBench]# cpupower frequency-set -g ondemand
Setting cpu: 0
Setting cpu: 1
Setting cpu: 2
Setting cpu: 3
[root@pi2 UnixBench]# 

[root@pi2 UnixBench]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
ondemand★
[root@pi2 UnixBench]# 

[root@pi2 UnixBench]# cpupower frequency-info
analyzing CPU 0:
  driver: BCM2835 CPUFreq
  CPUs which run at the same hardware frequency: 0 1 2 3
  CPUs which need to have their frequency coordinated by software: 0 1 2 3
  maximum transition latency: 355 us.
  hardware limits: 600 MHz - 900 MHz
  available frequency steps: 600 MHz, 900 MHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance
  current policy: frequency should be within 600 MHz and 900 MHz.
                  The governor "ondemand★" may decide which speed to use
                  within this range.
  current CPU frequency is 600 MHz (asserted by call to hardware).
[root@pi2 UnixBench]# 

※設定は変更されたようです。

・現在の値

[root@pi2 ~]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

600000

[root@pi2 ~]#

・UnixBench で負荷をかけ、値を確認。

[root@pi2 ~]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

900000★

[root@pi2 ~]#

※負荷がかかれば、クロックはあがっているようです。

・温度のモニタ

[root@pi2 ~]# watch -n 1 cat /sys/class/thermal/thermal_zone0/temp

Every 1.0s: cat /sys/class/thermal/thermal_zone0/temp        Sat Jul  4 15:49:35 2015

60528 ★

※単位は 1/1000℃ 上記例だと、60.528℃。指先でCPU を触ると熱いです。最高で、64℃くらいまであがりました。

指先で冷ますと、58℃くらいに。(熱いです) だから、みなさん放熱板つけているんですね。

 

・BogoMIPS の値もあがっているようです。

[root@pi2 ~]# cat /proc/cpuinfo

processor    : 0

model name    : ARMv7 Processor rev 5 (v7l)

BogoMIPS    : 57.60★

Features    : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm

CPU implementer    : 0x41

CPU architecture: 7

CPU variant    : 0x0

CPU part    : 0xc07

CPU revision    : 5

::

・・・温度を監視し、UnixBench を完走させてみます。

------------------------------------------------------------------------
Benchmark Run: 土  7月 04 2015 15:44:51 - 16:13:14
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables       14083711.0 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     2200.7 MWIPS (9.1 s, 7 samples)
Execl Throughput                               1294.5 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks         98062.8 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           30405.9 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        274125.7 KBps  (30.0 s, 2 samples)
Pipe Throughput                              714775.2 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 100933.0 lps   (10.0 s, 7 samples)
Process Creation                               2531.6 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   1739.2 lpm   (60.1 s, 2 samples)
Shell Scripts (8 concurrent)                    238.2 lpm   (60.5 s, 2 samples)
System Call Overhead                        1538713.1 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   14083711.0   1206.8
Double-Precision Whetstone                       55.0       2200.7    400.1
Execl Throughput                                 43.0       1294.5    301.1
File Copy 1024 bufsize 2000 maxblocks          3960.0      98062.8    247.6
File Copy 256 bufsize 500 maxblocks            1655.0      30405.9    183.7
File Copy 4096 bufsize 8000 maxblocks          5800.0     274125.7    472.6
Pipe Throughput                               12440.0     714775.2    574.6
Pipe-based Context Switching                   4000.0     100933.0    252.3
Process Creation                                126.0       2531.6    200.9
Shell Scripts (1 concurrent)                     42.4       1739.2    410.2
Shell Scripts (8 concurrent)                      6.0        238.2    396.9
System Call Overhead                          15000.0    1538713.1   1025.8
                                                                   ========
System Benchmarks Index Score                                         396.7

[root@pi2 UnixBench]# 

おおお。あがりました。とりあえず、この設定で遊びます。お仕事で使っているマシンとかは、この数字が7000とか1万とかなので、かわいい感じがしますが、とても立派な数字なんです。15年前くらいの2000年あたりは、サーバマシンといえども、200ちょいくらいしかなかったので。20万位したマシンで、その数字ですから。5000円くらいのPi2 でこの数字が出るというのは、とても立派なのです。

pi2 fedora22 ファイルシステムの拡張

16GB の SD Card なので、残りを / に拡張したいので、メモ。

 

・現状の確認。

[root@pi2 log]# df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/root        3.5G  1.4G  2.0G   41% /
devtmpfs         459M     0  459M    0% /dev
tmpfs            464M     0  464M    0% /dev/shm
tmpfs            464M  348K  463M    1% /run
tmpfs            464M     0  464M    0% /sys/fs/cgroup
/dev/mmcblk0p1   200M   21M  180M   11% /boot
tmpfs             93M     0   93M    0% /run/user/0
[root@pi2 log]#

[root@pi2 ~]# blkid
/dev/mmcblk0p1: SEC_TYPE="msdos" UUID="509F-31B8" TYPE="vfat" PARTUUID="0008037c-01"
/dev/mmcblk0p2: LABEL="_/" UUID="7c321d6b-f2b0-4783-9576-e3dfe657f9b3" TYPE="ext4" PARTUUID="0008037c-02"
/dev/mmcblk0: PTUUID="0008037c" PTTYPE="dos"
[root@pi2 ~]#

[root@pi2 ~]# blkid
/dev/mmcblk0p1: SEC_TYPE="msdos" UUID="509F-31B8" TYPE="vfat" PARTUUID="0008037c-01"
/dev/mmcblk0p2: LABEL="_/" UUID="7c321d6b-f2b0-4783-9576-e3dfe657f9b3" TYPE="ext4" PARTUUID="0008037c-02"
/dev/mmcblk0: PTUUID="0008037c" PTTYPE="dos"
[root@pi2 ~]# 
[root@pi2 ~]# ll /dev/mm*
brw-rw---- 1 root disk 179, 0  1月  1  1970 /dev/mmcblk0
brw-rw---- 1 root disk 179, 1  1月  1  1970 /dev/mmcblk0p1
brw-rw---- 1 root disk 179, 2  1月  1  1970 /dev/mmcblk0p2
[root@pi2 ~]# 

 

boot に200M / に 3.5GB のようです。

拡張の流れは、

・最終パーティションの後ろがあいていれば

・fdisk でサイズ拡張し、

・リブート後に、リサイズ

な感じ。

[root@pi2 log]# fdisk /dev/mmcblk0
n
2
最初のセクタ (411648-31356927, 既定値 411648): エンター
最終セクタ, +セクタ番号 または +サイズ{K,M,G,T,P} (411648-31356927, 既定値 31356927): エンター
w

リブートし、その後ファイルシステムを拡張します。

[root@pi2 ~]# resize2fs /dev/mmcblk0p2
resize2fs 1.42.12 (29-Aug-2014)
Filesystem at /dev/mmcblk0p2 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/mmcblk0p2 is now 3868160 (4k) blocks long.

確認。

[root@pi2 ~]# df -T
ファイルシス   タイプ   1K-ブロック    使用   使用可 使用% マウント位置
/dev/root      ext4        15196556 1215912 13927400    9% /
devtmpfs       devtmpfs      469832       0   469832    0% /dev
tmpfs          tmpfs         474128       0   474128    0% /dev/shm
tmpfs          tmpfs         474128     348   473780    1% /run
tmpfs          tmpfs         474128       0   474128    0% /sys/fs/cgroup
/dev/mmcblk0p1 vfat          204580   20772   183808   11% /boot
tmpfs          tmpfs          94828       0    94828    0% /run/user/0
[root@pi2 ~]# 

[root@pi2 ~]# df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/root         15G  1.2G   14G    9% /
devtmpfs         459M     0  459M    0% /dev
tmpfs            464M     0  464M    0% /dev/shm
tmpfs            464M  348K  463M    1% /run
tmpfs            464M     0  464M    0% /sys/fs/cgroup
/dev/mmcblk0p1   200M   21M  180M   11% /boot
tmpfs             93M     0   93M    0% /run/user/0
[root@pi2 ~]# 

[root@pi2 ~]# fdisk  -l
::
デバイス       起動 開始位置 最後から セクタ サイズ Id タイプ
/dev/mmcblk0p1          2048   411647   409600   200M  e W95 FAT16 (LBA)
/dev/mmcblk0p2        411648 31356927 30945280  14.8G 83 Linux

拡張できたようです。

X-Windowsを入れてみる

さて、Pi2 にFedora22 を入れたわけですが、サーバに使うか、クライアントに使うかで迷っていまして。

 

Pi2 をサーバで使うんだったらGUI 環境は入らない派なので今まで見向きもしてきませんでした。しかし、よーく考えてみると以下のようなシーンが想像されます。

・arduino や ESP8266 でシンプルな仕組みを作り、それらを集合させ、画面に表示させるもの

今や、24インチのHDMI ディスプレイが1.5万程度で買える時代なので、工作の幅と表現が増えると面白いんじゃないかと思い、興味を持ち始めています。

 

候補としては、以下の3つでどれが使いやすくて開発しやすいのかまだよくわかりません。Anjuta (アニュータ)+ Glade いうGUI 統合開発環境があるようです。なんと、GTK/GNOMEによる GUIプログラミング が全ページPDFで公開されています。

・LXDE Desktop(GTK+ , Qt)
・Xfce Desktop(GTK+2)
・MATE Desktop(?)

LXDE は、Windows ライクな感じで、一番軽そうな印象。迷った末、以下のページの印象を受け、Xfce をいれてみることにします。

LXDEのインストール方法

Xfceのインストール方法

MATE Desktopのインストール方法

 

インストールパッケージは、700個弱で、グループインストールすれば良いので省きます。自分の環境では、見つからないパッケージが出てエラーとなったので、そういうのは、単体でrpm を落として入れました。

stunnel
tigervnc-server-minimal
tigervnc-license

ちなみに、dnf でローカルインストールは、以下のようにすればよいようです。

yum localinstall [RPMファイル]
dnf install [RPMファイル]

※参考 Fedora 22でパッケージ管理システムがYumからDNFに

 

インターフェイスのイメージは、以下のオフィシャルサイトを見るといいかもです。

http://www.xfce.org/about/tour

 

標準環境の RASPBIAN では LXDE なのでちょっと違うのを選んだという理由もあります。さぁ、どんな感じでしょうかね。

こんな感じになりました。

 

 

1

なかなかシンプルでいい感じです。

2

 

以下のような設定ファイルをホームディレクトリに作りました。

—- .xinitrc

exec startxfce4

以下の設定ファイルも作りました。

—- /etc/X11/Xwrapper.config

allowed_users=anybody

 

まだリモートで接続するやり方がわかりません。が、おいおいやっていくことにします。