官方网址:
编译制作:
首先从官网下载buildroot,现最新版本发布日期为2010.8
下载后解压
执行make menuconfig
(因为我是需要制作一个运行在较低配置的x86 PC上的Linux,故没有修改处理器类型,如果需要制作运行在ARM上的嵌入式系统,则需要选择处理器类型,并启用bootloader)
需要选择
Target filesystem options->Compression method()->gzip
Kernel->Linux kernel
然后执行make
过程中buildroot会自动下载需要的工具,内核,busybox等,但下载速度较慢,可以自行下载后放到dl目录下
编译时会出现一个错误,大意为在/arch/x86/config目录下找不到.config_defconfig
解决办法:buildroot/output/build/linux-2.6.34.1/arch/x86/config/i386_defconfig复制成.config_defconfig
编译完成后内核和文件系统文件放在output/images目录下
此时可对它们进行测试,测试方法:
将生成的两个文件bzImage,rootfs.ext2.gz拷贝到/boot目录
重启系统,进入grub的时候进入命令模式(按c键),依此输入
kernel /bzImage
initrd /rootfs.ext2.gz
boot
如能进入shell,表示制作成功。
首次编译无法进入shell
执行make linux26-menuconfig,然后对内核进行配置,选中以下选项:
General setup->Initial RAM filesystem and RAM disk(initramfs/initrd)support
File system->Second extended fs support
File system->Miscellaneous filesystems->ROM file system support
退出时保存,然后重新make,并将新生成的bzImage复制到/boot目录下,
用该新内核和文件系统文件启动即可
制作基于uClibc的程序:
首先将基于uClibc的编译器的路径添加到PATH中,比如编译器为
/home/buildroot/buildroot-2010.08/output/staging/usr/bin/i686-unknown-linux-uclibc-gcc
则修改/etc/profile,添加下面一行:
export PATH=$PATH:/home/buildroot/buildroot-2010.08/output/staging/usr/bin/
然后执行source /etc/profile
编写一个简单的c程序,如hello world,文件名为hello.c,执行:
i686-unknown-linux-uclibc-gcc hello.c -o hello
成功后生成一个可执行文件hello,将该文件复制到/home/buildroot/buildroot-2010.08/output/target/bin目录下,在buildroot目录顶层执行make,然后将生成的文件系统复制到/boot目录,重启并使用制作好的内核和文件系统启动,进入shell后执行hello,如果打印出hello world则表示成功
文件系统放在output/target目录下,如果需要修改文件系统,则在该目录修改后再在顶层目录下执行make即可。