第16章 編譯與升級Kernel系統核心 課前指引

Slides:



Advertisements
Similar presentations
如何照顾病人. 目的 减轻痛苦 增进舒适 恢复体力 疾病痊愈 预防疾病 Image source:
Advertisements

第二框 生命科技与生命伦理.
PC DIY達人培訓班 主辦單位:東海高中資訊科 報告人:李宏傑.
关于市场营销的分析 ——以九阳豆浆机为例 品牌经营——让每一个家庭都拥有一台九阳豆浆机 营销管理——采取文化、概念、网络等营销组合
70 周年 以史为鉴 面向未来 纪念中国抗日战争暨世界反法西斯战争胜利.
Make the dream come true
Lecture-III-Linux生活应用 许光全 计算机科学与技术学院
红旗Linux认证培训 课程介绍.
第二节 留 数 一、留数的引入 二、利用留数求积分 三、在无穷远点的留数 四、典型例题 五、小结与思考.
“计算机与网络”工作室和相关特需课程建设
Lecture-III-Linux生活应用 许光全 计算机科学与技术学院
香港普通話研習社科技創意小學 周順強老師.
第三单元 单元写作学案 确立自信 学习反驳.
第六章 Linux的系統管理基礎 課前指引 身為Linux系統管理員,除了熟悉作業系統的安裝、圖形介面的操作及系統指令的使用與軟體套件的安裝外,更需要瞭解基礎的Linux系統管理技巧。本節,將針對此部分進行說明。
授课教师简历 刘付才,男,中学高级教师,亳州一中南校体 育教研组长,全国体育优质课一等奖获得者,华佗 五禽戏第五十八代传承人;长期从事五禽戏教学和 研究工作,参与创编了国家级课题“校园五禽戏”; 2014年全国学生运动会展示中获得优秀表演奖; 2015年指导的五禽戏传人进行的五禽戏教学获得全 国一等奖,编著的《华佗五禽戏之简易健身操》即.
闲言碎语.
二十 石钟山记.
洪涝灾害重点传染病的预防 江苏省疾病预防控制中心 汪华.
小 桔 灯 市场赢利能力与战略 主讲:杨贤耀.
UClinux在3000平台上的移植.
Linux内核与模块 –RHEL6.3内核模块信息
資訊安全與系統管理 2013/3/13 Chien wei lin.
第一章 语言文字运用 专题五  挖掘隐含信息,准确实现图文转换.
UNIX系統與資料庫安裝 Why UNIX 常用的工具程式介紹 資料庫的安裝.
践行新时期广东精神 推进广东公路文化繁荣与发展 ——关于广东省公路文化建设与实践的思考
QtiPlot-實驗室數據分析與繪圖 撰文者: 1.海洋大學光電所 楊善文 2. (如對本文有貢獻者,記得在此留名)
當企鵝龍遇上小飛象 DRBL-Hadoop Jazz Wang Yao-Tsung Wang
Ubuntu 驱动安装准备 1. 确认ubuntu操作系统版本 2. 运行安装脚本 3.驱动Controller.
Linux.
Linux的認識與使用 2013/01/05.
网络仿真工具介绍
VC-B20U 高解析USB摄像机.
配置编译内核.
DM81X 视频采集处理 ——软硬件环境介绍 广州创龙电子科技有限公司
高并发之Redis初级 讲师:杨振平 博客地址:blog.csdn.net/yangzhenping
編譯環境介紹.
Linux 基础与常用命令简介 生物信息学培训班 杭州,2018年1月18日 周银聪.
Linux环境高级编程实验.
第二天 计算机基础技能培训 (一)linux基础知识
和諧社區資訊服務推廣計畫 -軟體雲端社區 資訊研習營
和諧社區資訊服務推廣計畫 -軟體雲端社區 資訊研習營
陈香兰 助教:陈博、李春华 Spring 2009 嵌入式操作系统 陈香兰 助教:陈博、李春华 Spring 2009.
基于GATE的PET仿真环境的实现与应用
網路資源的建立--LINUX系統 國立東華大學電算中心 陳鴻彬.
ICONIA tab A500 系统恢复和升级SOP
第3章 Linux免安裝版學習與操作 課前指引
DMA-2440XP WinCE5.0安裝與使用 長高科技 顏旭偉.
第 5 章 文字編輯工具 內容: Vi Vim.
2010電資院 「頂尖企業暑期實習」 經驗分享心得報告
TinyOS开发环境安装 基于Ubuntu14.04.
(第2版).
Linux核心編譯與模組管理 2013/01/19.
GRUB启动引导器 GRUB简介 安装GRUB Grub的操作界面 GRUB的配置文件grub.conf GRUB的安全设置
编辑文本文件 软件包管理 Samba 在Linux下使用Windows共享打印机
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A Lab3.
第一节 大数定律 一、问题的引入 二、基本定理 三、典型例题 四、小结.
Linux作業系統 電腦教室Linux使用說明.
Linux 如何在 中 和压缩 打包 文件 系统管理 宁波市高校慕课联盟课程
Confidential Property
英创安众公开课程(日语) ~ 劳务基础讲座 2015年4月22日(周三)~ 课程内容和报名回执
2018 Operating Systems 作業系統實習 助教:林欣穎 實驗室:720A Lab3.
嵌入式Linux开发流程 成都研究所操作系统团队.
实验一:编译运行Linux内核并使用gdb进行调试
第12章 Linux與 嵌入式uClinux系統
助教:田成锦、汪睿、游翎璟 吴加禹、李佳伟、唐凯成
實驗一 OAI-LTE與WiFi網路整合的實驗平台建置
實驗四 多媒體影音串流 使用OAI-LTE與WiFi網路整合的卸載與負載分享
大数据应用人才培养系列教材 Python语言 刘 鹏 张 燕 总主编 李肖俊 主编 刘 河 钟 涛 副主编.
第八章 通用安全原則 8-1 通用安全概述 8-2 部署全公司的執行策略.
獨孤派作業系統 main memory 中正大學 作業系統實驗室 指導教授:羅習五.
Presentation transcript:

