科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道BabyLinux操作系统的制作过程(下) (1)

BabyLinux操作系统的制作过程(下) (1)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

接下来的Charcter devices是很重要的一项,他和Bloack devices一样重要,我将重点讲述。

作者:ChinaITLab 来源:ChinaITLab 2007年10月20日

关键字: 过程 制作 操作系统 Linux

  • 评论
  • 分享微博
  • 分享邮件

接下来的Charcter devices是很重要的一项,他和Bloack devices一样重要,我将重点讲述。

除了Virtual terminal和Support for console on terminal两项,其他全选N。Virtual terminal 即虚拟终端,这是一般Linux必备选项。否则你的Linux启动后,在屏幕看不到任何东西。另外还负责键盘输入信息等等。只有在某些嵌入式Linux应用场合才会不要这个选项,因为这些Linux通常都不用操作。 Support for console on terminal 在虚拟终端上的控制台。他支持在终端上各种信息的输出,这也是必备的。接下来的几个大项:

Multimedia devices 
Crypto Hardware support

全部选择N。

再接下来的那部分File sytems可是重头戏喔。这部分不用我太罗嗦了吧,自己需要支持什么就选什么。但是其中有三个是你必需选的:

/proc file system support 缺了他,很多命令和软件就不能运行。

Second extended fs support BabyLinux的基本文件系统。

ISO 9660 CDROM filesytem support 除非你不想用光盘。

另外,诸如磁盘限额(Quota support),Reiserfs的DEBUG模式(Enable reiserfs debug mode)

等就不用编译进去了。这些东西意义不大,确要无端的增大内核大小。请牢记一点:编译出来的内核大小不要超过900K。 最后一个Console drivers,这是支持Linux在字符模式下高分辨率显示的内核模块。前面三个全部选择Y,Frame-buffer support按钮是灰色的不能选,别急,回到第一个大选项:

Code maturity level options 选择Y,就可以激活这个按钮了。

下面几个选项需要选择Y:

Support for framebuffer devices 
VESA VGA graphics console

你也可以选择其他的显卡驱动,比如nVidia的,但是VESA和VGA是通用性最好的,只要不是几十年前的黑白显卡(我只听说过,没见过),都兼容VESA和VGA,因此,为了制作好的BabyLinux的通用性,请选择这个驱动。

Support only 8 pixels wide fonts,这个一定要选,否当你给内核传递vga=788参数,让Linux在字符界面下高分辨率显示的时候,系统会因为找不到合适的小字体而返回到低分辨率模式。 好了!所有内核的配置工作到这里就全部完成了,剩下的几个大项全部选N就行了。保存后退出,配置程序会自动生成一个隐藏的配置文件。config 下面是我配置好的。config文件内容。如果你懒的自己去配置,那么直接把这个。config拷贝到你的源代码目录下就能直接用了。(已经去掉了#开头的注释行)

CONFIG_X86=y
CONFIG_UID16=y
CONFIG_EXPERIMENTAL=y
CONFIG_M586=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_CMPXCHG=y
CONFIG_X86_XADD=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_X86_L1_CACHE_SHIFT=5
CONFIG_X86_USE_STRING_486=y
CONFIG_X86_ALIGNMENT_16=y
CONFIG_X86_PPRO_FENCE=y
CONFIG_NOHIGHMEM=y
CONFIG_NET=y
CONFIG_PCI=y
CONFIG_PCI_GODIRECT=y
CONFIG_PCI_DIRECT=y
CONFIG_SYSVIPC=y
CONFIG_SYSCTL=y
CONFIG_KCORE_ELF=y
CONFIG_BINFMT_ELF=y
CONFIG_BLK_DEV_FD=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
CONFIG_PACKET=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IDE=y
CONFIG_BLK_DEV_IDE=y
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_IDEDISK_MULTI_MODE=y
CONFIG_BLK_DEV_IDECD=y
CONFIG_BLK_DEV_IDE_MODES=y
CONFIG_NETDEVICES=y
CONFIG_NET_ETHERNET=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_REISERFS_FS=y
CONFIG_EXT3_FS=y
CONFIG_JBD=y
CONFIG_FAT_FS=y
CONFIG_VFAT_FS=y
CONFIG_RAMFS=y
CONFIG_ISO9660_FS=y
CONFIG_JFS_FS=y
CONFIG_NTFS_FS=y
CONFIG_PROC_FS=y
CONFIG_EXT2_FS=y
CONFIG_MSDOS_PARTITION=y
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_VGA_CONSOLE=y
CONFIG_VIDEO_SELECT=y
CONFIG_VIDEO_IGNORE_BAD_MODE=y
CONFIG_FB=y
CONFIG_DUMMY_CONSOLE=y
CONFIG_FB_VESA=y
CONFIG_VIDEO_SELECT=y
CONFIG_FBCON_CFB8=y
CONFIG_FBCON_CFB16=y
CONFIG_FBCON_CFB24=y
CONFIG_FBCON_CFB32=y
CONFIG_FBCON_FONTWIDTH8_ONLY=y
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y

5 编译内核

#make dep
#make bzImage

下面是最后编译结果:

Boot sector 512 bytes
Setup is 4733 bytes
System is 845 kB
make[1]: Leaving directory `/usr/src/Linux-2.4。20-8/arch/i386/boot'

我用上面的配置得到了一个845k的内核。编译好的内核放在/usr/src/Linux-2.4。20-8/arch/i386/boot下。将他拷贝在一个安全的地方备用。建立一个专放babyLinux材料的目录:

#mkdir /babyLinux

建立一个做babyLinux根文件系统的目录:

#mkdir /babyLinux/rootfs

备份内核:

#cp /usr/src/Linux-2.4.20-8/arch/i386/boot/bzImage /babyLinux/
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章