SSブログ
ドライバ開発 ブログトップ
前の10件 | -

DebianでSELinux (新しいロールを作ろうとしたが失敗) [ドライバ開発]

http://www.selinuxproject.org/page/RefpolicyBasicRoleCreation

これを見ると、テンプレート使うならこれだけでいけるぜ みたいな感じなのでmyrole.teを作って、コンパイルしてみるとコンパイルエラー。
そこで使い方を調べてみる。

/policy/modules# grep -rnw userdom_unpriv_user_template .
./roles/unprivuser.te:13:userdom_unpriv_user_template(user)
./roles/auditadm.te:10:userdom_unpriv_user_template(auditadm)
./roles/staff.te:10:userdom_unpriv_user_template(staff)
./roles/secadm.te:10:userdom_unpriv_user_template(secadm)

MLSで使う予定なのでstaffを見てみると・・・

policy_module(staff, 2.2.0)

########################################
#
# Declarations
#

role staff_r;

userdom_unpriv_user_template(staff)

########################################
#
# Local policy
#
以下アクセス権の付与


role xxxでとにかくロールは宣言してしまう
その後基本的な初期化を行う

というようにする必要があるようだ。
make && make reloadはできるのでnewroleしてみる

# newrole -r myrole
デフォルトタイプを取得できませんでした。

最初のURLのページを見ると、デフォルトタイプとデフォルトコンテキストをいじれとある。
これはロールを変更したときに、最初にどのタイプ(ドメイン)に属しているかを決定しろということだろう。

とりあえずほっといて、タイプとコンテキストをいじる

しかし、相変わらずデフォルトタイプが~と言われる。意味分からん。

引き続き調査中


一般ユーザーができる(?)BSODの解析 [ドライバ開発]

前にも何回か書いた気もするが
ドライバ開発者でなくても、何が原因かは調べられるので一応書いておく

・c:\windows\memory.dmpができているかどうか
 サスペンド、ハイバネートなどで出来ない場合がある。そういう場合はストレージのエラーであることが多い。memory.dmpを保存するためのストレージが無いために保存出来ていないためである。よってストレージを疑う。

・memory.dmpがある場合
 windbgで調べる。
 http://msdn.microsoft.com/ja-jp/windows/hardware/gg462988 から落としてくる。
 落としてきた後、一番下に書いてある
 SRV*c:\websymbols*http://msdl.microsoft.com/download/symbols
 をイメージパスに指定するのでコピペしておく。

・何が原因か
 windbgを起動した後、Fileメニューから「イメージを読み込む」的なやつがあるので、それを選んでmemory.dmpを食わせる。
 すると、クラッシュしたときのメモリの状態が大体わかる。CallStackを見てみると、どのドライバが動作中にクラッシュしたかがわかる。

 ドライバを開発している場合、これでソースコードを見れば一発で大体わかることが多いのだが、自分で開発していないドライバが原因の場合、理由を特定するのは非常に困難が伴う。

nt!XXXとか書かれているところはWindowsのコールスタックなので、あまり意味が無い。サードパーティの用意したドライバで出ているとそのメーカーが悪い可能性が高い。

 2,3度やったことがあるが、以下のような感じ。

・ウィルスバスター
 CallStackにウィルスバスターのファイルシステムフィルタドライバが存在していた。
 そのPCはメモリが異常に少なかったので、メモリを増やしたところBSODはでなくなった。
 原因はメモリが少ない状態でウィルスバスターがメモリを確保できずにBSODを出していた、と予想しているが、そこまで解析するには逆アセンブルでExAllocatePagesWithTagが呼ばれていることを調べないといけない。そこまでやる前に解決したので放置。

・さっぱりわからん場合
 引き金となったドライバが、影響で別の箇所に影響をおよぼすことは非常に多い。特にWindowsはマルチスレッド環境なので、あるスレッドが悪さをした結果別のスレッドでクラッシュするということは多い。

