构建根文件系统

初始根文件系统

安装gcc库:

$ cd /vita
$ cp -d cross-tool/i686-none-linux-gnu/lib/lib*.so.*[0-9] sysroot/lib

建立相关目录

$ cd /vita/sysroot
$ mkdir sys proc dev run root

构建程序/sbin/init

$ echo '#!/bin/bash
export HOME=/root
exec /bin/bash -l
' > /vita/sysroot/sbin/init
$ chmod +x /vita/sysroot/sbin/init
$ echo 'export PS1="\[\e[31;1m\]\u@vita:\[\e[35;1m\]\w# \[\e[0m\]"' > /vita/sysroot/etc/profile

部署:

$ cd /vita/sysroot
$ tar zcvf ../sysroot.tgz *
$ scp ../sysroot.tgz root@192.168.1.103:/root/

以读写模式重新挂载文件系统

$ cd /vita/sysroot/bin
$ sudo chown root.root mount umount
$ sudo chmod 4755 mount umount
$ echo '#!/bin/bash
mount -o remount,rw /dev/sda5 /
export HOME=/root
exec /bin/bash -l
' > /vita/sysroot/sbin/init

配置支持内核网络

配置内核支持tcp/ip协议栈

  1. 执行 make menuconfig;
  2. 选择“Networking support”;
  3. 选择“Nexworking options”
  4. 选中“TCP/IP networking”

配置内核支持网卡

  1. 执行 make menuconfig;
  2. 选择 “Network Devices”;
  3. 选择 “Network device support”;
  4. 选择 Ethernet driver support
  5. 将 Interl(R) PRO/1000 Gigabit Ethernet support 配置为模块。

启动udev

$ echo '#!/bin/bash
mount -o remount,rw /dev/sda5 /

udevd --daemon
udevadm trigger --action=add
udevadm settle

export HOME=/root
exec /bin/bash -l
' > /vita/sysroot/sbin/init

安装网络配置工具并配置网络

安装命令ip

$ cd /vita/build
$ tar xvf ../source/iproute2-3.8.0.tar.xz
$ cd iproute2-3.8.0

修改Makefile中的SUBDIRS为"SUBDIRS=lib ip"

$ make install

安装命令"ping"

$ cd /vita/build
$ tar xvf ../source/iputils-s20121221.tar.bz2
$ cd iputils-s20121221

修改Makefile中”IPV4_TARGETS“为”IPV4_TARGETS=ping“;"IPV6_TARGETS"为"IPV6_TARGETS=tracepath6 traceroute6 ping6";"TAREGTS"为"TAREGTS=$(IPV4_TARGETS)";"USE_CAP"为”USE_CAP=no“

$ make
$ cp ping /vita/sysroot/bin

添加网络配置:

$ echo '#!/bin/bash
mount -o remount,rw /dev/sda5 /

udevd --daemon
udevadm trigger --action=add
udevadm settle

ip link set eth0 up
ip addr add 192.168.56.2/24 dev eth0

export HOME=/root
exec /bin/bash -l
' > /vita/sysroot/sbin/init

安装并配置ssh服务

安装zlib:

$ cd /vita/build
$ tar xvf ../source/zlib-1.2.7.tar.bz2
$ cd zlib-1.2.7
$ ./configure --prefix=/usr
$ make
$ make install
$ find $SYSROOT -name "*.la" -exec rm -rf '{}' \;

安装openssl

$ cd /vita/build
$ tar xvf ../source/openssl-1.0.1e.tar.gz
$ cd openssl-1.0.1e
$ ./config --prefix=/usr --openssldir=/etc/ssl
$ make
$ make install MANDIR=/usr/share/man INSTALL_PREFIX=$SYSROOT
$ find $SYSROOT -name "*.la" -exec rm -rf '{}' \;

安装openssh

$ cd /vita/build
$ tar xvf ../source/openssh-6.1p1.tar.gz
$ cd openssh-6.1p1
$ LD=i686-none-linux-gnu-gcc ./configure \
    --prefix=/usr --sysconfdir=/etc/ssh \
    --without-openssl-header-check
$ make install DESTDIR=$SYSROOT

修改/vita/sysroot/etc/ssh/sshd_config如下字段:

UsePricilegeSeparation no
PermitRootLogin yes
PermitEmptyPasswords yes

创建用户信息:

$ echo "root::0:0::/root:/bin/bash" > /vita/sysroot/etc/passwd
$ echo "root::0:" > /vita/sysroot/etc/group

挂载devpts,启动ssh

$ echo '#!/bin/bash
mount -o remount,rw /dev/sda5 /

udevd --daemon
udevadm trigger --action=add
udevadm settle

ip link set eth0 up
ip addr add 192.168.56.2/24 dev eth0

mkdir /dev/pts
mount -n -t devpts devpts /dev/pts

/usr/sbin/sshd

export HOME=/root
exec /bin/bash -l
' > /vita/sysroot/sbin/init

在测试机上创建密钥:

$ ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
$ ssh-keygen -t rsa -f /etc/ssh_host_rsa_key
$ ssh-keygen -t ecdsa -f /etc/ssh_host_ecdsa_key

重新启动测试机,可以通过ssh使用root用户登陆测试机。

results matching ""

    No results matching ""