哈爸給你問之 如何學好 Linux( 入門篇 )- Q&A

最後編輯:2015-08-21 建立:2015-08-15 歷史紀錄

 

WUULONG S聊天 Agenda

  • 20:30 - 20:45 : 大家打打招呼,互相認識認識
  • 20:45 - 21:45 : 隨便大家問答,共筆時間
  • 21:45 - 22:00 : 收攤,結論,看未來要不要再開一次,什麼主題

聊天規則

進門請禮貌打招呼,離開也請打招呼再離開,線上活動,不介意大家隨時離開

請先報到,如果有正在做東西,可分享的,請跟大家分享

很多人一起聊天,容易混亂,聊完也無法有效收集成果。

所以嘗試用共筆的方式,看看能不能聊出點花樣。

所有地方都是開放大家隨意編輯,請大家多多貢獻與分享,相信來的能人很多,請大家一同幫助 Maker 的新手

覺得這樣聊天對您有幫助,立即邀請您線上好友參與。也可分享 hackpad 資訊,方便大家參與

 

共筆注意事項

請注意,此為公開的紀錄,可公開分享的才寫在這裡。其他在臉書閒聊就好

為減少可能的爭議,本共筆著作係採用 創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權

 

文件生命週期

準備期:

  • 公開討論前由顧問團準備常用問題與參考資料。

線上共筆期:

  • 活動當下,所有參與人一起共筆。所有想提問的,請於此時期提問完畢

會後整理期:

  • 共筆目前的結果會於隔天發布,提供給有興趣的人參考。
  • 針對尚未完成解答的問題,以及想更正補充的問題,於會後一個星期內,繼續整理,煩請大家能繼續共筆,讓解答性更完整。整理期不可提問。

結束封存期:

  • 文件將封存,不可更改,提供查詢。歡迎另外複製到另外文件中繼續討論。

 

顧問準備事項

在當天討論之前,本篇主要是給顧問團提前準備相關的 Q&A, 以及互相認識,年落感情之用,希望在當天之前,只有顧問才能看到內容(準備時期,保持點神秘感)。當討論開始,就會開啟權限給所有人可讀寫

 

顧問白板

此區讓大家認識這次的顧問團,請顧問們自行填寫。建議列上正在做的東西,推薦的臉書討論區等

 

哈爸

 

 

    WUULONG S參與人員報到區

WUULONG S請報到,歡迎提供聯絡方式(臉書,Email),需要保持神秘感,可用綽號

 

Maker1

  • 聯絡方式

Maker 的玩具

請參與者,有再做東西的,可以分享一下。比較容易找到同好,也容易得到別人的幫助

哈爸給你問之 如何學好 Linux( 入門篇 )- 參考資料

 

問與答

為方便追蹤與解答,發問時請直接在此文件中加入新的提問,之後,可將同一個問題發到聊天區,提醒大家已提問。

 

本問答為個人淺見,僅提供參考。由於是共筆型態,也歡迎大家持續補充與修正

 

常見的相關參考資料,發問前,請先參考 - FAQ

 

Q1 : 如何入門?

A1 : Linux 就像森林一樣,非常寬廣與複雜,首先想好,短期內想學/做什麼。做個簡單的計畫,然後去完成它。一次一個階段就好。

 

Q2 : 人多學得快,該去參加哪些臉書群組?哪裏找同好?

A2 : 老實說,我的時代,都是自己亂學的。這些是我臨時抱佛腳查的,歡迎大家補充。

 

來的這些,就是現成的同好與顧問團,會後記得聯繫

 

Web: Linux.org

User group: LUG

臉書: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 從第一個指令開始,到整個系統就緒的流程要清楚。

 

BRIDAN WQ6: 如何設定讓 Raspberry Pi 開機時,執行特定的 Python 程式?版本用 Raspbian

WUULONG SA6 : 一般來說在啟動流程中的最後一步會執行 rc.local,加在這邊最正常。名稱在不同的 Linux 中稍有不同,但意義是一樣的。可 trace 一下,就知道

BRIDAN WQ7: 我想做一個 Network Bridge 請問如何設定?

WUULONG SA7 : 我當作是問 network sw bridge 來回答,一般有 sw bridge 的 util, 應該叫做 brctl ,可以查一下。很簡單使用。

 

Q8: 如果我想要自己porting linux 到某個平台, 舉例來說 雙核的A9 系統. 該怎麼做?

FRANK W具體的平台是 Xilinx Zynq (FPGA + ARM) 平台. hardware 是現成的, 廠商也已經porting 好一版linux, 但如果我想自己porting, 並且加上GUI (例如ubuntu的環境), 要怎麼做?

A8: Porting 的流程是 port CPU, Timer, driver, 後面直接可以使用 linux 原生的東西,所以你要看你拿到的東西已經做到哪裡。從0 開始也行,只是會很刺激。就你的例子, linux 已經上去了。情況就是一個被 port 好的 linux, 你想換成社群的版本。diff patch 來上是比較有機會的。要看情況,可以再詳述一下您的狀況?

    Frank C.S. Wang請問我要提供哪些訊息啊? XD
    wuulong sheu給網址,我幫你看啊
    Frank C.S. Wanghttp://www.xilinx.com/products/silicon-devices/soc/zynq-7000.html
    wuulong sheu看起來得看一陣,會後看
    Frank C.S. Wang

 