・そこから根性を出す場合
 ターゲットとなるドライバを逆アセンブルする。
 http://www.hex-rays.com/idapro/idadownfreeware.htm

 IDA Pro FreeがWindowsのシステムコールを判別してくれるので使いやすい。
 が、普通はコンパイラに任せるところを、人間がやるので非常に手間がかかる。レジスタに何が入っているかを推測しつつ、動作。これはmemory.dmpでメモリを見れればベターだが、多分見れないだろう。

・さらにさらに根性を出す
 先程の解析であたりがついているはずなので、メモリの状況を調べる。
 windbgを利用して、Windowsをリモートデバッグする。WindowsVista以降はbcdeditを使う
 bcdedit /copy {current} /d DebugEntry
 {GUID}が表示される
 bcdedit /debug {GUID} on
 bcdedit /displayorder {GUID} /addlast
 PCを再起動すると、メニューが出てくるので「DebugEntry」を選ぶ。
 でBSODを出す。

これでメモリの状況を調べることもできる。
例えば特定のメモリを見ようとしても何も表示されないとかは解放されているメモリを参照している場合がある。
しかし本当に根性出して調べないとここまではわからんので、NEETか学生かどーしても原因を特定する必要のある職業でやってる人以外はここまではできないだろう。

ここまで書いておいてなんだが、PCが不調の場合

・MEMTESTが完走するかどうか
 http://www.memtest.org/
 CDに焼く必要がある。CD-RW推奨。いい加減USBメモリブートできてもいい気はする。
 P4時代に一度ハマって以来安すぎるメモリは買わないことにした。時間の無駄。
 それでもPCを買ってきたら一晩ぐらい動かしてみたほうがいい。自分は一周(20分ぐらい)すれば十分だとは思ってるが。

・CrystalDiskInfoで不良セクタが発生していないかどうか
 一度データが化けていると再インストールしない限り不安定になる。
 http://crystalmark.info/software/CrystalDiskInfo/
 ただ、不良セクタの扱いも最近の大容量化では難しい。1個や2個ぐらいあってもおかしくないし、ケーブルの接続不良や電源の不安定さでかなり多発する。本当にHDDがおかしいかどうかは微妙な面もある。
 ただ(*2)、ディスクの温度がかなり高い場合(50度以上)は熱で寿命がきている可能性はある。さっさと交換推奨。

・CoreTempで異常な温度(70度以上)にならないかどうか
 http://www.alcpu.com/CoreTemp/
 個人的な経験だが、70度超える環境はアウト。意地でも60度台は死守できないとおかしい。
 ちなみにうちの環境は50度前後。

・ウィルススキャンして異常がないかどうか
 自分はAvira入れてるが、2ch的にはAvastのほうがメジャー。
 http://www.avira.com/ja/avira-free-antivirus
 自分ではありえないが、無防備でインターネットにつないでいる人が多いので、そういう人は大抵このパターン。

が最低限チェックする項目かなぁ。
BSODが出るタイミング以前にPCがそもそも正常な状態かどうかは必須である。

ちなみに知り合い二人が最近よく落ちるといってたが、その後ウィルスが見つかっていた。なのでこれらは最初のチェック項目だろう。

ただ、ウィルススキャンも最近は広告系のたいしたことがないやつも表示するので、表示をよく読まないと本当に問題があるかどうかは不明。

実は無防備でPCを使っていた場合、システムファイルを破壊されている可能性があるので、ウィルススキャンで駆除しても治らない可能性も高い。そういう場合は再インストールになる。

なんか結局まとまらなかったので、また思いついたら更新する。

ハング対策 [ドライバ開発]

Windowsの場合、キーボードクラッシュの方法があるので、それを使う。

ハングしたタイミングでキーボードクラッシュを発生させ、ダンプ解析。

!locks

