Suche senden
Hochladen
ロボットシステム学2015年第13回
•
Als PPTX, PDF herunterladen
•
4 gefällt mir
•
3,534 views
Ryuichi Ueda
Folgen
デバイスドライバの作り方の概説
Weniger lesen
Mehr lesen
Technologie
Diashow-Anzeige
Melden
Teilen
Diashow-Anzeige
Melden
Teilen
1 von 18
Jetzt herunterladen
Empfohlen
ロボットシステム学2015年第6回
ロボットシステム学2015年第6回
Ryuichi Ueda
ロボットシステム学2015年第7回
ロボットシステム学2015年第7回
Ryuichi Ueda
ロボットシステム学2015年第9回
ロボットシステム学2015年第9回
Ryuichi Ueda
ロボットシステム学2015年第14回
ロボットシステム学2015年第14回
Ryuichi Ueda
第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」
第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」
Ryuichi Ueda
ロボットシステム学2015年第12回
ロボットシステム学2015年第12回
Ryuichi Ueda
ロボットシステム学2015第3回
ロボットシステム学2015第3回
Ryuichi Ueda
ロボットシステム学2015年第11回
ロボットシステム学2015年第11回
Ryuichi Ueda
Empfohlen
ロボットシステム学2015年第6回
ロボットシステム学2015年第6回
Ryuichi Ueda
ロボットシステム学2015年第7回
ロボットシステム学2015年第7回
Ryuichi Ueda
ロボットシステム学2015年第9回
ロボットシステム学2015年第9回
Ryuichi Ueda
ロボットシステム学2015年第14回
ロボットシステム学2015年第14回
Ryuichi Ueda
第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」
第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」
Ryuichi Ueda
ロボットシステム学2015年第12回
ロボットシステム学2015年第12回
Ryuichi Ueda
ロボットシステム学2015第3回
ロボットシステム学2015第3回
Ryuichi Ueda
ロボットシステム学2015年第11回
ロボットシステム学2015年第11回
Ryuichi Ueda
ロボットシステム学2015年第8回
ロボットシステム学2015年第8回
Ryuichi Ueda
ロボットシステム学2015第2回
ロボットシステム学2015第2回
Ryuichi Ueda
ロボットシステム学2015第4回
ロボットシステム学2015第4回
Ryuichi Ueda
OS development beginner version 20160611
OS development beginner version 20160611
Langur
Making Editor written in Ruby version 20160611
Making Editor written in Ruby version 20160611
Langur
小ネタ:Android上でroscoreを走らせてみた
小ネタ:Android上でroscoreを走らせてみた
Ryodo Tanaka
Rosjp37 live ros
Rosjp37 live ros
Tatsuya Fukuta
FOLIOのコードを動かしてみた
FOLIOのコードを動かしてみた
Futoshi Tanuma
簡単に楽しく始めよう!Raspberry Pi入門
簡単に楽しく始めよう!Raspberry Pi入門
Hideki Aoshima
NCSA httpdとCGIの思い出
NCSA httpdとCGIの思い出
Mitsunori Satomi
RaspberryPi Zero W で FreeBSD を動かす方法にやっと気がついたのと、USB OTGも動いてよかった。
RaspberryPi Zero W で FreeBSD を動かす方法にやっと気がついたのと、USB OTGも動いてよかった。
Suzuki Mitsuhiro
mruby for embedded systems
mruby for embedded systems
masayoshi takahashi
楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~
楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~
Hideki Aoshima
rustdef: Rust on jupyter notebook
rustdef: Rust on jupyter notebook
emakryo
フルスクラッチ自作OS(OS5)の紹介
フルスクラッチ自作OS(OS5)の紹介
Yuma Ohgami
Minio on Raspberry Pi
Minio on Raspberry Pi
Masafumi Ohta
CD-ROMドライブを身につけよう
CD-ROMドライブを身につけよう
Akira Ouchi
意外に作れる!?はじめての研究室内プライベートクラウド
意外に作れる!?はじめての研究室内プライベートクラウド
Takuma Nakajima
Rubyと機械学習の現状
Rubyと機械学習の現状
Aki Ariga
ret2libcとpopretで初等的BOF攻撃
ret2libcとpopretで初等的BOF攻撃
monochrojazz
ロボットシステム学2015年第5回
ロボットシステム学2015年第5回
Ryuichi Ueda
Particle Filter on Episode
Particle Filter on Episode
Ryuichi Ueda
Weitere ähnliche Inhalte
Was ist angesagt?
ロボットシステム学2015年第8回
ロボットシステム学2015年第8回
Ryuichi Ueda
ロボットシステム学2015第2回
ロボットシステム学2015第2回
Ryuichi Ueda
ロボットシステム学2015第4回
ロボットシステム学2015第4回
Ryuichi Ueda
OS development beginner version 20160611
OS development beginner version 20160611
Langur
Making Editor written in Ruby version 20160611
Making Editor written in Ruby version 20160611
Langur
小ネタ:Android上でroscoreを走らせてみた
小ネタ:Android上でroscoreを走らせてみた
Ryodo Tanaka
Rosjp37 live ros
Rosjp37 live ros
Tatsuya Fukuta
FOLIOのコードを動かしてみた
FOLIOのコードを動かしてみた
Futoshi Tanuma
簡単に楽しく始めよう!Raspberry Pi入門
簡単に楽しく始めよう!Raspberry Pi入門
Hideki Aoshima
NCSA httpdとCGIの思い出
NCSA httpdとCGIの思い出
Mitsunori Satomi
RaspberryPi Zero W で FreeBSD を動かす方法にやっと気がついたのと、USB OTGも動いてよかった。
RaspberryPi Zero W で FreeBSD を動かす方法にやっと気がついたのと、USB OTGも動いてよかった。
Suzuki Mitsuhiro
mruby for embedded systems
mruby for embedded systems
masayoshi takahashi
楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~
楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~
Hideki Aoshima
rustdef: Rust on jupyter notebook
rustdef: Rust on jupyter notebook
emakryo
フルスクラッチ自作OS(OS5)の紹介
フルスクラッチ自作OS(OS5)の紹介
Yuma Ohgami
Minio on Raspberry Pi
Minio on Raspberry Pi
Masafumi Ohta
CD-ROMドライブを身につけよう
CD-ROMドライブを身につけよう
Akira Ouchi
意外に作れる!?はじめての研究室内プライベートクラウド
意外に作れる!?はじめての研究室内プライベートクラウド
Takuma Nakajima
Rubyと機械学習の現状
Rubyと機械学習の現状
Aki Ariga
ret2libcとpopretで初等的BOF攻撃
ret2libcとpopretで初等的BOF攻撃
monochrojazz
Was ist angesagt?
(20)
ロボットシステム学2015年第8回
ロボットシステム学2015年第8回
ロボットシステム学2015第2回
ロボットシステム学2015第2回
ロボットシステム学2015第4回
ロボットシステム学2015第4回
OS development beginner version 20160611
OS development beginner version 20160611
Making Editor written in Ruby version 20160611
Making Editor written in Ruby version 20160611
小ネタ:Android上でroscoreを走らせてみた
小ネタ:Android上でroscoreを走らせてみた
Rosjp37 live ros
Rosjp37 live ros
FOLIOのコードを動かしてみた
FOLIOのコードを動かしてみた
簡単に楽しく始めよう!Raspberry Pi入門
簡単に楽しく始めよう!Raspberry Pi入門
NCSA httpdとCGIの思い出
NCSA httpdとCGIの思い出
RaspberryPi Zero W で FreeBSD を動かす方法にやっと気がついたのと、USB OTGも動いてよかった。
RaspberryPi Zero W で FreeBSD を動かす方法にやっと気がついたのと、USB OTGも動いてよかった。
mruby for embedded systems
mruby for embedded systems
楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~
楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~
rustdef: Rust on jupyter notebook
rustdef: Rust on jupyter notebook
フルスクラッチ自作OS(OS5)の紹介
フルスクラッチ自作OS(OS5)の紹介
Minio on Raspberry Pi
Minio on Raspberry Pi
CD-ROMドライブを身につけよう
CD-ROMドライブを身につけよう
意外に作れる!?はじめての研究室内プライベートクラウド
意外に作れる!?はじめての研究室内プライベートクラウド
Rubyと機械学習の現状
Rubyと機械学習の現状
ret2libcとpopretで初等的BOF攻撃
ret2libcとpopretで初等的BOF攻撃
Andere mochten auch
ロボットシステム学2015年第5回
ロボットシステム学2015年第5回
Ryuichi Ueda
Particle Filter on Episode
Particle Filter on Episode
Ryuichi Ueda
確率ロボティクス第六回
確率ロボティクス第六回
Ryuichi Ueda
第21回シェル芸勉強会イントロ
第21回シェル芸勉強会イントロ
Ryuichi Ueda
確率ロボティクス第13回
確率ロボティクス第13回
Ryuichi Ueda
確率ロボティクス第三回
確率ロボティクス第三回
Ryuichi Ueda
オープンソースとロボット
オープンソースとロボット
Ryuichi Ueda
確率ロボティクス第二回
確率ロボティクス第二回
Ryuichi Ueda
フィルタドライバ入門
フィルタドライバ入門
firewood
Andere mochten auch
(9)
ロボットシステム学2015年第5回
ロボットシステム学2015年第5回
Particle Filter on Episode
Particle Filter on Episode
確率ロボティクス第六回
確率ロボティクス第六回
第21回シェル芸勉強会イントロ
第21回シェル芸勉強会イントロ
確率ロボティクス第13回
確率ロボティクス第13回
確率ロボティクス第三回
確率ロボティクス第三回
オープンソースとロボット
オープンソースとロボット
確率ロボティクス第二回
確率ロボティクス第二回
フィルタドライバ入門
フィルタドライバ入門
Ähnlich wie ロボットシステム学2015年第13回
30分で分かる!OSの作り方 ver.2
30分で分かる!OSの作り方 ver.2
uchan_nos
WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3
mganeko
名古屋CV_ROSによるロボットソフトウェア開発の準備
名古屋CV_ROSによるロボットソフトウェア開発の準備
ssuser6b6663
qpstudy 2014.04 ミドルウェア設計の勘所
qpstudy 2014.04 ミドルウェア設計の勘所
Masahiro NAKAYAMA
Makeblockでキミだけの最強ロボットをつくろう!
Makeblockでキミだけの最強ロボットをつくろう!
nmrmsys
できる!KickstartとAnsible!
できる!KickstartとAnsible!
Wataru NOGUCHI
2016 summercamp RTM-ROS相互運用とJSKでの取り組み
2016 summercamp RTM-ROS相互運用とJSKでの取り組み
openrtm
お手軽マイコンを用いた 水槽管理システム あくあたんの紹介
お手軽マイコンを用いた 水槽管理システム あくあたんの紹介
Mizuno Osamu
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
Takuya ASADA
Out systemsaichiusermeeting#5 lt2
Out systemsaichiusermeeting#5 lt2
潤司 渡部
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
健一 辰濱
OWASP_Kyushu_Local_Chapter_Meeting_7th
OWASP_Kyushu_Local_Chapter_Meeting_7th
ShuyaMotouchi1
Japan Robot Week 2016 RTM講習会 第3部
Japan Robot Week 2016 RTM講習会 第3部
openrtm
オープンソースNW監視ツールのご紹介
オープンソースNW監視ツールのご紹介
OSSラボ株式会社
OS入門
OS入門
Shuntaro Saiba
災害監視無人機システムと 災害監視無人機システムとFOSS4Gとの関わり ((独)宇宙航空研究開発機構 都甲 様)
災害監視無人機システムと 災害監視無人機システムとFOSS4Gとの関わり ((独)宇宙航空研究開発機構 都甲 様)
OSgeo Japan
Raspberry Pi勉強会(前編)-京大機械研究会
Raspberry Pi勉強会(前編)-京大機械研究会
Naoki Matsumoto
ROSチュートリアル ROBOMECH2018
ROSチュートリアル ROBOMECH2018
Ryuichi Ueda
東京工業大学「ロボット技術・ロボットミドルウェア」
東京工業大学「ロボット技術・ロボットミドルウェア」
NoriakiAndo
ET West 2017資料:mruby/c、mrubyで実現される効率的なIoT開発
ET West 2017資料:mruby/c、mrubyで実現される効率的なIoT開発
shimane-itoc
Ähnlich wie ロボットシステム学2015年第13回
(20)
30分で分かる!OSの作り方 ver.2
30分で分かる!OSの作り方 ver.2
WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3
名古屋CV_ROSによるロボットソフトウェア開発の準備
名古屋CV_ROSによるロボットソフトウェア開発の準備
qpstudy 2014.04 ミドルウェア設計の勘所
qpstudy 2014.04 ミドルウェア設計の勘所
Makeblockでキミだけの最強ロボットをつくろう!
Makeblockでキミだけの最強ロボットをつくろう!
できる!KickstartとAnsible!
できる!KickstartとAnsible!
2016 summercamp RTM-ROS相互運用とJSKでの取り組み
2016 summercamp RTM-ROS相互運用とJSKでの取り組み
お手軽マイコンを用いた 水槽管理システム あくあたんの紹介
お手軽マイコンを用いた 水槽管理システム あくあたんの紹介
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
Out systemsaichiusermeeting#5 lt2
Out systemsaichiusermeeting#5 lt2
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
OWASP_Kyushu_Local_Chapter_Meeting_7th
OWASP_Kyushu_Local_Chapter_Meeting_7th
Japan Robot Week 2016 RTM講習会 第3部
Japan Robot Week 2016 RTM講習会 第3部
オープンソースNW監視ツールのご紹介
オープンソースNW監視ツールのご紹介
OS入門
OS入門
災害監視無人機システムと 災害監視無人機システムとFOSS4Gとの関わり ((独)宇宙航空研究開発機構 都甲 様)
災害監視無人機システムと 災害監視無人機システムとFOSS4Gとの関わり ((独)宇宙航空研究開発機構 都甲 様)
Raspberry Pi勉強会(前編)-京大機械研究会
Raspberry Pi勉強会(前編)-京大機械研究会
ROSチュートリアル ROBOMECH2018
ROSチュートリアル ROBOMECH2018
東京工業大学「ロボット技術・ロボットミドルウェア」
東京工業大学「ロボット技術・ロボットミドルウェア」
ET West 2017資料:mruby/c、mrubyで実現される効率的なIoT開発
ET West 2017資料:mruby/c、mrubyで実現される効率的なIoT開発
Mehr von Ryuichi Ueda
第27回ロボティクスシンポジアスライド
第27回ロボティクスシンポジアスライド
Ryuichi Ueda
シェル・ワンライナー160本ノック
シェル・ワンライナー160本ノック
Ryuichi Ueda
日本ロボット学会第139回ロボット工学セミナー
日本ロボット学会第139回ロボット工学セミナー
Ryuichi Ueda
シェル芸勉強会と会場の話
シェル芸勉強会と会場の話
Ryuichi Ueda
移動ロボットのナビゲーション
移動ロボットのナビゲーション
Ryuichi Ueda
PythonとJupyter Notebookを利用した教科書「詳解確率ロボティクス」の企画と執筆
PythonとJupyter Notebookを利用した教科書「詳解確率ロボティクス」の企画と執筆
Ryuichi Ueda
第45回シェル芸勉強会オープニングスライド
第45回シェル芸勉強会オープニングスライド
Ryuichi Ueda
bash(の変な使い方)update
bash(の変な使い方)update
Ryuichi Ueda
第41回シェル芸勉強会 午後オープニング
第41回シェル芸勉強会 午後オープニング
Ryuichi Ueda
Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...
Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...
Ryuichi Ueda
20181113_子ども夢ロボット&トーク
20181113_子ども夢ロボット&トーク
Ryuichi Ueda
第37回シェル芸勉強会イントロ
第37回シェル芸勉強会イントロ
Ryuichi Ueda
シェル芸勉強会にみる、コミュニティを通じたIT学習
シェル芸勉強会にみる、コミュニティを通じたIT学習
Ryuichi Ueda
poster of PFoE used in ICRA 2018
poster of PFoE used in ICRA 2018
Ryuichi Ueda
Robot frontier lesson3 2018
Robot frontier lesson3 2018
Ryuichi Ueda
Robot frontier lesson2 2018
Robot frontier lesson2 2018
Ryuichi Ueda
Robot frontier lesson1 2018
Robot frontier lesson1 2018
Ryuichi Ueda
第34回シェル芸勉強会
第34回シェル芸勉強会
Ryuichi Ueda
2017年10月18日 シェル芸勉強会 meets バイオインフォマティクス vol.1 スライド
2017年10月18日 シェル芸勉強会 meets バイオインフォマティクス vol.1 スライド
Ryuichi Ueda
第31回シェル芸勉強会スライド
第31回シェル芸勉強会スライド
Ryuichi Ueda
Mehr von Ryuichi Ueda
(20)
第27回ロボティクスシンポジアスライド
第27回ロボティクスシンポジアスライド
シェル・ワンライナー160本ノック
シェル・ワンライナー160本ノック
日本ロボット学会第139回ロボット工学セミナー
日本ロボット学会第139回ロボット工学セミナー
シェル芸勉強会と会場の話
シェル芸勉強会と会場の話
移動ロボットのナビゲーション
移動ロボットのナビゲーション
PythonとJupyter Notebookを利用した教科書「詳解確率ロボティクス」の企画と執筆
PythonとJupyter Notebookを利用した教科書「詳解確率ロボティクス」の企画と執筆
第45回シェル芸勉強会オープニングスライド
第45回シェル芸勉強会オープニングスライド
bash(の変な使い方)update
bash(の変な使い方)update
第41回シェル芸勉強会 午後オープニング
第41回シェル芸勉強会 午後オープニング
Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...
Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...
20181113_子ども夢ロボット&トーク
20181113_子ども夢ロボット&トーク
第37回シェル芸勉強会イントロ
第37回シェル芸勉強会イントロ
シェル芸勉強会にみる、コミュニティを通じたIT学習
シェル芸勉強会にみる、コミュニティを通じたIT学習
poster of PFoE used in ICRA 2018
poster of PFoE used in ICRA 2018
Robot frontier lesson3 2018
Robot frontier lesson3 2018
Robot frontier lesson2 2018
Robot frontier lesson2 2018
Robot frontier lesson1 2018
Robot frontier lesson1 2018
第34回シェル芸勉強会
第34回シェル芸勉強会
2017年10月18日 シェル芸勉強会 meets バイオインフォマティクス vol.1 スライド
2017年10月18日 シェル芸勉強会 meets バイオインフォマティクス vol.1 スライド
第31回シェル芸勉強会スライド
第31回シェル芸勉強会スライド
Kürzlich hochgeladen
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
Kürzlich hochgeladen
(9)
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
ロボットシステム学2015年第13回
1.
ロボットシステム学 第13回 上田隆一
2.
本日の内容 • デバイスドライバ – 例 •
延々と寿司のアイコンを吐き続ける「寿司デバイス」 • https://github.com/ryuichiueda/SushiDevice • UbuntuとRaspbian OSで動作確認済み • インストール方法、コードの中身 • udevについて 2016年1月14日 ロボットシステム学 2
3.
参考 • 米田聡, RaspberryPiで学ぶ
ARMデバイスドライバープログラ ミング, ソシム, 2014. • J. Corbet et al., Linuxデバイスドライバ第3版, O'reilly, 2005. • 動的メジャー番号割り当てとデバイスファイルの自動生成 | 迷える子羊の苦悩 – http://44781184.at.webry.info/201306/article_10.html 2016年1月14日 ロボットシステム学 3
4.
デバイスドライバ • 機器とユーザをつなぐもの • カーネルの一部として動作 –
「カーネルモジュール」という、カーネルに動的に 組み込めるものとしてビルド • インタフェースはデバイスファイル – $ ls -l /dev/ • 「メジャー番号」「マイナー番号」を持つ 2016年1月14日 ロボットシステム学 4
5.
使ってみましょう • insmod: カーネルモジュールを組み込むコマンド •
rmmod: カーネルモジュールを削除するコマンド 2016年1月14日 ロボットシステム学 5 $ git clone https://github.com/ryuichiueda/SushiDevice.git $ cd SushiDevice/ $ make $ sudo insmod sushi.ko $ sudo chmod 666 /dev/sushi0 ###使ってみる### $ cat /dev/sushi0 | head -n 3 🍣 🍺 🍣 🍣 ###削除### $ sudo rmmod sushi
6.
デバイスドライバの役割 • ユーザにハードを使わせる – ユーザランドのプログラムでも可能だが、 いちいちroot権限で動かさないといけない •
例: 第7回のプログラム • デバイスファイルのパーミッションでアクセス制御 • 機械の操作をファイル入出力に置き換え – 何度も講義で言っている「抽象化」 2016年1月14日 ロボットシステム学 6
7.
デバイスドライバを作る際の注意点 • libcなどの普通の関数が使えない – printfやmalloc、randあたりが全く使えない –
カーネル用のものを使う • バグを埋め込むと最悪の場合、再起動 – カーネル空間で動くのでカーネルパニックが起こる 2016年1月14日 ロボットシステム学 7
8.
作り方 • デバイスの登録、読み書き、削除に 対応した処理を書く – insmod時:
module_initマクロに登録した関数が 実行されるので関数の中身を実装 – rmmod時: module_exitマクロに登録した関数が 実行されるので関数の中身を実装 – 読み書き等: • それぞれに対応する関数を書いて file_operationsという構造体に登録 2016年1月14日 ロボットシステム学 8
9.
module_init • module_initマクロ – insmodされた時の処理を書いた関数を渡す (メジャー番号取得とデバイスファイルを自動で行う場合の例) –
module_initに渡す関数で行うこと(コード) • メジャー番号の取得(自動取得の場合) • カーネルにドライバの情報の構造体をぶら下げる • /sys/class/sushi、/dev/sushi0等インタフェースを作ってもらう – 注意: デバイスファイルを手動で作らなければならない デバイスドライバも存在 • 手動で作る例: $ sudo mknod /dev/sushi メジャー番号 マイナー番号 2016年1月14日 ロボットシステム学 9
10.
rmmod / module_exit •
デバイスドライバをカーネルから外す – ユーザから見ると、/sys/class/と/dev/から – 関係するファイル、ディレクトリが消える – module_exitマクロに処理を書いた関数を渡す 2016年1月14日 ロボットシステム学 10
11.
デバイスファイルを通じた読み書き • ユーザ空間とカーネル空間でデータを授受 – file_operations構造体の •
readがユーザから見た読み込み – copy_to_userでユーザ空間に文字列を転送 • writeがユーザから見た書き込み – copy_from_userでユーザ空間から文字列を受け取り 2016年1月14日 ロボットシステム学 11
12.
copy_to_user • static inline
unsigned long __must_check copy_to_user(void __user *to, const void *from, unsigned long n) – (/usr/src/<ヘッダのディレクトリ>/arch/x86/include/asm/uaccess.h) • to: ユーザ空間のバッファのポインタ • from: カーネル空間に自分で用意するバッファのポインタ • n: 転送するバイト数 • 返り値: コピーできなかったバイト数 • 実際の使い方はコードで 2016年1月14日 ロボットシステム学 12
13.
copy_from_user • static inline
unsigned long __must_check copy_from_user(void *to, const void __user *from, unsigned long n) – (/usr/src/<ヘッダのディレクトリ >/arch/x86/include/asm/uaccess.h) – to, from, n: copy_to_userと一緒 – 返り値: コピーできなかったバイト数 2016年1月14日 ロボットシステム学 13
14.
udev • デバイス管理ツール • 動的な処理 •
デーモンとして動作 • udev以前 – メジャー番号等が動的に得られない – ドライバをインストールしても デバイスファイルができない – ・・・ 2016年1月14日 ロボットシステム学 14
15.
udevadmによる観察 • insmod時 • rmmod時 2016年1月14日
ロボットシステム学 15
16.
udevの設定 • /etc/udev/rules.d/にファイルを置く – Ubuntu,
Raspbian共に – ファイル名は「<優先度>-<対象>.rules」 – 基本: 「==」で条件をマッチさせて「=」で設定 • 反映 – $ sudo udevadm control --reload 2016年1月14日 ロボットシステム学 16 $ cat /etc/udev/rules.d/89-sushi.rules #rules for sushi KERNEL=="sushi0",SUBSYSTEM=="sushi",ACTION=="add",MODE="0666"
17.
機器の操作 • 例 – 第7回で行ったLチカのデバイスドライバ版 •
使うもの – request_mem_region • /dev/memのopenの代わり • 使いたい物理メモリ領域の予約 – ioremap_nocache • mmapの代わり 2016年1月14日 ロボットシステム学 17
18.
講義でやっていないこと • USB等 • 排他 •
一つのドライバで複数のデバイスファイル • read, write以外の方法 • ioctl – フォーマット等読み書きとは別の操作 • ブロックデバイス • ・・・ 2016年1月14日 ロボットシステム学 18
Jetzt herunterladen