#topicpath

** DN2820FYKH に Debian をインストールする [#k9c9b07c]
*** 背景 [#q05022b3]
- [[NUC>http://ja.wikipedia.org/wiki/NUC]]~
Next Unit of Computing。発想としては、 [[IoT>http://ja.wikipedia.org/wiki/%E3%83%A2%E3%83%8E%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88]] (Internet of Things)に近い。~
Intel のことだから、x86 の CPU を使ってほしいし、これまでの遺産が受け継がれますよ、ということ。~
その割には Debian GNU/Linux がすんなり入らない。~
~
*** ハードウエア [#x44f4c5a]
- NUC DN2820FYKH について
-- [[Intel のページ>http://www.intel.co.jp/content/www/jp/ja/nuc/nuc-board-dn2820fykh.html?wapkw=dn2820fykh]]
-- [[Intel のページ(ブリーフ)>http://www.intel.co.jp/content/www/jp/ja/nuc/nuc-kit-dn2820fykh-brief.html]]
- マシンの構成
#style(class=table_left){{
| |型番|購入価格|h
| 本体 |NUC DN2820FYKH (celeron N2820 DDR3 ベアボーン)|RIGHT: 17980 |
| SSD |ADT ASP600S3-128GM-C 7mm(2.5" SATAIII 128GB) |RIGHT: 7580 |
|メモリ|ADT ADDS1600W4G11-R(SODIMM DDR3L-1600 4GB)|RIGHT: 4630 |
|合計| |RIGHT: 30190 |
}}
*** Debian (wheezy) の導入 [#y6b3bad1]
- BIOS
++ NUC DN2820FYKH の BIOS のアップグレード~
--- ダウンロード~
[[ダウンロードページ>https://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=23606&ProdId=3782&lang=jpn&OSVersion=%0A%09%09%09%09%09%09%09%09%0A%09%09%09%09%09%09%09&DownloadType=]]~
ダウンロードページから FY0025.BIO (2014-03-16 (日) 13:13:50で最新)を選んで USBメモリに入れる。
--- 更新~
上記 USB メモリを挿して起動する。F7 を押してアップグレードできる。~
これまで BIOS のバージョンは 0015 だった。これで 0025 になった。~
++ BIOS の設定~
※ このマシンは BIOS の設定が結構重要なようだ。
--- [[Intel の説明>http://downloadmirror.intel.com/23573/eng/DN2820FYK_OS_install_v01.pdf]]~
 1. USB3.0(XHCI mode)をEnable に。(しかし、残念ながら、USB menu に USB3.0 (XHCI mode) support の項目はない!)~
 2. SATA を AHCI に(最初からなっている。)~
 3. Legacy Boot に。UEFI Boot のチェックを外す。~
 4. Boot Configuration を Windows 8 に。(最初からなっている。)~
--- ネットワークカード~
BIOS を調べると Advanced > On Board Peripheral > LAN のチェックを入れる。~
(ネットワークカードが Debian Live CD では認識できなかったことで発覚。)~
- Debian Live CD~
Live CD を用いてインストールした。ところが、起動が不安定であった。Live CD からも、インストールしたシステムからも。(後述)
-- ダウンロード~
別のマシンで[[Debian のサイト>http://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/]] から debian-live-7.4-amd64-standard.iso を選んでダウンロード。
-- 作成~
そのマシンで焼いて作成。
- インストール~
-- Live CD から指示にしたがってインストール。
-- 追加で入れたパッケージ
--- 目的に応じて入れたパッケージ~
 apache2 ffmpeg mplayer mencoder pppoe ssh sshfs lshw
*** 起動しない問題と解決 [#udbf2671]
-- 問題点~
Live CD も、SSD にインストールしたシステムも、起動が極めて不安定である。時々、うまくいくようで、~
時々うまくいかない。うまくいかないときには、次のような症状が出る。~
いつものように、こういうことが起こると、とても嫌な感じになる。Google 先生がすぐ教えてくれるならいいけど。~
--- 例1
 SQUASHFS error: squashfs_read_data failed to read block
完全にハングアップする。
--- 例2
 [    0.840672] xhci_hcd 0000:00:14.0: can't find IRQ for PCI INT A; probably buggy MP table
 ...
 [    6.521303] xhci_hcd 0000:00:14.0: Timeout while waiting for address device command
 [    6.725268] xhci_hcd 0000:00:14.0: ERROR no room on ep ring
 [    6.725330] xhci_hcd 0000:00:14.0: ERR: No room for command on command ring
 [    6.929292] usb 1-4: device not accepting address 4, error -12
入力ができなくなる。ネットワーク経由で入れる。
--- 例3
 usb 3-1: device not accepting address 2, error -110
 ehci_hcd 0000:00:1d.0: port 1 reset error -110
時間がかかってこんなメッセージが表示される。USB デバイスは使えなくなる。
--- 例4
 fast TSC calibration failed
起動する前にメッセージが出て止まる。
~
-- 考えたこと~
症状に再現性がないのは、モジュールの読み込みのタイミングなどが少しずれたりするからかと思う。~
とくに、ehci(USB 2.0)や xhci(USB 3.0) といった USB デバイスが問題のようである。そこで、~
次のような対策が考えられる。
+++ USB デバイスを外して起動~
そもそもタイミングがずれるのは、とくに光学ディスクのデバイスの認識に時間差があるからかな、~
と想像される。(ほんとかな?)そこで、デバイスを外して起動すれば、再現性が高くなるのではないか。~
  → 関係なさそう。~
~
+++ ehci_hcd を外して起動~
USB 2.0 のドライバである ehci_hcd を読み込ませないようにする。~
/etc/modprobe.d/blacklist.conf を作成し、
 blacklist ehci_hcd
 blacklist pcspkr
とする。ちなみに、pcspkr (PC Speaker, PC のビープ音のためのモジュール)も引っかかったし、不必要~
なので読み込まない。~
  → とりあえず起動するようになった。~
~
+++ カーネルの更新~
Google で検索すると、多くの場合、カーネルのバクであるとされている。Ubuntu 13.10 (2013年10月リリース)は起動するようである。~
そこで、[[このページ>http://www.tecmint.com/kernel-compilation-in-debian-linux/]]を参考にカーネル 3.12 を入れてみる。~
注:~
・CONCURRENCY_LEVEL の後の数字は、CPU のコアの数+1 を設定するようだ。~
・このマシンで、カーネル作成に 1時間40分ぐらいかかった。~
 # cd /usr/src/
 # apt-get install fakeroot kernel-package
 # wget -c https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.12.tar.xz
 # tar -xvJf linux-3.12.tar.xz
 # cd linux-3.12
 # apt-get install libncurses5-dev
 # cp /boot/config-`uname -r` .config
 # make menuconfig
 # make-kpkg clean
 # export CONCURRENCY_LEVEL=3
 # fakeroot make-kpkg --append-to-version "-customkernel" --revision "1" --initrd kernel_image kernel_headers
 # dpkg -i linux-image-3.12.0-customkernel_1_i386.deb linux-headers-3.12.0-customkernel_1_i386.deb
  → 起動が早くなった。~
~
-- とりあえずの結論~
次のようにする。
--- ehci_hcd を読み込まないようにする。
--- カーネルを 3.12 にする。
*** 無線LAN Intel 7260 の認識 [#aeb7596c]
- 問題点~
無線LAN(Wifi)用に Intel 製品 7260BN が内蔵されている。ところが、これが認識されていない。これを認識させる必要がある。~
~
- 解決策
++ ファームウエアの導入~
non-free でパッケージ化されている。ところが、wheezy のパッケージには、7260 用のファームウエアが入っていない。そこで、sid ~
のパッケージを[[ここ>https://packages.debian.org/ja/sid/all/firmware-iwlwifi/download]]からダウンロードする。そして導入。
 # dpkg -i firmware-iwlwifi_0.41_all.deb
++ カーネルモジュール~
これで、
 # modprobe iwlwifi
を行えば認識すると思った。しかし、なぜか、コンパイルした kernel 3.12 で認識しない。調べてみると、カーネルのソースコードには~
iwl-7000.c というファイルがあるのに、コンパイルされていない。make menuconfig でこれをコンパイルするための設定を探したけれど~
見つからない。そこで、諦めて、別途コンパイルすることにする。[[ここ>http://askubuntu.com/questions/322511/no-wireless-with-intel-centrino-advanced-n-7260]]を参考にした。
 # cd /usr/src
 # wget http://www.kernel.org/pub/linux/kernel/projects/backports/stable/v3.11-rc3/backports-3.11-rc3-1.tar.bz2
 # tar xjf backports-3.11-rc3-1.tar.bz2
 # make defconfig-iwlwifi
 # make
 # make instal
 # modprobe -r iwlwifi
 # modprobe iwlwifi
ちょっと気持ち悪いけど、これで認識した。
*** カーネルのメッセージ [#t2a1047f]
https://bugs.freedesktop.org/show_bug.cgi?id=71392
- 問題点~
次のようなメッセージがログに残る。
 WARNING: CPU 0 PID:xxxx at drivers/gpu/drm/i915/intel_display.c:8806
 ...(以下省略)...
ディスプレーは接続していないので、実用上問題なさそうだけど、気になる。
- 解決の鍵~
[[ここ>https://bugs.freedesktop.org/show_bug.cgi?id=71392]]によると、Kernel 3.12 に含まれているバグらしい。


トップ   新規 検索 最終更新   ヘルプ   最終更新のRSS