你好,楼主:
1、配置.config文件,将你要编译的配置XXX_config准备好,使用make XXX_config来进行配置;
2、这时你就可以在内核根目录下进行make menuconfig来使用图形界面配置内核选项,配置后保存即可;
3、最后只需要使用make或者make uImage生成相应的镜像即可。
注意问题多在config这里,如果配置时报错,可尝试make clobber来清除原来的依赖关系。
2. ubuntu内核编译中遇到的问题
一般编译完内核后是要重新再把驱动也编译一次的
或者说你的X-Server服务器启动没有.
//你去玩下LFS,不过我英语不好,那次中途就退出了.
3. 怎么改Linux内核
图形界面本身不属于内核范畴。你如果要去掉图形界面只需要把启动运行级别从5改成3。至于你所说的内核定制,必须先弄清楚各内核选项的含义以及你自己机器的硬件配置。 参考资料只有内核源码和文档,或者你看看LFS?
4. 嵌入式linux系统一般选择什么版本的linux进行裁剪和移植比较好
如果你想把RedHat,Ubuntu这些桌面系统裁剪到100MB的话,真的是挺难的,而且没有什么意义~~~
建议你从网上下载Android或者Meego的代码,这两个系统是目前基于Linux比较成功的开源移动终端OS了。做出来的镜像,大小基本可以接受,而且最关键的是性能很好。里面很多组件都是针对移动设备做了特殊优化的,比拿桌面OS裁剪,要好的多。
如果你决定用Android或者Meego的话,主要的工作量,就在于内核的裁剪了。这部分,可以讲的东西太多了。建议你补充一些内核的基础知识,并且多在PC上配置、更新内核,多练练,自己就清楚了。
如果纯粹是拿着玩的话,你还可以自己做文件系统,里面加上Busybox,就可以支持很多常见的命令了。然后,你还可以慢慢加用户登录程序,图形界面等。当然,这是从零到繁的思路了。跟你问的正好相反。
有问题,请追问。
5. Linux的内核代码如何编译
1、安装内核
如果内核已经安装(/usr/src/目录有linux子目录),跳过
如果没有安装,在光驱中放入linux安装光盘,找到kernel-source-2.xx.xx.rpm文件(xx代表数字,表示内核的版本号),
比如RedHat linux的RPMS目录是/RedHat/RPMS/目录,然后使用命令rpm -ivh kernel-source-2.xx.xx.rpm安装内核
如果没有安装盘,可以去各linux厂家站点或者www.kernel.org下载。
2、清除从前编译内核时残留的.o 文件和不必要的关联
cd /usr/src/linux
make mrproper
3、配置内核,修改相关参数,请参考其他资料
在图形界面下,make xconfig;字符界面下,make menuconfig
在内核配置菜单中正确设置个内核选项,保存退出
4、正确设置关联文件
make dep
5、编译内核
对于大内核(比如需要SCSI支持),make bzImage
对于小内核,make zImage
6. linux内核编译
首先到www.kernel.org网站去下载一个2.6以上版本的内核。因为旧版本在编译时的指令与2.6版本有些不同。用tar zxvf 或 jxvf 结压。解压后进入文件夹,输入 make menuconfig 后可以看到一个图形界面,用于对内核进行配置。具体的配置项请参考《linux 2.6 内核配置》,该文章可以从网络文库中下载。配置完成后,记住一定要保存到.config系统文件中。最后输入make,进行编译。编译完成后在boot文件夹下会自动生成zImage文件,这就是新内核的镜像文件。编译一般需要两个小时。
7. 三、内核&文件系统编译
一、编译官方提供的内核源码
1、解压官方提供的内核源码包
2、根据官方提供的配置文件对内核进行配置,方式如下
make ARCH=arm xxxxx_defult_config
cp arch/arm/xxxxx_config .config
3、打开图形界面对内核进行配置,根据需要增加或者删除模块和其他内容
4、对内核进行编译
make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux-uclibcgnueabi- uImage -j6
或者编辑Makefile文件,对其中的ARCH变量和CROSS_COMPILE变量进行修改,然后执行make uImage
5、在编译编译的时候回出现mkimage命令缺失,这个命令是UBootr提供的,在编译的UBoot路径下面找到这个命令,即可直接使用
6、编译的时候各个方面需要一致性,
1、编译的内核的交叉编译工具链如果支持硬件浮点数运算那么在配置内核的时候也需要添加硬件浮点数的支持
Kernel Features --->
[*] Use the ARM EABI to compile the kernel
2、在编译的内核的时候注意保持不要做太多的修改,否则会出问题
7、编译内核模块
make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux-uclibcgnueabi- moles -j6
8、安装内核模块到指定的目录中去
make moles_install ARCH=arm CROSS_COMPILE=arm-hisiv300-linux-uclibcgnueabi- INSTALL_MOD_PATH=/home/fu/hisi/kernel/build
9、不要采用内核模块安装的命令来安装内核,因为内核不需要安装,在arch/arm/boot/uImage就是所需要的内核文件
二、编译官方提供的busybox来构建根文件系统
1、解压需要编译的busybox源码
2、进入源码中对busybox进行配置,主要是配置交叉编译工具链
Busybox Settings --->Build Options ---> 下面有关于busybox是否配置为采用共享库的模式,还有添加交叉编译工具链的前缀
3、配置需要的文件和命令进行添加或者删除
4、然后执行命令make -jn && make install
5、创建根文件系统需要的其他的文件和目录,在一个空白的目录中首先拷贝busybox/_install下面的bin、sbin、usr目录到空白目录中,在空白目录中创建其余的所需要的目录文件 bin dev etc home lib linuxrc mnt opt proc sbin sys tmp usr var等以上目录
6、接下来在lib目录中复制内核模块,在编译内核的时候模块安装在了指定的地方,直接拷贝过来就行。
6、创建文件系统所需要的其他文件,配置文件(最简单的办法就是直接复制busybox文件下面的example文件夹里面的东西)
1、/etc/inittab 填写或者 一下是最基本的,还有其他的需要填写
# /etc/inittab
::sysinit:/etc/init.d/rcS //指定初始化脚本
::askfirst:-/bin/sh //指定第一次输入回车后打开的shell
::ctrlaltdel:/sbin/reboot //指定这三个按键按下后的反应
::shutdown:/bin/umount -a -r //指定关机是进行的操作
2、/etc/init.d/rcS //这个就没有详细额硬性规定了,写入需要初始化的东西即可
#!/bin/sh
mount -a
3、/etc/fstab //写入mount -a是要自动挂载的文件系统
# device mount-point type options mp fsck order
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
7、拷贝需要用到的库文件,在交叉编译工具链下面存放
arm-linux-xxxxxx-gcc/lib
海思的开发板是在和tahet/lib下面,切记。