--- tags: 活動共筆 --- # 20210605 伴伴學:Fernando 從 Maker 工具出發認識 Linux 驅動程式 ## 簡介 什麼是伴伴學? 伴伴學 Accomdemy 是由一群來自科技圈、新創圈、教育圈的夥伴們自發性組成的自學組織。Accomdemy = Accompany + Academy,我們希望透過陪伴式學習的線上分享會,讓每個想自學的人在自學的路上有趣又不孤單! 臉書社團: https://www.facebook.com/groups/accomdemy 活動內容 活動將以 Raspberry Pi 4B 為示範平台介紹: devicetree、驅動程式與硬體配對的過程、字元驅動程式 (可能會以 I2C 當 demo 例子)、能夠取得的學習資源。 若時間許可的話,最後會展示以 bpftrace 跟 ftrace 去監視核心的行為。 ### 引導者 [Fernando ](https://www.facebook.com/profile.php?id=100001416766501) 第 12 屆 iT 邦幫忙鐵人賽: https://ithelp.ithome.com.tw/users/20129818 ### 時間 20210605 19:30 ~ ### 活動資訊 https://fb.me/e/2Mh5xa5eK ### 共筆 https://hackmd.io/hAvKrnVkRVaMc6ZlCXCtxw ### 活動過程中的亮點 ## 視訊紀錄 https://youtu.be/K4dh71VhPeA ## 聊天室記錄 ``` 19:35:08 From Andrew : 點右上角的檢視模式切換 19:35:17 From Andrew : 目前還沒有分享畫面 19:35:27 From Maggie : https://www.facebook.com/groups/accomdemy/ 19:35:32 From Maggie : 歡迎大家加入社團 19:35:40 From gary : 沒有聲音 19:35:49 From Maggie : https://hackmd.io/v1jFG5KhTnKX5gGKjtf8lg?view 19:35:53 From Maggie : 共筆抵家 19:36:49 From Maggie : 也歡迎大家把自己臉書連結分享到這兒 19:37:04 From Maggie : 蕉流蕉流 19:37:33 From Maggie : https://www.accomdemy.org/ 19:37:38 From Maggie : 官網抵家 19:37:55 From Maggie : 也怕大家留個資在臉書會有個資外洩 19:42:26 From Andrew : 進聊天室後 如果沒有要發言 記得要關靜音喔 (關閉麥克風 19:49:49 From 皮爸 : 我以為是八點才開始 19:50:19 From Maggie : 鴻旗自己也以為 哈哈哈 19:53:41 From 0xff05 : https://youtu.be/68osT1soAPM 19:59:36 From 鄭鴻旗 : https://bootlin.com/ 20:03:24 From 鄭鴻旗 : https://www.tenlong.com.tw/products/9781785280009 20:04:02 From 李冠廷 : /proc 20:04:03 From Waylin Ch : PC現在好像也沒用device tree? 20:04:28 From tommy : https://www.nxp.com/docs/en/application-note/AN5125.pdf device tree 可以看vender的技術文件 20:06:30 From barsan : https://www.itread01.com/content/1529343617.html 20:13:52 From 李冠廷 : 多型 20:17:07 From 0xff05 : https://ithelp.ithome.com.tw/articles/10244815 20:17:45 From Andrew : 可以解釋一下關於 user space 和 kernel space 的概念嗎? 20:19:43 From 李冠廷 : VFS 20:20:47 From 李冠廷 : https://www.slideshare.net/jserv/linux-discovery 20:21:50 From Maggie : 今天好多新同學! 20:25:14 From barsan : 今天是星期六, 不用上班...就進來. 20:26:39 From Yang-Hsiang Chang : 這給大家發問哦,若沒有問題也可以投別人的 https://app.sli.do/event/s3v4ogh0 20:26:42 From HYJ : User space context switch到 K.space的時候是透過call gate嗎?還是 interrupt ? ARM或其他架構,貌似沒有像x86毛這麼多的呼叫方式 ? Linux可以不用像Windows這麼煩的轉移方式 , 真的是神奇的哩... 20:28:00 From Frank lee : 我是剛加入社團群組的新手,剛開始在摸arduino而已,請大家多多指教,如果能夠給一些提點入門就更好了 20:28:21 From 黑貓 : 哈囉 20:28:26 From 0xff05 : https://ithelp.ithome.com.tw/articles/10238927 20:28:41 From 黑貓 : 這堂伴伴學比較進階 20:28:54 From 黑貓 : 連我都聽不懂XDD 20:29:07 From Yang-Hsiang Chang : 這給大家發問哦,若沒有問題也可以投別人的 https://app.sli.do/event/s3v4ogh0 20:31:13 From Bruce : 之前在鐵人賽看到這系列文章 很驚訝這在也可以聽到作者親自講解 20:31:30 From Bruce : 伴伴學真是臥虎藏龍 20:31:47 From Maggie : 謝謝fly幫忙開slido ! 20:31:59 From Maggie : 這堂好難(抱頭 20:32:09 From 皮爸 : 完全聽不懂 20:32:18 From 皮爸 : 我是來添加人氣的 20:32:23 From 0xff05 : https://ithelp.ithome.com.tw/articles/10244815 20:33:41 From Maggie : 我也聽不懂 我是來跟大家教朋友的XD 20:36:49 From 皮爸 : 謝謝andrew 20:37:10 From Yang-Hsiang Chang : 黑貓 6 minutes ago 1 想問一下引導者的PI型號是多少~ 20:37:30 From shaun : pi(i2c master) => arduno(i2c slave) 20:38:18 From Bruce : device node 20:38:19 From shaun : open/write are all file nodes 20:43:30 From shaun : http://smbus.org/specs/smbus20.pdf 20:44:17 From shaun : pdf page28 smbus protocol 20:45:15 From 黑貓 : 這對我來說是很新的知識XDDD 20:45:27 From will : PI 現在增減功能也是DTREE 20:45:29 From bluzchiu : 有聽過 20:45:35 From eric yang : 舉手 20:46:04 From SAMSON : 請問剛剛分享的講義網址是?退出再進來沒看到 20:46:44 From bluzchiu : http://smbus.org/specs/smbus20.pdf 20:46:55 From Bruce : 有點像kernel宣告硬體的地方 不知這樣解釋正確否 20:48:26 From Maggie : Samson 是我腦海中的那位Samson嗎😆 20:49:51 From shaun : DTS(device tree source) is a device description file for ARM based CPU 20:50:53 From shaun : for flexibility 20:59:27 From shaun : https://www.itread01.com/content/1548871388.html 21:05:37 From shaun : i2c@7e804000 is i2c master, arduno-i2c@8 is a i2c device 21:07:08 From shaun : yes 21:18:35 From 0xff05 : https://ithelp.ithome.com.tw/articles/10244211 21:21:30 From oliver huang : arduino i2c address 選擇08,如何選擇而不會與其他device重覆到 21:25:00 From shaun : &i2c0 { status = "okay"; eeprom@50{ compatible = "atmel, 24c01"; reg = <0x50>; pagesize = <8>; } arduno@8{ compatible = "hello"; reg = <0x08>; } } 21:25:05 From shaun : like this? 21:25:30 From shaun : through <reg> 21:25:38 From oliver huang : 3Q 21:26:21 From shaun : and @number 21:28:34 From 0xff05 : https://youtu.be/a9CZ1Uk3OYQ 21:35:50 From oliver huang : 感謝分享,先下線 21:36:51 From Andrew : 好像有懂了一點了 感謝 21:37:35 From sellean : 下次可以先分享講議,這樣可以讓人更快進入狀況 21:38:03 From Andrew : 其實有先貼出鐵人賽的文章在活動說明了 21:38:21 From 鄭鴻旗 : 伴伴學不是上課的走向 21:39:22 From 鄭鴻旗 : 比較像是朋友一邊喝酒聊天的方式。 21:39:36 From sellean : 了解哦… 21:40:02 From Maggie : 所以整個活動重點就是酒。 21:40:10 From Maggie : 第二重點是聊天 21:40:55 From sellean : 還是很感謝分享 21:41:21 From Maggie : 歡迎常常來聽呀~ 21:41:27 From Maggie : 很多主題,軟硬都有 21:41:34 From shaun : good material 21:41:53 From 皮爸 : 本次太硬 21:42:09 From 0xff05 : https://ithelp.ithome.com.tw/users/20129818/ironman/3852?page=1 21:42:17 From 皮爸 : 喝酒就好 21:42:19 From shaun : I benefit a lot from Fernado's material and his blog 21:42:36 From Maggie : 喝酒當podcast+1🤣 21:44:23 From will : day8吧 21:44:42 From bluzchiu : 正在看文章 21:44:51 From 0xff05 : https://ithelp.ithome.com.tw/users/20129818/ironman/3852 21:46:00 From Bruce : 黃敬群 21:46:22 From Bruce : Jserv 21:46:38 From bluzchiu : 還有 21:47:22 From dar : https://www.facebook.com/JservFans Jserv與他愉快的小夥伴 21:47:53 From 鄭鴻旗 : https://www.youtube.com/channel/UCIm-u7l65hp5jboSJrB7U5w 21:50:56 From dar : https://systemprogrammingatntu.github.io/ System Programming Design (Fall 2018) at NTU 21:54:35 From eric yang To 鄭鴻旗(privately) : 感恩。 21:55:01 From 鄭鴻旗 To eric yang(privately) : 你要公開回覆~ 21:55:03 From 鄭鴻旗 To eric yang(privately) : xd 21:55:36 From eric yang : 感恩。 21:58:03 From 0xff05 : https://lwn.net/Articles/803347/ 22:03:21 From Bruce : 請問這筆記可以去哪朝聖 22:03:52 From Andrew : day30 有連結 22:04:22 From Andrew : https://hackmd.io/@0xff07 22:05:14 From Bruce : 感謝 22:13:22 From will : 從實做開始往下了解 22:16:37 From Andrew To 鄭鴻旗(privately) : 我剛發現 今天好像剛好是講師的生日? XD 22:16:57 From 鄭鴻旗 To Andrew(privately) : 真的假的 22:17:08 From Andrew To 鄭鴻旗(privately) : 臉書寫的 22:17:13 From 鄭鴻旗 To Andrew(privately) : 要唱生日快樂歌嗎 22:17:21 From Andrew To 鄭鴻旗(privately) : https://www.facebook.com/profile.php?id=100001416766501 22:19:54 From dar : https://www.furkantokac.com/rpi3-fast-boot-less-than-2-seconds/ https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/bootflow.md 22:20:20 From Andrew To 鄭鴻旗(privately) : https://www.youtube.com/watch?v=gIK1he6Ocpg 22:20:24 From Andrew : https://www.youtube.com/watch?v=gIK1he6Ocpg 22:21:27 From eric yang : 開發版firfox 22:21:56 From eric yang : no 22:22:39 From eric yang : 你論文做甚麼的? 22:24:11 From 鄭鴻旗 To Andrew(privately) : https://hackmd.io/FzGp155NRPSKNRGD4aWHYw 22:24:18 From 鄭鴻旗 : https://hackmd.io/FzGp155NRPSKNRGD4aWHYw 22:24:44 From 鄭鴻旗 : 你的電腦中裝了哪些工具的啟發 22:28:48 From eric yang : 上升電阻,做過硬體的人都會比較注意 22:29:05 From eric yang : 其實標準的i2c介面是open drain 22:29:26 From eric yang : 因為i2c設計上是multi drop 22:29:39 From eric yang : 我是念過飛利浦原廠手冊的 22:30:04 From eric yang : 可以分享一下鐵人賽嗎? 22:30:05 From Bruce : 請問i2c為何要選open drain架構? 22:30:10 From yakin : 要先寫妦 22:30:15 From will : 不是因為OPEN DRAIN才要有總線上拉嗎 22:30:34 From eric yang : 但是不標準的 ic 會設計fan out 22:30:35 From yakin : 寫好 22:31:17 From Bruce : 是因為設計給較多device嗎 22:31:28 From eric yang : 請問i2c為何要選open drain架構?因為你不太會知道這組 i2c slave有幾個 22:31:38 From will : 我的理解是多DEVICE,所以要OPEN DRAIN 22:31:40 From dar : 講者生日的樣子 https://m.facebook.com/profile.php?id=100001416766501&fref=nf&rc=p 22:31:42 From eric yang : 也不知道其他slave的匹配 22:32:09 From eric yang : 主要是滿足 multiple drop 功能 22:32:13 From Bruce : 生日快樂! 22:32:32 From eric yang : 我以前有一本philips 原廠手冊 22:32:33 From znyui : Open Drain 的結構才不會有訊號互拉的問題. 並可以根據實際狀況去匹配上拉電阻. 22:32:40 From dar : 抱歉... 誤會了 22:32:49 From eric yang : 供電和匹配問題 22:32:50 From 皮爸 : XD 22:33:10 From Bruce : 了解 比較好奇為什麼spi沒有這樣的需求 22:33:27 From will : OPEN DRAIN對別的設備看你就好像拔線 22:33:57 From Andrew : https://www.facebook.com/groups/arduinotaipei/permalink/4329734797053938 22:34:13 From znyui : SPI 的 DI /DO 基本上是分開的. 所以如果是多個 Slave 就會有多個 MISO 22:34:22 From Andrew : https://hackmd.io/@openlabtaipei/SJJN-JvEO 22:34:27 From eric yang : 了解 比較好奇為什麼spi沒有這樣的需求。因為spi input output是分開的 22:34:59 From eric yang : 而i2c 是in,out 同一線 22:35:02 From Bruce : 感謝解答 22:35:11 From eric yang : clock也都可以給 22:35:19 From Bruce : 了解 22:35:22 From eric yang : 上面還要有async功能 22:35:33 From eric yang : 另外edge trigger 22:35:52 From eric yang : 還有每個發送信號最後要帶回應 22:36:15 From eric yang : 這很重要。以前硬體速度慢,軟體很難實現 22:36:52 From Bruce : 原來如此 22:43:19 From eric yang : multiple drop 22:43:29 From eric yang : 可以 22:43:35 From eric yang : 標準的 22:43:55 From eric yang : 多主端多從端也都可以 22:44:21 From eric yang : 你要去查i2c spec 22:44:21 From will : https://kknews.cc/zh-tw/digital/pk5564e.html 22:44:51 From dar : https://www.youtube.com/watch?v=QQLfzlPGjjE #20 Tutorial: Multiple Devices on One Arduino I2C Bus 22:44:54 From will : wire其實就是自己上拉下拉 22:45:20 From eric yang : 對 wire 22:47:07 From Tenhsu : slave address 22:53:30 From Bruce : 其實Arduino要手刻也可以 只是累了點 22:53:41 From Bruce : 之前有刻過51的 22:57:54 From Bruce : 謝謝今天的分享 22:57:57 From louis : 感謝各位分享...第一次參加,穫益良多..夜深了..先離線.. 22:58:02 From Tenhsu : 謝謝 22:58:03 From will : 感謝 22:58:04 From 謝祥辰 : 謝謝 22:58:08 From 陳 洛桐 : 感謝 22:58:09 From yakin : 3q 22:58:22 From gary : 謝謝!! 22:58:24 From znyui : 感謝~ 受益良多!~ 22:58:26 From 皮爸 : 謝謝! 22:58:32 From Dahai Pon : 謝謝 22:58:45 From 馬爸 : 感謝! 22:58:52 From Andrew : 感謝 收穫許多 22:59:05 From Tenhsu : 感謝 22:59:18 From 馬爸 : 鴻旗生日快樂…補一下 ``` ## 社群相關討論