でロックしているのが誰か一応わかる。
自分の開発しているドライバのスレッドなどが原因だと分かっている場合は開始時にスレッドIDなどを表示するようにしておくと、デバッグが楽かも。


Linuxの場合、最近のカーネルであればsysrq-triggerを使う。
カーネルオプションの変更必須。デフォルトでもONかもしれない。

echo "t" > /proc/sysrq-trigger

ハングしてるときはいろんなものが動かなくなっているので、シリアル接続がベター。SSHだとハングしたときに接続を切られている可能性もある。


パフォーマンスの問題の時どうするかは試行錯誤中

proxy サーバ経由で git を使う方法 [ドライバ開発]

会社はDNSが無いので、プロキシを使わないと外に出られない。GITもHTTPアクセスを認めているが、小規模な場合はともかく、Linuxカーネルのような大規模な物だと、タイムアウトが発生してしまうのか、処理が進まない。しかしGITプロトコルは通してくれない。そこでGITプロトコルをHTTP PROXYで通す方法が求められる。


以下のサイトよりコピペ
http://masaoo.blogspot.com/2009/07/proxy-git.html

proxy サーバ経由で git を使う方法
proxy サーバの配下で git を使う方法です。調べると結構引っかかりました。
参考にさせていただいた方々に感謝。とても重宝しています。

1. まず、corkscrew をインストールします。

# apt-get install corkscrew

2. git-proxy.sh を作成します。

proxy.hogehoge は proxy サーバ名。

# vi /usr/local/bin/git-proxy.sh
#/bin/bash
CORKSCREW=`which corkscrew`
$CORKSCREW proxy.hogehoge 8080 $1 $2
3. git-proxy.sh に実行権を与えます。

# chmod 755 /usr/local/bin/git-proxy.sh
4. ~/.bashrc に以下を追加します。

# vi ~/.bashrc
export GIT_PROXY_COMMAND=/usr/local/bin/git-proxy.sh
5. あとは通常通り、git を使用します。

AmazonでBDが安い [ドライバ開発]

2枚で3000円祭りどころか、1枚1500円祭りなので買い漁る。


第9地区 Blu-ray&DVDセット(初回限定生産)

第9地区 Blu-ray&DVDセット(初回限定生産)

  • 出版社/メーカー: ワーナー・ホーム・ビデオ
  • メディア: Blu-ray



見た人がみんなhmmmmみたいな返事だったので、期待していなかったが理由はわかった。テーマが一貫していない。終始煮え切らない男の生態を見させられて面白くない。ドキュメンタリー風にしているのかもしれないが、あとSF的、SF以外の部分の考証もできていない。

・すでに何年も立っている設定なんだから、迎撃装置ぐらいの一つや二つあってもいいはずだが、すべて見逃した。軍隊の緊急事態発生もなく、ただ見送った。
・何年もたっているのに、宇宙船を放置しすぎた。
 他の映画なら、見ただけでハックする強者がいるが、乗り込んで真面目にがんばったのは軍隊の下っ端だけで、何の解明も仕様としなかった
・そのくせ一企業が人体実験ならぬエビ実験をしていた。

単に虐殺はひどいですね、怖いですね。みたいにしたかっただけなんじゃなかろうか。あと、前半があまりにも退屈すぎて、流し見だったので見逃している部分もあるだろうが、構成としては最悪の部類。年始から糞映画を見てしまったと後悔する。


シャーロック・ホームズ Blu-ray&DVDセット(初回限定生産)

シャーロック・ホームズ Blu-ray&DVDセット(初回限定生産)

  • 出版社/メーカー: ワーナー・ホーム・ビデオ
  • メディア: Blu-ray



とくに前知識もなく、一緒に投げ売り1500円セールだったので購入。こっちは逆に面白かった。日本でいう中二設定、ライダーで言えばクロックアップを映像で表現しているのは見事と言える。色調もちょっとあせていて、薄暗いロンドンの描写に趣を与えている。3部作にするつもりがあるのかわからないが、次回作が出たら是非見てみたいと思った。



