#topicpath

** DN2820FYKH [#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 がすんなり入らない。~
&color(red){→ 結構な時間をかけて安定的に運用できるようになってきた。今はもう一台買ってもいいと思っている。};~
-- NUC シリーズ
--- DN2820FYK : 前身のモデル。電源ケーブルが付属していなかったらしい。
--- DN2820FYKH(1) : これからリリースされるモデル。CPU が N2830 になる。
--- D54250WYKH : Core i5 を搭載したモデル(amazon: &amazon(B00I7CFHH4);)
--- D34010WYKH : Core i3 を搭載したモデル(amazon: &amazon(B00I8DD8R8);)
- 特徴:小型・軽量・省電力・安価なシステムが構成できる~
-- SSD~
SSD が安くなってきた。しかも、SSDの寿命についてハードウエアの向上もあれば、[[ソフトウエア的な対策>../SSDとLinux]]についての情報も集めやすくなって~
きてる。これらを組み合わせると、エネルギー効率が高くて静かなシステムができるはずである。~
~
-- システム全体の電力~
いくつかのレポートがある。~
--- DN2820FYKH + SSD [[4.6〜11.6W, 38.6dB>http://www.legitreviews.com/intel-nuc-dn2820fykh-bay-trail-system-review_135053/7]]
--- DN2820FYKH + HDD [[5〜8W>http://tec-blog.menue.jp/?p=519]]~
~
- NUC の使われ方~
ある意味、Intel は丸投げしている。利用者の創造性が試されている。その意味で利用方法は [[Raspberry Pi]] とかぶる部分が大きい。~
-- メディアサーバ~
[[OpenELEC>http://sourceforge.jp/projects/sfnet_openelec/]](Open Embedded Linux Entertainment Center)とか、~
[[XBMC>http://xbmc.inpane.com/main/setup/]](Xbox Media Center) とか、インターネット接続したメディアプレーヤーという位置づけで使われることもある。~
-- タイムラプスビデオ(インターバル撮影)~
ちなみに、自分も、[[Raspberry Pi]] とこれをタイムラスプ/インターバル撮影用に使いたい。実家の防犯カメラは早く整備する必要がある。~
~
*** ハードウエア [#x44f4c5a]
- NUC DN2820FYKH について
-- [[Intel のページ>http://www.intel.co.jp/content/www/jp/ja/nuc/nuc-board-dn2820fykh.html?wapkw=dn2820fykh]](Linux 対応と書いてあるが…)
-- [[Intel のページ(ブリーフ)>http://www.intel.co.jp/content/www/jp/ja/nuc/nuc-kit-dn2820fykh-brief.html]]~
※ USBポートは3つある。2つは上下に並んでいる。もう一つは別の側面にあって、SS のマークがある。これが USB 3.0 のポートになる。
#style(class=table_left){{
| CPU |  Celeron® プロセッサー N2820 (Atom の改良版らしい) |
|メモリ| 別売 DDR3L SODIMM x 1 (1.35Vのもの)|
|HDD or SDD | 別売 2.5 インチ HDD または SSD 搭載可能|
|LAN | イーサネット・ポート + 無線LAN |
|その他| ACアダプタつき|
}}

- 組み上げたマシンの構成
#style(class=table_left){{
| |型番| | 購入価格|h
| 本体 |&amazon(B00HVKLSVC,image);|&amazon(B00HVKLSVC);|RIGHT: 17980 |
| SSD |&amazon(B009SX6VLC,image);|&amazon(B009SX6VLC);(2.5" 7mm) |RIGHT: 7580 |
|メモリ|&amazon(B00HY3WTZA,image); |&amazon(B00HY3WTZA);|RIGHT: 4630 |
|合計| | |RIGHT: 30190 |
}}

** Debian (wheezy) の導入 [#r3bae244]
*** BIOS の設定 [#l9765272]
- 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. Legacy Boot に。UEFI Boot のチェックを外す。~
 2. USB3.0(XHCI mode)をEnable に。(しかし、残念ながら、USB menu に USB3.0 (XHCI mode) support の項目はない!)~
 3. SATA を AHCI に(最初からなっている。)~
 4. Boot Configuration を Windows 8 に。(最初からなっている。)~
~
--- 実際に設定した項目~
まず Advanced をクリックしてそこの設定項目を設定する。
 1. Boot / Boot Priority      : UEFI Boot のチェックを外す。~
 2. Boot / Boot Configuration : Windows 8.x を選んで(もUEFIではないので関係ないようにも思うけど)次の項目をチェック。~
   Boot USB Devices First~
   Boot Network Devices Last~
   USB~
   Optical~
   Network~
 3. Boot / Secure Boot : 全てチェックを外す。~
 4. Devices and Peripherals / USB  : USB Legacy にチェックを入れる。~
 5. Devices and Peripherals / SATA : Chipset SATA にチェックを入れ、AHCI モードにする。~
 6. Devices and Peripherals / Onboard Devices : 全てにチェックを入れる。~
    (ネットワークカードが Debian Live CD では認識できなかったことで発覚。)~
~
*** ネットワークインストール [#b507ff5a]
- 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 lm-sensors btrfs-tools smartmontools uvcapture webcam sysfsutils
*** 問題点と解決方法 [#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
起動する前にメッセージが出て止まる。
~
- 解決方法(考えたこと)~
++ USB のカーネルモジュール~
症状に再現性がないのは、モジュールの読み込みのタイミングなどが少しずれたりするからかと思う。~
とくに、ehci(USB 2.0)や xhci(USB 3.0) といった USB デバイスが問題のようである。そこで、~
次のような対策が考えられる。
+++ 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分ぐらいかかった。~
--- USB で ウェブカムを用いる場合には、オプションを選定する。~
  Device Drivers > Multimedia Support > Media USB Adapters > USB Video Class など適宜。
 # 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 にする。~
作ったカーネルを提供しますが、例によって自己責任で。~
・ [[Debian (wheezy) 用 kernel 3.12 image>http://robo.mydns.jp/Lecture/DATA/Linux/linux-image-3.12.0-customkernel_2_amd64.deb]](31MB)~
・ [[Debian (wheezy) 用 kernel 3.12 headers>http://robo.mydns.jp/Lecture/DATA/Linux/linux-headers-3.12.0-customkernel_2_amd64.deb]](8.6MB)~
~
*** 無線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
ちょっと気持ち悪いけど、これで認識した。
*** 無線LANの設定 [#e87effdd]
+ デバイス名~
デバイス名はドライバなどによって異なるので、ath0 などとなることもある。上述のように行うと、wlan0 というデバイス名になる。~
~
+ パッケージ~
一般的に、WPA/WPA2を使うwpasupplicant パッケージを使う。wireless-tools パッケージがあればこれを削除する。~
もし、wireless-tools パッケージがないと使えないようであれば、脆弱な WEP を使っていることなので、注意する。~
~
+ /etc/network/inetrfaces~
DHCP で接続するなら、次のように書き込む。
 allow-hotplug wlan0
 iface wlan0 inet dhcp
 wpa-ssid 002xxxxxxxx5
 wpa-psk 3b6e......
3b6e... の部分は、接続するネットワークの SSID と鍵を使って wpa_passphrase コマンドで生成する。
 wpa_passphrase SSID 鍵
を実行して表示された64文字のコードを用いる。~
~
*** カーネルのメッセージ [#t2a1047f]
- 問題点~
次のようなメッセージがログに残る。
 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