mastodon.zunda.ninja is one of the many independent Mastodon servers you can use to participate in the fediverse.
Zundon is a single user instance as home of @zundan as well as a test bed for changes of the code.

Administered by:

Server stats:

1
active users

Arch Linux のインストーラさん、grub?からカーネルオプションにnomodesetを追加したらGatewayのネットブックLT1040uで画面見えた!

# iwctl --passphrase <パスフレーズ> station wlan0 connect <SSID>
でWiFiつながった。すごい!! 実家サーバとしてイーサネットしかつながってなかったこの子のWiFiアダプタ活躍するのたぶん初めて 🎉

https://wiki.archlinux.org/title/Installation_guide に従ってやっこ!!

> 1.6 Verify the boot mode
/sys/firmware/efi が無い。古い子だし。

> 1.7 Connect to the internet
ping archlinux.orgお返事くれるんだ。てかIPv6でお話ししてて未来感w

wiki.archlinux.orgInstallation guide - ArchWiki

mkfsとmkswapを手打ち久しぶりだなあ!!

# pacstrap -K /mnt base linux linux-firmware
でgpg鍵対から作るのナウでヤングだー

> 3.4 Localization
/etc/locale.gen を編集するエディタがみあたらんのじゃがw echoからのリダイレクトで代用しよう。

ネットワークとブートローダのインストール手順はぱっと見みつけられなかった。それ以外の手順は終えたはず。とりあえずリブートしてみよう。

error: unknown filesystem.
Entering rescue mode...
grub rescue>

とりあえず前回Ubuntu Serverを入れた時のgrubが起きてきたのかな?やっぱりインストーラからchrootしてブートローダを入れるべきみたいだ。

インストーラを起動してwlan0をつないでarch-chrootして

# pacman -S grub
# grub-install /dev/sda
# exit
# reboot

grubが起動してきたー!! うれしー!!

set root=(hd0,msdos1)
linux /boot/vmlinuz-linux root=/dev/sda0 nosetmode
boot

うーん。ルートパーティションを見つけられない。たのしい!!!

そういえはinitramfsつくってたなあ…

set root=(hd0,msdos1)
linux /boot/vmlinuz-linux nosetmode
initrd /boot/initramfs-linux.img
boot

たぶんブートした!! 画面まっくろだけどw

タイポタイポ!!

grub> set root=(hd0,msdos1)
grub> linux /boot/vmlinuz-linux root=/dev/sda0 nomodeset
grub> initrd /boot/initramfs-linux.img
grub> boot
:
Waiting 10 seconds for device /dev/sda0 ...
:
ERROR: device '/dev/sda0' not found. Skipping fsck.
:
[rootfs ~]# ls /dev/sda*
/dev/sda /dev/sda1 /dev/sda2 /dev/sda3 /dev/sda4

1オリジンなんだw

grub> set root=(hd0,msdos1)
grub> linux /boot/vmlinuz-linux root=/dev/sda1 nomodeset
grub> initrd /boot/initramfs-linux.img
grub> boot

やったあ!!

rootでログインしてgrub.cfgをつくる。
https://wiki.archlinux.org/title/GRUB#Generated_grub.cfg

# grub-mkconfig -o /boot/grub/grub.cfg
でなんだか複雑なファイルができてきたな。フレームバッファ関係もなんだかケアしてもらってるふいんき。これでブートできるんかな?

# sync;sync;reboot

できた!nomodesetより解像度が上がった気がする!

長年に渡るサーバ業で電池は死んでるのではずした。少しだけ軽量化。

Caps LockをCtrlにするには/usr/share/kbd/key maps/i386/qwerty/us.map.gzを編集してどこかに置いておいてなにかに読ませるのかな…

https://wiki.archlinux.org/title/Linux_console/Keyboard_configuration を参考にそろそろAの隣りをCtrlにしよう。

# localectrl status
System Locale: LANG=en_US.UTF-8
VC Keymap: (unset)
X11 Layout: (unset)
# cat /etc/vconsole.conf
:
=us

ふむふむ。

# mkdir -p /usr/local/share/kbd/keymaps
# echo 'keycode 58 = Control' > /usr/local/share/kbd/keymaps/nocaps.map
# loadkeys !$

これでAの横がCtrlになった…と思ったらCaps Lockが、えーと、 ^Cが?

loadkeysしてデフォルトだったus配列も消えちゃった感じなのかな?とりあえずCtrl-Alt-Delしてやりなおそう。

