Raspberry Pi 3で、Linux From Scratch

まだ、はじめたばかりだけど、記録を残す。
多分、失敗すると思うので、途中で終了になったらゴメンね。

ラズパイでLFSってプロジェクトがある。
http://intestinate.com/pilfs/
このPILFSを使って、簡単にLFSをするのが今回の目的。

LFSについては、素敵な日本語マニュアルもあるので、そちらを参照。
http://lfsbookja.osdn.jp/


私が使っているのは、Raspberry Pi 3なので、
http://intestinate.com/pilfs/images.html
から、Raspberry Pi 3のイメージをダウンロード
http://intestinate.com/pilfs/binaries/pilfs-base-rpi3-20180303.img.xz

母艦としてWindows 7で作業しています。なので、
32GBのminiSDを用意して、7-Zipで解凍して、
Win 32 Disk Imagerで書き込みます。

起動すると、login: が表示されるので、rootでログインします。パスワードはpilfsです。イメージダウンロードページに「Login as root with password pilfs.」と書かれています。

ラズパイに日本語キーボードをつなげちゃっているので、キーどおりには動きません。
よく使う '"*(){}[]\=_なんかがどこにあるのか分からない。
適当にキーを押して探してください。

次に、Wi-Fi設定。イメージダウンロードページに

wpa_passphrase your_SSID your_password > /etc/sysconfig/wpa_supplicant-wlan0.conf

と書かれています。your_SSIDとyour_passwordは、自分が使うWi-Fiを調べてください。
wpa_suppicantの設定ファイルを作成した後、

ifup wlan0

であっさり繋がりました。


では、PILFSのガイドのページに行きましょう。
http://intestinate.com/pilfs/guide.html


私は、SDカード上のファイルシステムで作業することにしました。


apt-get を実行しようとしたら、そんなコマンドは無いみたいです。まあ、何もしなくても大丈夫です。


LFSパーティションを作りました。私は、fdiskを使ってます。
fdisk /dev/mmcblk0
新規のパーティションをプライマリパーティションで追加し、先頭セクタと最終セクタはデフォルトとしました。最後にwで書き込んで終了です。


次に、フォーマット。
mkfs.ext4 -m 1 -L MyLFS /dev/mmcblk0p3


LFS環境変数を設定し、先ほどフォーマットしたパーティションを/mnt/lfsにマウントします。
コマンドはそのままで大丈夫です。

export LFS=/mnt/lfs
mkdir -pv $LFS
mount -v -t ext4 /dev/mmcblk0p3 $LFS


ソースを取得するディレクトリを作成し、wgetでダウンロード

mkdir -v $LFS/sources
chmod -v a+wt $LFS/sources
cd $LFS/sources
wget http://intestinate.com/pilfs/scripts/wget-list
wget -i wget-list -P $LFS/sources

ここで、うまく取れなくても大丈夫。後から手動でwgetすればOKです。


環境変数を設定します。
ここで、PILFSのマニュアルは不親切なので、LFS日本語マニュアルを使います。
手元では、第4章の準備作業の仕上げを見ながら作業しました。

mkdir -v $LFS/tools
ln -sv $LFS/tools /
groupadd lfs
useradd -s /bin/bash -g lfs -m -k /dev/null lfs
passwd lfs
(パスワードを入力してください)
chown -v lfs $LFS/tools
chown -v lfs $LFS/sources
su - lfs

まあ、toolsというディレクトリを作って、lfsというグループとユーザーを作ってlfsにログインしてるだけです。

日本語マニュアルでは、

cat > ~/.bash_profile << "EOF"
exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
EOF

と書いてますが、私はvi で .bash_profile を編集しました。
exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
と書いてある一行です。

.bashrcもviで作成。注意はpilfsのGuideページにあるように、LFS_TGTをLFSマニュアルそのままではなく、LFS_TGT=$(uname -m)-lfs-linux-gnueabihfにすることです。

set +h
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
LFS_TGT=$(uname -m)-lfs-linux-gnueabihf
PATH=/tools/bin:/bin:/usr/bin
export LFS LC_ALL LFS_TGT PATH


