內核參數修改 內核編譯 第14天

Linux內核:單內核,模塊化

內核的某些模塊

編譯進內核本體 [*]

編譯成內核模塊 [M]

不選擇使用     [ ]

內核的組成部分

/boot/vmlinuz-VERSION

/lib/modules/VERSION/

*.ko

模塊間有可能有依賴關系

內核模塊管理

lsmod:顯示內核已裝載的模塊;

動態裝卸載模塊:

卸載:modprob -r 模塊名

  rmmod 模塊名

裝載:modporb 模塊名

insmod 模塊路徑 (使用modinfo可以查看)

查看某模塊的詳細信息

modinfo 模塊名

檢查并生成模塊間依賴關系的命令

depmod

復制e1000模塊至/mnt/sysroot目錄,可在新的系統中啟用網絡功能

內核參數的配置:

/proc,/sys

/proc:內核映像

許多參數(讀寫,只讀)

只讀文件:輸出統計信息

讀寫文件:設定內核工作機制

/proc/sys

不允許使用文本編輯器打開進行編寫,而只能通過重定向或使用專用的工具;

/proc:虛擬成了文件系統

net/ipv4/ip_forward

幾個常用參數:

kernel.hostname

vm.drop_caches

net.ipv4.icmp_echo_ignore_all

net.ipv4.ip_forward

ip地址屬于內核,而非網卡。

修改內核參數的辦法

echo “ “>/proc/sys/

sysctl –w net.ipv4.ip_forward=1

cat /proc/sys/net/ipv4/ipforward

配置文件:/etc/sysctl.conf

sysctl –a:顯示sysctl可控制的所有內核參數;

sysctl –p:重讀配置文件并生效之;

/sys:

Linux 2.4-:/dve所有設備都是事先預置。 

Linux 2.6+:/dev下所有設備文件能夠按需創建。

kernel初始化時,根文件系統尚未掛載。

/sys中存入硬件設備的相關信息。

用戶空間的某應用程序就可根據/sys中信息來為每個設備按需創建設備文件。 

udev:用戶空間的程序,用于創建所需要設備, udevadmin

/etc/udev/rules.d目錄下

ramdisk:/boot/initramfs-VERSION.img

創建工具:mkinitrd  CentOS5

  dracut  CentOS6

Dracut /boot/initramfs-`uname –r`.img `uname –r`

展開initramfs文件:

cp /boot/initramfs-RELEASE.img /tmp/initramfs.img.gz

gzip –d /tmp/initramfs.img.gz

mkdir /tmp/initramfs

cd /tmp/initramfs

cpio –id < ../initramfs.img

bash子進程:

exec COMMAND:能啟動command為一個進程,此進程會取代當前shell進程;

echo $DISPLAY 顯示當前的桌面和屏幕;

screen工具:

啟動新的屏幕:screen

退出新屏幕:exit 關閉屏幕

拆除新屏幕:Ctrl+a,d  臨時隱藏屏幕;

screen –ls :查看所有被隱藏屏幕的ID

screen –r SID:連接至某隱藏的屏幕;

lftp工具:ftp客戶端工具

lftp HOST

-u USERNAME,PASSWORD

-p PORT

-e ‘CMD’

lftp:子命令

help:獲取幫助信息

cd:切換目錄

lcd:切換本地系統目錄

get FILE:下載文件;

!COMMAND:執行shell命令,而非FTP命令

mget FILE1…FILEn:下載多個文件,支持使用通配符

mirror DIR:鏡像目錄至本地

put FILE:上傳文件

put FILE1…FILEn:上傳多個文件

lftpget:類似于wget:下載指定URL

kernel:

www.kernel.org

編譯內核前提:查看本地硬件信息常用工具

1、 查看CPU信息:

cat /proc/cpuinfo

x86info:不常用 需要額外安裝

lscup

2、查看PCI信息

lspci

-v

3、查看USB

lsusb

4、查看塊設備

lsblk

1、 查看所有硬件

/boot/config-2.6.32… 所有硬件信息整合到此文件中

編譯:交叉編譯

cross-compilling

編譯內核的步驟:(安裝好開發環境) CentOS6:Development Tools; Server Platform Development; curese-devel)

第一步:配置內核

make config

make allyesconfig

make allnoconfig

make menuconfig

make gconfig(依賴于Gnome桌面環境及Gnome的圖形開發環境, –gkt2)

make kconfig(依賴于KDE桌面環境及KDE圖形開發環境,qt)

第二步:編譯

make

第三步:安裝內核模塊

make modules_install

安裝位置:/lib/modules/VERSION

