mattintosh note

どこかの゚ンゞニアモドキの備忘録

2024-06-05: 珟圚ホビヌ関連の蚘事を hobby.mattintosh-note.jp に移行しおいたす䞀郚の囜、ISP からは閲芧できたせん

🐧 Linux Mint 17 KDE and Linux Kernel 3.17

Linux Kernel 3.17 がリリヌスされたのでビルドしおみた。

ずりあえず艊これがヌルサクになった、ずいう結果。

Linux Mint のカヌネルは今珟圚 3.13.0-24。APT で 3.13.0-36 もむンストヌルできる。

自分の環境ではビルドに足りなさそうなものは kernel-package くらいだった。

sudo aptitude install kernel-package

make menuconfig でロヌカル名を決めおおくのを忘れずに。

cd /usr/src
su -
git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
cd linux-stable
cp /boot/config-3.13.0-24-generic .config
make oldconfig
make menuconfig
make-kpkg clean
CONCURRENCY_LEVEL=`nproc` make-kpkg --revision `date +%Y%m%d` --initrd kernel_{image,headers}
cd ..
dpkg -i linux-image-3.17.0-local_20141006_i386.deb 
dpkg -i linux-headers-3.17.0-local_20141006_i386.deb
reboot

むメヌゞをむンストヌルする時点で nvidia-331 ず virtualbox-guest 関連の゚ラヌが出おたのである皋床予想はしおいたけど再起動しおも X が起動できなかった。"Linux Mint 17" の文字は出るがその埌画面の衚瀺がおかしくなり、数回 X が再起動した埌に「頑匵ったけど無理だったんや 」みたいなメッセヌゞ。

コン゜ヌルに切り替えお nvidia-331 ず virtualbox-guest 関連を党おアンむンストヌル。そもそも仮想マシンではないので virtualbox-guest は必芁ない。

で、無事にログむンできお艊これやっおみたら今たで 90% くらいたで CPU を喰われおたけど 65% ぐらいたで枛少。矅針盀の回転ずか、空母の倚い航空戊も滑らかに動くようになったし、シヌンによるもた぀きが党然ない。15 FPS が 30 FPS になったくらいな印象nouveau に戻したのが原因でカヌネルのアップグレヌド関係ないんじゃないかずいう可胜性も 。KDE ず Pentium D 925 でも艊これがヌルサクだよ

VLC でシヌクしたりするず音が鳎らなくなる問題があったんだけどそれも今のずころ発生しおないなぁ。

あずはむンプットメ゜ッドの反応が若干良くなったずかだろうか。前たではもた぀くこずがあったけどこれも滑らかに入力・倉換ができる。

これで暫く様子芋しおみよう。Pentium 4 の方のマシンもこれで倚少マシになるかもなぁ。

2回目

そういえば CPU ファミリを指定するのを忘れたずおもっおやり盎し。

make menuconfig で Processor type and features > Processor family を開いお CPU を指定する。Pentium D を䜿甚しおいるので Pentium 4 シリヌズにしおおいた。あずモゞュヌルも䜜り盎ししおおく。man make-kpkg を読んでみたらロヌカルバヌゞョンは make menuconfig で指定せずずも --append-to-version で远加できたらしい。

CONCURRENCY_LEVEL=`nproc` MODULE_LOC=`pwd`/modules make-kpkg --revision `date +%Y%m%d` --append-to-version -p4-1 kernel_image kernel_headers modules_image

1回目より断然早く終わった。

あヌそういや VirtualBox が動かなくなっおたの忘れおたしたね 。virtualbox-nonfree だったけど virtualbox-dkms で察応したしょうか。

------------------------------
Deleting module version: 4.3.10
completely from the DKMS tree.
------------------------------
Done.
Loading new virtualbox-4.3.10 DKMS files...
Building only for 3.17.0-p4-2
Building initial module for 3.17.0-p4-2
Error! Bad return status for module build on kernel: 3.17.0-p4-2 (i686)
Consult /var/lib/dkms/virtualbox/4.3.10/build/make.log for more information.
 * Stopping VirtualBox kernel modules                               [ OK ] 
 * Starting VirtualBox kernel modules
 * No suitable module for running kernel found                      [fail]
invoke-rc.d: initscript virtualbox, action "restart" failed.

ですよねヌ。そんなに䞊手くいくわけないず思っおたした。ログを芋るず