第16章 編譯與升級Kernel系統核心 課前指引 「Kernel核心」是作業系統最重要的基礎,任何的硬體及週邊設備要能夠被驅動,並且,讓軟體與硬體能夠相互溝通,核心扮演極重要的角色。對於初期學習Linux系統的使用者來說,此門課程內容稍為過於深入;但是,若以Linux系統管理與維護工作技能,則此門課程萬萬不可忽略。

章節大綱 16-1 透過輔助工具升級核心 16-5 調整開機選項設定 16-2 重新編譯核心前的準備工作 16-3 重新編譯核心Kernel 16-1 透過輔助工具升級核心 16-5 調整開機選項設定 16-2 重新編譯核心前的準備工作 16-3 重新編譯核心Kernel 16-4 測試新的核心Kernel 備註:可依進度點選小節

16-1 透過輔助工具升級核心 透過指令【uname -r】可以查詢當前使用的Linux Kernel版本為何,在初期安裝的9.10版之Ubuntu Linux預設的Kernel版本為「2.6.31-14」。 輸入指令【sudo aptitude full-upgrade linux-headers】以執行升級Linux核心的動作。提示是否繼續,請輸入【Y】。

16-1 透過輔助工具升級核心 更新程序完成之後,必須重新啟動當前的Linux作業系統,在終端機模式,可以透過指令【sudo shutdown -r now】在輸入使用者密碼後,即可重新啟動電腦。 當Linux Kernel升級程序無誤,則預設在重新啟動時,便會載入升級過程所安裝的Linux Kernel版本為當前的Linux Kernel版本,透過指令【uname -r】可以取得當前所使用的Linux Kernel版本。

16-2 重新編譯核心前的準備工作 某些特殊的情況,如特定的硬體或功能不支援,則通常會透過「重編核心Re-Build Kernel」的方式,根據需求客製化專屬版本的Linux Kernel,再透過套件安裝指令,將所編譯的客製化Linux Kernel安裝置作業系統裡。 然而,預設安裝的Ubuntu Linux並不支援「編譯核心」,若要使它支援「編譯核心」的動作,則必須安裝相關的套件。

16-2 重新編譯核心前的準備工作 輸入指令【sudo aptitude install gcc make build-essential】安裝必要元件。 依提示輸入使用者密碼。 進行安裝

