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
1
私は、SDカード上のファイルシステムで作業することにしました。
2
apt-get を実行しようとしたら、そんなコマンドは無いみたいです。まあ、何もしなくても大丈夫です。
3
LFSのパーティションを作りました。私は、fdiskを使ってます。
fdisk /dev/mmcblk0
新規のパーティションをプライマリパーティションで追加し、先頭セクタと最終セクタはデフォルトとしました。最後にwで書き込んで終了です。
4
次に、フォーマット。
mkfs.ext4 -m 1 -L MyLFS /dev/mmcblk0p3
5
LFS環境変数を設定し、先ほどフォーマットしたパーティションを/mnt/lfsにマウントします。
コマンドはそのままで大丈夫です。
export LFS=/mnt/lfs
mkdir -pv $LFS
mount -v -t ext4 /dev/mmcblk0p3 $LFS
6
ソースを取得するディレクトリを作成し、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です。
7
環境変数を設定します。
ここで、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
8
ではビルド開始。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されたようです。
見た目は、ほとんど変わりませんね。
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 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
無事、削除完了
きれいになった。
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
これで、だいたい大丈夫になった感じ。