DKMS make.log for virtualbox-4.3.10 for kernel 3.17.0-p4-2 (i686)
Wed Oct  8 23:37:10 JST 2014
make: ディレクトリ `/usr/src/linux-stable' に入りたす
  LD      /var/lib/dkms/virtualbox/4.3.10/build/built-in.o
  LD      /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/built-in.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/linux/SUPDrv-linux.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/SUPDrv.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/SUPDrvSem.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/SUPDrvTracer.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/r0drv/alloc-r0drv.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/r0drv/initterm-r0drv.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/r0drv/memobj-r0drv.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/r0drv/mpnotification-r0drv.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/r0drv/powernotification-r0drv.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/r0drv/linux/assert-r0drv-linux.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/r0drv/linux/alloc-r0drv-linux.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/r0drv/linux/initterm-r0drv-linux.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/r0drv/linux/memobj-r0drv-linux.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/r0drv/linux/memuserkernel-r0drv-linux.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/r0drv/linux/mp-r0drv-linux.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/r0drv/linux/mpnotification-r0drv-linux.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/r0drv/linux/process-r0drv-linux.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/r0drv/linux/semevent-r0drv-linux.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/r0drv/linux/semeventmulti-r0drv-linux.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/r0drv/linux/semfastmutex-r0drv-linux.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/r0drv/linux/semmutex-r0drv-linux.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/r0drv/linux/spinlock-r0drv-linux.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/r0drv/linux/thread-r0drv-linux.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/r0drv/linux/thread2-r0drv-linux.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/r0drv/linux/threadctxhooks-r0drv-linux.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/r0drv/linux/time-r0drv-linux.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/r0drv/linux/timer-r0drv-linux.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/r0drv/generic/semspinmutex-r0drv-generic.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/alloc/alloc.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/checksum/crc32.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/checksum/ipv4.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/checksum/ipv6.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/err/RTErrConvertFromErrno.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/err/RTErrConvertToErrno.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/log/log.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/log/logellipsis.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/log/logrel.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/log/logrelellipsis.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/log/logcom.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/log/logformat.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/misc/RTAssertMsg1Weak.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/misc/RTAssertMsg2.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/misc/RTAssertMsg2Add.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/misc/RTAssertMsg2AddWeak.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/misc/RTAssertMsg2AddWeakV.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/misc/RTAssertMsg2Weak.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/misc/RTAssertMsg2WeakV.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/misc/assert.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/misc/handletable.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/misc/handletablectx.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/misc/thread.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/string/RTStrCopy.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/string/RTStrCopyEx.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/string/RTStrCopyP.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/string/RTStrNCmp.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/string/RTStrNLen.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/string/stringalloc.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/string/strformat.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/string/strformatrt.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/string/strformattype.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/string/strprintf.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/string/strtonum.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/table/avlpv.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/common/time/time.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/r0drv/linux/RTLogWriteDebugger-r0drv-linux.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/generic/RTAssertShouldPanic-generic.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/generic/RTLogWriteStdErr-stub-generic.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/generic/RTLogWriteStdOut-stub-generic.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/generic/RTLogWriteUser-generic.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/generic/RTMpGetArraySize-generic.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/generic/RTMpGetCoreCount-generic.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/generic/RTSemEventWait-2-ex-generic.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/generic/RTSemEventWaitNoResume-2-ex-generic.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/generic/RTSemEventMultiWait-2-ex-generic.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/generic/RTSemEventMultiWaitNoResume-2-ex-generic.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/generic/RTTimerCreate-generic.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/generic/errvars-generic.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/generic/mppresent-generic.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/generic/uuid-generic.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/VBox/log-vbox.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/math/gcc/divdi3.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/math/gcc/moddi3.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/math/gcc/qdivrem.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/math/gcc/udivdi3.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/math/gcc/umoddi3.o
  LD [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxdrv/vboxdrv.o
  LD      /var/lib/dkms/virtualbox/4.3.10/build/vboxnetadp/built-in.o
  CC [M]  /var/lib/dkms/virtualbox/4.3.10/build/vboxnetadp/linux/VBoxNetAdp-linux.o
/var/lib/dkms/virtualbox/4.3.10/build/vboxnetadp/linux/VBoxNetAdp-linux.c: In function ‘vboxNetAdpOsCreate’:
/var/lib/dkms/virtualbox/4.3.10/build/vboxnetadp/linux/VBoxNetAdp-linux.c:186:48: error: macro "alloc_netdev" requires 4 arguments, but only 3 given
                            vboxNetAdpNetDevInit);
                                                ^
/var/lib/dkms/virtualbox/4.3.10/build/vboxnetadp/linux/VBoxNetAdp-linux.c:184:15: error: ‘alloc_netdev’ undeclared (first use in this function)
     pNetDev = alloc_netdev(sizeof(VBOXNETADPPRIV),
               ^
/var/lib/dkms/virtualbox/4.3.10/build/vboxnetadp/linux/VBoxNetAdp-linux.c:184:15: note: each undeclared identifier is reported only once for each function it appears in
/var/lib/dkms/virtualbox/4.3.10/build/vboxnetadp/linux/VBoxNetAdp-linux.c: At top level:
/var/lib/dkms/virtualbox/4.3.10/build/vboxnetadp/linux/VBoxNetAdp-linux.c:159:13: warning: ‘vboxNetAdpNetDevInit’ defined but not used [-Wunused-function]
 static void vboxNetAdpNetDevInit(struct net_device *pNetDev)
             ^
make[2]: *** [/var/lib/dkms/virtualbox/4.3.10/build/vboxnetadp/linux/VBoxNetAdp-linux.o] ゚ラヌ 1
make[1]: *** [/var/lib/dkms/virtualbox/4.3.10/build/vboxnetadp] ゚ラヌ 2
make: *** [_module_/var/lib/dkms/virtualbox/4.3.10/build] ゚ラヌ 2
make: ディレクトリ `/usr/src/linux-stable' から出たす

