なんか書いていこうぜー .com

Let's write something good

T495 に Arch Linux をインストールした

2020-01-25
  • Share on Facebook
  • Tweet
  • Add to Pocket

Ryzen CPU 搭載の PC に Arch Linux をインストールしたので、記録しておく。尚、最小手とは限らない。 基本的には https://wiki.archlinux.jp/index.php/%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%82%AC%E3%82%A4%E3%83%89 を参考にしつつ、過去の経験と AMD 用の設定と ThinkPad T495 向けの設定と思われるものを追加している。

起動する USB メモリを作成する

archlinux-2020.01.01-x86_64.iso をあらかじめダウンロードしておき、dd コマンドで作成する。 ここでは USB メモリが /dev/sdb にマウントされている。

$ sudo dd bs=4M if=archlinux-2020.01.01-x86_64.iso of=/dev/sdb && sync

USB メモリを起動してインストール

eivars を確認
# ls /sys/firmware/efi/efivars

ディスクの一覧を表示
# fdisk -l

パーティション作成
# gdisk /dev/nvme0n1
Command (? for help): o
Command (? for help): n
Permission number: 何も押さずエンター
First sector     : 何も押さずエンター
Last sector      : +512M
Hex code or GUID : EF00

https://server.etutsplus.com/allocate-swap-space/ ハイバネートが1.5 になってたから 24 * 1.5 = 36
Command (? for help): n
Permission number: 何も押さずエンター
First sector     : 何も押さずエンター
Last sector      : +36G
Hex code or GUID : 8200

Command (? for help): n
Permission number: 何も押さずエンター
First sector     : 何も押さずエンター
Last sector      : 何も押さずエンター
Hex code or GUID : 8300

Command (? for help): w
Do you want to proceed? (Y/N) Y
The operation has completed successfully.

パーティションにファイルシステム作成
# mkfs.fat -F32 /dev/nvme01p1
# mkswap /dev/nvme01p2
# swapon /dev/nvme01p2
# mkfs.ext4 /dev/nvme01p3

パーティションのマウント
# mount /dev/nvme01p3 /mnt
# mkdir /mnt/boot
# mount /dev/nvme01p1 /mnt/boot

システムクロックの更新
# timedatectl set-ntp true

paclist の編集 Japan なものをすべて上にもってきた
# vim  /etc/pacman.d/mirrorlist

ベースシステムの導入
# pacstrap /mnt base base-devel git linux linux-firmware vim

fstab の生成
# genfstab -U /mnt >> /mnt/etc/fstab

# arch-chroot /mnt

# ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# hwclock --systohc --utc

en_US.UTF-8 UTF-8 と ja_JP.UTF-8 UTF-8 を uncomment
# vi /etc/locale.gen
# locale-gen

※ この段階で ja_JP を入れると文字化けする
# echo LANG=en_US.UTF-8 > /etc/locale.conf

# echo ホスト名 > /etc/hostname
# vim /etc/hosts
127.0.0.1  localhost
::1    localhost
127.0.1.1  ホスト名.localdomain  ホスト名

netctl, wifi-menu 使えるようにしておく
# pacman -S iputils dialog wpa_supplicant iw
# pacman -S netctl dhcpcd

# mkinitcpio -P

root のパスワード設定
# passwd

microcode の更新用
# pacman -S amd-ucode

grub をインストールする
# pacman -S grub efibootmgr
# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub
# grub-mkconfig -o /boot/grub/grub.cfg
# vim /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT に acpi_backlight=native を追加
⇡ https://wiki.archlinux.jp/index.php/Lenovo_ThinkPad_T495 を参照

# grub-mkconfig -o /boot/grub/grub.cfg

ユーザ作成
# pacman -S zsh
# useradd -m -G wheel -s /usr/bin/zsh ユーザ名
# usermod -aG users ユーザ名 # users グループに追加
# passwd ユーザ名

# pacman -S sudo
# EDITOR=vim visudo
 %wheel      ALL=(ALL) ALL
# chown -c root:root /etc/sudoers
# chmod -c 0440 /etc/sudoers

Ryzen 最適化 kernel の導入 と その他
# pacman -S linux-zen
# pacman -S linux-zen-headers
# pacman -S mesa
# pacman -S xf86-video-amdgpu
# pacman -S lm_sensors
# vim /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT に↓を追加する
amdgpu.si_support=1 radeon.si_support=0 acpi_backlight=native

# grub-mkconfig -o /boot/grub/grub.cfg

フォントをインストール
# pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra

ノートPC の蓋締めたときのアクションを設定する
# mkdir /etc/systemd/logind.conf.d/
# cp /etc/systemd/logind.conf /etc/systemd/login.conf.d/
# vim  /etc/systemd/login.conf.d/logind.conf
HandleLidSwitch=hybrid-sleep

swapへのSSDの書き込み回数を減らす
# echo 10 > /proc/sys/vm/swappiness

