アーカイブ

Archive for 2015年11月

Raspberry pi 2のttyAMA0をFedora22で使うには

raspberry pi 2のuartを使おうとしてttyAMA0を操作しようとしたところ、なんかうまくいきません。

嫌な予感がしたのでとりあえずps au | grep tty

root 346 0.0 0.0 5336 752 ? Ss+ 9月05 0:00 /sbin/agetty --keep-baud 115200 38400 9600 ttyAMA0 vt220

オマエカー

ということで無効化します。・・・systemdの場合どうするんだこれ。

きっと /etc/systemd/system/getty.target.wants の中にserial-getty@ttyAMA0があるんだろう!
→ないです。ないのにもかかわらず魔法の力でttyAMA0に対してagettyが起動してきます。

対策: systemctl mask serial-getty@ttyAMA0
/etc/systemd/system/getty.target.wants/serial-getty@ttyAMA0が/dev/nullにリンクされます。
これでrespawnしてこなくなるので、あとは今いるagettyを殺してやればok。

カテゴリー:未分類

dnf-plugin-system-upgradeを入れたらdnfまるごと動かなくなった

2015年11月8日 1件のコメント

Fedora23導入第一陣としていつもどおりサブ機を犠牲にしようととりあえずdnf-plugin-system-upgradeを入れたところ、
dnfそのものが「プラグインの読み込みに失敗しました: system_upgrade」でこけるように。
パッケージのバージョンがまずかったかとdnf updateしようとしてもdnfが動かないのであわや詰みか、という状況に。

dnfとかyumとかfedupとかpreupgradeとかが動かなくなった時はとりあえずロケールをCにしてみるべし、
ということでとりあえずLC_ALL=C,LANG=Cにして再実行。例によって動いてしまいました。

プラグインのバグでdnf全体が動かなくなるの、これ設計としてまずいんじゃないかなぁ・・・

2015/11/8 22:50追記
この状態でdnf system-upgradeかけたら再起動ループになって上がってこなくなりました。
暫定対処としては
1. シングルユーザで上げる
2. カーネルオプションと/etc/locale.confをLANG=Cに設定して再起動
3. とりあえずアップグレードに失敗して元の環境は戻ってくる
という感じ。

2015/11/9 22:40追記
で、肝心のアップグレードは/etc/locale.confをLANG=Cにした状態で行うと成功しました。
あまりお勧めはしませんが、upgradeしたいだけなら以下の手順でとりあえず上がりはします。
1. /etc/locale.confの中身をコメントアウト
2. Cロケール環境下でdnf system-upgrade
3. 再起動、一応カーネルオプションのLANGも削っておく
4. ここでアップグレードされるはず
5. F23が上がってきたらlocale.confを戻す
Fedora23では日本語ロケールでもdnf全体がちゃんと動くようです。

2015/11/11 19:20追記
パッチが上がっていたのでRPMを作りました。バージョン番号0.7.0-2扱いにしてあります。

2015/11/17 13:55追記
パッチは不完全で、system_upgradeプラグインが一部のエラーメッセージを出そうとした時にクラッシュします。通常は問題ありません。
たとえば、fedup –iso とかやるとクラッシュします。

2015/11/22 12:00追記
不完全だった上記のパッチが数日前にrevertされたようです。完全なパッチが上がっており、0.7.1に向けて調整中の模様。

2015/12/14 15:50追記
0.7.1-1がリリースされていました。これをもって解決。

カテゴリー:GNU/Linux