そして、それらを反映します。
source ~/.bash_profile


ではビルド開始。ch5-build.shの所有者がrootのままなので、chmodコマンドはrootで実行しました。

cd $LFS/sources
su
chmod +x ch5-build.sh
exit
./ch5-build.sh

これでしばらく待ちます。前回7時間かかったので。。。ということは、前回失敗してやり直してるってことです。まあ、ビルドはできると思うので安心してください。

今日は、ここまで。次回があれば、そちらも読んでください。

Fefora 26 -> 27

まだBetaらしいのですが、いつものように更新していきます。
今回は fedup コマンドが提供されていないようなので、dnfコマンドで実施

ここを参考に
https://fedoramagazine.org/upgrading-fedora-25-fedora-26/

$ sudo dnf upgrade --refresh

$ sudo dnf system-upgrade download --releasever=27
Before you continue ensure that your system is fully upgraded by running "dnf --refresh upgrade". Do you want to continue [y/N]: y
(中略)
Importing GPG key 0xF5282EE4:
Userid : "Fedora 27 (27) "
Fingerprint: 860E 19B0 AFA8 00A1 7518 81A6 F55E 7430 F528 2EE4
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-27-x86_64
これでいいですか? [y/N]: y
(中略)
トランザクションの要約
================================================================================
インストール 94 パッケージ
アップグレード 2431 パッケージ
削除 3 パッケージ
ダウングレード 13 パッケージ

総ダウンロードサイズ: 2.0 G
DNFにより、パッケージはダウンロードだけをされます。gpgキーがインストールされます。トランザクションを確認します。
これでいいですか? [y/N]: y
(中略)
警告: /var/lib/dnf/system-upgrade/fedora-cba4cf65782eccda/packages/dnf-2.7.3-1.fc27.noarch.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID f5282ee4: NOKEY
Importing GPG key 0xF5282EE4:
Userid : "Fedora 27 (27) "
Fingerprint: 860E 19B0 AFA8 00A1 7518 81A6 F55E 7430 F528 2EE4
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-27-x86_64
これでいいですか? [y/N]: y
鍵のインポートに成功しました
警告: /var/lib/dnf/system-upgrade/rpmfusion-free-bb633ef348ecd3c8/packages/rpmfusion-free-appstream-data-26-1.fc27.noarch.rpm: ヘッダー V4 RSA/SHA1 Signature、鍵 ID 7d838377: NOKEY
Importing GPG key 0x7D838377:
Userid : "RPM Fusion free repository for Fedora (27) "
Fingerprint: 38FF 4B07 9890 0DAF 5E67 D7D1 1DBD E605 7D83 8377
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora-27
これでいいですか? [y/N]: y
鍵のインポートに成功しました
警告: /var/lib/dnf/system-upgrade/rpmfusion-nonfree-49a1ebaeea63d875/packages/rpmfusion-nonfree-appstream-data-26-2.fc27.noarch.rpm: ヘッダー V4 RSA/SHA1 Signature、鍵 ID b9c13282: NOKEY
Importing GPG key 0xB9C13282:
Userid : "RPM Fusion nonfree repository for Fedora (27) "
Fingerprint: C1D5 D345 7F31 7578 802E E337 8704 7784 B9C1 3282
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-27
これでいいですか? [y/N]: y
(中略)
完了しました!
Download complete! Use 'dnf system-upgrade reboot' to start the upgrade.
ダウンロードされたパッケージは、次の成功するトランザクションまで、キャッシュに保存されます。
'dnf clean packages' を実行することでキャッシュを削除できます。

$ sudo dnf system-upgrade reboot

再起動し、無事にupgradeされたようです。
見た目は、ほとんど変わりませんね。

fedup download --release=26の実行

$ sudo fedup download --release=26
ということで、いつものバージョンアップ。conflictがあったから、python系でいくつかパッケージを削除して実行。順調にダウンロードして、実行中。ダウンロード完了したので、以下のコマンド
$ sudo dnf system-upgrade reboot
無事にバージョンアップ完了。
アイコンが変わったぐらいで、特に大きな違いは感じない。

