HP Spectre x360 Ubuntu20.04設定メモ
使用PC
インストール
再度インストールしたときに見たもの
参考にしているところ
clamscan アンチウイルスソフトウェアインストール
vimuimもいれとく
Caps_Lock -> Ctrlにした
% cat ~/.xmodmap
remove lock = Caps_Lock
keycode 66 = Control_L
keycode 100 = Hiragana
keycode 102 = Zenkaku_Hankaku
keycode 101 = Super_L
keycode 97 = underscore backslash underscore backslash
keycode 49 = Escape
add control = Control_L
電源オン時と、サスペンド復帰時には、キーボードの接続が一旦切れるせいで、このキーマップはもとに戻る。
対策としては、電源オン、サスペンド復帰時のフックを使用して、xmodmap
を実行する
zsh設定
インストール
$ apt-get install zsh
# 初回起動だとwizardが走る。おすすめ設定を使って、.zshrcを作成
$ zsh
ほか、こちらの設定を確認
補完機能
内蔵スピーカーのみ音が出ない
最終的にこれでなんとかなった
$ sudo hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIR 0x01
nid = 0x1, verb = 0x717, param = 0x1
value = 0x0
$ sudo hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x01
nid = 0x1, verb = 0x716, param = 0x1
value = 0x0
$ sudo hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x01
nid = 0x1, verb = 0x715, param = 0x1
value = 0x0
$ sudo hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x00
nid = 0x1, verb = 0x715, param = 0x0
value = 0x0
sudo hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIR 0x01; sudo hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x01; sudo hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x01; sudo hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x00
使っているのは、sof-audio-pci
% lspci -v | grep audio -A5
0000:00:1f.3 Multimedia audio controller: Intel Corporation Device a0c8 (rev 20)
Subsystem: Hewlett-Packard Company Device 8811
Flags: bus master, fast devsel, latency 32, IRQ 196
Memory at 603f290000 (64-bit, non-prefetchable) [size=16K]
Memory at 603f000000 (64-bit, non-prefetchable) [size=1M]
Capabilities: <access denied>
Kernel driver in use: sof-audio-pci
Kernel modules: snd_hda_intel, snd_sof_pci
0000:00:1f.4 SMBus: Intel Corporation Device a0a3 (rev 20)
Subsystem: Hewlett-Packard Company Device 8811
Flags: medium devsel, IRQ 16
こちらの記事を読んでいたら、無効にしたほうが良さそう
サウンドカードが認識されているか
**** ハードウェアデバイス PLAYBACK のリスト ****
カード 0: sofhdadsp [sof-hda-dsp], デバイス 0: HDA Analog (*) []
サブデバイス: 1/1
サブデバイス #0: subdevice #0
カード 0: sofhdadsp [sof-hda-dsp], デバイス 1: HDA Digital (*) []
サブデバイス: 1/1
サブデバイス #0: subdevice #0
カード 0: sofhdadsp [sof-hda-dsp], デバイス 3: HDMI1 (*) []
サブデバイス: 0/1
サブデバイス #0: subdevice #0
カード 0: sofhdadsp [sof-hda-dsp], デバイス 4: HDMI2 (*) []
サブデバイス: 1/1
サブデバイス #0: subdevice #0
カード 0: sofhdadsp [sof-hda-dsp], デバイス 5: HDMI3 (*) []
サブデバイス: 1/1
サブデバイス #0: subdevice #0
% sudo update-grub
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Linux イメージを見つけました: /boot/vmlinuz-5.8.0-45-generic
Found initrd image: /boot/initrd.img-5.8.0-45-generic
Linux イメージを見つけました: /boot/vmlinuz-5.8.0-43-generic
Found initrd image: /boot/initrd.img-5.8.0-43-generic
Adding boot menu entry for UEFI Firmware Settings
完了
必要なソフトウェアのインストール
Chrome
JetBrains
Docker
DockerをUbuntuにインストール
一般ユーザで動かす
(一度、システムをシャットダウンしてからログインし直さないと反映されなかった)
vim、nkf、jqインストール
sudo apt-get install jq nkf vim
zoom
discord
vscode
pip
sudo apt install python3-pip
キーボードのfunctionキーを無効
BIOSから設定
Terminal
guakeにしてみた
F12だとChromeの開発者ツールを出すのは邪魔だったので、F10にしてみる
Git
GitHub CLI
インストール後は
gh auth login
ssh接続で接続する設定をする際に、ついでにssh鍵を作る設定をしておくと、
自動的にssh鍵が作られてgithubの方にも設定がされる
ちょっとした設定
スクリーンショットの撮り方
PrtSc – 画面全体のスクリーンショットを "Pictures"ディレクトリに保存します。
Shift + PrtSc – 特定の地域のスクリーンショットを画像に保存します。
Alt + PrtSc – 現在のウィンドウのスクリーンショットを画像に保存する.
Ctrl + PrtSc – 画面全体のスクリーンショットをクリップボードにコピーします。
Shift + Ctrl + PrtSc – 特定の地域のスクリーンショットをクリップボードにコピーします。
Ctrl + Alt + PrtSc – 現在のウィンドウのスクリーンショットをクリップボードにコピーします。
Ubuntuは、キーボードやオーディオデバイスなどは、サスペンド後の復帰で接続し直すようになるから、keymapや音声設定がなくなってしまう
キーボード、内蔵スピーカーが出ない問題
スピーカーが出ないのは既知の問題。
このコマンドを、他のAudioデバイスをつなげてない状態で実施すれば音が鳴るようになるが、それが電源を入れたりサスペンドから復帰した時に毎回必要となる。
キーボードはキーマッピングを色々変えたくてxmodmapを使用しているが、
こちらも電源入れるたびorサスペンドから復帰するたびに起こるので、毎回 xmodmap ~/.Xmodmap
を使用する必要がある。
電源を入れるたびに、起動したいスクリプトを実行
/etc/rc.local
に設定することで起動時に実行したいスクリプトの指定が可能
(sudoが必要だから、1ユーザーのために配置するようなものじゃない気がするが、そこは置いておく)
/etc/rc.local
#!/bin/bash
sleep 30
# キーコンフィグ
xmodmap /home/jun/.Xmodmap
# オーディオ用の設定
sudo hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIR 0x01
sudo hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x01
sudo hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x01
sudo hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x00
exit 0
起動直後だとキーボードなどのデバイスがすぐに接続されたと認識しないので、sleep 30
で待つようにしている。
(このUbuntuのキーボードなどデバイスはすべて外部から接続? する特性でサスペンドするたびにxmodmapの設定が飛ぶらしい)
サスペンドからの復帰のたびに、起動したいスクリプトを実行
サスペンドから復帰するたびに実行するのは、 /lib/systemd/system-sleep/
の配下にスクリプトを配置すればよい
/lib/systemd/system-sleep/
#!/bin/bash
USERN=xxxx
SCRIPT=/home/xxx/Settings/key_map
if [ "$2" != "suspend" ] ; then exit 0 ; fi
if [ "$1" = "post" ] ; then
DISPLAY=:0
export DISPLAY
sleep 10
su $USERN -c "$SCRIPT"
fi
/home/xxx/Settings/key_map
#!/bin/bash
xmodmap /home/jun/.Xmodmap
~/.Xmodmap
remove lock = Caps_Lock
keycode 66 = Control_L
keycode 100 = Hiragana
keycode 102 = Zenkaku_Hankaku
keycode 101 =
keycode 97 = underscore backslash underscore backslash
add control = Control_L
標準だとバックスラッシュだったので、アンダースコアにした(Shift使えばバックスラッシュになる)
dotnet インストール
この通りにやって実施。
% dotnet --version
5.0.201
インストール後、Riderを立ち上げ直したら動いた
Macのspotlihtみたいなやつ(もっと高機能っぽい)を入れる
manのインストール
番外
マウスコンピュータのDAIVでインストールしたときに、
Initramfs unpacking failed: Decoding failed
と出て、先に進まなかった。
どうやらNVIDA GeForceが搭載されているからだった模様
dotfiles用意した