エアロ中級の壁:一発キャッチ

エアロ/ダンスのスタジオプログラムに参加するときは、軸を上、脱力、顔面垂直キープ等、その日のコンディションに合わせて2〜4テーマを持って臨むが、エアロ中上級クラスでは、そんなことは頭からきれいにブッ飛ぶ。動きの中で振りやタイミングを考えている余裕は全く無い。なので、振りをフィーリングで一発キャッチするセンスが欲しい!ダンス経験の無い私が今の年齢でどこまで行けるか、まぁ、楽しみながらマイペースでチャレンジしよう。

自己流 一発キャッチへの試み

  • 軸からのムーブメントを意識する。
    体に染み込んだと思い込んでいた振りは、実は、背景と紐付いていた。面替えに備え、背景無しで動けるようにしておく。無理なら、面替え時に背景を頭の中で回す。
  • 要所は、「Uuu」「Huu」「チャチャチャ」等の意識でマークする。
    後ろを向いた時にマークを外さないように気合を入れて。
  • 右軸足からは右ターン、左軸足からは左ターンしか無いと割り切る。
    例外は例外として意識。例外の例:バレエのピルエット凡例, BodyJam86最初の左ターン
  • 小キックは、キックしなければ普通の1ステップカウント 。
    キックはポイントにしやすいので、通しカウントと左右を確実に覚える。
  • ステップ用語には、耳だけで体が反応できるように。
    特に、ローインパクト系のタイミングとリズム感が重要。
  • 意識事項はボディタッチレベルのミニ・ルーティンにしておく。
    キャッチに余力が出たらルーティン発動。意識事項を思い出す。
  • ダメなときは、あきらめて脱力モードで流れに乗る
    [10/B追記] 最後にたどり着くべき所はたぶんここ。振りではなくて、流れをキャッチ。ここで得られる爽快感はスキー中上級斜面10本分超!! 何度か凹み挫折しかけたけど、あともうちょいかなぁ。。。と思ったけど、周囲の方々に助けられているのが実態。家で練習しようとしても思い出せないし、頭から絞り出したら32カウント後はまた右足から始まるし、、、あと2〜3年かかりそう。(T_T)

 

夏が来る前の体調管理

毎年、春と夏の境い目で、痛い目にあう。背中・首・腰のどこかを痛めることが多い。気温が高くても湿度が低いうちは、まだ体は冬モード。湿度が上がりモワっとした空気に包まれる6月中旬〜下旬が要注意。対策はいたって簡単なことだが、これが、毎年、できていない。私にとって重要な順序で記述すると、

  • 早寝。
  • 日頃の姿勢。
  • 食事のバランス。
  • 適度な運動とストレッチ。

これだけで、無難に乗り切れるはず。今年こそ、無難に夏モードの体にモードチェンジしたい。




【結果】
「ヨガ友」からピックアップしたストレッチが功を奏し、背中・首は問題無く、腰はぎりぎりセーフで乗り切った。しかし、、、
6月中旬〜 倦怠感がつきまとうようになる。毎日が月曜日という感じ。
6月下旬〜 頭頂部にイボが育ち始める。原因不明の高周波の耳鳴り(右)が突然始まる。耳鼻科では異常無し。
7月上旬〜 頭頂部のイボは直径5mmの楕円に膨れ上がる。耳鳴り(右)は依然として解消せず。酸性体質を疑い、飲料水をアルカリイオン水(メーカ品と地方取寄品)に変更。
7月中旬〜 アルカリイオン水の効果が徐々に出たか?それとも梅雨明けが近くて気圧が上がったせいか?倦怠感が解消の方向。3週間続いた耳鳴りが止む。頭頂部イボが硬直し始める。
7月下旬〜 倦怠感は解消。頭頂部イボは縮小。8月中旬時点で、イボはほぼ消滅。

うーん、、、いったい何が悪くて、何が良かったのだろうか。単に頭頂部の虫さされだったのか。。。

CentOS 8 と Debian 10 が 来る

もうすぐ来ますね、CentOS 8。完全にノーマークでした。組込開発ホストをCentOS7からUbuntu Mate 18.04に移行しつつありましたが、Screenletsを無事起動させることがてきたらCentOS 8で行こうと思います。

CentOS 8 のビルドステータスは、下記で確認できます。・・・あと1〜2ヶ月かな?
wiki.centos.org


Debian10 (Buster)も、もうすぐstableに昇格しそうです。こちらは、下記グラフの動きで進捗の雰囲気を確認できます。Debian9は2017年6月にstableに昇格しており、そこからの動きです。深緑の線が落ち着いてきたら、Debian10がstableになると推測できます。
https://bugs.debian.org/release-critical/

https://bugs.debian.org/release-critical/graph-release.png


CentOS8とDebian10、どちらが先にリリース or stableとなるでしょう?いろいろと楽しみでもあり悩ましいことでもあります。

なお、確定ではないようですが、CentOS8、Debian10とも、新規インストールではデスクトップマネージャに「Wayland」が採用されるとのことです。しかし、仮想マシンではまだ「Xorg」を使っている方が良さそうです。前バージョンからのアップグレードならば、Waylandは入らないと思います。

