聊天 Agenda
聊天規則
進門請禮貌打招呼,離開也請打招呼再離開,線上活動,不介意大家隨時離開
請先報到,如果有正在做東西,可分享的,請跟大家分享
很多人一起聊天,容易混亂,聊完也無法有效收集成果。
所以嘗試用共筆的方式,看看能不能聊出點花樣。
所有地方都是開放大家隨意編輯,請大家多多貢獻與分享,相信來的能人很多,請大家一同幫助 Maker 的新手
覺得這樣聊天對您有幫助,立即邀請您線上好友參與。也可分享 hackpad 資訊,方便大家參與
共筆注意事項
請注意,此為公開的紀錄,可公開分享的才寫在這裡。其他在臉書閒聊就好
為減少可能的爭議,本共筆著作係採用 創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權
文件生命週期
準備期:
線上共筆期:
會後整理期:
結束封存期:
顧問準備事項
在當天討論之前,本篇主要是給顧問團提前準備相關的 Q&A, 以及互相認識,年落感情之用,希望在當天之前,只有顧問才能看到內容(準備時期,保持點神秘感)。當討論開始,就會開啟權限給所有人可讀寫
顧問白板
此區讓大家認識這次的顧問團,請顧問們自行填寫。建議列上正在做的東西,推薦的臉書討論區等
哈爸
請報到,歡迎提供聯絡方式(臉書,Email),需要保持神秘感,可用綽號
Maker1
Maker 的玩具
請參與者,有再做東西的,可以分享一下。比較容易找到同好,也容易得到別人的幫助
哈爸給你問之 如何學好 Linux( 入門篇 )- 參考資料
問與答
為方便追蹤與解答,發問時請直接在此文件中加入新的提問,之後,可將同一個問題發到聊天區,提醒大家已提問。
本問答為個人淺見,僅提供參考。由於是共筆型態,也歡迎大家持續補充與修正
Q1 : 如何入門?
A1 : Linux 就像森林一樣,非常寬廣與複雜,首先想好,短期內想學/做什麼。做個簡單的計畫,然後去完成它。一次一個階段就好。
Q2 : 人多學得快,該去參加哪些臉書群組?哪裏找同好?
A2 : 老實說,我的時代,都是自己亂學的。這些是我臨時抱佛腳查的,歡迎大家補充。
來的這些,就是現成的同好與顧問團,會後記得聯繫
臉書:Linux Taiwan Linux Kernel Hackers Ubuntu 正體中文社團 ubuntu
線上討論區 :
Q3 : 有沒有什麼人在教?
A3 : 很多相關的課程。巨匠 聯成 台大資訊系統訓練班 資策會
Q4 : 哪些 Open hardware 使用到 Linux ?
A4 : 樹莓派 香蕉派 Yun Beagleboard Intel Galileo ...
Q5 : 針對 Open hardware 哪些部份特別重要?怎麼學習?
A5 : Linux power user, Linux administration, Linux programming, Linux driver 這些基本功多少都要會一點,Cross platform development, 著重在 porting,程式開發的功力要多一 點,driver porting 的能力要強一點,對 CPU 從第一個指令開始,到整個系統就緒的流程要清楚。
Q6: 如何設定讓 Raspberry Pi 開機時,執行特定的 Python 程式?版本用 Raspbian
A6 : 一般來說在啟動流程中的最後一步會執行 rc.local,加在這邊最正常。名稱在不同的 Linux 中稍有不同,但意義是一樣的。可 trace 一下,就知道
Q7: 我想做一個 Network Bridge 請問如何設定?
A7 : 我當作是問 network sw bridge 來回答,一般有 sw bridge 的 util, 應該叫做 brctl ,可以查一下。很簡單使用。
Q8: 如果我想要自己porting linux 到某個平台, 舉例來說 雙核的A9 系統. 該怎麼做?
具體的平台是 Xilinx Zynq (FPGA + ARM) 平台. hardware 是現成的, 廠商也已經porting 好一版linux, 但如果我想自己porting, 並且加上GUI (例如ubuntu的環境), 要怎麼做?
A8: Porting 的流程是 port CPU, Timer, driver, 後面直接可以使用 linux 原生的東西,所以你要看你拿到的東西已經做到哪裡。從0 開始也行,只是會很刺激。就你的例子, linux 已經上去了。情況就是一個被 port 好的 linux, 你想換成社群的版本。diff patch 來上是比較有機會的。要看情況,可以再詳述一下您的狀況?
Q9: 當我拿到一片linux的時候 怎麼建立tool chain ? 現在在RPI 中用什麼方式呢?
A9 : tool chain 一般分為 native compile, cross-compile. 像我們在 Intel 平台,直接 compile 給自己平台使用的叫做 native compile, 在 PC 上 compile 給 ARM 用叫做 cross-compile.
Q10:在linux 系統中, 可以用mmap 直接對CPU的位址存取暫存器. 請問這樣的作法會不會不穩? 還是應該要照driver 的作法來存取? (因為對linux driver 完全不熟, 擔心學習曲線長, mmap就跟寫MCU 一樣很簡單. 但又怕一直用mmap會有後遺症)
A: 直接存取是相當危險的,一般用 driver 的方式來處理。硬是要用 mmap or dev/mem 存取的話,如果是讀取,應該是沒有關係。寫入的話,你得知道你在做什麼。有把握就行。
Q11 : 以前用GDB 當中斷除錯, 現在怎麼玩啊?
A11 : 有些系統還是整合了 gdb, 所以還是一樣可以用
Q12: 要學linux driver, 最推薦哪本書? debug 工具為何?
A12 : 請看參考資料 LDD3 最常用,但是很不好懂。其他 Linux driver 的書可能都很好
Q13 : linux driver debug 的工具是?
A13 : 呵呵, printk()
Q14 : 一個人適合開發linux嗎? 之前開發手機, 要3,50個人...還是在較高等級的mcu上port rtos就好?
A14 : rtos 不見得比 Linux 來的容易。其實主要看你要做什麼,基本上在 linux 領域裡,高手不用幾個就很厲害了。
Q15: 如果用 Raspberry Pi 做個產品,想要保護產品,請問如何設定才不會被容易破解?
A15: 權限、防火、selinux
Q16:該如何有效的學習Linux?
剛開始不懂的時候 上網看鳥哥的私房菜 一點一點的學
最後能架出幾個簡單的Server 雖然知道我學的不過是一點點皮毛
還有很多東西是我尚未接觸過的
難道真的要一個一個全部伺服器都架過一遍?
就像為了學一個程式語言去買了一本書
把書裡的範例全部不看提供的程式碼練習一遍
打完了之後 卻失去了方向 不知道那語言能做什麼
現在學習Linux碰到這個瓶頸
沒有目的或目標的學習
想請問走在我前端的前輩們 當初是如何學習Linux的 謝謝
Q16-2:也許是我對Linux不夠認識 用Windows時 我能清楚的知道我要做什麼和想要做什麼
但對於Linux 我的理解大概只有架站 但對於一般人 應該是不太需要伺服器
所以不太清楚學習的目標要怎麼訂
A16: 學Linux要做什麼? 以目標去學需要學的指令…等比較有幫助,btw 鳥哥基礎的第一本很有用,譬如:只是要學架簡易伺服,就要熟一些安全上面的東西、一般使用的指令、一開始規劃切割,結果跑去學內核移植是否又太過頭。只能說linux非常多東西可以學。。。有目標再學習比較有效率
A16 -2 : 關於 Linux 管理,我也曾經有這個階段,學很多卻有點亂,也會漏。當初我是因為要考 LPI, 就在短時間再完整練一遍。很有效。我的回答是:根據 LPI 要考的內容去學習,不一定為了要考。但是很有幫助。
A16-3 : 可以參考這張圖,或是參考資料中的結構。先想自己最急著學什麼,就先學那個範圍。記得,每個類別都是一兩年的功夫,很花時間的
Q17: 有哪些 LinFB 社團推薦參加?
A18 : 請參考 A1, A2, A3
Q18: 有誰在 Raspberry Pi (Raspbian) 成功安裝過 CMU sphinx 語音辨識?
平台? google: how to install CMU sphinx on (your os)
A19 : 沒用過。有人可以補充?