16-2 重新編譯核心前的準備工作 在完成安裝之後,請輸入指令【gcc -v】以確定編譯指令已經安裝完成;輸入指令後,若成功顯示版本資訊(如下圖)則代表安裝無誤,若未正常出現,則請務必先行檢查安裝步驟是否有誤。

16-3 重新編譯核心Kernel 下載Linux Kernel網站所釋出之最新版本的Kernel Source為資料來源,編譯試用於當前平台及硬體環境的Linux Kernel為範例版本為【2.6.34】。

16-3 重新編譯核心Kernel 在Linux Kernel官方網站的右邊之「Latest Stable Kernel」區域,會提供最新釋出的Linux Kernel Source版本的下載連結,請將滑鼠游標停留於連結的上方,並單擊滑鼠右鍵,選擇「複製捷徑」以取得Linux Kernel Source的下載連結。

16-3 重新編譯核心Kernel 在完成連結的複製後,請返回Linux的終端機操作介面,並且,透過指令【cd/usr/src】以切換目錄至儲存Kernel Source的目錄。

16-3 重新編譯核心Kernel 進入Kernel Source的儲存目錄後,請透過指令wget及剛才所複製的下載連結進行Kernel Source的下載;以剛才所複製的2.6.34版本之Linux Kernel Source為例,請輸入【sudo wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.34.tar.bz2】指令以下載指定版本的Kernel Source檔案至指定的儲存路徑。

16-3 重新編譯核心Kernel 預設下載的Linux Kernel Source都是採用兩層的壓縮包裝,第一層必須透過系統指令bzip2解壓縮,第二層則是透過tar指令解壓縮。

16-3 重新編譯核心Kernel 在取得並解開Linux Kernel Source壓縮檔案後,便可以切換至Linux Kernel Source的目錄,並且透過指令【sudo make menuconfig】及Linux kernel configuration選單增減所需要的選項。

16-3 重新編譯核心Kernel 透過Linux Kernel Configuration選單,能夠根據需求調整Linux kernel支援的硬體裝置設定選項;舉個例子來說,希望Linux作業系統「不再支援」多媒體裝置及SD/MMC/Sony等記憶卡儲存媒體,則此時便可以透過Linux Kernel Configuration將相關的裝置支援取消選取

16-3 重新編譯核心Kernel 進入Device Drivers設定分頁,請取消核選不希望支援的裝置項目,以範例為參考,則請取消核選「Multimedia support」及「MMC/SD/SDIO card support」與「Sony Memory Stick card support」選項。

16-3 重新編譯核心Kernel 完成相關的選取之後,請記得在離開Linux Kernel Configuration選單前,務必於主選單選擇「Save am Alternate Configuration File」再選擇「Exit」退出Linux Kernel Configuration選單;如此步驟主要是產生編譯Linux Kernel所必須的「.config」環境組態檔案。

16-3 重新編譯核心Kernel 產生必要的組態檔案後,便可以開始透過make指令執行Linux Kernel編譯的動作,在開始之前,請先輸入指令【sudo make-kpkg clean】以清除不必要的檔案,包括過去操作所產生之不必要的檔案。

16-3 重新編譯核心Kernel 接著,直接輸入make指令可以開始編譯指定版本的Linux Kernel Source;不過,在這裡,希望經過編譯後產生的是Debian套件管理專用的dpkg檔案,以方便在完成編譯動作後,直接進行客製化版本Linux Kernel的安裝。 針對此需求,可以透過「make-kpkg」指令達成需求,完整的參考指令為【sudo fakeroot make-kpkg --initrd --append-to-version= frankkernel001 kernel-image kernel-header】 其中「frankkernel001」代表編譯後的kernel版本代碼,方便使用者識別,您可以根據需求進行變更。

16-4 測試新的核心Kernel 順利完成編譯後,會在儲存Linux Kernel Source的目錄產生所建立的Debian格式的Linux Kernel安裝套件,直接透過指令dpkg -i 進行安裝即可 輸入指令【sudo dpkg -i linux-*.deb】以安裝客製化版本的Linux Kernel套件。

