內核參數修改 內核編譯 第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
下一篇 2016-01-18

相關推薦

  • pam_mysql認證ftp虛擬用戶賬號,且擁有不同的權限

    關防火墻:#systemctl stop firewalld                #setenforce 0 #yum install mariadb.server #yum install mariadb-d…

    Linux干貨 2017-06-07
  • MAN手冊、Linux文件系統等介紹

    適合人群:Linux初學者 主要內容: Man手冊使用介紹        FHS文件系統介紹        Linux文件類型介紹        隨堂筆記 操作環境:CentOs?。叮?☆ MAN 手冊介紹 man手冊…

    Linux干貨 2016-10-18
  • 馬哥教育網絡第21期-第1周課程練習

    第一周博客 1、描述計算機的組成及其功能。 計算機的組成:運算器、控制器、儲存器、輸入設備、輸出設備 運算器+控制器 = CPU 儲存器 = RAM(內存) I/O(輸入/輸出)設備 = 硬盤、打印機、鼠標、鍵盤、顯示器 CUP:運算和邏輯運算 儲存器:緩存和儲存數據 I/O設備:計算機與用戶交互的設備 2、按系列羅列Linux的發行版,并描述不同發行版之間…

    Linux干貨 2016-06-26
  • Dell R720 安裝debian系統編譯網卡驅動

    最近比較忙,視頻也沒怎么看,下面是之前工作中遇到的問題,事后做的記錄,中間解決過程參考了網上的相關資料,現在一并貼出來。 需求:Dell R720 安裝debian系統 環境 硬件:Dell R720  軟件:系統有debian 7.0.0和debian 6.0.10 1. debian 7.0.0 : 集成了DELL PCRE H710 Mini…

    Linux干貨 2015-08-04
  • day6總結

    主要內容: useradd與usermod對比 groupadd與groupmod對比 passwd與chage對比 gpasswd與groupmems對比 切換用戶 chown與chgrp用法 一般權限與特殊權限 chmod用法   useradd創建用戶的初始信息存放在/etc/login.defs和/etc//default/useradd文…

    系統運維 2016-08-08
  • “lnmap實戰之負載均衡架構(無高可用)”之新增keepalived高可用

    “lnmap實戰之負載均衡架構(無高可用)”之新增keepalived高可用 我之前有一篇”lnmap實戰之負載均衡架構(無高可用)“博客是專門部署了lanmap,之前沒有做高可用,那么我們現在就把高可用補上去吧 這樣我們照著之前的文檔從新部署一下 1.機器結構如下: 192.168.42.150 node0 …

    Linux干貨 2017-06-25
欧美性久久久久