#author("2021-02-23T00:38:51+00:00","default:admin","admin") #author("2021-02-23T00:39:58+00:00","default:admin","admin") -[[The Linux driver implementer’s API guide:https://www.kernel.org/doc/html/v4.14/driver-api/index.html]] -[[Linuxドライバのはなし:http://www.silex.jp/blog/wireless/2015/08/linux.html]] -[[Linuxでデバイスドライバを作る:https://qiita.com/butada/items/1a230b942f264951b337]] -[[プロジェクト演習 2 Linux プログラミング:http://www.sic.shibaura-it.ac.jp/~yamaken/docs/linux.pdf]] *Frame Buffer [#h5838474] -[[Frame Buffer Library:https://www.kernel.org/doc/html/v4.14/driver-api/frame-buffer.html]] ***fb_info [#c2bb7cff] ***fb_var_screeninfo [#db2260bc] ***fb_fix_screeninfo [#v95949b8] ***fb_monospecs [#j445692c] ***Simple Framebuffer [#ce0becaa] -[[Simple Framebuffer:https://www.kernel.org/doc/Documentation/devicetree/bindings/display/simple-framebuffer.txt]] -[[simple-framebuffer.yaml:https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next/+/refs/heads/akpm-base/Documentation/devicetree/bindings/display/simple-framebuffer.yaml]] -[[Simple framebufferを有効にする:http://se.hatenablog.jp/entry/2014/11/19/081514]] -[[ZYBO26 (Linux + simple framebuffer でX Windowを動かすまで):https://bravo-fpga.blogspot.com/2016/12/zybo26-linux-simple-frame-buffer-x.html]] ***Deferred IO [#mbcedbe2] -[[Kernel .config file lacks CONFIG_FB_DEFERRED_IO:https://elinux-minnowboard.elinux.narkive.com/WQXedAEJ/kernel-config-file-lacks-config-fb-deferred-io]] -[[fbdev, mm: Deferred IO support:https://lwn.net/Articles/223751/]] -[[Running X on a Logitech G19 LCD:https://wiki.gentoo.org/wiki/Running_X_on_a_Logitech_G19_LCD]] ... .config に CONFIG_FB_DEFERRED_IO を追加する方法が記載されている **fbtft [#b4a8c93a] -液晶に合わせて派生バージョンがある -[[notro/fbtft:https://github.com/notro/fbtft]] ... 本家? -[[devemin/fbtft:https://github.com/devemin/fbtft]] ... 細長LCD用 --[[マジョカアイリス細長液晶をラズパイで使う:https://qiita.com/devemin/items/9a3a3d40538b782b39d2]] ***ビルド [#j3a8892a] INSTALLATION Download kernel sources From Linux 3.15 cd drivers/video/fbdev git clone https://github.com/notro/fbtft.git Add to drivers/video/fbdev/Kconfig: source "drivers/video/fbdev/fbtft/Kconfig" Add to drivers/video/fbdev/Makefile: obj-y += fbtft/ *I2C [#a8bb2fc0] -[[Raspberry Pi でI2C:C言語プログラミング:http://d.hatena.ne.jp/penkoba/20131222/1387689702]] -[[I2C通信の技術説明とドライバ作成方法:https://www.toppers.jp/docs/ET2016_HD-1_002.pdf]] *プログラム [#p7c47810] **errno [#p09764ed] -[[エラー: UNIX プログラムでの errno:https://www.ibm.com/developerworks/jp/aix/library/au-errnovariable/index.html]] -[[演算子/errno/シグナル/システムコール 一覧表:http://sstea.blog.jp/prg/tables.html]] *モジュール [#c71d1697] -[[ドライバのロード・アンロード:http://linux-dvr.biz/archives/57]] -ドライバのロード # insmod hello.ko -ドライバがロードされたか確認 # asmod -ドライバのアンロード # rmmod hello *ライセンス [#m56ad70a] -静的リンク → GPL -動的リンク(insmod,modprobe) → ドライバ開発者が決められる