ディバイスドライバの改造、製作にまつわる情報交換、質問、
噂話、ぐち、政治、経済に関するスレです。できる限り生産的にいきましょーや。
ディバイスドライバをハックしよう!
■ このスレッドは過去ログ倉庫に格納されています
1login:Penguin
02/01/31 01:14ID:t3s191ys2007/11/17(土) 11:39:12ID:AZzmHExp
>>739
Do! Do! Do!
Do! Do! Do!
742login:Penguin
2007/11/17(土) 11:43:31ID:4avAGLIe do_fork
743login:Penguin
2007/11/29(木) 13:55:56ID:yo1OGExb mmapで特定のデバイスのIOメモリを仮想空間に割り付けて,
その領域に対してユーザーからデータを書き込むことを考えています.
ユーザープログラムからその領域上に,あるデータ型の双方向リスト
を作りたいのですが,ユーザー空間の特定のアドレス範囲から空き
メモリ領域を動的に確保する方法ってないでしょうか
void *dev_malloc(start_address, end_adress, nbyte);
とすると仮想アドレスstart_address〜end_adressの範囲から
nbyteバイトの領域を確保するみたいなイメージです
その領域に対してユーザーからデータを書き込むことを考えています.
ユーザープログラムからその領域上に,あるデータ型の双方向リスト
を作りたいのですが,ユーザー空間の特定のアドレス範囲から空き
メモリ領域を動的に確保する方法ってないでしょうか
void *dev_malloc(start_address, end_adress, nbyte);
とすると仮想アドレスstart_address〜end_adressの範囲から
nbyteバイトの領域を確保するみたいなイメージです
2007/11/29(木) 20:09:08ID:iCD9/EY6
>>743
かーなーり スレ違い
デバイスドライバ関係ない
汎用heap管理ライブラリがほしいってことだろ
heap-management とか ヒープ管理 でぐぐってみそ
ちなみに
void *dev_malloc(start_address, end_adress, nbyte);
ってI/Fはありえないと思うぞ
毎回 start_addressとend_adressを与えるわけ??
かーなーり スレ違い
デバイスドライバ関係ない
汎用heap管理ライブラリがほしいってことだろ
heap-management とか ヒープ管理 でぐぐってみそ
ちなみに
void *dev_malloc(start_address, end_adress, nbyte);
ってI/Fはありえないと思うぞ
毎回 start_addressとend_adressを与えるわけ??
745login:Penguin
2007/12/02(日) 23:50:11ID:lbIQi7BJ あげ
746login:Penguin
2007/12/13(木) 19:50:31ID:pBhS9AMD あげ
747俺
2007/12/18(火) 23:09:45ID:K//ZswLt ドライバでCPUキャッシュのフラッシュやりたい!
どうやるの?だれかおせぇ〜てぇ〜
どうやるの?だれかおせぇ〜てぇ〜
2007/12/18(火) 23:41:07ID:uNdsweTC
749俺
2007/12/18(火) 23:59:27ID:K//ZswLt >>748
Xeonの5100です。
データシートとか見つからなくて。。。
ご存知でしたら教えていただけませんか?
<経緯>
Linuxマシンで、DMAでPCIeのデバイスからホストメモリにデータ転送
したときにキャッシュのせいか、2周目のリングバッファ領域が
うまく参照できていなく、フラッシュすればと思いました。。
Xeonの5100です。
データシートとか見つからなくて。。。
ご存知でしたら教えていただけませんか?
<経緯>
Linuxマシンで、DMAでPCIeのデバイスからホストメモリにデータ転送
したときにキャッシュのせいか、2周目のリングバッファ領域が
うまく参照できていなく、フラッシュすればと思いました。。
2007/12/23(日) 13:45:51ID:VU+KNtKv
>>ORE
ttp://www.intel.com/products/processor/manuals/index.htm
ttp://www.intel.com/products/processor/manuals/index.htm
751login:Penguin
2007/12/24(月) 18:03:58ID:ugbio3bt Linux 2.6.22 ARM9マシンでシリアルコンソールでデバッグするためにカーネルコマンドラインで
console=uart,mmio,0x80004600,57600n8
とすると、カーネルの初期化中に
early_uart_console_init()→register_console()→early_uart_setup()→parse_options()→ioremap()→__arm_ioremap()→__arm_ioremap_pfn()→get_vm_area()→__get_vm_area_node()→kmalloc_node()→kmalloc()→kmem_cache_alloc()
が呼ばれてkmem_cache_alloc()でこけます。
slabアロケータがまだ初期化されていないのにkmem_cache_alloc()が呼ばれているのがこける原因と思うのですが、armマシンでもearly_uart_consoleは使えるのでしょうか?
console=uart,mmio,0x80004600,57600n8
とすると、カーネルの初期化中に
early_uart_console_init()→register_console()→early_uart_setup()→parse_options()→ioremap()→__arm_ioremap()→__arm_ioremap_pfn()→get_vm_area()→__get_vm_area_node()→kmalloc_node()→kmalloc()→kmem_cache_alloc()
が呼ばれてkmem_cache_alloc()でこけます。
slabアロケータがまだ初期化されていないのにkmem_cache_alloc()が呼ばれているのがこける原因と思うのですが、armマシンでもearly_uart_consoleは使えるのでしょうか?
752 【大吉】 【801円】
2008/01/01(火) 19:54:53ID:EHGXP/cp 新年あげ
753 【中吉】 【156円】
2008/01/01(火) 20:58:21ID:LfamTH+n >750
749じゃないけど,これいいな.サンクス.
みんなチップのデータとかはどこから調べてくるの?
ちょっと想像してみたけど,「とりあえずメーカサイトを調べる」
以外の方法がわからん.
windowsのドライバから情報調べたりする人もいるの?
いたらその解析方法とかおしえてください.
749じゃないけど,これいいな.サンクス.
みんなチップのデータとかはどこから調べてくるの?
ちょっと想像してみたけど,「とりあえずメーカサイトを調べる」
以外の方法がわからん.
windowsのドライバから情報調べたりする人もいるの?
いたらその解析方法とかおしえてください.
2008/01/01(火) 20:59:27ID:VCekl7x7
>>753
メーカに電話して聞く
メーカに電話して聞く
2008/01/01(火) 23:23:30ID:hQDOyXLN
>>749
Intel の CPU だとその手のキャッシュのことは気にしなくていいんじゃなかったっけ?
いわゆるバススヌープ。ま、明示的にフラッシュしたきゃできるだろうけど。
(実は俺自身は x86 以外用のドライバしか書いたことがないので聞きかじりだが...)
あと、キャッシュが効いているなら1周目でも駄目な場合がありそうだがどうなん?
単にリングバッファのアリゴリズムでしくじってたりして。
って、よく見るとえらい昔の書き込みだった。もう解決したのかな。
Intel の CPU だとその手のキャッシュのことは気にしなくていいんじゃなかったっけ?
いわゆるバススヌープ。ま、明示的にフラッシュしたきゃできるだろうけど。
(実は俺自身は x86 以外用のドライバしか書いたことがないので聞きかじりだが...)
あと、キャッシュが効いているなら1周目でも駄目な場合がありそうだがどうなん?
単にリングバッファのアリゴリズムでしくじってたりして。
って、よく見るとえらい昔の書き込みだった。もう解決したのかな。
2008/01/02(水) 12:58:56ID:jVjgkvN4
チップの購入先の営業から入手とか
チップベンダのwebサイトからダウンロードだろ
常考
チップベンダのwebサイトからダウンロードだろ
常考
757login:Penguin
2008/01/14(月) 11:44:33ID:MLu8ArWP 今馬本の第 3 版読んでんだけど scull のソースコードって
Web でダウンロードできるの?
Web でダウンロードできるの?
2008/01/14(月) 11:59:56ID:hAs2atpA
あるよ
2008/01/14(月) 13:03:13ID:MLu8ArWP
2008/01/14(月) 13:36:46ID:Q2m15cvj
2008/01/14(月) 14:10:16ID:MLu8ArWP
>>759
ありがとう! 3版のは FTP で以下からダウンロードできました.
ar.linux.it/pub/ldd3/ldd3-samples-1.0.0.tar.gz
かなり感謝です ありがとう
ありがとう! 3版のは FTP で以下からダウンロードできました.
ar.linux.it/pub/ldd3/ldd3-samples-1.0.0.tar.gz
かなり感謝です ありがとう
2008/01/14(月) 14:13:07ID:MLu8ArWP
2008/01/17(木) 11:56:40ID:1+AIbUNm
>>761
あれ?お馬さんの第3版それなの?
日付が気になるので、第3版翻訳本に載ってたのをこぴぺ
ftp://example.oreilly.com/pub/examples/linuxdrive3
examples.tar.gz 70 KB 2005/05/12 0:00:00
ちょいとだけ新しいかも。同じくLinuxデバドラはじめる所なので
よろしく〜。Win系でWDM書いてました〜。
あれ?お馬さんの第3版それなの?
日付が気になるので、第3版翻訳本に載ってたのをこぴぺ
ftp://example.oreilly.com/pub/examples/linuxdrive3
examples.tar.gz 70 KB 2005/05/12 0:00:00
ちょいとだけ新しいかも。同じくLinuxデバドラはじめる所なので
よろしく〜。Win系でWDM書いてました〜。
764!omikuji !dama
2008/01/25(金) 07:11:44ID:dVpHcdky kaso
2008/01/25(金) 21:56:39ID:OZPnpJ0W
ドライバでのロックの掛け方とか
その変のデザインパターンみたいなもの
ないのですか?
馬本読んでも、DualSocket 4コアとか
その辺の場合どうすればいいとかまったく
書いてなくて困ってる。
CPU毎にあるモノを意識しなければならないのか
全リソースを意識した作りなのかの判断も
ケースバイケースとかだし。WDMの方がいいよね
その変のデザインパターンみたいなもの
ないのですか?
馬本読んでも、DualSocket 4コアとか
その辺の場合どうすればいいとかまったく
書いてなくて困ってる。
CPU毎にあるモノを意識しなければならないのか
全リソースを意識した作りなのかの判断も
ケースバイケースとかだし。WDMの方がいいよね
2008/01/26(土) 23:10:19ID:jNmSnKBM
>>765
スピンロック様
スピンロック様
2008/01/27(日) 14:19:40ID:/9d4A9Tg
WDMってよく知らないが、割り禁、スピン、寝る&起こす以外に
排他の方法があるの?
排他の方法があるの?
2008/01/27(日) 17:28:29ID:Q2ylOq7r
そもそも排他なんじゃねーの?
昔はLinuxも明示的にスケジュールよぶまで
カーネル空間は排他だったじゃん
SMPが出てきて全部直す羽目になったけど
昔はLinuxも明示的にスケジュールよぶまで
カーネル空間は排他だったじゃん
SMPが出てきて全部直す羽目になったけど
2008/01/27(日) 19:45:28ID:/9d4A9Tg
割込みハンドラ
770login:Penguin
2008/02/03(日) 19:45:35ID:coODkdMv 過疎
2008/02/07(木) 03:30:55ID:9BnmgFGp
「新着1件ってことは、いつもの良スレ上げ厨かなぁ」と思ったらそう来たか。
772login:Penguin
2008/02/19(火) 16:29:32ID:vNMS2dUr 基本的にPCIデバイスにデータ渡すだけのドライバを作ってるのですが、
I2Cデータ転送もしたいといわれ、苦戦中につき質問させて下さい。
カーネルリリースは2.6.11-1.1369_FC4
今のところインクルードしてるのは下記ヘッダーです。
linux/module.h
linux/kernel.h
linux/pci.h
linux/pci-dev.h
asm/uaccess.h
unistd/.h
sys/ioctl.h
sys/perm.h
I2Cのオープンのために、これにfcntl.hを加えたところ、dev_tの型などが再定義されたとエラーが出ます。
また、KERNELDIRを取得して、その場でMAKEしているため
Makefileにて、環境変数C_INCLUDE_PATHに/usr/includeを設定しているのですが
fcntl.hを除いてコンパイルしてもclose, ioctl等が未定義と警告されます。
これらエラーや警告の対応に行き詰まってしまいました。
インクルードに過不足あるのか、Makefileが悪いのか、そもそもPCIドライバからI2Cを叩く方法が悪いのか…
アドバイス等お願い出来ますでしょうか。
I2Cデータ転送もしたいといわれ、苦戦中につき質問させて下さい。
カーネルリリースは2.6.11-1.1369_FC4
今のところインクルードしてるのは下記ヘッダーです。
linux/module.h
linux/kernel.h
linux/pci.h
linux/pci-dev.h
asm/uaccess.h
unistd/.h
sys/ioctl.h
sys/perm.h
I2Cのオープンのために、これにfcntl.hを加えたところ、dev_tの型などが再定義されたとエラーが出ます。
また、KERNELDIRを取得して、その場でMAKEしているため
Makefileにて、環境変数C_INCLUDE_PATHに/usr/includeを設定しているのですが
fcntl.hを除いてコンパイルしてもclose, ioctl等が未定義と警告されます。
これらエラーや警告の対応に行き詰まってしまいました。
インクルードに過不足あるのか、Makefileが悪いのか、そもそもPCIドライバからI2Cを叩く方法が悪いのか…
アドバイス等お願い出来ますでしょうか。
2008/02/19(火) 19:10:24ID:5BDGV8A6
デバイスドライバでunistd.hなんかincludeしちゃダメだろ
fcntl.hも同様
fcntl.hも同様
2008/02/19(火) 21:35:29ID:ec7S8nn5
何言ってるのかわからないなw
PCIデバイスとして、I2Cバスへのブリッジが載っているのか?
それとも、PCIバス/デバイスとは関係なく、全く別のI2Cバス上のデバイスをアクセスしたいだけなのか?
PCIデバイスとして、I2Cバスへのブリッジが載っているのか?
それとも、PCIバス/デバイスとは関係なく、全く別のI2Cバス上のデバイスをアクセスしたいだけなのか?
775772
2008/02/19(火) 22:00:59ID:vQR2/dLm2008/02/19(火) 22:53:37ID:5BDGV8A6
つーかさ
カーネルモードで動いてるデバイスドライバの中から
open()とかclose()とかioctl()みたいなシステムコールを
発行できるわけないだろ?
>>772が作りたいと思ってるのは root権限で直接I/O叩くだけの
ユーザランドで動くアプリなんじゃないのか?
カーネルモードで動いてるデバイスドライバの中から
open()とかclose()とかioctl()みたいなシステムコールを
発行できるわけないだろ?
>>772が作りたいと思ってるのは root権限で直接I/O叩くだけの
ユーザランドで動くアプリなんじゃないのか?
2008/02/19(火) 23:10:27ID:ec7S8nn5
>>775
じゃあ、そのPCI-I2Cブリッジのデバイスドライバを書いているんだとして、
>I2Cのオープンのために
なんで、こうなるのよw
とりあえずDocumentation/i2c/summaryでも読んでくれ。
じゃあ、そのPCI-I2Cブリッジのデバイスドライバを書いているんだとして、
>I2Cのオープンのために
なんで、こうなるのよw
とりあえずDocumentation/i2c/summaryでも読んでくれ。
2008/02/20(水) 08:43:00ID:zgvkT7V3
2008/02/20(水) 09:40:57ID:zxxPBExl
2008/02/21(木) 00:46:11ID:VUV3LHo/
ちょっと相談なんだが、いいかな
writeの中で長時間割り込み待ちをするような処理と、その場で終わる処理を持ったデバドラがあって、
(処理の切り替えはioctl)
まずアプリAが長時間かかる処理のためにwriteわ呼び出す。
当然割り込み待ちになるが、そのままアプリBがioctlやwriteを呼び出すとどうなる?
普通に処理出来る?
writeの中で長時間割り込み待ちをするような処理と、その場で終わる処理を持ったデバドラがあって、
(処理の切り替えはioctl)
まずアプリAが長時間かかる処理のためにwriteわ呼び出す。
当然割り込み待ちになるが、そのままアプリBがioctlやwriteを呼び出すとどうなる?
普通に処理出来る?
2008/02/21(木) 00:55:15ID:A2lpGb2W
一つのデバイスを二つのアプリで同時に使うっつー事ですか?
2008/02/21(木) 01:18:43ID:VUV3LHo/
2008/02/21(木) 01:55:12ID:6LvlPNy5
できるかどうかは作り方次第だろうな
資源の排他処理が必要なら、ロック使わなきゃならん
その場合は、すぐ終わるはずの処理ももちろん待たされる
待たせたくなけりゃ、長時間かかるというwriteにバッファを設けて
write処理と割り込み処理とを分離するみたいな工夫したらどうだ
的外れならスマソ
資源の排他処理が必要なら、ロック使わなきゃならん
その場合は、すぐ終わるはずの処理ももちろん待たされる
待たせたくなけりゃ、長時間かかるというwriteにバッファを設けて
write処理と割り込み処理とを分離するみたいな工夫したらどうだ
的外れならスマソ
2008/02/21(木) 02:11:45ID:VUV3LHo/
2008/02/21(木) 06:04:45ID:Xs+RkuJQ
シリアルポートを想像してみたらどうだろう
Write、Read、割り込みがそれぞれ並列に動くはずだ
Writeで割り込み使ってるかどうかは知らないけど
Write、Read、割り込みがそれぞれ並列に動くはずだ
Writeで割り込み使ってるかどうかは知らないけど
2008/02/21(木) 07:26:26ID:Kf6eqU14
ブロック と ノンブロック という用語を使ってほしいところだな
んで複数プロセスから同時に使えるかどうかはデバイスドライバの作り方次第
手抜きにつくると open()されるときに競合問題を判断して
同時にひとつとかopenできないようにするよな
複数同時にopenして、ひとつがブロックしてる時に
また別のがノンブロックの処理要求してきたなんて場合は
そういう風にうまく動くようにドライバの中で考慮する必要がある
んで複数プロセスから同時に使えるかどうかはデバイスドライバの作り方次第
手抜きにつくると open()されるときに競合問題を判断して
同時にひとつとかopenできないようにするよな
複数同時にopenして、ひとつがブロックしてる時に
また別のがノンブロックの処理要求してきたなんて場合は
そういう風にうまく動くようにドライバの中で考慮する必要がある
2008/02/21(木) 07:32:20ID:Kf6eqU14
追記
呼び出し側がマルチスレッド使ってるかどうかはあまり関係ない
ふたつのプロセスがメモリを共有してようがしてまいが
ドライバにとっては関係ない話だ
それよりCPUが複数ある(いわゆるSMP)かどうかの方が重要
smp対応させるなら必要なところできっちりspinlockしないとダメ
呼び出し側がマルチスレッド使ってるかどうかはあまり関係ない
ふたつのプロセスがメモリを共有してようがしてまいが
ドライバにとっては関係ない話だ
それよりCPUが複数ある(いわゆるSMP)かどうかの方が重要
smp対応させるなら必要なところできっちりspinlockしないとダメ
2008/02/21(木) 08:59:36ID:VUV3LHo/
>>787-788
ブロック=長時間処理
ノンブロック=即時処理
でおk?
複数からopenされるのはアリにしないといけないっぽいんで、考えてみる。
ブロック中にアプリBからもwrite自体は呼び出せる?
その時点で破綻してるなら、今のwriteをそのままスレッド化して、write自体はスレッド起動だけにするなりで対応とか…ダメかな
あとCPUは1つ前提でおkっす。
余裕があったら後学のためにもsmp対応も抑えておきたいがw
ブロック=長時間処理
ノンブロック=即時処理
でおk?
複数からopenされるのはアリにしないといけないっぽいんで、考えてみる。
ブロック中にアプリBからもwrite自体は呼び出せる?
その時点で破綻してるなら、今のwriteをそのままスレッド化して、write自体はスレッド起動だけにするなりで対応とか…ダメかな
あとCPUは1つ前提でおkっす。
余裕があったら後学のためにもsmp対応も抑えておきたいがw
2008/02/21(木) 09:10:48ID:Kf6eqU14
> ブロック中にアプリBからもwrite自体は呼び出せる?
もちろん呼べる
ブロック処理とは、簡単にいうと処理開始をデバイス(ハードウェア)に
通知したあとスリープ状態に入り、処理完了割込が入ったら
割込ハンドラがスリープ(ブロッキング)しているプロセスを
たたき起こすって流れ。
アプリAがスリープ(ブロッキング)している間に
アプリBからreadなりwriteなりが発行されるのは当然ありうる話。
ちゃんとドライバを書いておけば問題なく動く。
linuxカーネルのソースコードそのものがいいサンプルコードだから
いろいろ読んでみるとよい。
それから、procfs(/procの下に仮想ファイルをつくる)に
状態監視・デバッグ操作用のI/Fを用意しておくと後々楽になるよ。
もちろん呼べる
ブロック処理とは、簡単にいうと処理開始をデバイス(ハードウェア)に
通知したあとスリープ状態に入り、処理完了割込が入ったら
割込ハンドラがスリープ(ブロッキング)しているプロセスを
たたき起こすって流れ。
アプリAがスリープ(ブロッキング)している間に
アプリBからreadなりwriteなりが発行されるのは当然ありうる話。
ちゃんとドライバを書いておけば問題なく動く。
linuxカーネルのソースコードそのものがいいサンプルコードだから
いろいろ読んでみるとよい。
それから、procfs(/procの下に仮想ファイルをつくる)に
状態監視・デバッグ操作用のI/Fを用意しておくと後々楽になるよ。
2008/02/21(木) 09:27:27ID:VUV3LHo/
791login:Penguin
2008/03/03(月) 00:13:39ID:JgGlbVL6 ttp://www.atmarkit.co.jp/fsecurity/rensai/rootkit03/rootkit02.html
上記を参考にシステムコールをフックするプログラムを書きました(そのままでは駄目なので必要に応じて修正しています)。
コンパイルすると、
original_sys_uname = sys_call_table[sys_uname];
sys_call_table[sys_uname] = hook_uname;
のsys_unameで `sys_uname' undeclared (first use in this function) とエラーがでます。
これは arch/i386/kernel/syscall_table.S をインクルードしておく必要があるのでしょうか?
使用しているカーネル:2.6.23
上記を参考にシステムコールをフックするプログラムを書きました(そのままでは駄目なので必要に応じて修正しています)。
コンパイルすると、
original_sys_uname = sys_call_table[sys_uname];
sys_call_table[sys_uname] = hook_uname;
のsys_unameで `sys_uname' undeclared (first use in this function) とエラーがでます。
これは arch/i386/kernel/syscall_table.S をインクルードしておく必要があるのでしょうか?
使用しているカーネル:2.6.23
2008/03/03(月) 01:17:37ID:dOT+ttrq
>>791
よく知らんけど、これよめ。
System calls replacement
ttp://kerneltrap.org/node/5793
nm -uでundefinedなシンボルが置き換えらればいいだけなら、
LD_PRELOADなりLD_AUDITをつかってどうにかしたほうがいいんじゃね?
そうなら、以後下へどうぞ。
Linuxプログラミング
http://pc11.2ch.net/test/read.cgi/linux/1118024349/
よく知らんけど、これよめ。
System calls replacement
ttp://kerneltrap.org/node/5793
nm -uでundefinedなシンボルが置き換えらればいいだけなら、
LD_PRELOADなりLD_AUDITをつかってどうにかしたほうがいいんじゃね?
そうなら、以後下へどうぞ。
Linuxプログラミング
http://pc11.2ch.net/test/read.cgi/linux/1118024349/
2008/03/03(月) 04:02:04ID:JCTvrwL7
794791
2008/03/03(月) 07:25:41ID:zrYDUX8A2008/03/04(火) 09:36:17ID:NdRlprld
>>791
乗り遅れたか!?
Linux 2.6からシステムコールのフックはできません。
パッチ当てなきゃできないようなことが
ttp://tldp.org/LDP/lkmpg/2.6/lkmpg.pdf
8章にそのようなことが書いてあったはず。
記憶が確かなら、792の示したサイトの
unsigned long **sys_call_table = find_sys_call_table();を
加えればできたと思う。
乗り遅れたか!?
Linux 2.6からシステムコールのフックはできません。
パッチ当てなきゃできないようなことが
ttp://tldp.org/LDP/lkmpg/2.6/lkmpg.pdf
8章にそのようなことが書いてあったはず。
記憶が確かなら、792の示したサイトの
unsigned long **sys_call_table = find_sys_call_table();を
加えればできたと思う。
796795
2008/03/04(火) 09:39:35ID:NdRlprld >>791
パッチを当てるのが嫌ならLSMを使ったらいい。
決まった関数で始めるとか、とかsecurity_operations構造体に登録するあたりとか
デバドラに似ているからsecurity以下を読めば使えると思う。
パッチを当てるのが嫌ならLSMを使ったらいい。
決まった関数で始めるとか、とかsecurity_operations構造体に登録するあたりとか
デバドラに似ているからsecurity以下を読めば使えると思う。
797791
2008/03/04(火) 19:10:21ID:iX0t2env2008/03/04(火) 20:25:09ID:neWtFAJV
799791
2008/03/05(水) 00:39:02ID:QPFLTsD+ >>798
そのようなことはございません
そのようなことはございません
800login:Penguin
2008/03/17(月) 18:46:02ID:c0UdNwV3 あげ
2008/03/18(火) 18:12:00ID:z8581E+A
init中にalloc_chrdev_regionでデバイス番号を動的確保した後で、
そのまま(関数内で)スペシャルファイルを作成する事は可能?
mknodコマンドでなく、あくまでインスコだけで済ませるように出来ないかと…
そのまま(関数内で)スペシャルファイルを作成する事は可能?
mknodコマンドでなく、あくまでインスコだけで済ませるように出来ないかと…
2008/03/18(火) 18:22:19ID:qC/Waqz9
udevじゃダメなの?
2008/03/18(火) 20:50:35ID:Hq9+Lc7G
>>801
オレならprocなりsysなりのみで済ます
オレならprocなりsysなりのみで済ます
804801
2008/03/18(火) 21:37:57ID:z8581E+A2008/03/18(火) 21:49:17ID:irgQA2zj
shell スクリプト作ってその中で insmod、mknod すれば?
rmmod も出来るようにすれば、なお良いでしょ?
rmmod も出来るようにすれば、なお良いでしょ?
2008/03/18(火) 23:47:40ID:z8581E+A
2008/03/18(火) 23:49:33ID:owXiyD5i
2008/03/19(水) 10:35:22ID:J+fEVrF8
ブロックデバイスのブロックサイズってどこで決まってるの?
ユーザアプリから見る方法ある?
ユーザアプリから見る方法ある?
2008/03/19(水) 14:37:31ID:ZMxkS/nc
2008/03/20(木) 00:19:26ID:tEIlyDHp
2008/03/20(木) 00:24:56ID:tEIlyDHp
>>808
試してないけど、blktool(8)のblock-szコマンドでいけそうかもね?
試してないけど、blktool(8)のblock-szコマンドでいけそうかもね?
2008/03/20(木) 02:10:32ID:wMmGSYfl
2008/03/28(金) 15:40:00ID:BcQjSrEl
>>807見て、misc_register調べてちょっと使ってみたんだけど、
これで作ったもんどうやって消すんだ?
関数自体は使い方分かったが、対になるもの無い?
misc_register込みのinsmod→rmmod→再度insmodでハングするんだが
これで作ったもんどうやって消すんだ?
関数自体は使い方分かったが、対になるもの無い?
misc_register込みのinsmod→rmmod→再度insmodでハングするんだが
2008/03/28(金) 15:47:49ID:BcQjSrEl
書いた直後に自己解決しちまったorz
misc_deregisterがあるのね…
スレ汚しすまんかった
misc_deregisterがあるのね…
スレ汚しすまんかった
815791
2008/04/06(日) 15:36:55ID:n9AD6VHb ほ?
816login:Penguin
2008/04/10(木) 21:40:14ID:zop984mC mmapを利用して物理アドレス0x10000000に存在するデバイス(SRAM)のR/Wを
行うドライバを作成しようと思っています。
馬本の第3版のサンプルソース(simple)を参考にしながらremap_pfn_rangeで
マッピングし、ダンプをとってみたところ、0x10000000エリアのデータでは
なく、全て0のデータが読み取れました。
0x1000等の小さい物理アドレスであれば正常にリード出来ているようです。
0x10000000のように上の方のアドレスは、remap_pfn_rangeではマッピング
されないのでしょうか?
カーネルのバージョンは2.6.11です。
行うドライバを作成しようと思っています。
馬本の第3版のサンプルソース(simple)を参考にしながらremap_pfn_rangeで
マッピングし、ダンプをとってみたところ、0x10000000エリアのデータでは
なく、全て0のデータが読み取れました。
0x1000等の小さい物理アドレスであれば正常にリード出来ているようです。
0x10000000のように上の方のアドレスは、remap_pfn_rangeではマッピング
されないのでしょうか?
カーネルのバージョンは2.6.11です。
817816
2008/04/10(木) 22:19:28ID:zop984mC /dev/mem openして
memmap((void*)0, 0x1000,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0x10000000)
memmap((void*)0, 0x1000,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0x1000)
でも同じ結果でした・・・
memmap((void*)0, 0x1000,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0x10000000)
memmap((void*)0, 0x1000,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0x1000)
でも同じ結果でした・・・
818816
2008/04/10(木) 22:20:55ID:zop984mC 訂正
>>817
>memmap((void*)0, 0x1000,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0x10000000)
>memmap((void*)0, 0x1000,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0x1000)
mmap((void*)0, 0x1000,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0x10000000)
mmap((void*)0, 0x1000,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0x1000)
>>817
>memmap((void*)0, 0x1000,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0x10000000)
>memmap((void*)0, 0x1000,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0x1000)
mmap((void*)0, 0x1000,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0x10000000)
mmap((void*)0, 0x1000,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0x1000)
819816
2008/04/10(木) 22:21:43ID:zop984mC 訂正
>>817
>memmap((void*)0, 0x1000,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0x10000000)
>memmap((void*)0, 0x1000,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0x1000)
mmap((void*)0, 0x1000,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0x10000000)
mmap((void*)0, 0x1000,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0x1000)
>>817
>memmap((void*)0, 0x1000,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0x10000000)
>memmap((void*)0, 0x1000,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0x1000)
mmap((void*)0, 0x1000,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0x10000000)
mmap((void*)0, 0x1000,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0x1000)
2008/04/10(木) 23:10:16ID:hws3UYgb
Linux 2.6.11 使ってないしためしてないけど、
/sys/devices/pci*/*/resource? を mmap(2) って出来ないんだっけ?
/sys/devices/pci*/*/resource? を mmap(2) って出来ないんだっけ?
2008/04/11(金) 00:58:30ID:pzz5pihD
とりあえず、落ち着けw
man mmap2
man mmap2
822816
2008/04/11(金) 23:01:18ID:1s5/4DVK >>821
>man mmap2
↓ですよね?
http://www.pinkdragon.net/doc_lib/contents/ja/linux_man/mmap2.2.html
Linux 2.3.31 以降で使用可能とありますが、この環境では定義されていないと言われます。
組込み系だからなんでしょうか・・・
それと馬本第3版のP437 15.2.6 RAMのマッピングを変更する に
「ramap_pfn_rangeがRAMを扱えないことは・・・」ってくだりがあります。
実際いま起きている問題はこれなんでしょうか?
ioremap_nocacheでReadする方法とダンプ比較したところ,mmapだと
0x00000000〜0x00800000 あたりまではちゃんとよめますが、
0x01000000になったとたん、0x00000000の値になってしまいます・・・
ioremap_nocacheでは0x01000000も見れるのに・・・
>man mmap2
↓ですよね?
http://www.pinkdragon.net/doc_lib/contents/ja/linux_man/mmap2.2.html
Linux 2.3.31 以降で使用可能とありますが、この環境では定義されていないと言われます。
組込み系だからなんでしょうか・・・
それと馬本第3版のP437 15.2.6 RAMのマッピングを変更する に
「ramap_pfn_rangeがRAMを扱えないことは・・・」ってくだりがあります。
実際いま起きている問題はこれなんでしょうか?
ioremap_nocacheでReadする方法とダンプ比較したところ,mmapだと
0x00000000〜0x00800000 あたりまではちゃんとよめますが、
0x01000000になったとたん、0x00000000の値になってしまいます・・・
ioremap_nocacheでは0x01000000も見れるのに・・・
2008/04/12(土) 04:09:25ID:CJCvWk/v
MTD使えばいいんじゃない?
phram.koとか
slram.koとか
phram.koとか
slram.koとか
2008/05/26(月) 23:35:38ID:ZMUO6bXW
タスクレットの中でsleep_on_timeoutって呼べないんですか?
なぜかカーネルパニックになってしまいます…
なぜかカーネルパニックになってしまいます…
2008/05/28(水) 19:14:20ID:eAKKlqpI
タスクレットからkill_fasync()呼びたいんですけど、
第一引数ってどこから持ってくればいいんでしょうか?
第一引数ってどこから持ってくればいいんでしょうか?
826login:Penguin
2008/06/13(金) 19:47:44ID:ngpRzev4 フリーオのデバイスドライバー書ける人が居たら神!
2008/06/13(金) 22:56:58ID:yAy4CW2H
玄箱用のは、あるだろ
828login:Penguin
2008/07/05(土) 05:09:39ID:+CtKxXwh あげあげ
2008/07/05(土) 08:11:05ID:d6Puhgue
ttp://pc11.2ch.net/test/read.cgi/linux/1213378360/
2008/07/05(土) 11:49:23ID:D1363wxr
やっぱり情報公開されてない物のドライバ造るのって無理がある?
Willcomスマートフォン端末でLinuxを動かすプロジェクト?があるのですが、
WS003SH、WSはPrismチップの無線LANを使用。
WS011SHではSharp独自のチップを使用した物のようです。
WS020SHは不明。
当方WS011SHの物の開発に興味があるのですが、難しいどころか情報の公開がされていない限りは
手すら付けられない状態でしょうか?
アドバイスよろしくお願いします。
Willcomスマートフォン端末でLinuxを動かすプロジェクト?があるのですが、
WS003SH、WSはPrismチップの無線LANを使用。
WS011SHではSharp独自のチップを使用した物のようです。
WS020SHは不明。
当方WS011SHの物の開発に興味があるのですが、難しいどころか情報の公開がされていない限りは
手すら付けられない状態でしょうか?
アドバイスよろしくお願いします。
831login:Penguin
2008/07/27(日) 04:17:46ID:JGvJfhtT copy_{to,from}_user()でユーザプロセスのアドレスを与えるところにカーネル空間のアドレスを与えるとどうなります?
やっぱりaccess_ok()で弾かれる?
やっぱりaccess_ok()で弾かれる?
832login:Penguin
2008/07/27(日) 08:01:26ID:Nq54nVAZ >>831
その程度、自分で確認しろ。
その程度、自分で確認しろ。
833login:Penguin
2008/08/21(木) 06:11:30ID:5vh0FBcx あげ
834login:Penguin
2008/09/17(水) 22:50:23ID:v0hV3n2N Linuxデバドラ移植の質問です。
雑誌の記事でx86Linuxデバドラを他CPUのLinuxに移植する際に、デバドラのソースが
x86に依存してて移植できないことを知りました。
どうやらx86プログラマが他のCPUへの移植性を考えずに開発したことが原因みたいです。
雑誌によるとデバドラの依存箇所は以下が多いようです。
・バイトオーダ
・アライメント
・I/Oアクセス
・タイミング
皆様に質問ですが、このようなx86に依存したLinuxデバドラが落ちている場所を
ご存じないでしょうか?
また、根本的なことですがx86Linuxデバドラを移植したり、移植しようとしたが
x86に依存してて大変だったという案件は多いのでしょうか?
どうぞよろしくお願いいたします。
雑誌の記事でx86Linuxデバドラを他CPUのLinuxに移植する際に、デバドラのソースが
x86に依存してて移植できないことを知りました。
どうやらx86プログラマが他のCPUへの移植性を考えずに開発したことが原因みたいです。
雑誌によるとデバドラの依存箇所は以下が多いようです。
・バイトオーダ
・アライメント
・I/Oアクセス
・タイミング
皆様に質問ですが、このようなx86に依存したLinuxデバドラが落ちている場所を
ご存じないでしょうか?
また、根本的なことですがx86Linuxデバドラを移植したり、移植しようとしたが
x86に依存してて大変だったという案件は多いのでしょうか?
どうぞよろしくお願いいたします。
2008/09/17(水) 23:58:51ID:3YmhTjsY
2008/09/18(木) 00:34:30ID:YTkXriLK
837834
2008/09/18(木) 00:34:38ID:csSd+QEz カーネルソース内にあるんですね!
知りませんでした;
私は初心者でよく知らないんですが、てっきりカーネルソール内のコードって
移植性をちゃんと考えてあって(arch/以外)、管理されていると思ってました。
むしろ、カーネルソース外の開発(企業or個人)で公開されているドライバに
あるのかと思ってました。
知りませんでした;
私は初心者でよく知らないんですが、てっきりカーネルソール内のコードって
移植性をちゃんと考えてあって(arch/以外)、管理されていると思ってました。
むしろ、カーネルソース外の開発(企業or個人)で公開されているドライバに
あるのかと思ってました。
2008/09/18(木) 10:25:28ID:tEXQNL4k
>>834
ふつー開発者の持ってるCPUでしかテストしないよ。
tg3とかe1000とかはNEC(ia64)とかIBM(powerpc)とかが
頑張って自分とこのハードで動くようにしてるけど、
個人でハックしてるものはたいていx86だけ。
ふつー開発者の持ってるCPUでしかテストしないよ。
tg3とかe1000とかはNEC(ia64)とかIBM(powerpc)とかが
頑張って自分とこのハードで動くようにしてるけど、
個人でハックしてるものはたいていx86だけ。
2008/09/19(金) 05:32:38ID:PmgUOzFO
まあ、過去の経験からすると
・USBターゲット - ほとんど手を入れる必要無し
・PCI - そんなに苦労することはない
・CPU直結 - 健闘を祈る
てところですかねえ。
・USBターゲット - ほとんど手を入れる必要無し
・PCI - そんなに苦労することはない
・CPU直結 - 健闘を祈る
てところですかねえ。
840login:Penguin
2008/11/09(日) 10:59:58ID:QBZrgAJi age
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【米中】トランプ氏、「中国側へ武器売却」を提案 対台湾懸念で 米大使明かす [煮卵★]
- 【片山さつき財務相】「挑戦なき国に発展はなし」「最後のチャンス」★3 [ぐれ★]
- 【x】イーロン・マスク氏がX上で日本のテレビ局買収について質問し話題に「日本の政府は許可するでしょうか?」 (東スポ) [少考さん★]
- 【🚹】40代男性をコンビニ店員の男(39)が盗撮か トイレ個室の上からスマホ…「用を足しているところを盗撮された」 鹿児島 [nita★]
- スマイリーキクチ 電車内の男を嘆く「惨めな人生だと思う」 [少考さん★]
- 「路上で突然突き飛ばされたり、殺害予告が届いたりする日本での日常のほうが、私には怖くて危険」渡邊渚が綴る「世界を旅する理由」 [Ailuropoda melanoleuca★]
- jcだよ質問ある??
- 【高市悲報】東京新聞「『みんなで大家さん』は自己責任と言えるのか?🤨」 [616817505]
- 卵かけご飯を先に作って炒める炒飯はパサパサになる←これ
- 【速報】亜月ねね さんの自宅、近くの神社から丸見え [841411289]
- 日本人親「息子がチクリ魔で辛い。クラスの打ち上げを教師に密告して台無しにしたらしい」 [162723853]
- 高市首相の国連の敵国条項削除要求、中国の反発も想定内だった… 次々に中国を挑発していく方針に転換か [668024367]