V-antena and Tanimoto's page

谷本の備忘録・雑記帳・work

>

月: 2021年4月

MONTHLY ARCHIVE

ubuntu20.04にバージョンアップした後、いろいろ問題が発生したがそのうちの一つにタイトルにある様なエラーがboot中のメッセージに現れた。 これに対してネットの情報を頼って対処していたところ本メッセージがでなくなったので記録として残しておく。 ただし、どれが効果があったのか特定できていないかもしれない。

トラブルの内容

boot中に
initramfs unpacking failed: Decoding failed
のメッセージが出る。 実害は不明

関係がある可能性のある環境要因

  • ubuntu 18.04 からubuntu 20.04にバージョンアップ
  • Geforce 1060搭載
  • kernelは5.6に更新済み

効果があったかもしれない対処

sudo /etc/initramfs-tools/initramfs.conf
 COMPRESS=lz4  を COMPRESS=gzip  に変更
sudo update-initramfs -u
sudo reboot
grep 10de /lib/udev/rules.d/*
  これで出力されるところの、 ATTR{power/control}=“auto” の部分を ATTR{power/control}=“on” に変更し,
sudo update-initramfs -u
sudo reboot

両方おこなってから、rebootしたのでどちらが正解か不明

Ubuntuをバージョンアップした際に音声トラブルがあり(まだ残っている)、kernelのバージョンアップも試してみた。せっかくなので、kernelのバージョンアップの方法について記録として残しておく。

方法1

コンパイル済みのdebファイルをダウンロードしてインストールする。
https://kernel.ubuntu.com/~kernel-ppa/mainline/ からインストールしたいkernel版数を選び必要なdebファイルをダウンロードしインストールする。

例: version 5.6選択の場合

mkdir kernel5.6
cd kernel5.6
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.6/linux-headers-5.6.0-050600_5.6.0-050600.202003292333_all.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.6/linux-headers-5.6.0-050600-generic_5.6.0-050600.202003292333_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.6/linux-image-unsigned-5.6.0-050600-generic_5.6.0-050600.202003292333_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.6/linux-modules-5.6.0-050600-generic_5.6.0-050600.202003292333_amd64.deb
sudo dpkg -i *.deb

sudo reboot

方法2

uktoolsを使う方法。 版数の指定はできないので要注意。

git clone https://github.com/usbkey9/uktools
cd uktools
make

その後
sudo uktools-upgrade

状態やコマンド、ログを調べるのにコマンドを使うが、しばらく使っていないとすぐに細かなところをわすれてしまう。 そこで、bashのfunction機能を使って自分用のコマンドを用意した。

用意したコマンド

  • status xxx
    xxxに関する状態等を表示  例: status cpu
  • conf xxx
    xxxのためのconfファイルの一覧を表示する
  • url xxx
    xxxを説明しているwebページのurlを表示
  • log xxx
    xxxに関するlog内容(のtail部分)を表示
  • manual xxx
    xxxコマンドに関する自作の簡易マニュアルを表示
  • mycommand
    この内容相当を表示

簡易コマンド定義

.bashrcに下記内容を追記する

alias mycommand='cat ~/mycmd/command'
function status() {  bash ~/mycmd/mystatus/$1 }
function conf() {  cat ~/mycmd/myconf/$1 }
function url() {  cat ~/mycmd/myurl/$1  }
function log() {  bash ~/mycmd/mylog/$1 }
function manual() {  cat ~/mycmd/mymanual/$1 }

directory作成

mkdir -p mycmd/mystatus
mkdir mycmd/myconf
mkdir mycmd/myurl
mkdir mycmd/mylog
mkdir mycmd/mymanual

各コマンド実行用ファイル作成例

mycmd/mystatus/cpu

vcgencmd measure_temp
mycmd/mymanual/systemctl
 
失敗したサービス表示   systemctl --failed
サービスの状態表示     systemctl status xxxx.service
全てのサービス状態     systemctl status
サービス実行           sudo systemctl start xxx.service
サービス再実行         sudo systemctl restart xxx.service
サービス停止           sudo systemctl stop  xxx.service
起動時自動有効化       sudo systemctl enable xxx.service
自動起動無効化         sudo systemctl disable xxx.service
設定再読み込み         sudo systemctl daemon-reload xxx.service

ubuntu20.04に更新したところ音声が出なくなった。 いろいろ試した後、vlc media playerからだけは音声を出すことができたの記録する。

試したのはいくつもあるが、いろいろ載っているのは下記サイト
https://askubuntu.com/questions/1231602/no-sound-ubuntu-20-04-lts

トラブル内容

ubuntuを18.04LTSから20.04LTSへ更新後、vlc media playerからビデオの画像は表示されるが音声が出ない。 いろいろtryしたので下記だけでよいのかどうかは不明だが、ともかく最後に下記を行ったところ音声が聞こえる様になった。

最終的に行った対応

vlc media playerの画面から、「オーディオ(A)」-> 「オーディオデバイス(D)」を開き、(HDMI2)を選択しなおす。

まだ、音声で問題が残っているが、レンタルビデオが見れる様になったのでしばらくこのままで放置することにする。

なぜかpolkit segfaultが起こりだしたので、バージョンアップしてみる事にした。

手順

sudo apt update
sudo apt upgrade
sudo do-release-upgrade -d

リモートデスクトップがなぜか一瞬で切断されるのでインストールしなおしてみた。動いた。

sudo apt purge xrdp
sudo apt install xrdp 

nvidia-smiコマンドがエラーとなった。 driverを更新しないといけないとのことだったので、更新。nvidia-smiコマンドは動いた。

sudo apt install nvidia-driver-460

新たな問題発生

ubuntu 20.04に更新したところ、音声が出なくなった。

いろいろ試しているがまだダメ。 なお、vlc media playerに関しては声がでる様になった。

実際の理由は不明もルータを変更したところ、ポートフォワーディングを設定してもIPSEC/L2TPでのVPN接続ができなかった。 そこでwireguardを使ってのvpnを設定しなおした。 

参考としたサイト

'https://chirashi.twittospia.com/技術/windowsでwireguardを設定する方法/2021-02-26/
'https://qiita.com/naomori/items/1ee1a314cbdd3010f3ee
'https://asiavp.net/guide/windows/wireguard/

環境

サーバー: raspberry pi (buster)
外部端末: タブレットPC(windows10)
ルータ使用: NAT転送(ポートフォワーディング)使用

なお、下記手順中のxxxxxxx,yyyyy,zzzzz,vvvvv, aaaaa, mydomain, 192.168.123.200, 192.168.123.100は自分の環境や設定したい値に合わせること。

サーバー側設定

sudo apt update
sudo apt upgrade
sudo apt install wireguard
mkdir wgkeys
cd wgkeys
umask 077
wg genkey > server_private.key
wg pubkey > server_public.key < server_private.key
wg genkey > client_private.key
wg pubkey > client_public.key < client_private.key
cd
sudo nano /etc/wireguard/wg0.conf
sudo wg-quick up wg0
sudo wg-quick down wg0
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
sudo ufw allow aaaaa/udp

wg0.confの内容は

[Interface]
# virtual IP address for server
Address = 192.168.123.200/24

# port for wireguard .  any number available
ListenPort = aaaaa

# server_private.key
PrivateKey = xxxxxxxxxxxxxxxxxxxxxxx

# nat mantra
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
# client_public.key
PublicKey = yyyyyyyyyyyyyyyyyyyyyyyyyyy

# virtual IP address in VPN for client 
# allowed virtual IP
AllowedIPs = 192.168.123.100/32

タブレット側設定

windows用wireguardソフトをwireguardサイトからダウンロード

次にwindows上でnotepadか何かを使ってconfファイルを作成する。ここではwg1.confとする。

[Interface]
# client_private.key
PrivateKey = zzzzzzzzzzzzzzzzzzzzzzzzzzz

# virtual IP for client
Address = 192.168.123.100/24

[Peer]
# server_public.key
PublicKey = vvvvvvvvvvvvvvvvvvvvvvvvv

# set virtual IP address for VPN server as allowed IPs
AllowedIPs = 192.168.123.200/32,192.168.123.0/24

# set url and port
Endpoint = mydomain:aaaaa

windows用wireguardソフトをインストール&起動し、上記confファイルを読ませる。

その後は、有効化や無効化で制御可能

その他

ルータでポートaaaaa/udpをポート転送できる様にする。

V-antena and Tanimoto's page

あなたはIPv4でアクセスしています