しかし、最近はWindows 7 に切り替えちゃったから、不具合は見つけられないかも。

Fedora 25 で kernel-4.8.8 にすると起動しなくなった

grub メニューが切り替わってなかった模様。
/boot/grub2/grub.cfg
を手動編集して起動するようになった。今後、毎回編集しないとだめなのかな?それは、嫌だな。
menuentry 'Fedora (4.8.8-300.fc25.x86_64) 25 (Workstation Edition)' --class fedora --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.17.4-301.fc21.x86_64-advanced-7d4b223f-2674-4fb4-a2e4-e34cc7c45729' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1' 2b6a2665-4516-4faf-a882-cb5de07eaf42
else
search --no-floppy --fs-uuid --set=root 2b6a2665-4516-4faf-a882-cb5de07eaf42
fi
linux16 /vmlinuz-4.8.8-300.fc25.x86_64 root=/dev/mapper/fedora-root ro rd.lvm.lv=fedora/swap rd.lvm.lv=fedora/root rhgb quiet LANG=ja_JP.utf8
initrd16 /initramfs-4.8.8-300.fc25.x86_64.img
}

Fedora 25 betaに更新

いつもどおりのfedupを実施。今回は依存性等の問題なし。

$ sudo dnf system-upgrade reboot

で問題なく更新され起動した。

起動が早くなった気がするぐらいで、大きな変化はなし。不具合としては、aisleriot-3.22.0-1.fc25.x86_64で、カード上のマウスポインタが消えること。手の形のマウスポインタの画像が無いような消え方。まあ、大きな問題じゃないな。それ以外は、通常作業ができてる。

Fedora 24に更新

いつものように、fedupしてみた。

$ sudo fedup --releasever 24

なんか、署名がないとのエラーがでる。全部 rpm-fusion関係みたい。

エラー: パッケージ a52dec-0.7.4-19.fc24.x86_64.rpm は署名されていません
$ sudo rpm -e a52dec gstreamer1-plugins-ugly mplayer vlc-core vlc
エラー: パッケージ faad2-libs-2.7-6.fc24.x86_64.rpm は署名されていません
$ sudo rpm -e faad2-libs
エラー: パッケージ ffmpeg-3.0.2-1.fc24.x86_64.rpm は署名されていません
$ sudo rpm -e ffmpeg
エラー: パッケージ ffmpeg-libs-3.0.2-1.fc24.x86_64.rpm は署名されていません
$ sudo rpm -e ffmpeg-libs gstreamer1-libav libavdevice
エラー: パッケージ lame-3.99.5-5.fc24.x86_64.rpm は署名されていません
$ sudo rpm -e lame
エラー: パッケージ lame-libs-3.99.5-5.fc24.x86_64.rpm は署名されていません
$ sudo rpm -e lame-libs
エラー: パッケージ libdca-0.0.5-9.fc24.x86_64.rpm は署名されていません
$ sudo rpm -e libdca
エラー: パッケージ libdvbpsi-1.3.0-1.fc24.x86_64.rpm は署名されていません
$ sudo rpm -e libdvbpsi
エラー: パッケージ libmad-0.15.1b-17.fc24.x86_64.rpm は署名されていません
$ sudo rpm -e libmad
エラー: パッケージ libmpeg2-0.5.1-11.fc24.x86_64.rpm は署名されていません
$ sudo rpm -e libmpeg2
エラー: パッケージ libmpg123-1.22.4-1.fc24.x86_64.rpm は署名されていません
$ sudo rpm -e libmpg123
エラー: パッケージ librtmp-2.4-5.20150925.gita107cef.fc24.x86_64.rpm は署名されていません
$ sudo rpm -e librtmp
エラー: パッケージ live555-2016.05.20-1.fc24.x86_64.rpm は署名されていません
$ sudo rpm -e live555
エラー: パッケージ mplayer-common-1.3.0-1.fc24.x86_64.rpm は署名されていません
$ sudo rpm -e mplayer-common
エラー: パッケージ opencore-amr-0.1.3-4.fc24.x86_64.rpm は署名されていません
$ sudo rpm -e opencore-amr
エラー: パッケージ rpmfusion-free-release-24-0.1.noarch.rpm は署名されていません
$ sudo rpm -e rpmfusion-free-release rpmfusion-nonfree-release