# loadkeys /usr/share/kbd/keymaps/i386/qwerty/us.map.gz
# loadkeys /usr/local/share/kbd/keymaps/nocaps.map

したら期待どおりのキーボードになった気がする。や、なってない。時間がたつとわけのわからない動作になるなw

us.map.gzを全部コピーして編集することにしよう。というわけで次回はwlan0の設定とvimのインストールとなりまるw

wiki.archlinux.orgLinux console/Keyboard configuration - ArchWiki

Archちゃんまずネットワークにつながなくちゃいけない感じになってきて
https://wiki.archlinux.org/title/iwd
を眺めながら

# iwctrl --passphrase パスフレーズ wlan0 connect SSID
-bash: iwctl: command not found

ってインストーラには入れてくれてたのにwww

wiki.archlinux.orgiwd - ArchWiki

インストーラから起動して、

# iwctl --passphrase <パスフレーズ> station wlan0 connect <SSID>
# mount /dev/sda1 /mnt
# swapon /dev/sda2
# arch-chroot /mnt

これで無線LANがつながった状態でインストール先のファイルシステムにパッケージを入れられるはず

# pacman -S iwd

vimは何だか404でインストールできないな…

これでchrootからexitしてpoweroffしてインストール先で起動し、

# iwctl --passphrase <パスフレーズ> station wlan0 connect <SSID>

でつながったのかな?/var/lib/iwdにファイルが増えている。このSSIDの設定ファイルを確認すると

[Settings]
AutoConnect=true

が無いので自動的には接続しないんだな。

# iwctl station wlan0 connect <SSID>

でつながる(IPv6だけだ!!)

vimを入れるにはミラーを更新する?
https://bbs.archlinux.org/viewtopic.php?id=138155

# pacman -Syy

だけでは解消されない。IPv4でもつながないといけない感じかしら。

エディタを入れるためには設定ファイルをいじりたいけど設定ファイルを入れるためにはエディタを入れないといけない状態になりましたw

bbs.archlinux.org[SOLVED] how to install vim / Newbie Corner / Arch Linux Forums

インストーラからiwctl connectするとIPv4アドレスももらえる。/etc/iwには何もないのだけれど何かがiwctlの動作を変えてるんだなあ。arch-chrootして

# pacman -Syy
# pacman -S vim

はいったー!!

vimをインストールできたのでキーマップの設定に戻ります。

# cd /usr/local/share/kbd/keymaps
# zcat /usr/share/kbd/keymaps/i386/qwerty/us.map.gz > us-nocaps.map
# vim us-nocaps.map

kaycode 58 = Caps_Lock

の行を、

kaycode 58 = Control

に変更して、

# loadkeys /usr/local/share/kbd/keymaps/us-nocaps.map

でCaps LockをCtrlにすることができたようだ。/etc/vconsole.confで

KEYMAP=/usr/local/share/kbd/keymaps/us-nocaps

にしてリブート。期待どおりのキーマップになりました🎉

キーボードが快適になったので https://wiki.archlinux.org/title/iwd を参考に起動時に家のWiFiにつながるようにしてみます。

/var/lib/iwd/<SSID>.psk

を編集して、

[Settings]
AutoConnect=true

を追加、リブート。これだけではWiFiには接続しない。

/etc/iwd/main.confを下記の内容で作ってリブートしてみる。

[Network]
EnableIPv6=true
EnableIPv4=true

これでも繋がらないねえ。ip addrでwlan0があることは確かめられるけれどIPアドレスはもらっていない。

[General]
EnableNetworkConfiguration=true

も追加してみよう。

リブートしても自動的に接続をしてくれるわけではない。

# iwctl station wlan0 connect <SSID>

で接続できてIPv4アドレスとIPv6アドレスの両方をもらえるようにはなった。ルータのIPv4アドレスへのpingへの返事はもらえるけどIPv6の疎通はどうやって確認するんだw

wiki.archlinux.orgiwd - ArchWiki

syslogを確認してみたいからlessを入れてみよう。

# pacman -S less

Could not resolve hostエラーがたっぷりわね…。IPv6側がうまくつながっていないのかも。

Arch Linuxのインストーラの最初のパーティションの/arch/x86_64/airootfs.sfsがインストーラのルートファイスシステムになるのかしら。

$ sudo mount -o ro -t squashfs /tmp/airootfs.sfs /mnt
$ ls /mnt
bin dev home lib64 opt root sbin sys usr version
boot etc lib mnt proc run srv tmp var

