看了《奔跑吧 linux 核心》的書,感覺記憶體管理這一部分後面的例子不錯,
就想手敲一遍體驗一下例子(自己對這方面感覺一直雲裡霧裡)
nasri@ubuntu:/usr/local$ apt-cache search linux-source
linux-source - linux kernel source with ubuntu patches
linux-source-3.13.0 - linux kernel source for version 3.13.0 with ubuntu patches
nasri@ubuntu:/usr/local$ apt-get install linux-source-3.13.0
e: could not open lock file /var/lib/dpkg/lock - open (13: permission denied)
e: unable to lock the administration directory (/var/lib/dpkg/), are you root?
nasri@ubuntu:/usr/local$ sudo apt-get install linux-source-3.13.0
[sudo] password for nasri:
reading package lists... done
building dependency tree
reading state information... done
suggested packages:
kernel-package libqt3-dev
the following new packages will be installed:
linux-source-3.13.0
0 upgraded, 1 newly installed, 0 to remove and 51 not upgraded.
need to get 97.5 mb of archives.
after this operation, 113 mb of additional disk space will be used.
.....
apt-cache search linux-source//獲取當前核心原始碼版本
sudo apt-get install linux-source-3.13.0//獲取核心原始碼
實際上在/user/src下面就有核心原始碼
我這裡是ubuntu系統
在/user/src下面有2份原始碼
nasri@ubuntu:/$ ls /usr/src/
linux-headers-4.4.0-142 linux-source-3.13.0
linux-headers-4.4.0-142-generic linux-source-3.13.0.tar.bz2
nasri@ubuntu:/$
linux-headers-4.4.0-142和linux-headers-4.4.0-142-generic
到底目前用的是哪個呢,用uname -a命令可以看下用的是generic的這個
nasri@ubuntu:/usr/src/linux-headers-4.4.0-142$ uname -a
linux ubuntu 4.4.0-142-generic #168~14.04.1-ubuntu smp sat jan 19 11:26:28 utc 2019 x86_64 x86_64 x86_64 gnu/linux
nasri@ubuntu:/usr/src/linux-headers-4.4.0-142$
不知道啊。。。我現在在論壇問問
我把/user/src下的壓縮包copy到我本地的work目錄下
cp /usr/src/linux-source-3.13.0_nasri/linux-source-3.13.0.tar.bz2 .
解壓:
tar -xjvf linux-source-3.13.0.tar.bz2
切換到這個目錄下:
nasri@ubuntu:~/work/linux-source-3.13.0$
等下編譯核心,安裝必要的軟體:
sudo apt-get install libncurses5-dev libssl-dev
sudo apt-get install build-essential openssl
sudo apt-get install zlibc minizip
sudo apt-get install libidn11-dev libidn11
這是我再網上找的編譯4.16的核心需要的軟體,這裡我試了下,找不到minizip,所以暫時不裝
等編譯的是時候出問題再解決
依次執行以下三條命令:
sudo make mrproper
sudo make clean
sudo make menuconfig
其中mrproper為清除編譯過程中產生的所有中間檔案,clean為清除上一次產生的編譯中間檔案,在menuconfig**現選擇的圖形化介面後,直接按右方向鍵選擇到exit退出,退出提示中選擇儲存,實現核心的預設配置。
執行命令:
sudo make –j8
編譯核心開始,慢慢等待吧。
sudo make zimage
這個應該沒什麼用
make modules
make modules_install
make install
還要修改啟動的檔案
nasri@ubuntu:~$ sudo vim /etc/default/grub
[sudo] password for nasri:
nasri@ubuntu:~$
nasri@ubuntu:~$
nasri@ubuntu:~$ sudo update-grub
generating grub configuration file ...
found linux image: /boot/vmlinuz-4.4.0-142-generic
found initrd image: /boot/initrd.img-4.4.0-142-generic
found linux image: /boot/vmlinuz-3.13.11-ckt39
found initrd image: /boot/initrd.img-3.13.11-ckt39
found linux image: /boot/vmlinuz-3.13.11-ckt39.old
found initrd image: /boot/initrd.img-3.13.11-ckt39
found memtest86+ image: /boot/memtest86+.elf
found memtest86+ image: /boot/memtest86+.bin
done
nasri@ubuntu:~$ sudo reboot
# if you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# for full documentation of the options in this file, see:
# info -f grub -n '****** configuration'
grub_default=1
#grub_hidden_timeout=0
grub_hidden_timeout_quiet=true
grub_timeout=10
grub_distributor=`lsb_release -i -s 2> /dev/null || echo debian`
grub_cmdline_linux_default="quiet"
grub_cmdline_linux="find_preseed=/preseed.cfg auto noprompt priority=critical locale=en_us"
這裡把第二行去掉,重啟之後就選第二個之後可以選擇需要用的核心版本
這裡的1 是1級選單,3是二級選單,「1(空格) > (空格) 3「
grub_default="1 > 3"
#grub_hidden_timeout=0
grub_hidden_timeout_quiet=true
grub_timeout=10
grub_distributor=`lsb_release -i -s 2> /dev/null || echo debian`
grub_cmdline_linux_default="quiet"
grub_cmdline_linux="find_preseed=/preseed.cfg auto noprompt priority=critical locale=en_us"
這裡有講解這個 1 > 2二級選單的介紹
重啟試試看
重啟之後成功替換了原有的核心
用unmae -a看核心已經是3.13的核心了
然後再把grub_timeout換為0
或者把grub_hidden_timeout=0注釋取消掉
好了,自己編譯的核心就把原有的核心替換掉了。
ubuntu 編譯核心
第一步 安裝必要的工具 首先要安裝必要的包。包有 libncurses5 dev menuconfig 需要的 和 essential sudo apt get install build essential kernel package 核心打包deb的可以不用裝手動安裝 sudo apt get...
Ubuntu下編譯核心
cd wget 安裝有關編譯程式。安裝make gcc,make kpkg,執行menuconfig等等和編譯核心相關的工具。安裝不了,請檢查 etc apt sources.list 檔案。有關命令 sudo apt get install build essential kernel packa...
ubuntu 下編譯核心
2.為寫qemu的watchdog驅動練手。有朋友問make的 watchdog驅動 需要什麼準備,所以寫這個blog。ubuntu 12.04.4 1.make 時間 大於1個小時 1.安裝編譯核心所需要的軟體 apt get install build essential kernel pack...