コンタクト [Blu-ray]

コンタクト [Blu-ray]

  • 出版社/メーカー: ワーナー・ホーム・ビデオ
  • メディア: Blu-ray



DVD持ってるのに買ってしまった。画質はフィルムが古いせいかあまりよくない。
また、知ってる人に聞くと「落ちるだけ」という感想しか帰って来なくて残念である。
SFというとロボットや宇宙船のようなハイテク兵器を思い浮かべる人は多いと思うが、これほど平和的に、実直にSFを表現した映画はなかなか無いと思う。NASAも2番目によいと評価している。
最後のところをどうやっても検証できないという状況を作り出したかったのであまり多くを語らなかったんだと思うが、小説だともっと違う展開らしい。
偽クリントンであったり、CNNのレポーターであったりと、細かいリアリティを積み上げている中、たったひとつだけ残念だったのは、北海道での日本の部屋。
あと、主演のジョディ・フォスターの解説が意外に面白かった。この手のやつは途中で飽きることが多いんだが、このシーンは額にあざが・・・とか3週間もブルースクリーンの部屋にいたとか、半ば愚痴にも思える解説?が面白かった。

Asrock 939A785GMH/128MにDebian squeezeをインストール [ドライバ開発]

サブPCスペック

・Athlon X2 3500
・Asrock 939A785GMH/128M
・Non-buffered ECCメモリ 2GB
・Hitach 40GB IDE接続
・どっかの300W

で組んでみたが・・・ファンとハードディスクがすげーうるさい
メインPCが静かになったのに慣れすぎててPCがうるさいものだというのを忘れていた。
あんまりうるさいので静音化

・CPUファン
 静音だとおもうのだが、必要以上に回転数を上げてあるのでうるさい。
 BIOSのメニューにターゲット温度と回転レベルがあるので中ぐらいを選んで、45度リミットにする。

・HDD
 今時のHDDの50分の1しかないくせに爆音。きゅい~んという音に時代を感じる。またディスクアクセスする度にガリガリという音もする。素直に別のHDD使ったほうが良い気がしてきた。
 ので、昔使っていたSmartDriveにいれる。

最近と言ってもここ2,3日だが、ネットラジオのクラシックチャンネルをかけておきながらPCいじるのが日課だが、こんなに爆音ではオーディオが機能しない。が、静音化でサーバとして使えるようになった。

とりあえずDebian squeezeインストールした。

・意味もなくAMD64版
・コンパイル用なのでグラフィック関係はいれなかった。
 WinマシンからPuttyでSSH接続
・インストール中にネットワークのFWがオープンじゃないぃよと警告を受けたが特に問題なく動いている。あぶない。
・インストールメニューにSSHサーバというのがあってよかった。IPの確認だけしてログアウト。

PCの情報はdmiというのを使うことで知るできる。dmidecodeで詳細を取得できるが、基本的な情報はsysfsインターフェイスを使うことができる。

find /sys/devices/virtual/dmi -print -exec cat {} \;

みたいなことをやると

/sys/devices/virtual/dmi/id/board_vendor
ASRock
/sys/devices/virtual/dmi/id/board_name
939A785GMH/128M
/sys/devices/virtual/dmi/id/bios_vendor
American Megatrends Inc.
/sys/devices/virtual/dmi/id/bios_version
P1.00
/sys/devices/virtual/dmi/id/bios_date
09/23/2009

とマザーボードの情報を取得できる。こういう手軽さはWindowsにはない。
とりあえず普通には動いているが、Netwalkerのカーネルビルドをやろうとしたが、いろいろ面倒で進んでない。

あとマザーボードの情報を確認。dmesgを見てるとACPIに不具合がある。が、仕事で見てるとそうだが、ACPIは不具合があっても当然。Windowsが使う最低限のものが動けばエラー上等が台湾メーカーというか日本以外の企業のデフォルトスタンスである。