それっぽいね。

$ sudo find /mnt -iname '*iwd*' | grep -v /doc/ | grep -v /man/
/mnt/etc/systemd/system/multi-user.target.wants/iwd.service
:
/mnt/usr/lib/systemd/network/80-iwd.link
/mnt/usr/lib/systemd/system/iwd.service
/mnt/usr/share/dbus-1/system-services/net.connman.iwd.service
/mnt/usr/share/dbus-1/system.d/iwd-dbus.conf
/mnt/var/lib/pacman/local/iwd-2.12-1

インストーラの環境にはiwdだけではなくdbusも入ってるみたい。iwdの設定ファイルは

$ cat /mnt/etc/iwd/main.conf
cat: /mnt/etc/iwd/main.conf: No such file or directory

無いじゃんw

$ sudo sh -c 'find /mnt/etc -type f | grep -i network'

して眺めると、/etc/systemd/network/20-wlan.network あたりが怪しいのかな?

[Match]
Name=wl*

[Link]
RequiredForOnline=routable

[Network]
DHCP=yes
MulticastDNS=yes

[DHCPv4]
RouteMetric=600

[IPv6AcceptRA]
RouteMetric=600

インストーラで起動して

# mount /dev/sda1 /mnt
# cp -p /etc/systemd/network/20-wlan.network /mntetc/systemd/network/

インストール先に再起動して

# iwctl station wlan0 connect bon
No matching method found
Failed to retrieve IWD dbus objevts, quitting...

何だか警告は出るけれど、

# ip addr

でwlan0にIPv4アドレスと2つのIPv6アドレスが登録されている。ルータへのpingは通る。家サーバのIPv6アドレスへのpingは通る(IPv6アドレスは目で見てタイプできるものなんだ!!)

curlは入っているが例えばzunda.ninjaを索くことはできない。/etc/resolv.confの中身はからっぽ。

nameserver 8.8.8.8

と追記すると索くことができるようになる。

次はDHCPをもらった時にDNSを設定することからわね。

インストール先で起動してインストーラからルートファイルシステムを取り出しておこう。

# lsblk

するとsdb1に居そう。

# mount -'o ro /dev/sdb1 /mnt
# cp -p /mnt/arch/x68_64/airootfs.sfs /root/
# umount /mnt
# mount -o ro -t squashfs /root/airootfs.sfs /mnt

resolv.confに関係しそうなファイルを探す…ってsymlinkなん

# ls -l /mnt/etc/resolv.conf
lrwxrwxrwx … /mnt/etc/resolv.conf -> /run/systemd/resolve/stub-resolv.conf

resolveサービスを動かすのかな?

# iwctl station wlan0 connect <SSID>
# ls -l /etc/resolv.conf
-rw-r--r-- … /etc/resolv.conf

何も書かれてないのができちゃった。インストーラを起動して様子を見てみよう。

Network Name Resolutionのサービスが起動しているように見える。シンボリックリンクは上記の通り。内容は、

nameserver 127.0.0.53
options edns0 trust-ad
search .

# systemctl status

すると下記の.serviceが走ってるみたい

ModemManager
dbus
iwd
polkit
sshd
systemd-homed
systemd-journald
systemd-logind
systemd-networkd
systemd-resolvd
systemd-time-wait-sync
systemd-timesyncd
systemd-udevd
systemd-userdbd

systemctlさんもっと見やすい表示ないのかな。インストール先で

# systemctl status

すると、system.sliceで走っているのは

dbus-broker
systemd-journald
systemd-logind
systemd-udev
sustemd-userdb

resolvdを有効にしてみたい

# systemctl enable systemd-resolved
# systemctl start systemd-resolved

これでWiFiをつないでみる。

# iwctl station wlan0 connect <ssid>
No matching method found
Failed to retrieve IWD dbus objects, quitting...

エラーは表示されるけどwlan0はIPv4アドレスとIPv6アドレスをもらっている。

/etc/resolv.confは実ファイルで中身は空。とほほ。だけれどcurlは名前を索けるようになったぞ!!

digコマンドは入っていないようなので https://wiki.archlinux.org/title/Domain_name_resolution を読んでみる。

# getent hosts mastodon.zunda.ninja

できる。

# pacman -Syy
# pacman -S bind

でdigも使えるようになった。が、

::1#53: connection refused

ローカルにDNSサーバを起動するのはたぶん別のユニットなんだねえ。

