向Tiny210移植Debian Linux

前言
    我个人很喜欢Debian Linux,简洁、优雅、轻便、稳定。Debian有丰富的实用程序可供选用,而且它的Aptitude工具很好用,完美的解决了Linux里经常遇到的编译、安装过程中的版本匹配和库依赖的问题。所以在硬件资源充足的嵌入式开发中,是可以考虑移植Debian的。比如使用基于ARM11的S3C6410和基于Cotex-A8的S5PV210芯片的板子(跟这个CPU搭配的RAM和Flash怎么都不会太差吧?),运行一个精简的Debian系统完全绰绰有余了。

声明:

  • 本文的Debian Linux移植不包括Bootloader和Linux内核的移植,这方面的移植在网上已经非常的多了。本文介绍的仅仅是基于友善之臂Tiny210开发板现有的东西来制作一个文件系统,然后将这个文件系统烧到开发板上去并可以运行。这个文件系统包含了Debian运行需要的最基本的内容,后续需要的工具如ftp、nfs什么的都可以通过Aptitude一个命令搞定。
  • 虽然移植过程并不复杂,但是本文假定读者有一定的Linux基础,接触过Ubuntu或Debian的发行版,本文不会对一些基本的东西进行说明,比如Aptitude如何使用等。不明白的可以留言问,最好是自己搜。最后,对开发板的操作需要多查阅Tiny210的用户手册。

准备工作:

  • 获得一套Tiny210开发板及其配套资料。
  • 安装配套资料里的Minitools,连接开发板。
  • 准备一片可靠的SD卡以及读卡器。
  • 在PC上或虚拟机里安装Debian桌面系统(以下称开发主机),作者使用的版本是Squeeze,确保该Debian可以访问因特网并为其Aptitude配置好源(编辑/etc/apt/source.list)。
  • 为开发主机安装好nfs服务器。

步骤:

  1. 安装bootstrap,这是一个Debian提供的工具,可以用来自定义安装系统,也可以用来生成指定构架的文件系统:
    1aptitude install bootstrap
  2. 在工作目录下创建文件夹:
    1mkdir fs_debian_squeeze
  3. 下载基本文件系统:
    1debootstrap --arch=armel --foreign squeeze fs_debian_squeeze http://cdn.debian.net/debian
    根据网速不同大约要30分钟左右;

  4. 1cd fs_debian_squeeze
    2echo "proc /proc proc none 0 0" >> etc/fstab
    3mkdir -p usr/share/man/man1/ 
    4mknod dev/console c 5 1
        最后面一步可能会提示已存在,不用管。
  5. 参考Tiny210用户手册上的介绍,完成以下工作,连接好开发板的串口并上电:

  6. 启动Minitools,在kernel Commandline一项填写:
    1console=ttySAC0 init=/bin/sh root=/dev/nfs nfsroot=192.168.86.231:/root/fs/fs_debian_squeeze ip=192.168.86.237:192.168.86.231:192.168.86.253:255.255.255.0:debian:eth0:off skipcali=yes ctp=3
        其中nfsroot为开发主机的地址,ip依次为:开发板临时IP:开发主机地址:网关:掩码:主机hostname:网卡设备:off,根据自己的情况修改:

  7. 点击快速烧写,然后点击快速启动,串口终端进入如下界面:

  8. 输入:
    1mount -t proc /proc /proc
  9. 输入:
    1/debootstrap/debootstrap --second-stage
    又是一阵等待;
  10. 输入:
    1echo ttySAC0>> /etc/securetty
  11. 输入:
    1echo "T0:123:respawn:/sbin/getty 115200 ttySAC0\n" >> /etc/inittab
  12. 输入passwd设定root的登陆密码,完成后输入reboot -f重启开发板。
  13. 此时开发板还是会停在等待USB烧写的状态,将Kernel Commandline中的init字段修改为/sbin/init:
    1console=ttySAC0 init=/sbin/init root=/dev/nfs nfsroot=192.168.86.231:/root/fs/fs_debian_squeeze ip=192.168.86.237:192.168.86.231:192.168.86.253:255.255.255.0:debian:eth0:off skipcali=yes ctp=3
    点击快速启动,此时应可以看到登陆界面了;
  14. 拷贝驱动模块文件:如果你手头还有另外一块开发板的话,可以通过nfs将开发板Linux系统自带的/lib/modules/下的文件全部拷贝过来,没有的话就自己编译一下光盘上给的内核(Linux-3.0.8)并在/mnt/lib/下生成文件夹modules:
    1cp mini210_linux_defconfig .config
    2make CROSS_COMPILE=/opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi-
    3make CROSS_COMPILE=/opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi- INSTALL_MOD_PATH=/mnt/ modules_install
  15. 重启,同样通过Minitools快速启动系统。

    此时,可以说你的Debian基本系统内容已经完成了,你可以通过Aptitude工具安装所需要的实用程序,所有的改动都会保存在你的开发主机的fs_debian_mini文件夹中(现在知道为啥要用nfs启动了吧?)。这个系统在经过自己的DIY后,就可以在开发主机上通过友善之臂提供的工具制作文件系统映像了,然后按照Tiny210用户手册上的介绍将它烧写到开发板的Nand中去就行了。

