[关闭]
@perkyoung 2015-07-08T13:47:57.000000Z 字数 1215 阅读 1715

从头开始构建linux

UNIX


准备工作

安装ssh-server

  1. $ sudo apt-get update
  2. $ sudo apt-get install openssh-server

Xephyr的使用

  1. $ sudo apt-get install xserver-xephyr
  2. $ Xephyr -ac -screen 800x600 :1.0 //屏幕编号1

将远程的x屏幕投射到本地

  1. export DISPLAY=:1.0 //将该终端的所有图新界面输出到屏幕1.0
  2. ssh -XfC -c blowfish test@192.168.1.117 [gedit|firefox]

工具链

工具链是编译内核和一切工具组件的基础,我们会根据GNU的源码,构建一套工具链,然后使用该工具链编译内核和各个组件

工具链组成

编译过程四个阶段:预编译,编译,汇编,链接,每个过程都包括了好些工具,主要在3个包中
- binutils:包括汇编器as,链接器,二进制文件工具,objdump,strip
- GCC:包括C,C++,Fortran,Ada编译器
- Glibc:C库就在里面

四步

准备工作

  1. sudo groupadd vita
  2. sudo useradd -m -s /bin/bash -vita vita
  3. sudo touch /etc/sudoers.d/vita

将下面内容添加到vita文件中

  1. vita ALL=(ALL) NOPASSWD: ALL

查看自己的主机

  1. $ echo $MACHTYPE

设置环境变量

  1. 116 unset LANG
  2. 117 export HOST=x86_64-pc-linux-gnu
  3. 118 export BUILD=$HOST
  4. 119 export TARGET=x86_64-none-linux-gnu //要和host不一样,这样编译过程中就会探测到,这是要交叉编译
  5. 120 export CROSS_TOOL=/home/vita/study/cross-tools
  6. 121 export CROSS_GCC_TMP=/home/vita/study/cross-gcc-tmp
  7. 122 export SYSROOT=/home/vita/study/sysroot
  8. 123 PATH=$CROSS_TOOL/bin:$CROSS_GCC_TMP/bin:/sbin:/usr/sbin:$PATH

构建二进制工具

as,ld,ar,ranlib,objdump,readelf,nm,strings,strip
下载binutils包,编译,安装

  1. $ ./configure --prefix=$CROSS_TOOL --target=$TARGET --with-build-sysroot=$SYSROOT
  2. $ make
  3. $ make install
  4. 仔细看一下安装后的内容

编译freestanding的交叉编译器

也就是不以来C库的编译器

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注