TLP alsa 等
# pacman -S libxss alsa-utils tlp dkms

arch-chroot を抜けて再起動し、終了したら USB メモリを抜く
# exit
# reboot

一旦ログアウトしてユーザとしてログインして追加作業する

arch-chroot 状態だと systemctl が使えないため、一旦ログアウトしてインストールされたシステムにログインして作業を続ける。

wifi-menu を使えるように dhcpcd を有効化
$ sudo systemctl enable dhcpcd
$ sudo ip link set wlp1s0 up
$ sudo wifi-menu

$ sudo pacman -S openssh
$ sudo vim /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no
ChallengeResponseAuthentication no

$ sudo systemctl enable sshd.service
$ sudo systemctl start sshd.service

時刻合わせ
$ sudo pacman -S ntp
$ sudo systemctl enable ntpd
$ sudo systemctl restart ntpd

lightdm をインストールする
$ sudo pacman -S lightdm
$ sudo pacman -S lightdm-gtk-greeter
$ sudo vim /etc/lightdm/lightdm.conf
 [Seat:*]
 …
 greeter-session=lightdm-gtk-greeter
$ sudo systemctl enable lightdm.service

X の設定
$ sudo pacman -S xorg-server
https://wiki.archlinux.jp/index.php/AMDGPU#Xorg_.E3.81.AE.E8.A8.AD.E5.AE.9A で
$ sudo vim /etc/X11/xorg.conf.d/20-amdgpu.conf
Section "Device"
  Identifier  "AMD"
  Driver    "amdgpu"
  Option    "DRI"  "3"
EndSection

fcitx の設定
$ sudo pacman -S fcitx-mozc
$ sudo pacman -S fcitx-gtk2 fcitx-gtk3 fcitx-configtool
$ vim ~/.xprofile
 export GTK_IM_MODULE=fcitx
 export QT_IM_MODULE=fcitx
 export XMODIFIERS="@im=fcitx"
 export DefaultIMModule=fcitx
 fcitx &
$ fcitx-configtool
MOZC を追加する

synaptics でトラックパッドの設定をする
$ sudo pacman -S synaptics
$ sudo vim /etc/X11/xorg.conf.d/70-synaptics.conf
Section "InputClass"
  Identifier  "touchpad"
  Driver    "synaptics"
  MatchIsTouchpad  "on"

  Option  "VertTwoFingerScroll"  "on"
  Option  "HorizTwoFingerScroll"  "on"
  Option  "EmulateTwoFingerMinZ"  "40"
  Option  "EmulateTwoFingerMinW"  "8"
  Option  "CoastingSpeed"    "0"
  Option  "FingerLow"    "30"
  Option  "FingerHigh"    "50"
  Option  "MaxTapTime"    "125"

  Option  "VertScrollDelta"  "-111"
  Option  "HorizScrollDelta"  "-111"

  Option  "SoftButtonArea"  "70% 0 50% 0 0 0 0 0"

  # disable trackpad while typing
  Option  "PalmDetect"    "1"
  Option  "PalmMinWidth"    "10"
  Option  "PalmMinZ"    "200"
EndSection

yay の導入
$ mkdir tmp
$ git clone https://aur.archlinux.org/yay.git
$ cd yay
$ makepkg -si

あとは好みのアプリを導入すれば動くはず。

追記(2020-01-30):

/etc/mkinitcpio.conf の MODULES に amdgpu を追加すると、XF86Audio のボリュームまわりが認識されるようになった模様。音はなっていたが、音量を調整するアプリがずっとミュートを示していたが、値の調整ができるようになった。

$ sudo vim /etc/mkinitcpio.conf
MODULES=(amdgpu)
$ sudo mkinitcpio -P
$ sudo reboot

追記(2020-02-03):

たまに USB 接続のキーボードが効かなくなったので、 ThinkPad T495 の TLP のページにある /etc/default/tlp への設定を追記した。

感想

以前と違って、wpa_supplicant と dialog さえインストールしておけば wifi-menu が動く、とはなっていなかったので、無線LANにつながるまで何度もUSB メモリさして mount して arch-chroot /mnt してを繰り返すことになった。

知識と経験はアップデートしなければ役に立たなくなることもある。

2019年ふりかえり

2019-12-31
  • Share on Facebook
  • Tweet
  • Add to Pocket

2019年にやったこと (順番は適当)

2019年感想

いろいろやったけど、2018年までにやった積み上げ(知見)で2019年は過ごしてた気がする。2020年はなにか自分にとって新しいことしないとな、という気持ちになっている。

生活に季節感が少ないので、季節感のあるイベントは県外に出てでも経験したほうがいいな、と思った。外に出ないと。

2020年にやるつもり

  • (2020年はなんかやることが増えそうな予感がしている)
  • テスティングフレームワーク勉強するつもり
  • 引き続き北陸の地域コミュニティに参加していこう

