PRODUCTS&SERVICES

Products
Services
Linuxデバイスドライバ開発講座
Linuxシステムを製品に組み込むあたり、デバイスドライバ開発は大きな比重を占めています。実際にデバイスドライバを開発する場合、使用するCPUや周辺デバイスを最大限に活用するためにLinuxカーネルと、メモリ、CPUやI/Oとの管理や制御の関係、ソースコードの構造などLinuxの一般的な事項に加え、組み込み機器特有の設定や開発環境作りなど、幅広い知識や開発スキルが求められます。本講座はこれから取り組む方々も対象とし、講義と実習でLinuxのデバイスドライバ開発の基本的な知識とそれを応用するためのノウハウを取得いただけるように構成しています(3日間コース)。
2016年1月から内容を一部改訂しています。
  • デバイスツリー
    今、注目をあつめるデバイスツリー。その概要と実習を強化しました。
  • 実習につかう機器をBeagelBoardから BeagleBone Blackに変更
    Armadillo-440は引き続き使用します。
    特典も継続しています。
内容
今回のデバイスドライバ開発講座は、株式会社アットマークテクノ様にご協力いただきArmadillo-440液晶モデル開発キットをメイン教材とした特別講座となります。
 1日目 Linuxデバイスドライバ開発の基本的事項の解説と実習
  • Linuxでは、カーネルとデバイスドライバの関係はどうなっているのか、デバイスドライバのソースコードはどのような構造なのか、などの概要から、デバイスドライバ登録関数やメソッドについて、デバイスへのアクセスの実習、割り込みのコーディング実習に至るまで、必要な要素を網羅しデバイスドライバの全体的なイメージを理解いただきます。
  •  2日目 組み込みLinuxの開発環境の構築とデバイスドライバ開発
  • ホストマシンに装備される各サービス(dhcpd、tftp、nfsマウント、minicom)の設定、
    クロスツールチェーンの配備、ターゲットボードのカーネル、ルートファイルシステムの配備の各方法、手順、および、デバイスツリーについて、解説します。
    実習では、開発環境を構築し、ターゲットボードを起動した後、LEDのioctl制御、ユーザーボタンの GPIO制御、カーネルへスタティックドライバの組み込みなどを行ない「組み込みLinuxのデバイスドライバ開発とは」ということを、体験を通して習得いただきます。
  •  3日目 LinuxカーネルのメモリやI/Oの管理と制御、デバイスドライバの実装と動作
  • Linuxの仮想メモリ方式 (物理、論理、仮想、バス)とそれにもとづくメモリアドレス空間へのアクセス方法、CPUキャッシュや I/Oなどの、ハードウェア環境を考慮したLinuxカーネル機構およびデバイスドライバの実装、デバイスツリー修正によるsysfsからのアクセスについてなど、基本的でありながら、アーキテクチャと Linuxカーネル装備との関連を横断的に学ぶ必要のある事項について、講義と実習を通し習得いただきます。
  • 使用するターゲットボード
    - Armadillo-440 (Freescale i.MX25)
    - BeagleBone Black (AM3358BZCZ100)
    実習内容にそって2つのボードを利用します。

    対象
    - Linuxに関する基本的知識をお持ちの方
    - C言語による開発経験のあるソフトウェア開発者
    - これからデバイスドライバ開発を始められる方
    特典1:
    受講費用 180,000円 (消費税別)
    トレーニング受講者に対して実習で使用する「Armadillo-440 液晶モデル開発セット(標準価格48,000円相当)」1台をお持ち帰りいただきます。
    特典2:
    組み込みLinux実践講座(Armadillo編)を受講いただいた方は140,000円(消費 税別)で受講いただけます。

    日程
    1日目:基礎編
    [ 講義 ]
    Linuxデバイスドライバの特徴、分類、スタティックとモジュール化など、Linuxデバイスドライバの基本的事項を解説します。
  • デバイスドライバの概要
  • デバイスドライバの分類 (キャラクタ型/ ブロック型/ ネットワークインタフェース)
  • ローダブルモジュール、スタティックリンクのドライバについて
  • デバイスドライバ登録関数とメソッドについて
  • カーネル2.6以降のデバイスドライバ機能として、Linuxデバイスモデルについて (USB probeの実装アウトライン、sysfs参照の紹介)

  • [ 実習 ]
    講義の内容に基づいてデバイスドライバ開発における基本的事項について実習します。
  • モジュール作成、登録、削除の実習
  • デバイスへのアクセス実習 (copy_to_user, copy_from_user関数の使用)
  • メソッド使用実習 (open,ioctl,read,close)
  • 割り込みの登録 (/proc/interruptsの確認)

  • 2日目:実践と応用編
    [ 講義 ]
    組み込みLinux のデバイスドライバ開発の環境構築について、ターゲットボードの起動までの具体的、実践的手順、および、デバイスツリーについて解説します。
  • クロス開発環境の整備について (クロスツールチェーン、ブートローダ)
  • ホストマシンの設定について (bootp/dhcpd、tftp、nfs マウントの各サービス設定、minicomによるターゲットマシンとのシリアル通信)
  • カーネルの配備 (make menuconfigによる設定、再コンパイル)
  • ルートファイルシステムの配備 (IDEの利用、クロスツールチェーンの配備)
  • デバイスツリー (概要、dtbファイルの生成とロードについて、dtsファイルの記述について)

  • [ 実習 ]
    Armadillo-440、BeagleBone Blackをターゲットボードとし、実際に各々の開発環境を構築します。さらにデバイスドライバ開発について実践的な実習を行ないます。
  • ターゲットボードの起動
  • LED のioctl 制御の実習
  • ユーザーボタンの GPIO制御の実習
  • カーネルへのスタティックな組み込み方法

  • 3日目:先進編
    [ 講義 ]
    Linux カーネルが装備する、メモリやI/Oの管理や制御の機構に注目し、デバイスドライバがどのように実装され動作するかについて、講義と実習を行ないます。
  • Linux アドレス空間へのアクセスについて (mmap、Direct I/O、VMAからユーザ空間へのアクセス、 DMAなど)
  • Linux の仮想メモリ方式、メモリアクセスの装備
  • ハードウェア通信の装備と実装について (port-mapped vs memory-mapped I/O)
  • キャッシュ制御について (write-back、write-through、clean、invalidate など)

  • [ 実習 ]
    講義の内容に基づいてデバイスドライバの実装を参照や使用した実習を行ないます。
  • mmap() 動作の確認 (ドライバソース、アプリケーション、 /proc/[PID]/maps)
  • GPIO ドライバ応用 (I/Oメモリとメモリバリアによるアクセス、排他制御やlinked listなどの活用、デバイスツリー修正によるsysfsアクセス確認)

  •  


     
    LinuxLink

    Linuxを開発し製品に組み込むために必要となるソフトウェア、各種ツールそしてドキュメントが用意されており、組み込みLinux開発を始めたばかりの開発者からエキスパートまで、幅広く利用いただけます。


    Warp!!Warp!!

    瞬時に起動 驚きの速さ その感覚はまさに“ワープ(Warp)”斬新な高速起動ソリューション Warp!!の速さを体感ください。サポートアーキテクチャも拡充。


    LL-rescueLL-rescue

    (Lineo Linux-rescue:エルエルレスキュー)Linux搭載の製品開発において発生する様々な課題/問題を解消するためのソリューションです。


    VzetVzet
    Linuxシステムは、複数のプロセスで構成される多くのアプリケーションが動作しており、“Vzet”は、このプロセス(スレッド)の『振る舞い』を『ビジュアルに表示』することを可能にします。


    Timesys    Mimer   MITSUBISHI   Belcarra

    ARM        Freescale        Renesas       jla         Linux Fundation


    Copyright © 2009 Lineo Solutions, Inc. All rights reserved.