wiki.archlinux.orgDomain name resolution - ArchWiki

そういえばインストーラでは/etc/resolv.confがどこかへのシンボリックリンクになっていたのを思い出しました。インストール先で確認してみよう。

# mount -o ro -t squashfs /root/airootfs.sfs /mnt
# ln -s /mnt/etc/resolv.conf
lrwxrwxrwx … /mnt/etc/resolv.conf -> /run/systemd/resolve/stub-resolv.conf

systemd-resolvdが動いてれば有効そうに見えるなw

# cd /etc
# mv resolv.conf resolv.conf.bak
# ln -s /run/systemd/resolve/stub-resolv.conf resolv.conf

これでdigが名前解決してくれるとうれしい!

# iwctl station wlan0 connect <ssid>
# dig mastodon.zunda.ninja
:
;; ANSWER SECTION:
:
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
:

たぶんローカルで走ってるリゾルバからお返事をもらえました。よーっし!

本日分のArch盆栽では起動したら自動的にWiFiに接続してもらうようにしてみます。iwdはiwctlコマンドで接続したWiFiアクセスポイントの情報を覚えてくれてるはず。

# systemctl enable iwd
Created symlink /etc/systemd/multi-user.target.wants/iwd.service → /user/lib/systemd/system/iwd.service.
# sync; sync; reboot

再起動後にrootでログインして、

# ip addr

するとwlan0がIPv4アドレスとIPv6アドレスをもらってる。いえーい!

Arch盆栽。常用ユーザーを作ってGUIを入れてみようかな。

以前実家サーバで/homeに使っていたパーティションをそのまま/homeに使おう。どこだっけ。

# sfdisk --list /dev/sda

sda3とsda4が同じ大きさで確保してある。/homeと/backupだね。

/etc/fstabには/とswapがUUIDで列挙してある。vi /etc/fstabして:r!ls -l /dev/disk/by-uuidして目当てを探して編集する。/のマウントオプションのrelatimeって何じゃろ。man mount:

> Update inode access times relative to modify or change time. Access time is only updated if the previous access time was earlier than the current modify or change time.

うむよくわからない。けどまあ/と同じにしておこうか。/backupマウントポイントはmkdirしておく。こちらのマウントオプションはとりあえずro,noatime。

# mount /home
mount: (hint) your fstab has been modified, but systemd still uses
the old version: use 'systemctl daemon-reload' to reload.

systemctlめんどくせーなーw /homeも/backupもマウントはできたのでリブートしてdfで期待どおりにマウントされているのを確認できた。

一般ユーザーの作成。ubuntuで作ったホームディレクトリはuid・gidとも1000からになっている。かぶらないといいな。

https://wiki.archlinux.org/title/users_and_groups に従って、

# useradd -m -s /bin/bash zunda
# passwd zunda

これでzundaとしてログインできるようになった。

wiki.archlinux.orgUsers and groups - ArchWiki

$ poweroff
Call to PowerOff failed: Access denied

あーw

一般アカウントでシャットダウンやリブートを可能にするのはpolkitの役割のようだ。
https://wiki.archlinux.org/title/Power_management#Using_systemd-logind

# packman -S polkit
# sync; sync; sync; reboot

一般ユーザーでログインして、

$ loginctl show-session $XDG_SESSION_ID --property=Active
Active=yes

ふむふむ

$ sync; sync; sync; reboot

リブートしてくれた。よーっし。

wiki.archlinux.orgPower management - ArchWiki

さて。Xfce動くかな♪
https://wiki.archlinux.org/title/xfce

# pacman -Syy
# pacman -S xfce4
:
Total Download Size: 107.49 MiB
Total Installed Size: 529.47 MiB

がんばえー。インストール後一般ユーザーでログインして

$ startxfce4
/usr/bin/startxfce4: Starting X server

/etc/x11/xinit/xserverc: line 2: /usr/bin/X: No such file or directory
xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error

たのしーw

https://wiki.archlinux.org/title/Xorg

# pacman -S xorg-server

一般ユーザーで

$ startxfce4

来ましたわー!! (スクリーンショットを撮るプログラムはまだ入ってないみたい)

Caps Lockが復活してきたので次はXの設定からかな
https://wiki.archlinux.org/title/Xorg/Keyboard_configuration#Using_X_configuration_files

zunda