Timeshift を使うときに気をつけたいこと

2019-11-28
  • Share on Facebook
  • Tweet
  • Add to Pocket

バックアップツールとして、Timeshift を使っているのだが、OS をクリーンインストールしてから自動バックアップが取られていないな?と思っていたので、調べて対応した。

原因

まさにこの、Timeshift not making scheduled snapshots #396 にあったコメント のとおりで、systemctl enable cronie していなかったためであった。crontab -l って打ったときに空であるが結果が返ってくるので、定期実行する側も有効になっているものだと思いこんでいた。

cron 実装がインストールされていても有効になっていない場合は起動しない(当たり前)。見事にこのパターンに当てはまっていた。cronie がインストールされていたので、下記コマンドを打ってしばらく待ったところ自動バックアップが起動しはじめた。

$ systemctl enable cronie
$ systemctl start cronie

ちなみに、Arch Linux はデフォルトで cron が入っていない。

参照: https://wiki.archlinux.jp/index.php/Cron

cronie を敢えてインストールした記憶がないけど、入っていたので使った。動いた。よかった。

結論

Timeshift でバックアップの自動実行を動作させたい場合は、cron 実装をsystemctl で有効にしよう。crontab -l が正常終了するからといって、定期実行が動くとは限らない。

富山Ruby会議01でLTをしてきた

2019-11-03
  • Share on Facebook
  • Tweet
  • Add to Pocket

ライトニングトーク

富山 Ruby 会議 01 に参加して、LT してきた。トップバッターだった。

発表については、ありがたくも厳しいフィードバックを直後に複数いただいたので次回の LT に反映するとして、スライドはこちら。

今、試行錯誤しながらやっていることを発表したのだけれども、質問をもらったのでそのときの回答を以下に書いておく。

モブプロ、時間かからない?

ゼロからやろうとすると時間がかかるので、重めの調査が絡むやつは先に調査だけは先やっておくようにしている。※こちらも探り探り

全員が調査しはじめて黙っちゃって手が動かなくなったり、要件に絡む部分ではっきりした正解をもってる人がいない場合は結論でなくて先に進めなくなったりするから、調査もしくは下ごしらえの PR くらいは出してもらうようにし、そこから皆で問題に立ち向かうようにしている。

レビューたまりがちにならない?

マージ時に要求する Approve の数が多いこともあってちょっと溜まりがちになることもある。今、モブプロをやっている時間にレビュー時間を設けてその場でレビュー & マージしていこうか、というのを試そうとしているところ。

起こっているプロジェクト運営に関する問題は、スプリントごとになんかしらの施策を打っては試し打っては試しやっている最中のため、うまくいくかどうかはわからないが今絶賛試行中。

感想

地元富山の参加者が多く、また、北陸、中部、その他いろんな地域からの発表者、参加者がいて、内容も硬軟あわせたたのしい地域 Ruby 会議だった。

発表・LT にもツールとして Ruby を使う話がいくつかあり、私も Ruby 使ってみたいと思ったときに同じようにツールから入ったのを思い出した。地域限定せず、Ruby が使えるお仕事が増えるといいな。

Kanazawa.rb meetup #86 に参加した

2019-10-19
  • Share on Facebook
  • Tweet
  • Add to Pocket

毎月第 3 土曜に開催されている Kanazawa.rb の meetup である、kanazawa.rb meetup #86 に参加してきた。

今回はもくもく会だったので、最初にやることを宣言して作業を開始し、運営のブレストや LT やった後、今日やったことを発表する流れになっている。今回は、それプラス、近々開催されるイベントの紹介時間があった。

今回やったこと

『Vue.js 入門』 を買ったので、今回はその本を読んでいた。5.2 スロット から、10.2 コンポーネントの実装 まで読むことができた。 このあたりのライブラリは React.js から入った私からすると、Vue.js には若干の音楽性の違いが感じられて馴染めない感じなのだが、そうも言ってられないのでもう少しじっくりやってみようか…というところ。Vue.js についてはもう一冊本を買っているので、そちらも読んでから考えよう。

イベントの紹介コーナーでは、本社で開催される Agile Japan 2019 サテライト 福井 - 幸福度ナンバーワンのアジャイル の紹介と、富山Ruby会議01 の紹介をした。

前者は弊社が絡んでいることもあり、紹介しておいた。読み上げたくらいだけど。 富山 Ruby 会議の方は、前回スライド男優として紹介したこともあり、LT もやることになっているところから、流れで併せて簡単に紹介させてもらった。

感想

懇親会まで参加したが、この感じ、Kanazawa.rb であるって感じの懇親会だった。また来月懇親しましょうemoji-exclamation

富山 Ruby 会議には Kanazawa.rb のメンバーも講演・LT したり参加したりしているので、「次は富山 Ruby 会議で会いましょう」、と言って解散した。