其他:

    Mini/Tiny6410的Superboot如果没有Minitools的支持,则在第7步和第13步改为进入U-Boot菜单来修改Linux启动参数,也是一样的。有问题或指导欢迎提出,谢谢。

参考:http://code.google.com/p/mini6410-debian/wiki/Tutorial

http://my.oschina.net/huzhu1984/blog/98140

<think>好的,用户想制作适用于aarch64架构的TinyCore文件系统,并集成OpenSSH功能。首先,我需要理解TinyCore的特点。TinyCore Linux是一个轻量级发行版,模块化设计,适合定制。用户需要aarch64架构的支持,这意味着需要交叉编译环境或者找到已有的aarch64基础系统。 接下来,集成OpenSSH需要确保系统中有SSH服务器和客户端所需的依赖库,比如zlib、openssl等。可能需要从源码编译OpenSSH,或者找到适合aarch64的预编译包。不过TinyCore的软件仓库可能有限,需要检查是否有现成的扩展包,或者需要自行构建。 然后,考虑如何创建文件系统。通常,制作自定义文件系统可以使用工具如debootstrap(但适用于Debian系),而TinyCore可能有自己的方法,比如使用tce-load工具来管理扩展包。需要查阅TinyCore的文档,了解如何构建基础系统,并添加自定义软件包。 另外,用户提到的CentOS引用可能相关,但TinyCore和CentOS属于不同发行版,因此步骤会不同。需要明确区分两者的包管理方式和系统结构。 可能的步骤包括:1. 获取aarch64的TinyCore基础镜像;2. 配置交叉编译环境或在目标架构下进行编译;3. 编译或获取OpenSSH及其依赖;4. 将OpenSSH集成到文件系统中;5. 配置SSH服务,生成密钥,设置启动脚本;6. 测试文件系统是否能在目标硬件或模拟器中运行。 需要注意的问题包括架构兼容性、依赖项处理、启动服务配置等。如果用户不熟悉交叉编译,可能需要指导他们使用QEMU进行模拟,或者寻找社区已有的资源。此外,确保文件系统的最小化,符合TinyCore的设计哲学,同时满足功能需求。</think>### 创建aarch64架构TinyCore文件系统并集成OpenSSH教程 #### 1. 准备基础环境 - **下载TinyCore aarch64镜像** 需从官方或社区获取支持aarch64架构的TinyCore基础镜像,例如`TinyCore-13.0-aarch64.iso`。若官方未提供,可能需要自行移植[^2]。 - **搭建交叉编译环境** 在x86主机上配置aarch64交叉编译器: ```bash sudo apt-get install gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu ``` #### 2. 构建基础文件系统 - **挂载镜像并提取文件** 使用工具解压镜像中的`rootfs.gz`(TinyCore的初始根文件系统): ```bash mkdir rootfs cd rootfs zcat ../rootfs.gz | cpio -idmv ``` - **安装必要依赖** 通过`tce-load`工具安装基础包(需网络连接): ```bash tce-load -wi openssl-dev zlib-dev ``` #### 3. 编译并集成OpenSSH - **下载OpenSSH源码** 从官网获取最新稳定版,例如`openssh-9.6p1.tar.gz`: ```bash wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.6p1.tar.gz tar -xzf openssh-9.6p1.tar.gz cd openssh-9.6p1 ``` - **交叉编译配置** 指定交叉编译参数: ```bash ./configure --host=aarch64-linux-gnu --prefix=/usr/local \ --with-zlib=/path/to/zlib \ --with-ssl-dir=/path/to/openssl make && make DESTDIR=/path/to/rootfs install ``` #### 4. 配置SSH服务 - **生成主机密钥** 在文件系统中生成SSH密钥: ```bash chroot /path/to/rootfs /bin/sh ssh-keygen -A exit ``` - **添加启动脚本** 在`/opt/bootlocal.sh`中添加SSH服务自启动: ```bash /usr/local/sbin/sshd -f /usr/local/etc/sshd_config & ``` #### 5. 打包文件系统 - **重新生成initrd** 使用`cpio`和`gzip`打包修改后的文件系统: ```bash cd rootfs find . | cpio -o -H newc | gzip > ../new_rootfs.gz ``` #### 6. 测试验证 - **通过QEMU模拟运行** 使用aarch64模拟器测试文件系统: ```bash qemu-system-aarch64 -M virt -cpu cortex-a53 -kernel vmlinuz -initrd new_rootfs.gz -nographic ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值