生ディスクでVirtualBox

物理ディスクを仮想ディスクとして認識させる方法は、下記で検索すれば情報源には困らない。
https://www.google.com/search?q=vboxmanage+rawdisk

例えば、下記のコマンドによって物理ディスクを仮想ディスクとして見せるテキストファイルを生成できる。物理ディスクはSATA接続でもSATA-USB変換接続でも構わない。これを使った仮想マシンは、起動も早い。

cd C:\Program Files\Oracle\VirtualBox
VBoxManage.exe internalcommands createrawvmdk -filename C:\temp\rawdisk.vmdk -rawdisk \\.\PhysicalDrive1

コマンドプロンプト「管理者として実行」で起動すること。物理ディスクを使う場合、VirtualBox自体も「管理者として実行」で起動すること。

この手法を使って、私は下記のように利用している。

  • ホスト=Windows10、VirtualBoxゲスト=Linuxとしている開発PCは多いが、ネットワーク系の調査支援でLinuxをホストで動かしたい!というシーンがよくある。そんなとき、PC起動時に「F7」か「F11」を押しBIOSメニューで起動ディスクを選択することで、普段はゲストOSとして利用しているLinuxを、ありのままホストOSとして利用できる。

  • 古いLinuxサーバの本体は処分し、HDDはそのまま別のPCに挿入。VirtualBoxで上記のマウントを実施し、元のサーバのまま運用を継続。


そもそも私は仮想ディスクを信用していない。リリース作業でddのようなプリミティブなコマンドを使うシーンでは、仮想ディスク上では作業を行わないようにしている。

Windows10 Homeへのリモートデスクトップ接続

これをやっていいのは、有識者かつ個人の趣味レベル。さもなくば、いろいろな意味で危険なので、素直にWindows10 Proへアップグレードしましょう。Windows10 Proならば、Windows10 Home、Linuxスマホ等から比較的安全かつ安定的にリモートデスクトップ接続が可能です。


Windows10 Homeへリモートデスクトップ接続するには、rdpwrap潜在的Windowsの機能を呼び起こせば良いのだが、Windows Updateした後にアクセスできなくなることがよくある。こんなとき、google先生に普通に聞くと情報が多すぎるので、直近期間を指定して検索するか、またはgithub掲示板の英語をこまめに読む。

今回は下記投稿による救済がヒットした。rdpwrap.iniを更新するたけだが、中身は全く理解していない (^^;)
https://github.com/stascorp/rdpwrap/issues/763
https://github.com/stascorp/rdpwrap/files/3138022/rdpwrap_corrected_single_10.0.17763.437.zip

rdpwrap.iniが上書きできないときは、「Remote Desktop Services」を一旦停止してから上書きすると良い。

備考:
・この処置を実施する前にUltraVNCを使ってみたが、何かいまひとつという感じだった。
Ubuntuからのリモートデスクトップ接続には「remmina」を使用している。

Intel SoC FPGAのGSRDユーザランド構築

先に紹介したUbuntu Mate 18.04 踊るデスクトップ上で、Intel SoC FPGA用のユーザランドを構築するメモ。組込の開発ではたいていガイド通りにはいかないので、柔軟に対応していく必要がある。

総合ガイド

Wikihttps://rocketboards.org/foswiki/Documentation/GSRDCompilingLinux
参考:https://service.macnica.co.jp/library/126489

Ubuntu Mateの準備

踊るデスクトップ機能は封印。MATE Tweak => ウィンドウ => Marco (Adaptive compositor)
Wikiではホームにワークディレクトリを作っているが、仮想マシンを柔軟に使っていく私の流儀では/opt/alteraに100GB程度の仮想HDDをマウントし、そこに全てを入れる。つまり、ワークディレクトリは/opt/altera/angstrom-buildとなる。

開発に必要なパッケージ

Wikiでは「phablet-tools」も入れているが、repoコマンドかその依存物をあてにしたものであり、不要なはず。他にも不要なものはあるが、パッケージが存在しているものは入れておく。

sudo apt instlal sed wget cvs subversion git-core coreutils unzip texi2html  texinfo libsdl1.2-dev docbook-utils gawk python-pysqlite2 diffstat help2man  make gcc build-essential g++ desktop-file-utils chrpath libgl1-mesa-dev  libglu1-mesa-dev mercurial autoconf automake groff libtool xterm lib32z1 lib32ncurses5 lib32stdc++6 
ユーザランド構築

以下、ユーザ権限で操作している。Wikiから変えたところはコメントしている。

## ワークディレクトリを/opt/altera/angstrom-buildとする。
mkdir /opt/altera/angstrom-build
cd /opt/altera/angstrom-build
wget http://releases.rocketboards.org/release/2019.04/src/altera.xml
wget http://commondatastorage.googleapis.com/git-repo-downloads/repo
chmod 777 repo
export PATH=$PATH:/opt/altera/angstrom-build