そして、

$ sudo fedup download --releasever 24
$ sudo dnf system-upgrade reboot

再起動したら、背景画面が変わってた。

$ uname -a
Linux localhost.localdomain 4.5.7-300.fc24.x86_64 #1 SMP Wed Jun 8 18:12:45 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

Fedora 24になったみたい。

$ rpm -qa | grep fc23
js-jquery-2.1.3-2.fc23.noarch
libsilc-1.1.10-14.fc23.x86_64
shared-desktop-ontologies-0.11.0-4.fc23.noarch
telepathy-salut-0.8.1-8.fc23.x86_64
hydrogen-0.9.5.1-12.fc23.x86_64

若干のこっているみたいだけど、あえて削除を試してみる。

$ sudo rpm -e js-jquery-2.1.3-2.fc23.noarch libsilc-1.1.10-14.fc23.x86_64 shared-desktop-ontologies-0.11.0-4.fc23.noarch telepathy-salut-0.8.1-8.fc23.x86_64 hydrogen-0.9.5.1-12.fc23.x86_64
エラー: 依存性の欠如:
js-jquery は (インストール済み)python-systemd-doc-231-5.fc24.x86_64 に必要とされています
telepathy-salut >= 0.8.0 は (インストール済み)empathy-3.12.12-1.fc24.x86_64 に必要とされています

依存性を先に削除
$ sudo rpm -e python-systemd-doc-231-5.fc24.x86_64 empathy-3.12.12-1.fc24.x86_64

あっさり削除できたのでもう一度、fc23を消す。

$ sudo rpm -e js-jquery-2.1.3-2.fc23.noarch libsilc-1.1.10-14.fc23.x86_64 shared-desktop-ontologies-0.11.0-4.fc23.noarch telepathy-salut-0.8.1-8.fc23.x86_64 hydrogen-0.9.5.1-12.fc23.x86_64

無事、削除完了

$ rpm -qa | grep fc23

きれいになった。

rpmfusion関係をダンロード
http://download1.rpmfusion.org/free/fedora/releases/24/Everything/x86_64/os/repoview/rpmfusion-free-release.html
http://download1.rpmfusion.org/nonfree/fedora/releases/24/Everything/x86_64/os/repoview/rpmfusion-nonfree-release.html

そしてインストール

$ sudo rpm -Uvh rpmfusion-free-release-24-1.noarch.rpm rpmfusion-nonfree-release-24-1.noarch.rpm
警告: rpmfusion-free-release-24-1.noarch.rpm: ヘッダー V4 RSA/SHA1 Signature、鍵 ID b7546f06: NOKEY
警告: rpmfusion-nonfree-release-24-1.noarch.rpm: ヘッダー V4 RSA/SHA1 Signature、鍵 ID 96ca6280: NOKEY
準備しています... ################################# [100%]
更新中 / インストール中...
1:rpmfusion-free-release-24-1 ################################# [ 50%]
警告: rpmfusion-nonfree-release-24-1.noarch: ヘッダー V4 RSA/SHA1 Signature、鍵 ID 96ca6280: NOKEY
2:rpmfusion-nonfree-release-24-1 ################################# [100%]

vlcをインストール

$ sudo dnf install vlc
エラー: パッケージ vlc-3.0.0-0.1.fc24.x86_64.rpm は署名されていません

面倒なので、署名チェックを無効にしてインストール。

$ sudo dnf install --nogpgcheck vlc

ついでにmplayerも署名無効でインストール。

$ sudo dnf install --nogpgcheck mplayer

これで、だいたい大丈夫になった感じ。