16-4 測試新的核心Kernel 完成Kernel安裝後,必須透過指令將預設載入的相關硬體裝置驅動的檔案,包裝成initrd.img檔案,這樣在Linux系統開機時,才能夠順利載入所編譯的客製化版本Linux Kernel Source並且驅動必須的硬體及周邊裝置。 產生initrd.img檔案,必須指定特定的Linux Kernel版本,在透過套件完成客製化Linux Kernel的安裝後,會將必要的硬體及周邊驅動檔案都以Linux Kernel版本為目錄名稱,並且,預設儲存在「/lib/modules」目錄。

16-4 測試新的核心Kernel 輸入指令【sudo mkinitramfs -o /boot/initrd.img-2.6.34frankkernel001 2.6.34frankkernel001】以產生開機時必要的initrd.img檔案。 最後,只要輸入指令update-grub以更新Ubuntu Linux預設建立的grub開機管理程式的設定值,使其加上客製化版本的Linux Kernel供系統啟動時使用。

16-4 測試新的核心Kernel 輸入指令【sudo shutdown -r now】以重新啟動電腦

16-5 調整開機選項設定 以16-1節的範例為例,在透過aptitude指令升級系統核心之後,預設在完成核心升級動作並重新啟動作業系統時,預設便會載入所安裝的新版核心;預設在開機選單沒有被啟用前,使用者並不能方便的進行核心版本的切換。 此時需要透過手動修改GRUB開機選單的設定值,並且重新載入GRUB的組態設定檔案,當再次重新啟動時,便可以透過開機選單輕鬆的進行核心版本的切換。

16-5 調整開機選項設定 輸入指令【sudo vi /etc/default/grub】以編輯預設的開機選單設定選項。 要啟用GRUB開機選單,則請將「/etc/default/grub」設定檔內容的設定選項之「GRUB_HIDDEN_TIMEOUT=0」選項關閉即可。

16-5 調整開機選項設定 將「GRUB_HIDDEN_TIMEOUT=0」,改成「#GRUB_HIDDEN_TIMEOUT=0」 修改完成後,請按【ESC】鍵返回命令模式,並且,輸入指令【:wq!】以儲存檔案並且退出vi編輯器。 完成設定檔案變更後,請再次輸入指令【sudo update-grub】以更新預設安裝的GRUB開機管理選單的設定值。

16-5 調整開機選項設定 GRUB開機管理選單(1) GRUB_DEFAULT GRUB_HIDDEN_TIMEOUT=0 設定預設選單選項。選項可以是數字或是「saved」。 GRUB_HIDDEN_TIMEOUT=0 此設定將影響選單顯示。若啟用開機影像,將會在任何逾時設定中顯示。 GRUB_HIDDEN_TIMEOUT_QUIET=true true 不顯示倒數。螢幕將會是空白的。 false 在 GRUB_HIDDEN_TIMEOUT 中設定的時間,空白螢幕上會有一個倒數計時器。 GRUB_TIMEOUT=10 此指令將推遲 GRUB_HIDDEN_TIMEOUT 設定。

16-5 調整開機選項設定 GRUB開機管理選單(2) GRUB_DISTRIBUTOR=lsb_release -i -s 2> /dev/null || echo Debian 取得選單選項中的描述名稱。(Ubuntu, Xubuntu, Debian 等等。) GRUB_CMDLINE_LINUX 若存在,無論在一般或是救援模式,此行將匯入任何在 'linux' 註解行中的項目(傳統 GRUB 的「kernel」行)。類似於 menu.lst 中的「altoptions」行。 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 此行將匯入任何在 'linux' 行中的項目(傳統 GRUB 的「kernel」行)。

16-5 調整開機選項設定 GRUB開機管理選單(3) GRUB_TERMINAL=console 移除註解來停用圖形化終端機(只限 grub-pc) GRUB_DISABLE_LINUX_UUID=true 移除註解若您不想讓 GRUB 傳遞「root=UUID=xxx」參數給 Linux。 GRUB_GFXMODE=640x480 您可移除 # 符號來啟用此行。此選項會設定圖形化選單的解析度(選單文字大小)。

16-5 調整開機選項設定 GRUB開機管理選單(3) GRUB_DISABLE_LINUX_RECOVERY=true 加上或移除此行註解來防止「救援」模式核心選項顯示在選單中。 GRUB_DISABLE_OS_PROBER=true 啟用/停用 os-prober 對其他分割區作業系統的檢查,包括 Windows, Linux, OSX 和 Hurd。

本章結束 Q&A討論時間