## repo init -u git://github.com/Angstrom-distribution/angstrom-manifest -b angstrom-v2018.06-sumo
## git ls-remote git://github.com/Angstrom-distribution/angstrom-manifest で確認したところ、
## 「angstrom-v2018.12-thud」という新しいブランチがあったので、そちらを指定する。
repo init -u git://github.com/Angstrom-distribution/angstrom-manifest -b angstrom-v2018.12-thud

mkdir -p .repo/local_manifests
mv altera.xml .repo/local_manifests/
repo sync

MACHINE=cyclone5 . ./setup-environment  ## <= cyclone5に変更した。

sed -i '/meta-altera/a \ \ ${TOPDIR}\/layers\/meta-altera-refdes \\' conf/bblayers.conf # This is to add the meta-altera-refdes layer to conf/bblayers.conf
sed -i '/meta-atmel/d' conf/bblayers.conf # this has conflicting packages
sed -i '/meta-freescale/d' conf/bblayers.conf # this has conflicting packages
echo "DISTRO_FEATURES_remove = \" wayland \"" >> conf/local.conf # broke builds prior to this not needed for GSRD
echo "DISTRO_FEATURES_remove = \" alsa \"" >> conf/local.conf # breaking builds prior to this not needed for GSRD

## 下記ファイルはもはや元から存在しない
# rm layers/meta-altera-refdes/recipes-devtools/socfpga-test/socfpga-test_1.0.bb # developmental unit tests stub for older kernels

export KERNEL_PROVIDER=linux-altera-ltsi
export KERNEL_TAG=refs/tags/ACDS19.1_REL_GSRD_PR
export KBRANCH=socfpga-4.14.73-ltsi
export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE KBRANCH KERNEL_TAG UBOOT_TAG KERNEL_PROVIDER"

## meta-altera-refdes/recipes-alteraにある.bbファイルのメンテ不足でbitbakeができない。
## .bbファイル内で、「REFDES_BRANCH ?= "master"」などと、存在するbranch名を指定するか、
## もしくは、ベンチマーク用でおそらく不要なので削除する。以下では削除。
rm -rf /opt/altera/angstrom-build/layers/meta-altera-refdes/recipes-altera/*
  # [備考] もし削除したフィアルを復旧したければ、
  # pushd layers/meta-altera-refdes
  # git checkout .
  # popd

## ベーキング
bitbake gsrd-console-image 

あとはベーキング完了待ち。長いのは初回だけだが、気長に2時間〜約半日放置する。 待ち時間はホスト/ネットの環境次第。うまくいけば、
 deploy/glibc/images/cyclone5/
に各種イメージファイルが生成される。

Kernelの構築

bitbakeでKernelを作ることもできるが、新しいtoolchainを使ってKernelを構築する。理由:MicroSDイメージに含まれているKernelについては新しいtoolchainで構築されている。

###
###  toolchainを展開
###
mkdir /opt/altera/toolchain
cd /opt/altera/toolchain
wget https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabihf/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf.tar.xz
tar axf gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf.tar.xz
## シンボリックリンクを作っておく。
ln -s gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf/bin

###
### Kernel構築
###
cd /opt/altera
git clone https://github.com/altera-opensource/linux-socfpga
cd linux-socfpga
git checkout socfpga-4.14.73-ltsi
vi Makefile
  ## 下記2行を冒頭付近に追加
  # ARCH = arm
  # CROSS_COMPILE = /opt/altera/toolchain/bin/arm-linux-gnueabihf-
make socfpga_defconfig   ## Cyclone5 SoC デバイス向けのconfig
make -j3 zImage    ## -j オプションはCPUスレッド数-1が目安


deb系Linux ユーザランドのダイエット/クリーニング

debLinuxユーザランドのダイエットとクリーニングを行うときのメモ。最近はあまり必要の無い作業ではあるが、組込系では必須に近い。なお、デブ系だからダイエットというわけではない。deb系とはDebianをベースにしたディストリビューションのことであり、DebianUbuntu、Mint、ラズパイ向けのRaspbianなどがある。

## 冗長なロケール情報を削除。
apt install localepurge
dpkg-reconfigure localepurge
apt clean
apt autoclean
apt autoremove

## ディレクトリを消去すると不都合が起きるケースがある。
## 例えば /var/cache/debconf。ここではファイルだけ消す。
find /var/cache -type f | xargs rm -rf
find /var/log -type f | xargs rm -rf

## アップデートファイル格納場所をクリア。
rm -rf /var/lib/apt/lists/*
rm -rf /var/lib/aptitude/*

##  クリーニング。以下、それぞれ、やっていいかはケースバイケース。
rm -rf /var/spool/cron/crontabs/*
rm -rf /var/spool/anacron/*
rm -rf /etc/udev/rules.d/* /etc/resolv.conf /etc/apt/apt.conf
rm -rf /usr/share/man
rm -rf $HOME/.*istory $HOME/.viminfo $HOME/.ssh/*

他にも、/etc 以下にシステム固有情報や個人情報があれば、リリース時には削除すべきだろう。