zoukankan      html  css  js  c++  java
  • [debootstrap]制作基于arm平台的debian文件系统

    转自:http://www.cnblogs.com/qiaoqiao2003/p/3738552.html

    转自:http://blog.csdn.net/luoqindong/article/details/42737879

    debootstrap: https://wiki.debian.org/Debootstrap

    multistrap: https://wiki.debian.org/Multistrap

    cross-debootstrapping: https://wiki.debian.org/EmDebian/CrossDebootstrap

    cdebootstrap: https://wiki.debian.org/cdebootstrap

    debian系统有针对arm分支的,在arm上跑debian系统可以用apt-get安装软件,避免繁琐的编译和重复创建文件系统的工作.
    本例子使用z-turn的开发板为例.

    linux主机版本:

    root@v:i# lsb_release -a
    No LSB modules are available.
    Distributor ID: Debian
    Description: Debian GNU/Linux 7.7 (wheezy)
    Release: 7.7
    Codename: wheezy

    1. 安装 qemu 和 debootstrap 等工具 

       $ sudo apt-get install binfmt-support qemu qemu-user-static debootstrap multibootstrap 
         debootstrap ---- 一个 Debian 提供的工具,可以用来生成指定构架的文件系统
         qemu ---- 用于模拟 arm 环境

    2. 用 debootstrap 抽取基本系统(从 debian 源中下载) 

     在opt下创建文件系统目录fs_debian_wheezy 
      $sudo debootstrap --arch=armel --foreign wheezy fs_debian_wheezy http://cdn.debian.net/debian(http://ftp.debian.org/debian/)  
      arch指定了cpu架构, wheezy指定Debian系统代号,可在网上找不同的debian版本对应的代号.

    上面的命令我这边要运行2次,

    第一次出现这样的信息:

    I: Retrieving libxapian22
    I: Validating libxapian22
    I: Retrieving liblzma5
    I: Validating liblzma5
    I: Retrieving xz-utils
    I: Validating xz-utils
    I: Retrieving zlib1g
    I: Validating zlib1g  

    下载的时候有些warning, 提示有些库下载不了,这个不影响.
    第2次是这样的信息:

    I: Extracting bsdutils...
    I: Extracting libblkid1...
    I: Extracting libmount1...
    I: Extracting libuuid1...
    I: Extracting mount...
    I: Extracting util-linux...
    I: Extracting liblzma5...
    I: Extracting xz-utils...
    I: Extracting zlib1g...      

      从信息上看,第一次是从网上下载,第二次是将文件抽取出来,第2次之后,在fs_debian_wheezy目录下才有bin,sbin等linux文件系统目录.

    3. 抽取完毕进行第二阶段

    因为在宿主是 x86 架构,不能安装 arm 架构的软件。需要依靠 qemu-arm-static 来
    模拟成 arm 环境进行安装。

    • 复制 qemu-arm-static 到刚构建的基本系统中

    $ sudo cp /usr/bin/qemu-arm-static fs_debian_wheezy/usr/bin

    • 用 qemu-arm-static 来模拟 arm

    $ sudo DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true LC_ALL=C LANGUAGE=C LANG=C chroot fs_debian_wheezy debootstrap/debootstrap --second-stage
    该命令意思是设置一些环境变量,然后切换根目录到fs_debian_wheezy,执行目录fs_debian_wheezy/debootstrap下的命令: debootstrap --second-stage.

    终端上会最后打印 I: Base system installed successfully.,说明根文件系统就定制成功了。

    4. 修改文件,目录等

    $sudo cd fs_debian_wheezy
    $sudo echo "proc /proc proc defaults 0 0" >> etc/fstab
    $sudo mkdir -p usr/share/man/man1/
    如果dev/console设备节点不存在,也需要创建
    $sudo mknod dev/console c 5 1

    5.收尾工作

    • 切换到 qemu

    $sudo chroot fs_debian_wheezy

    • 设置软件源头
    # vi /etc/apt/source.list
    deb http://cdn.debian.net/debian wheezy main contrib non-free
    deb-src http://cdn.debian.net/debian wheezy main contrib non-free
    # apt-get update 更新软件
    • 为 root 设置密码和创建新用户
    # passwd root

    debian不能以root用户登陆,所以创建一个普通用户,登陆系统后再切换到root用户

    # adduser qq
    # passwd qq 设置用户i的密码
    • 修改 inittab, 打开串口终端
    # cp /usr/share/usr/share/sysvinit/inittab /etc/
    # vi /etc/inittab

    找到 #T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100,大约在 63 行左右
    修改为 T0:23:respawn:/sbin/getty  -L ttyPS0 115200 vt100,此处依据自己的实际情况修改

    • 退出 qemu 环境 
    # exit

    6.制作完成

    至此,一个基本的根文件系统就订制完了。把根文件系统拷贝到SD卡上,插到ARM板上,
    设置z-turn从SD卡加载根文件系统,如果一切顺利一个debian 系统就运行起来了。
    可以用apt-get 命令安装各种软件包,再也不用繁琐的交叉编译工作了。

  • 相关阅读:
    hive与hbase整合
    待重写
    hive DML
    【知识强化】第六章 总线 6.1 总线概述
    【知识强化】第五章 中央处理器 5.1 CPU的功能和基本结构
    【知识强化】第四章 指令系统 4.3 CISC和RISC的基本概念
    【知识强化】第四章 指令系统 4.2 指令寻址方式
    【知识强化】第四章 指令系统 4.1 指令格式
    【知识强化】第三章 存储系统 3.6 高速缓冲存储器
    【知识强化】第三章 存储系统 3.5 双口RAM和多模块存储器
  • 原文地址:https://www.cnblogs.com/aaronLinux/p/6886163.html
Copyright © 2011-2022 走看看