『壹』 安裝lfs執行到6.7安裝linux API Headers時執行make headers_check命令時總是出現錯誤
我在做7.1,遇到同樣錯誤,我發現錯誤了。在裝perl的時候,吧/tools/lib/perl5,錯誤寫成了/tools/lib/prel5了,prel,囧。 改回來問題滾毀解決了。。毀備扒樓主你的呢。纖昌
『貳』 linux from scratch 怎麼操作
linux from scratch 操作:
第一部分:環境設置
1、安裝VirtualBox3.1.8
2、安裝Linux操作系統(RHEL或Centos等,不能用ubuntu,因為要有patch,m4,-1.4.10,autoconf,yacc等程序)
3、安裝增強功能並分配固定數據空間,設置/mnt/share共享:
mount -t vboxsf share /mnt/share
如果要開機就掛上共享,可以在/etc/fstab的最後加上
share /mnt/share vboxsf rw,gid=100,uid=1000,auto 0 0
4、解壓lfslivecd-x86-6.3-42145.iso里的lfs-sources到share
#另外,也可以不用安裝操作系統,直接用lfslivecd-x86-6.3-42145.iso作啟動盤;
#啟動後選/Asia/shanghai及Chinese(simpifiled utf8),然後可以用cfdisk /dev/hda進行分區
#啟動盤的/usr/share/LFS-BOOK-6.3-HTML目錄下就是LFS手冊
#由於要復制粘貼,所以要開啟ssh服務,virtualbox設置的網路里將NAT(網格地址轉換)改為Bridged Adapter,界面名稱選1x1
11b/g/n Wireless LAN PCI Express Half Mini Card Adapter(這是我的無線卡).
#啟動後用ifconfig就能查看地址,然後再用passwd給root設個密碼(不然客戶端不能登錄)
#然後啟動服務/etc/rc.d/init.d/sshd start
#最後再Windows里用putty連接ssh伺服器(在Session界面的HostName里輸入IP,Connection
Type里選SSH即可)。
#如果要用putty傳輸文件,則打開cmd窗口,輸入命令:pscp 源文件路徑 root@hostIp:目的路徑
如將aaa.jpg傳到/home下,則:pscp aaa.jpg [email protected]:/home
5、將/mnt/share/lfs-sources設置到根目錄的lfs-sources:
ln -s /mnt/share/lfs-sources /
6、添加一個8G的虛擬硬碟(硬碟大小最好不小於2G)
7、分區並格式化硬碟:
8、生成sources及tools目錄
9.將tools掛至根目錄:
ln -sv $LFS/tools /
10.生成lfs用戶
11.生成lfs用戶環境
12.重新進入環境
第二部分:工具鏈製作
13.編譯binutils
14.編譯gcc
15.安裝內核頭文件Linux API Headers
16.編譯Glibc-2.5.1
17.調整工具鏈
18.測試工具鏈的調整
19.測試工具安裝
20.GCC安裝(第二遍)
21.安裝Binutils(第二遍)
22.安裝Ncurses
23.安裝Bash
24.安裝Bzip
25.安裝Coreutils
26.安裝Diffutils
27.安裝Fintils
28.安裝Gawk
29.Gettext
30.Grep
31.Gzip
32.Make
33.Patch
34.安裝Perl
35.安裝Sed
36.安裝Tar
37.安裝Texinfo
38.安裝Util-linux
39.刪除些不用的東西(可不執行)
第三部分 主機中設置lfs
40.回到主機並建三個目錄
41.建設備文件
43.復制源碼到目標系統下
44.chroot到目標系統下(將新盤作為根目錄)
45.建立目標系統目錄結構
46.創建幾個必要的鏈接
47.創建root及nobody用戶組
48.重載入bash
第四部分 軟體包安裝
50.重啟的環境恢復
51.進入軟體包目錄
52.安裝Linux頭
53.安裝Man-pages
54.安裝Glibc
55.調整工具鏈
56.調整specs文件
57.測試是否調整成功
58.安裝Binutils
59.安裝GCC
60.測試GCC是否安裝正確
61.安裝Berkeley
62.安裝Sed
63.安裝E2fsprogs
64.安裝Coreutils
65.安裝Iana-Etc
66.安裝M4-1.4.10
67.安裝Bison
68.安裝Ncurses
69.安裝Procps
70.安裝Libtool
71.安裝Perl
72.安裝Readline
73.安裝Zlib
74.安裝Autoconf
75.安裝Automake
76.安裝Bash
77.安裝Bzip
78.安裝Diffutils
79.安裝File
80.安裝Fintils
81.Flex
82.安裝Grub
83.安裝Gawk
84.安裝Gettext
85.安裝Grep
86.安裝Groff
87.安裝Gzip
88.安裝Inetutils
89.安裝IPRoute
90.安裝kbd
91.安裝Less
92.安裝Make
93.安裝Man-DB
94.安裝Mktemp
95.安裝Mole-Init-Tools
96.安裝Patch
97.安裝Psmisc
98.安裝Shadow
99.安裝Sysklogd
100.安裝Sysvinit
101.安裝Tar
102.安裝Texinfo
103.安裝Udev
104.安裝Util-linux
105.安裝Vim
106.退出chroot環境
第五部分 安裝系統
107.從現在到製作結束,重啟後設置
108.生成相關文件
109.安裝內核
110.安裝Grub
111.設置Grub啟動菜單(注意,如果是兩個分區則應修改root選項為hd0,1及/dev/hda2)
112.將menu.lst連接到/etc目錄
113.結束
logout
至此,已經全部安裝完成,可以啟動自己的系統了。
-----------------------------------------------------------------------
另:
114.安裝Linux2.6.37版本(linux-2.6.37.tar.bz2)
Perl和iprout要用更高版本,用:
perl-5.14.1.tar.bz2
iproute2-3.3.0.tar.bz2
115.解壓initrd文件
116.製作內存啟動盤
『叄』 如何通過linux源碼樹製作linux kernel headers用於內核模塊開發
先查看自己OS使用的內核版本
shana@shana:~$ uname -r
2.6.22-14-generic
如果安裝系統時,自動安裝了源碼。在 /usr/src 目錄下有對應的使用的版本目錄。例如下(我是自己下的)
shana@shana:/usr/src$ ls
linux-headers-2.6.22-14
linux-headers-2.6.22-14-generic
linux-source-2.6.22
linux-source-2.6.22.tar.bz2
shana@shana:/usr/src$
如果沒有源碼。(一般ubuntu 都沒有吧)
查看一下可一下載的源碼包(切記不要使用超級用戶使用此命令否則……會提示沒有此命令)
shana@shana:/usr/src$ apt-cache search linux-source
linux-source - Linux kernel source with Ubuntu patches
xen-source-2.6.16 - Linux kernel source for version 2.6.17 with Ubuntu patches
linux-source-2.6.22 - Linux kernel source for version 2.6.22 with Ubuntu patches
shana@shana:/usr/src$
我選擇了 linux-source-2.6.22 - Linux kernel source for version 2.6.22 with Ubuntu patches 這個~
然後 install 之
shana@shana:/usr/src$ sudo apt-get install linux-source-2.6.22
下載完成後,在/usr/src下,文件名為:linux-source-2.6.22.tar.bz2,是一個壓縮包,解壓縮既可以得到整個內核的源代碼:
注意 已經切換到超級用戶模式
root@shana:/usr/src#tar jxvf linux-source-2.6.20.tar.bz2
解壓後生成一個新的目錄/usr/src/linux-source-2.6.22,所有的源代碼都在該目錄下。
進入該目錄
開始配置內核 選擇最快的原版的配置(默認)方式 (我是如此)
root@shana:/usr/src/linux-source-2.6.22# make oldconfig
當然你也可以使用 自己喜歡的配置方式 如 menuconfig , xconfig(必須有GTK環境吧)。反正不用剪裁什麼,所以不管那種方式能配置它就行了。
完成後,開始make 吧 這兒比較久 一般有1一個小時吧。(保證空間足夠 我編譯完成後 使用了1.8G) 我分區時分給/目錄30G的空間,我沒遇到這問題。倒是我朋友遇到了。
shana@shana:/usr/src/linux-source-2.6.22$ make
shana@shana:/usr/src/linux-source-2.6.22$ make bzImage
當然,第一個make也可以不執行,直接make bzImage。執行結束後,可以看到在當前目錄下生成了一個新的文件: vmlinux, 其屬性為-rwxr-xr-x。
然後 :
root@shana:/usr/src/linux-source-2.6.22#make moles
root@shana:/usr/src/linux-source-2.6.22#make moles_install
執行結束之後,會在/lib/moles下生成新的目錄/lib/moles/2.6.22-14-generic/
。 在隨後的編譯模塊文件時,要用到這個路徑下的build目錄。至此,內核編譯完成。可以重啟一下系統。
至此 內核樹就建立啦
『肆』 liunx系統中調用Api介面
項目部署至linux系統後,通過url調用API介面,使用postman工具生敬帆虧成CURL postman生成步驟.(get請求為例)
1.postman中根據請求方式get\post輸入對應的請求url
2.headers中輸入頭部參轎喚數(不固定)
3.點擊"Code"彈出 GENERATE CODE SNIPPETS
1.彈窗中選中 "cURL",復制請求至系統中運行,亮神回車調用成功。
原文鏈接: https://blog.csdn.net/qq_39356994/article/details/110628677
『伍』 如何在Linux上安裝內核頭文件
當你在編譯一個設備驅動模塊時,你需要在系統中安裝內核頭文件。內核頭文件同樣在你編譯與內核直接鏈接的用戶空間程序時需要。當你在這些情況下安裝內核頭文件時,你必須確保內核頭文件精確地與你當前內核版本匹配(比如:3.13.0-24-generic)。
如果你的內核是發行版自帶的內核版本,或者使用默認的包管理器的基礎倉庫升級的(比如:apt-ger、aptitude或者yum),你也可以使用包管理器來安裝內核頭文件。另一方面,如果下載的是kernel源碼並且手動編譯的,你可以使用make命令來安裝匹配的內核頭文件。
現在我們假設你的內核是發行版自帶的,讓我們看下該如何安裝匹配的頭文件。
在 Debian、Ubuntu 或者 Linux Mint 上安裝內核頭文件
假設你沒有手動編譯內核,你可以使用apt-get命令來安裝匹配的內核頭文件。
首先,使用dpkg-query命令檢查是否有可用的內核頭文件。
$ dpkg-query -s linux-headers-$(uname -r)
dpkg-query: package 'linux-headers-3.11.0-26-generic' is not installed and no information is available
接著使用下面的命令安裝匹配的內核頭文件。
$ sudo apt-get install linux-headers-$(uname -r)
驗證頭文件是否成功安裝。
$ dpkg-query -s linux-headers-$(uname -r)
Package: linux-headers-3.11.0-26-generic
Status: install ok installed
Debian、Ubuntu、Linux Mint默認頭文件在/usr/src下。
在 Fedora、CentOS 或者 RHEL 上安裝內核頭文件
假設你沒有手動編譯內核,你可以使用yum命令來安裝匹配的內核頭文件。
首先,用下面的命令檢查系統是否已經安裝了頭文件。如果下面的命令沒有任何輸出,這就意味著還沒有頭文件。
$ rpm -qa | grep kernel-headers-$(uname -r)
接著用yum命令安裝頭文件。這個命令會自動找出合適的頭文件並安裝。
$ sudo yum install kernel-headers
驗證包安裝的狀態。
$ rpm -qa | grep kernel-headers-$(uname -r)
『陸』 在LFS中的Linux-2.6.22.5 API Headers執行make headers-check報錯,前面的是正確的啊
你解壓的文件亮模頌夾中沒有.config文件,是一個隱藏文件,內核的配製文件。
make mrproper命令沒執行吧
再不行就make oldconfig或
cp /boot/碼數config-`uname -r` ./.config
復制一個過敬鄭來就行了