『壹』 安装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
复制一个过敬郑来就行了