で、ACPIよりもっと気になったのはECC

[ 5.727123] EDAC MC: Ver: 2.1.0 Dec 10 2010
[ 5.784775] EDAC amd64_edac: Ver: 3.2.0 Dec 10 2010
[ 5.784966] EDAC amd64: This node reports that Memory ECC is currently disabled, set F3x44[22] (0000:00:18.3).
[ 5.784979] EDAC amd64: ECC disabled in the BIOS or no ECC capability, module will not load.
[ 5.784980] Either enable ECC checking or force module loading by setting 'ecc_enable_override'.
[ 5.784982] (Note that use of the override may cause unknown side effects.)
[ 5.785296] amd64_edac: probe of 0000:00:18.2 failed with error -22

動いてねぇぇぇ
モジュールのオプションにしろというのだが、

insmod edac.ko ecc_enable_override = 1

としろとネットでは見つかるが起動時に設定する方法がよくわからん。

root@debian:~# modprobe -l | grep edac
kernel/drivers/edac/edac_core.ko
kernel/drivers/edac/edac_mce_amd.ko
kernel/drivers/edac/i5000_edac.ko
kernel/drivers/edac/i5100_edac.ko
kernel/drivers/edac/i5400_edac.ko
kernel/drivers/edac/e752x_edac.ko
kernel/drivers/edac/i82975x_edac.ko
kernel/drivers/edac/i3000_edac.ko
kernel/drivers/edac/i3200_edac.ko
kernel/drivers/edac/x38_edac.ko
kernel/drivers/edac/amd64_edac_mod.ko

モジュールにはなっているようだ。ECCってAMD64CPUに内蔵されているので使えるという情報だったが、BIOSが嘘を返しているだけだと信じてみる。

おまけ、PCIデバイスリスト

root@debian:~# lspci
00:00.0 Host bridge: Advanced Micro Devices [AMD] RS880 Host Bridge
00:01.0 PCI bridge: ASRock Incorporation Device 9602
00:0a.0 PCI bridge: Advanced Micro Devices [AMD] RS780 PCI to PCI bridge (PCIE port 5)
00:11.0 SATA controller: ATI Technologies Inc SB700/SB800 SATA Controller [AHCI mode]
00:12.0 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI0 Controller
00:12.1 USB Controller: ATI Technologies Inc SB700 USB OHCI1 Controller
00:12.2 USB Controller: ATI Technologies Inc SB700/SB800 USB EHCI Controller
00:13.0 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI0 Controller
00:13.1 USB Controller: ATI Technologies Inc SB700 USB OHCI1 Controller
00:13.2 USB Controller: ATI Technologies Inc SB700/SB800 USB EHCI Controller
00:14.0 SMBus: ATI Technologies Inc SBx00 SMBus Controller (rev 3c)
00:14.1 IDE interface: ATI Technologies Inc SB700/SB800 IDE Controller
00:14.2 Audio device: ATI Technologies Inc SBx00 Azalia (Intel HDA)
00:14.3 ISA bridge: ATI Technologies Inc SB700/SB800 LPC host controller
00:14.4 PCI bridge: ATI Technologies Inc SBx00 PCI to PCI Bridge
00:14.5 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI2 Controller
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
01:05.0 VGA compatible controller: ATI Technologies Inc RS880 [Radeon HD 4200]
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 03)

酒の飲み過ぎで眠いのでこのへんで終了

iTunesのインストーラは糞 [ドライバ開発]

あえて林檎信者に喧嘩を売らせてもらう

自動アップデートをかけたらBonなんちゃらサービスがインストール出来ないとか寝言を言い出した。
UACが動いて権限まで与えているのにインストールできませんとかなめてんのかと。

ぐぐっても管理者権限でやりましょうとか自分で調べましょうとか2008年の腐った情報ばかりでてきて糞の役にもたたない。大体管理者権限必要なら最初からそういう実行ファイルに作っておくべきだ。