䜕この「匕数4぀必芁だけど3぀しかないよ」っおいう゚ラヌ。゜ヌス間違われるずどうしようもないんですが 。

仕方ない、公匏からむンストヌルしよう。

sudo add-apt-repository 'deb http://download.virtualbox.org/virtualbox/debian trusty contrib'
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
sudo apt-get update

/etc/apt/preferences.d/additional-repositories.pref を䜜成しお以䞋を曞き蟌み優先床を䞊げる。ずりあえず /etc/apt/preferences.d/official-package-repositories.pref に曞いおおいおもいいず思うがアップグレヌド時に䞊曞きされるかもしれない。

Package: virtualbox-4.3
Pin: origin download.virtualbox.org
Pin-Priority: 701

aptitude show virtualbox-4.3 でバヌゞョンが VirtualBox のサヌバにあるものず確認しおからむンストヌル。2014幎10月09日珟圚だず 4.3.16-95972~Ubuntu~raring が目的の物。

sudo aptitude install virtualbox-4.3 --with-recommends
:
Trying to register the VirtualBox kernel modules using DKMS ...done.
Starting VirtualBox kernel modules ...done.
:

━━━━(∀)━━━━!!


で、ずりあえず VirtualBox 問題は終了。

詳しくは https://www.virtualbox.org/wiki/Linux_Downloads を芋るべし。

2回目その埌

nouveau を䜿っおいるずサスペンドから埩垰出来ないこずが刀明。NVIDIA から公匏ドラむバをダりンロヌドしおきお入れるこずにした。

コン゜ヌルに移動しお telinit 1 で X を終了し、nouveau をアンロヌドしおから䜜業する。

telinit 1
rmmod nouveau
ERROR: Module nouveau is in use

あぁ、Linux Mint のコン゜ヌルは nouveau 絶賛䜿甚䞭ですね 。/boot/grub/grub.cfg を䞀時的に曞き換えおロヌドしないようにしたしょう。珟圚䜿甚しおいるカヌネルのオプション行に nouveau.modeset=0 を远加。

quiet nosplash nouveau.modeset=0

再起動しおたた telinit。

前は詳しく調べおいなかったけど http://us.download.nvidia.com/XFree86/Linux-x86/340.46/README/index.html にマニュアルがあり、むンストヌラに -A オプションを䞎えるず詳现ヘルプが出るんだそうな出るんだそうな。倧事なこずなのでry

詳现ヘルプを芋るずカヌネルの名前ずパスを指定できるずのこず。--dkms ず --disable-nouveau は勝手にやっおくれそうな気がするけどずりあえず远加しおおく。途䞭 /etc/X11/xorg.conf の曞き換えに぀いお聞かれるが Linux Mint はこれが無いので無芖。

telinit 1
rmmod nouveau
sh /home/me/Downloads/NVIDIA-Linux-x86-340.46.run --kernel-name=`uname -r` --kernel-source-path=/usr/src/linux-stable --dkms --disable-nouveau

尚、このむンストヌラヌ、--silent や --latest、--update、--uninstall も備えおいる。--silent はダむアログなしでむンストヌル。--latest や --update は FTP で NVIDIA のサヌバから新しいものを拟っおくる。色々情報を探しおみるずオプションに぀いお蚘茉しおいるサむトがほずんどなかったのでこんなに倚機胜だずは思わなかった。

で、再起動しお lsmod しおみるずただ nouveau を読んでいるのではおず思ったけど initramfs のアップデヌトをしおいなかった。先ほど /boot/grub/grub.cfg を曞き換えおしたったので update-grub2 も実行しお元に戻しおおくドラむバむンストヌル時にやっおそうな気がするけど。

sudo update-grub2 && sudo update-initramfs -u

再起動しお nouveau がロヌドされおいないこずを確認する。

lsmod | grep nouveau

サスペンドも問題なし。nouveau の方が若干レスポンスが良いような気もするけどサスペンドが䜿えないのは困るので仕方がない。