Archの入ったネットブックちゃんコンソールを切り替えられないなあと思ったけどAlt+横矢印なら6個見えてキーボードの一番上の段がデフォルトでは音量とかの機能キーになっててファンクションキーにするにはFnを押すことに気づいた。

Arch盆栽。startxfce4からのX環境でCaps lockをCtrlになおすのに、https://bbs.archlinux.org/viewtopic.php?pid=1815527#p1815527 を参考に下記の内容で /etc/X11/xorg.conf.d/00-keyboard.conf ファイルを作成した。

Section "InputClass"
Identifier "system-keyboard"
MatchIsKeyboard "on"
Option "XkbOptions" "ctrl:nocaps"
EndSection

前回トラックパッドが動かなくなったのはMatchIsKeyboardあたりをタイポしてたのかな?

bbs.archlinux.orgsetxkbmap does not persist after putting machine on sleep mode / Newbie Corner / Arch Linux Forums

Arch盆栽。 https://wiki.archlinux.org/title/xfce を参考にxfce4-goodiesを入れてトラックパッドの設定やら背景の設定やらしてみたよ。PrtScキーでスクリーンショットも取れるの大したもんだなあ!(今回はUSBドライブ経由で電話からアップロードしました)

# pacman -Syy
# pacman -S xfce4-goodies

次はfcitx-skkかな?

Arch盆栽。 https://wiki.archlinux.org/title/Localization/Japanese を参考に、

# pacman -S fcitx5-im fcitx5-skk

常用ユーザーでログインして~/.bashrcに下記を追記

GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx

このファイルを . してstartxfce4してターミナルを開いて

$ fcitx5-configtool

を起動してAvailable Input Methodからskkを検索して追加して、Keyboard - English (US)を削除。Altを押しながらマウスを上にドラッグしてApply。これでskkが有効になった…けど端末に入力したひらがなは読めないなw

wiki.archlinux.orgLocalization/Japanese - ArchWiki

Arch盆栽。

# pacman -S otf-ipafont ttf-inconsolata

して、一般ユーザーでログインしstartxfce4して、Settings-AppearanceからDefault FontをSystem-ui Regular 10に、Default Monospace FontをInconsolata Regular 10にしてみた。端末の日本語はよしなに表示してくれるようになった。「ぱ」と「ば」とは見分けづらいけど、まあいいかな…。

Arch盆栽。ツール類も入れとこ。先日

# pacman -S less

したのは書くのを忘れてた気がする。

# pacman -S openssh

Optional dependencies for openssh
におもしろそうなのもある!!
libfido2: FIDO/U2F support
x11-ssh-askpass: input passphrase in X

後者は入れとこう。

# pacman -S x11-ssh-askpass

ブラウザもいっとこ

# pacman -S firefox
:
There are 2 providers available for jack:
Repository extra
1) jack2 2) pipewire-jack

デフォルトの1でいっかな…

ttf-fontsも選ぶんだ。noto-fontsかな。

404をもらったので

# pacman -Sy

してやりなおし。もりもりインストールされていくね。

完了したら常用ユーザーでログインしてstartxfce4してブラウザのアイコンから…Firefoxが起動してきた!! 弊ぼっちも見えた♪

インストールされたOpenSSHは

$ ssh -V
OpenSSH_9.7p1, OpenSSL 3.2.0 23 Nov 2023

$ ssh-keygen

で生成されたのはed25519。ナウでヤングなアルゴリズムだ!!

やっぱりssh鍵のパスフレーズは端末から入力しよう。とりあえず、

# pacman -R x11-ssh-askpass

ssh鍵エージェントの設定。いろいろと試したけれど、.ssh/configを下記の内容で作成してchmod 600しておいたら、startxfce4した上でエージェントが鍵を覚えておいてくれるようになった。コンソールでは使えないけれど、まあいいか。

AddKeysToAgent yes

だいぶ使えるようになってきたぞ!! 狭くて遅いけどw w3mを入れて一段落としようかな。

# pacman -S w3m

待って。Archさんのw3m、不安定ながらxfce-terminalに画像を表示するんだ

Arch盆栽の概要をZennの記事にまとめました。間違いがあったら知らせてもらえるとうれしい!!
https://zenn.dev/zunda/articles/0bcb30caede284

Zenn古いNetbookにArch Linuxを入れてみる

@zundan ダジャレを検出しました(検出ワード: FIDO)

@zundan ダジャレを検出しました(検出ワード: SSH)

@zundan ダジャレを検出しました(検出ワード: カギ, ヨウ)