前に似たようなエラーがでたときは手動インストールしたあと、iTunesを起動させてサービスの自己修復でなんとかなったが、今回はそれもだめ。

で、インストールパッケージを見てみるとAppleパッケージが5個ぐらいインストールされていた。
なんちゃらアップデータだのなんだのが入っているので企業名でソートしないとわかりにくい。

でソートしてみてわかったが、パッケージの日付がイマイチバラバラだったので、一度全部アンインストールし、Quicktimeは再起動まで要求してきやがるので、再起動。
その後iTunesSetup.exeを実行したらインストールがちゃんと成功した。

なので、アップデータの不具合であると言い切るッ。

しかしiTunes使っちゃう ビクンビクン

ふと思い起こすとQuicktimeも結構な糞仕様だし、昔からAppleはWindowsでは手抜きが多い。
安定して使いたければAirMacでも買えということなんだろう。

ChromeのTwitter用プラグイン [ドライバ開発]

「Chrome extension Twitter」でググッたときに古い情報が表示されていて使えなかったのでまとめてみた。

そもそも拡張ページでTwitterで検索かけると糞拡張しか出てこないのはいかがなものか。そんなにTwitterが憎いのか。もしかしてと誘導してくれるGoogleさんの仕事とは思えない。

しかも、検索結果に出てくる日本語のページで紹介されているやつは大半が使えなくなっている。
理由は比較的最近TwitterのAPIが変わって認証が必要になったからだと思うがよくわからん。

で、インストールして動作したのは以下の2つ

Chromed Bird
https://chrome.google.com/extensions/detail/encaiiljifbdbjlphpgpiimidegddhic?hl=ja

こっちは読み込みと書き込み。Twitterは標準のページが糞なのだが、これも便利かどうかは微妙。さっと確認できるのは良いが縦に伸ばしたら途中で真っ白になったりした。
どうも引き伸ばし過ぎると、中身は伸びるのにウィンドウが伸びないという現象が発生して真っ白になり、スクロールバーが消えてしまう。治すにはウィンドウと中身の境界でダブルクリックしろというメッセージが出るのでそれをクリックする。
なので縦に伸ばしすぎに注意

Tweet Button for Chrome (by Shareaholic)
https://chrome.google.com/extensions/detail/homldgnlpldcmdflhnabedgkgpmeanhd?hl=ja

広告が主体のページが、TwitterやFacebookにワンクリックで紹介できないページは何事化と思うわけだが、産経なんかはMicrosoftがバックアップしているせいで、ネトウヨ的には良いニュースが多いのだが利便性は非常に悪い。そんなページをTweetするのに役立つ。


Windows7でTrimによる最適化を有効にするには [ドライバ開発]

たまにBlogレポートを見るとSSD関係で見に来る人が割と多いのだが、昔のエントリに嘘が紛れていたというか、Windows7でTrimを使うための注意点を発見した?ので以下に書いておく。

Intel Solid State Drive ToolboxというXPでTrimやってくれるツールの説明書に書いてあったので引用する。

http://downloadcenter.intel.com/detail_desc.aspx?agr=y&dwnldid=18455&lang=jpn

4.1 Intel SSD Optimizer

Use the Intel SSD Optimizer to help an Intel SSD retain its out-of-box performance by using Trim functionality to remove deleted data files from NAND flash management blocks on the SSD.


Intel SSD OptimizerはTrim機能によってSSDのパフォーマンス低下を防ぐことができる。

When files are deleted by a user, the operating system marks the files for deletion, but does not immediately physically erase the files. Because an SSD does not know which files are deleted, the SSD continues to think all files contain valid data. This situation causes the SSD to continue managing deleted files in addition to valid data in the drive.