WUULONG SQ9: 當我拿到一片linux的時候 怎麼建立tool chain ? 現在在RPI 中用什麼方式呢?

A9 : tool chain 一般分為 native compile, cross-compile. 像我們在 Intel 平台,直接 compile 給自己平台使用的叫做 native compile, 在 PC 上 compile 給 ARM 用叫做 cross-compile.

 

 

 

FRANK WQ10:在linux 系統中, 可以用mmap 直接對CPU的位址存取暫存器. 請問這樣的作法會不會不穩? 還是應該要照driver 的作法來存取? (因為對linux driver 完全不熟, 擔心學習曲線長, mmap就跟寫MCU 一樣很簡單. 但又怕一直用mmap會有後遺症)

WUULONG SA: 直接存取是相當危險的,一般用 driver 的方式來處理。硬是要用 mmap or dev/mem 存取的話,如果是讀取,應該是沒有關係。寫入的話,你得知道你在做什麼。有把握就行。

    Frank C.S. Wang我試過先用 open ("dev/mem")之後, 就可以用mmap 直接存取 CPU 上的某個register. 是可以做的, 因為我是把自己的IP 掛在那個address, 然後可以被存取到. 平台就是Zynq (FPGA + ARM). 只是不知道會不會不穩. (memory 違規存取之類的).
    Frank C.S. Wang還是我換個方式問, 如果要學linux driver, 最推薦哪本書? debug 工具為何?

 

Q11 : 以前用GDB 當中斷除錯, 現在怎麼玩啊?

A11 : 有些系統還是整合了 gdb, 所以還是一樣可以用

 

FRANK WQ12: 要學linux driver, 最推薦哪本書? debug 工具為何?

WUULONG SA12 : 請看參考資料 LDD3 最常用,但是很不好懂。其他 Linux driver 的書可能都很好

 

Q13 : linux driver debug 的工具是?

A13 : 呵呵, printk()

  • 如果你有好的 ICE , 是可以下中斷點在 Kernel 中,如 Trace32等,速度也快。不過大部份的情況下,你都沒錢買!
    Frank C.S. Wang所以就是把debug msg丟出來的概念囉?
    wuulong sheu正確,王道。很爛,可是就是這樣!

Q14 : 一個人適合開發linux嗎? 之前開發手機, 要3,50個人...還是在較高等級的mcu上port rtos就好?

A14 : rtos 不見得比 Linux 來的容易。其實主要看你要做什麼,基本上在 linux 領域裡,高手不用幾個就很厲害了。

 

BRIDAN WQ15: 如果用 Raspberry Pi 做個產品,想要保護產品,請問如何設定才不會被容易破解?

YOUDE LA15: 權限、防火、selinux

  • WUULONG S保護產品有幾個層面,如果是不被攻擊,破壞的話。基本上就是學 Linux 防護。少開 service, 上 firewall, 上 patch, 都是基本功。也可以用 port scan, 模擬攻擊的手法試試看有沒有什麼弱點。

 

李宥呈Q16:該如何有效的學習Linux?

剛開始不懂的時候 上網看鳥哥的私房菜 一點一點的學

最後能架出幾個簡單的Server 雖然知道我學的不過是一點點皮毛

還有很多東西是我尚未接觸過的

難道真的要一個一個全部伺服器都架過一遍?

就像為了學一個程式語言去買了一本書

把書裡的範例全部不看提供的程式碼練習一遍

打完了之後 卻失去了方向 不知道那語言能做什麼

現在學習Linux碰到這個瓶頸

沒有目的或目標的學習

想請問走在我前端的前輩們 當初是如何學習Linux的 謝謝

 

Q16-2:也許是我對Linux不夠認識 用Windows時 我能清楚的知道我要做什麼和想要做什麼

李宥呈 但對於Linux 我的理解大概只有架站 但對於一般人 應該是不太需要伺服器

所以不太清楚學習的目標要怎麼訂

 

YOUDE L A16: 學Linux要做什麼? 以目標去學需要學的指令…等比較有幫助,btw 鳥哥基礎的第一本很有用,譬如:只是要學架簡易伺服,就要熟一些安全上面的東西、一般使用的指令、一開始規劃切割,結果跑去學內核移植是否又太過頭。只能說linux非常多東西可以學。。。有目標再學習比較有效率

 

A16 -2 : 關於 Linux 管理,我也曾經有這個階段,學很多卻有點亂,也會漏。當初我是因為要考 LPI, 就在短時間再完整練一遍。很有效。我的回答是:根據 LPI 要考的內容去學習,不一定為了要考。但是很有幫助。

 

A16-3 : 可以參考這張圖,或是參考資料中的結構。先想自己最急著學什麼,就先學那個範圍。記得,每個類別都是一兩年的功夫,很花時間的

 

 

BRIDAN W Q17: 有哪些 LinFB 社團推薦參加?

WUULONG S A18 : 請參考 A1, A2, A3

 

Q18: 有誰在 Raspberry Pi (Raspbian) 成功安裝過 CMU sphinx 語音辨識?

YOUDE L平台? google: how to install CMU sphinx on (your os)

WUULONG SA19 : 沒用過。有人可以補充?