內核參數配置
/proc: 內核映像:許多參數(讀寫,只讀),/proc:把內核參數net.ipv4.ip_forward虛擬成文件系統:net/ipv4/ip_forward
只讀文件:輸出統計信息
讀寫文件:設定內核工作特性,不允許使用文本編輯器打開進行編寫,而只能使用重定向的方式或使用專用的工具
幾個常用參數:
kernel.hostname:設定主機名
vm.drop_caches:回收虛擬內存中buffers、cache中的空間。例如: echo 1 > /proc/sys/vm/drop_caches
net.ipv4.icmp_echo_ignore_all:禁止其他主機ping該主機。echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
net.ipv4.ip_forward:定義本機路由器功能是否開啓。echo 1 >/proc/sys/net/ipv4/ip_forward
sysctl:配置內核參數專用工具,讀取配置文件/etc/sysctl.conf,常用選項如下:
-w:VARAIABLE=VALUE指定內核參數修改值例如:sysctl -w net.ipv4.ip_forward=1
-a:顯示sysctl可修改所有內核參數
-p:重讀配置文件/etc/sysctl.conf並立即生效例如:sysctl -p
sys:kernel在初始化硬件時,根文件系統尚未掛載,內核會把所有探測到的硬件信息全部映射到/sys目錄中,用戶空間udev程序就可根據/sys中信息來爲每個設備按需創建設備文件。
udev通過udevadmin命令讀取sys目錄下硬件信息,檢查該硬件設備是否存在,沒有就添加並創建設備文件,hotplug會實時監測sys目錄,如有設備加入或減去就會通知udev創建或移除設備文件。例如,插入或移除u盤
udev創建設備文件是根據udev規則進行,規則文件在/etc/udev/rules.d/
dracut創建虛擬根文件例如:dracut /boot/initramfs-$(uname -r).img $(uname -r)
展開initramfs文件:之前需要查看壓縮類型file initramfs-RELEASE.img
# cp /boot/initramfs-RELEASE.img /tmp/initramfs.img.gz
# gzip -d /tmp/initramfs.img.gz
# mkdir /tmp/initramfs
# cd /tmp/initramfs
# cpio -id < /tmp/initramfs.img.gz
exec COMMAND :能啓動command爲一個進程,此進程會取代當前shell進程;
screen工具:啓動新屏幕:screen、exit, 關閉屏幕、Ctrl+a, d:切換屏幕、
screen -ls: 查看所有被隱藏的屏幕SID、screen -r SID打開屏幕
lftp: ftp客戶端工具
-u USERNAME,PASSWORD:指定用戶名和密碼。
-p PORT:指定端口。
-e 'CMD':執行一個命令 :例如 lftp -u root,root -p 123 192.17.54.1
lftp: 命令:
help: 獲取幫助
cd: 切換遠程服務器上的文件系統目錄
lcd: 切換本地文件系統目錄
get FILE: 下載、mget FILE1...: 下載多個文件,支持使用通配符
!COMMAND: 執行本地shell命令,而非ftp服務器上命令
mirror DIR: 鏡像目錄至本地
put FILE:上傳文件、mput FILE1...:上傳多個文件
lftpget類似於wget: 下載指定URL
Linux內核編譯安裝,
在編譯前需要先收集硬件信息,也可以根據系統收集的硬件信息進行編譯/boot/config文件中
查看CPU信息:cat /proc/cpuinfo、lscpu
查看PCI:lspci -v
查看USB:lsusb
查看塊設備:lsblk
編譯:linux支持交叉編譯,在本機上根據需要運行的主機平臺和硬件信息進行編譯。
編譯內核的步驟:(必須安裝好開發環境,c6: Development Tools, Server Platform Development, ncurses-devel),先檢查包是否安裝完畢:yumgrouplist,之後安裝所需包:yum groupinstall “Development Tools”
第一步:配置內核
make config:手動指定功能開啓或關閉
make allyesconfig:開啓內核中所有功能編譯
make allnoconfig:不開啓任何功能編譯
make menuconfig:打開文本控制界面,讓用戶手動選擇開啓或關閉那些功能
make gconfig:依賴GNome桌面環境及GNome的圖形開發環境,gtk2
make kconfig :依賴KDE桌面環境及KDE的圖形開發環境,qt
第二步:編譯
make -j 2 :-j指定用幾顆cpu進行編譯,編譯速度可以提升。
第三步:安裝內核模塊
make modules_install
安裝位置:/lib/modules/VERSION/,分析模塊間依賴關係併成dep文件
第四步:安裝內核
make install,安裝是否成功檢查grub.conf中是否添加新的啓動項。
安裝內核:/boot/vmlinuz-VERSION,編輯grub.conf,添加一新的title
獲取內核源代碼,展開指定目錄下:tar xf linux-version.tar.xz -C /usr/src
在已有的內核上進行二次編譯前需做清理操作:
make clean:清理編譯的文件,但保留配置文件
make mrproper:移除所有編譯生成的文件、配置文件和備份文件
make distclea:完全清理
將編譯生成的文件保存至別處:
mkdir /path/to/somewhere
cd /path/to/somewhere
./configure --ksource=/usr/src/linux
如何只編譯內核的部分代碼:
只編譯某子目錄中的相關代碼:cd /usr/src/linux、make path/to/dir/
只編譯部分模塊:make M=path/to/dir。例如:make M=drivers/net/
只編譯一個模塊: make path/to/dir/MOD_NAME.ko。例如:make drivers/net/ethernet/intel/e1000/e1000.ko
將編譯生成的文件保存至別處:make O=/path/to/somewhere
交叉編譯:
make ARCH=arch,
獲取某ARCH的可用的默認配置:make ARCH=arch help。例如:make ARCH=arm acs5k_defconfig
馬哥筆記第十四天內核編譯、lftp、內核編譯安裝
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.