ファイルがユーザーによって削除されたとき、オペレーティングシステムはファイルにデリートマークを付けるだけで、すぐには(物理的に)削除しない。なぜならSSDはどのファイルが削除されたかわからず、どのデータもすべて有効であると想い続けている。このため、SSDドライブ内の正しいデータだけではなく削除されたデータの管理もし続ける。

By running the Intel SSD Optimizer, the tool identifies which files the user deleted and communicates that information to the SSD. This notification allows the SSD to clean up internal management space, thus eliminating the need to manage the deleted files.


Intel SSD Optimizerを走らせることによって、ユーザーが削除したファイルの情報をSSDに教えることができる。これによって、SSDは内部的な管理情報をクリーンナップすることができ、削除されたファイルの管理を完全にやめることができる。

ここまでは過去にも書いたエントリと同じ。
問題はここから。

Note: If your computer uses Microsoft* Windows* 7 and the standard Microsoft AHCI driver (the default setup for normal configurations without RAID), the Intel SSD Optimizer works; however, you do not need to use the Intel SSD Optimizer because Windows 7 implements the Trim functionality natively.


Windows 7 + MS AHCIドライバ + non RAIDな場合、Intel SSD Optimizerは動くが、使う必要はない。なぜならWindows7はネイティブでTrimを実装しているため。

これもまあ分かる話。問題は次から。

If your computer uses Windows 7 and Intel Matrix Storage Manager version 8.x or Intel Rapid Storage Technology driver version 9.5 or earlier (which can be used in place of the Microsoft AHCI driver), Trim functionality is not implemented, and Intel SSD Optimizer is required to enable Trim.

Intel Matrix Strage Manger バージョン8.xまたはRapid Storage Technology driver バージョン 9.5未満を使っている場合、Trimは実装されていないので、Intel SSD Optimizerを動かす必要がある

Intel Rapid Storage Technology driver version 9.6 supports the Windows 7 Trim command, but for non-RAID configurations only.


Rapid Storage Technology driver バージョン 9.6ではWindows7のTrimコマンドをサポートしている。ただしnon-RAID。

で、自分の環境を見てみたら見事に8.xでした。IntelのSSD使ってる人は要注意。
ただ、東芝の場合はTrimが無くても動くようにしているらしいので、あまり気にする必要はない・・・はず。公式発表があまり強く言ってないが、ICHxを使っている人はドライバのバージョンに気をつけましょうというありきたりな話でした。

ふと思ったがAMDなどのIntel以外AHCIホストコントローラの場合や、SSDごとの違いとかどっかに書いてないものか・・・


GavotteRamdiskの解析 [ドライバ開発]

GavotteRamdiskが中国のサイトを使っているのを見て、ネトウヨの自分は同じ機能を自分で作れないかとちょっと調査してみた。

まず、ベースとなっているのはWDKに入っているRamdiskドライバのソースなのは間違いない。

標準のRamdiskドライバはメモリをExAllocatePoolWithTagを使っている。これだと目的とする3GB越えの場所のメモリを取得できない。
そこで、MmAllocatePagesForMdlを使っているっぽい。これは物理メモリからMDLを作成するもので、これで得たアドレスをMmMapLockedPagesSpecifyCacheなどでアクセスできるようにしているようだ。

http://msdn.microsoft.com/en-us/library/ff554482(VS.85).aspx
PMDL MmAllocatePagesForMdl(
__in PHYSICAL_ADDRESS LowAddress,
__in PHYSICAL_ADDRESS HighAddress,
__in PHYSICAL_ADDRESS SkipBytes,
__in SIZE_T TotalBytes
);

とのことなので、物理アドレスさえわかっていれば使えるようだ。
またSkipBytesに4GB上限をいれている節がある。
Ramdiskの問題としては、電源をオフにすると消えてしまうので、有料版のRamPhantomではその点を強化している。

ExAllocatePoolWithTagの変わりにするだけでいけるならお手軽だなと思いつつ、手軽なデバッグ環境がないので、あくまで調査で終わり。


前の10件 | - ドライバ開発 ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。