分析模塊間依賴關系并成dep文件

第四步:安裝內核

make install

安裝內核:/boot/vmlinuz-VERSION

編輯grub.conf,添加一新的title

獲取源代碼,展開指定目錄下:

tar xf Linux-3.10… -C /usr/src

ln –sv linux-3.10.10 linux

cd linux

make menuconfig

編輯完成后自動保存成.config文件

可以先將/boot下的config文件復制到Linux目錄中,將名字改為.config,再使用make menuconfig來修改配置。

后續的編譯,開始之前的清理工作

make clean

清理編譯的文件,但保留配置文件;

make mrproper

移除所有編譯生成的文件,配置文件和備份文件;

make distclean

完全清理

 

1、 將編譯生成的文件保存至別處;

mkdir /path/to/somewhere

cd /path/to/somewhere

./configure –ksource=/usr/src/linux

2、 如何只編譯內核的部分代碼

(1) 只編譯某子目錄中的相關代碼

cd /usr/src/linux

例如: make SUBDIR=arch/

 make diver/net/

(2) 只編譯部分模塊

make M=path/to/dir

make M=drivers/net

(3) 只編譯一個模塊

make path/to/dir/MOD_NAME.ko

例如:

make drivers/net/Ethernet/intel/e1000/e1000.ko

(4) 將編譯生成的文件保存至別處

make O=/path/to/some/where

1. 交叉編譯

make ARCH=arch

例如:

make ARCH=arm

獲取ARCH的可用默認配置

make ARCH=arch help 

例如:

make ARCH=arm acs5k_defconfig

原創文章,作者:petmaster,如若轉載,請注明出處:http://www.www58058.com/4441

(0)
petmasterpetmaster
上一篇 2016-01-16 22:55
下一篇 2016-01-18 17:16

相關推薦

  • 文本處理工具 練習

    7.1 練習   1 、找出ifconfig 命令結果中本機的所有IPv4 地址 2 、查出分區空間使用率的最大百分比值   3 、查出用戶UID 最大值的用戶名、UID 及shell 類型 4 、查出/tmp 的權限,以數字方式顯示   5 、統計當前連接本機的每個遠程主機IP 的連接數,并按從大到小排序   &nb…

    Linux干貨 2016-08-07
  • Linux文件查找之find秘笈

    前言     Linux的基本特點之一是一切皆文件,在系統管理過程中難免會需要查找特定類型的文件,那么問題來了:如何進行有效且準確的查找呢?本文將對Linux系統中的文件查找工具及用法進行詳細講解。 常用工具對比     常用的文件查找工具主要有locate(非實時查找)和find(實時查找)。locate查找依賴于索…

    2015-03-23
  • rrdtool學習筆記

    一、前言 為了做云緩存平臺的技術儲備,從零開始學習了rrdtool,rrdtool非常強大,剛接觸會有摸不著邊的感覺,尤其是一堆概念性的東西。學習的切入點便是這些概念,一一理解后你才能品嘗到rrdtool的清香,首先要感謝ailms整理的“RRDtool簡體中文教程v1.01”,通俗易懂的概況了rrdtool的所有知識。現在整理自己在學習過程中的一些筆記。 …

    2015-03-21
  • 馬哥教育網絡班21期-第八周課程練習

    1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。 網橋:是將廣播域劃分為多個小的沖突域,但廣播域沒有變。工作在OSI模型的數據鏈路層,端口很少;基于軟件;可以處理上層事務。集線器:對接收到的信號進行再生整形放大,擴大網絡傳輸距離;屬于純硬件網絡底層設備,工作在OSI模型的物理層,不具有交換機的”智能記憶”和”學習”的能力;也不具…

    Linux干貨 2016-08-29
  • shell編寫的linux命令練習工具

    linux常用命令加選項,有成百上個,僅僅靠背誦忘記得太快,所以寫了此腳本,便于對linux命令的練習,希望能幫助到大家。 運行腳本效果如下: 上邊兩圖一個是運行腳本時的截圖,另一個為題庫的格式(@做分隔符,所以如果題目中有@一定要替換掉) 下面附上源碼 #!/bin/bash#版本號:1.0 #作者:Mr.L #WX:504498722FILE=/root…

    2017-03-19
  • LVS詳解

    概述     LVS是工作在4層的負載均衡調度器,可根據請求報文的目標IP和目標協議及端口,根據指定的調度算法,將請求調度轉發至某RealServer,本篇就針對LVS的原理,配置和使用進行簡單介紹,具體包含:     1、LVS的四種類型的介紹   &nbs…

    Linux干貨 2016-10-27
欧美性久久久久