导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

    【小白自制Linux开发板】Debian文件系统制作,以及WIFI配置、交换分区配置

    其它全志芯片讨论区
    1
    1
    1109
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • q1215200171
      budbool LV 9 最后由 q1215200171 编辑

      该片文章将完整记录一个Debian的最小文件系统的生成,以及自定义配置WIFI组件、网络组件和交换分区配置

      本文章参考:
      https://whycan.com/t_4236.html
      http://www.leux.cn/doc/debootstrap.html(该网站在备案中,可能暂时无法查看了)
      帖子整理完成。

      1. 制作Debian系统
      构建debian文件系统,作为记录,最小rootfs在180MB左右。

      1.1 配置构建环境
      安装构建文件系统的工具,一个是用来chroot,一个是用来构建文件系统

      sudo apt install qemu-user-static -y
      sudo apt install debootstrap -y
      mkdir rootfs
      

      构建文件系统之前,你要知道你想要构建哪个版本的文件系统,
      我从 https://www.debian.org/mirror/list.zh-cn.html 这里,
      选择了我访问速度快的源,并且该源有armel。

      armhf (支持硬件浮点)
      armel (软浮点)

      我看华为源挺快的,就用这个了mirrors.huaweicloud.com
      然后就是debian的版本,我尝试一下最新的,buster

      sudo debootstrap --foreign --verbose --arch=armel  buster rootfs http://mirrors.huaweicloud.com/debian/
      

      构建完成之后,需要chroot进去修改密码等配置

      cd rootfs
      sudo mount --bind /dev dev/
      sudo mount --bind /sys sys/
      sudo mount --bind /proc proc/
      sudo mount --bind /dev/pts dev/pts/
      cd ..
      sudo cp /usr/bin/qemu-arm-static rootfs/usr/bin/
      sudo chmod +x rootfs/usr/bin/qemu-arm-static
      sudo LC_ALL=C LANGUAGE=C LANG=C chroot rootfs /debootstrap/debootstrap --second-stage --verbose
      sudo LC_ALL=C LANGUAGE=C LANG=C chroot rootfs
      

      最后一条命令chroot完成,
      此时可以先apt-get等给你的文件系统安装你需要的软件包

      为了提高下载速度,我们首先修改源

      vi /etc/apt/sources.list
      

      改为(注意要换其他源用http方式可以访问的,要不然还得处理https的内容):

      deb http://mirrors.huaweicloud.com/debian buster main
      

      改完以后执行:

      apt-get update
      

      使源生效

      安装网络相关的库

      apt-get install wpasupplicant #安装WIFI配置相关的组件
      apt-get install net-tools     #安装网络基础组件、如使用ifconfig等
      apt-get install udhcpc        #当wifi连接成功后,需要用这个组件去获取IP地址
      

      其他组件

      apt-get install wireless-tools 
      apt install sudo vim openssh-server htop
      apt install pciutils usbutils acpi
      

      1.2 配置账号
      修改root登录密码的方式如下

      passwd root
      

      添加用户

      groupadd <用户组>
      useradd -m -g <用户组> -s /bin/bash <用户名>
      passwd <用户名>
      

      1.3 新增账号sudo配置
      对于出现

      <用户名> is not in the sudoers file.  This incident will be reported.
      

      切换到超级用户:

      $ su
      

      打开/etc/sudoers文件:

      # vi /etc/sudoers
      

      修改文件内容

      1.png

      保存退出

      修改主机名,否则将会以当前编译的系统的主机名进行设置(如:笔者为Ubuntu,相当的尴尬)

      HOSTNAME=<你的主机名>
      echo $HOSTNAME > /etc/hostname
      echo $HOSTNAME > /proc/sys/kernel/hostname
      sed -i '/localhost/s/$/\t'"$HOSTNAME"'/g' /etc/hosts
      

      1.4 配置时区
      修改系统默认时区

      cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
      

      1.5 配置SSH
      如果要使用SSH服务,并且允许SSH客户端以root方式登录需要进行一下设置。

      vi rootfs/etc/ssh/sshd_config
      

      添加

      PermitRootLogin yes
      

      1.6 rootfs打包
      当所有的内容制作完成,就可以清理缓存,打包之后就可以替换你的文件系统了

      apt-cache clean #删除安装包 
      exit  #退出chroot
      rm rootfs/usr/bin/qemu-arm-static
      

      卸载刚在挂载的文件夹。

      cd rootfs
      sudo umount   dev/pts/
      sudo umount   dev/
      sudo umount   sys/
      sudo umount   proc/
      sudo umount   dev/pts/
      

      打包文件。

      # cd rootfs  #进到文件系统目录,如果已经在该文件夹下,可以忽略
      tar cvf ../rootfs.tar .    #要注意那个.  代表当前目录
      

      生成的rootfs.tar任意解压到文件系统即可

      2. 使用wpa_supplicant连接wifi

      创建配置文件

      vi /etc/wpa_supplicant.conf
      

      输入内容:

      network={
        ssid="我的热点"
        psk="我的密码"
      }
      

      然后执行命令

      wpa_supplicant -B -d -i wlan0 -c /etc/wpa_supplicant.conf
      

      示例如下

      root@dika-pc:~# wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf
      Successfully initialized wpa_supplicant
      rfkill: Cannot open RFKILL control device
      root@dika-pc:~# [  444.817608] wlan0: authenticate with e4:67:1e:02:33:c0
      [  444.843208] wlan0: send auth to e4:67:1e:02:33:c0 (try 1/3)
      [  444.900867] wlan0: authenticated
      [  444.935561] wlan0: associate with e4:67:1e:02:33:c0 (try 1/3)
      [  444.986874] wlan0: RX AssocResp from e4:67:1e:02:33:c0 (capab=0x411 status=0 aid=4)
      [  445.033483] wlan0: associated
      [  446.047125] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
      ^C
      

      执行dhcp命名,获取IP地址

      root@dika-pc:~# udhcpc -i wlan0
      udhcpc: started, v1.30.1
      udhcpc: sending discover
      udhcpc: sending select for 172.16.1.106
      udhcpc: lease of 172.16.1.106 obtained, lease time 43200
      root@dika-pc:~# ping www.dika.ren
      PING www.dika.ren (149.129.80.46) 56(84) bytes of data.
      64 bytes from 149.129.80.46: icmp_seq=3 ttl=45 time=217 ms
      64 bytes from 149.129.80.46: icmp_seq=4 ttl=45 time=417 ms
      64 bytes from 149.129.80.46: icmp_seq=5 ttl=45 time=102 ms
      64 bytes from 149.129.80.46: icmp_seq=6 ttl=45 time=108 ms
      ^C
      --- www.dika.ren ping statistics ---
      6 packets transmitted, 4 received, 33.3333% packet loss, time 346ms
      rtt min/avg/max/mdev = 102.009/211.020/417.367/127.586 ms
      

      3. 增加swap分区

      在使用一些软件的过程中,会遇到系统崩溃,尤其是使用 apt-get install 的时候,所以需要加入swap分区,可以简单理解为虚拟内存。

      使用

      free
      

      查看当前swap大小,
      使用如下命令创建你想要添加swap分区的大小

      dd if=/dev/zero of=/swap1 bs=1M count=512  #改成你要设置的SWAP大小,512就是512MB
      

      设置swap分区文件

      mkswap /swap1
      

      激活swap分区

      swapon /swap1
      

      此时使用free命令就能看到创建好的swap分区,但这只是临时性的, 重启会失效,需要配置一下,下次开机时候要开swap

      vi /etc/fstab
      

      操作,在最后一行添加

      /swap1 swap swap defaults 0 0
      

      展示
      开始进入Debian

      2.png

      使用我们自定义的pi账户登录

      3.png

      使用命令查看Swap分区

      4.png

      以上内容来自 WhyCan Forum哇酷开发者社区
      小白自制Linux开发板(F1C200s)整理系列,持续更新中
      作者:twzy

      1 条回复 最后回复 回复 引用 分享 0
      • 1 / 1
      • First post
        Last post

      Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

      行为准则 | 用户协议 | 隐私权政策