恩山无线论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
楼主: achaoge

[N1盒子] 成功!把Armbian 安装到 emmc并直接从 emmc 启动

    [复制链接]
 楼主| 发表于 2018-7-10 15:02 | 显示全部楼层
from1989 发表于 2018-7-9 11:17
大神,你好,我现在刷到emmc的系统,我想重刷应该怎么办?

格式化 data 分区,再用U盘启动重新安装。

点评

格式化data分区前必须用u盘引导,不然你是没办法自己格式化自己的  详情 回复 发表于 2018-7-27 22:01
格式化以后,原来安卓没有了!! rec 和boot 没有降级,怎么办?  详情 回复 发表于 2018-7-12 11:47
主要是不知道怎么格式化data分区,怕格式化坏了,还请大神指教啊!能不能详细点,最好是能到代码级别?  详情 回复 发表于 2018-7-10 19:28
我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-7-10 19:28 | 显示全部楼层
achaoge 发表于 2018-7-10 15:02
格式化 data 分区,再用U盘启动重新安装。

主要是不知道怎么格式化data分区,怕格式化坏了,还请大神指教啊!能不能详细点,最好是能到代码级别?

点评

用U盘启动之后,运行命令:(注意:这样 data 分区上的数据会全部丢失)  详情 回复 发表于 2018-7-12 12:51
我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-7-12 11:47 | 显示全部楼层
achaoge 发表于 2018-7-10 15:02
格式化 data 分区,再用U盘启动重新安装。

格式化以后,原来安卓没有了!! rec 和boot 没有降级,怎么办?

点评

格式化 data 分区,大概相当于安卓的恢复出厂设置吧,并不会造成安卓系统的丢失,只是安卓数据没有了,重新启动的话需要再设置一次安卓系统。  详情 回复 发表于 2018-7-12 12:43
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2018-7-12 12:43 | 显示全部楼层
tanghuafu 发表于 2018-7-12 11:47
格式化以后,原来安卓没有了!! rec 和boot 没有降级,怎么办?

格式化 data 分区,大概相当于安卓的恢复出厂设置吧,并不会造成安卓系统的丢失,只是安卓数据没有了,重新启动的话需要再设置一次安卓系统。

点评

奇怪的就是我怎么弄了以后就是挂载 install目录里面的东西都被删除了。就剩下armbian的文件了。安卓也启动不了了。。  详情 回复 发表于 2018-7-12 13:31
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2018-7-12 12:51 | 显示全部楼层
from1989 发表于 2018-7-10 19:28
主要是不知道怎么格式化data分区,怕格式化坏了,还请大神指教啊!能不能详细点,最好是能到代码级别?

用U盘启动之后,运行命令:(注意:这样 data 分区上的数据会全部丢失)
  1. mke2fs -F -q -t ext4 -m 0 -O ^64bit,^metadata_csum /dev/data
复制代码

点评

能直接搞掉安卓不  详情 回复 发表于 2018-7-12 22:00
我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-7-12 13:31 | 显示全部楼层
achaoge 发表于 2018-7-12 12:43
格式化 data 分区,大概相当于安卓的恢复出厂设置吧,并不会造成安卓系统的丢失,只是安卓数据没有了,重 ...

奇怪的就是我怎么弄了以后就是挂载 install目录里面的东西都被删除了。就剩下armbian的文件了。安卓也启动不了了。。
我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-7-12 21:54 | 显示全部楼层
achaoge 发表于 2018-7-12 12:51
用U盘启动之后,运行命令:(注意:这样 data 分区上的数据会全部丢失)

感谢大神回我的帖子………昨天没办法重刷的

来自苹果客户端来自苹果客户端
我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-7-12 22:00 | 显示全部楼层
achaoge 发表于 2018-7-12 12:51
用U盘启动之后,运行命令:(注意:这样 data 分区上的数据会全部丢失)

能直接搞掉安卓不
我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-7-16 15:26 | 显示全部楼层
achaoge 发表于 2018-6-23 06:24
如果做headless服务器用还是够了的

可以搞个N1做服务器? Armbian ubuntu mate 是否跟X86版本的ubuntu有一样的功能
我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-7-20 18:52 | 显示全部楼层
还是不太懂 感谢分享
我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-7-23 00:13 | 显示全部楼层
本帖最后由 anjoah 于 2018-7-23 01:20 编辑
achaoge 发表于 2018-6-22 14:00
N1觉得遗憾的是 emmc 只有8G,小了一点
对于之前已经完成安装过程的同学,还需要U盘启动的,附件是一副补 ...

请教:在你的脚本里:
  1. echo "Modify files for N1 emmc boot"
  2. /bin/sed -e "/usb [23]/d" -e 's/fatload mmc 0 \([^ ]*\) \([^;]*\)/ext4load mmc 1:c \1 \/boot\/\2/g' -i $DIR_INSTALL/boot/s905_autoscript.cmd
  3. /bin/sed -e 's/LABEL=ROOTFS/\/dev\/data/' -e "s/mac=.*/mac=${mac}/" -i $DIR_INSTALL/boot/uEnv.ini
  4. /usr/bin/mkimage -C none -A arm -T script -d $DIR_INSTALL/boot/s905_autoscript.cmd $DIR_INSTALL/boot/s905_autoscript
  5. echo "Emmc boot fixed end"
复制代码
这里的mmc 1:c 是uboot的语法吗?如果我想把系统装在/dev/system里, 除了修改:s/LABEL=ROOTFS/\/dev\/data/ 这个值以外,还需要改什么呢?是要把mmc 1:c 换成 mmc 1:b么?

我的想法是把 rootfs放在/dev/system下, 把/var 放在/dev/data下,把/opt 放在/dev/cache/下。。n1就用来跑容器了。 。
从刷好系统的/boot分区读到s905_autoscript.cmd 文件里看到如下的引导顺序。。按我的理解,把mmc 1:c 改成 /dev/system/对应的 mmc 对象,再把uEnv.ini的内容修改一下应该就可以了?

  1. setenv env_addr "0x10400000"
  2. setenv kernel_addr "0x11000000"
  3. setenv initrd_addr "0x13000000"
  4. setenv boot_start booti ${kernel_addr} ${initrd_addr} ${dtb_mem_addr}
  5. if ext4load mmc 1:c ${kernel_addr} /boot/zImage; then if ext4load mmc 1:c ${initrd_addr} /boot/uInitrd; then if ext4load mmc 1:c ${env_addr} /boot/uEnv.ini; then env import -t ${env_addr} ${filesize};fi; if ext4load mmc 1:c ${dtb_mem_addr} /boot/dtb.img; then run boot_start; else store dtb read ${dtb_mem_addr}; run boot_start;fi;fi;fi;
  6. if fatload usb 0 ${kernel_addr} zImage; then if fatload usb 0 ${initrd_addr} uInitrd; then if fatload usb 0 ${env_addr} uEnv.ini; then env import -t ${env_addr} ${filesize};fi; if fatload usb 0 ${dtb_mem_addr} dtb.img; then run boot_start; else store dtb read ${dtb_mem_addr}; run boot_start;fi;fi;fi;
  7. if fatload usb 1 ${kernel_addr} zImage; then if fatload usb 1 ${initrd_addr} uInitrd; then if fatload usb 1 ${env_addr} uEnv.ini; then env import -t ${env_addr} ${filesize};fi; if fatload usb 1 ${dtb_mem_addr} dtb.img; then run boot_start; else store dtb read ${dtb_mem_addr}; run boot_start;fi;fi;fi;
复制代码
另外,我看了下之前导出的uboot引导信息:
  1. SDIO Port B: 0, SDIO Port C: 1
  2. emmc/sd response timeout, cmd8, status=0x3ff2800
  3. emmc/sd response timeout, cmd55, status=0x3ff2800
  4. init_part() 293: PART_TYPE_AML
  5. [mmc_init] mmc init success
  6. dtb magic 71b104da
  7. aml log : R2048 check pass!
  8.       Amlogic multi-dtb tool
  9.       Multi dtb detected
  10.       Multi dtb tool version: v2 .
  11.       Support 2 dtbs.
  12.         aml_dt soc: gxl platform: p230 variant: 2g
  13.         dtb 0 soc: gxl   plat: p230   vari: 1g
  14.         dtb 1 soc: gxl   plat: p230   vari: 2g
  15.       Find match dtb: 1
  16. start dts,buffer=0000000073ede1b0,dt_addr=0000000073ee91b0
  17.       Amlogic multi-dtb tool
  18.       Multi dtb detected
  19.       Multi dtb tool version: v2 .
  20.       Support 2 dtbs.
  21.         aml_dt soc: gxl platform: p230 variant: 2g
  22.         dtb 0 soc: gxl   plat: p230   vari: 1g
  23.         dtb 1 soc: gxl   plat: p230   vari: 2g
  24.       Find match dtb: 1
  25. parts: 10
  26. 00:      logo        0000000002000000 1
  27. 01:  recovery        0000000002000000 1
  28. 02:       rsv        0000000000800000 1
  29. 03:       tee        0000000000800000 1
  30. 04:     crypt        0000000002000000 1
  31. 05:      misc        0000000002000000 1
  32. 06:      boot        0000000002000000 1
  33. 07:    system        0000000050000000 1
  34. 08:     cache        0000000020000000 2
  35. 09:      data        ffffffffffffffff 4
  36. init_part() 293: PART_TYPE_AML
复制代码
我知道 mmc 1 是emmc ,但我不太清楚,mmc 1:c 和09: data 这个对应关系怎么换算出system的 设备号呢?

点评

c 是16进制中, 对应十进制的 12 具体对应关系,在 linux 系统下看看 /dev/block 下面的设备号(需要 -1)。 您说的对,mmc 1:b 对应的是 system 分区。  详情 回复 发表于 2018-7-23 09:21
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2018-7-23 09:21 | 显示全部楼层
anjoah 发表于 2018-7-23 00:13
请教:在你的脚本里:
这里的mmc 1:c 是uboot的语法吗?如果我想把系统装在/dev/system里, 除了修改:s ...

c 是16进制中, 对应十进制的 12

具体对应关系,在 linux 系统下看看 /dev/block 下面的设备号(需要 -1)。

您说的对,mmc 1:b 对应的是 system 分区。

点评

已经试过了,仅仅只修改脚本里这几个值是还不够。 我一共想到三个办法来扩大分区: 1. 把系统放在system. 挂载 data,cache..你用的脚本移动到对应的分区,用fstab挂载其它分区。 2. 修改第三方固件内容,替换ro  详情 回复 发表于 2018-7-24 01:37
我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-7-23 10:48 | 显示全部楼层
我的想法是把 rootfs放在/dev/system下, 把/var 放在/dev/data下,把/opt 放在/dev/cache/下。。n1就用来跑容器了。

这个想法好, 期待成品啊!
我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-7-24 01:37 | 显示全部楼层
achaoge 发表于 2018-7-23 09:21
c 是16进制中, 对应十进制的 12

具体对应关系,在 linux 系统下看看 /dev/block 下面的设备号(需要  ...

已经试过了,仅仅只修改脚本里这几个值是还不够。

我一共想到三个办法来扩大分区:
1. 把系统放在system. 挂载 data,cache..你用的脚本移动到对应的分区,用fstab挂载其它分区。
2. 修改第三方固件内容,替换rootfs的内容。。用工具刷进去。。
3. 使用lvm2管理卷。把这几个分区置于lvm2的管理下。

我这么做的主要诉求是希望解决/var/lib/docker 目录占用 emmc空间的问题。。
已经验证过证明不好用的方法有:
1.使用nfs 挂载到/var/lib/docker目录或者使用 ln 命令建立软link, 要么报错是overlay2 错误 导致docker服务启动失效,要么是重新以后 指向的目录失效。
2.使用外置移动硬盘挂载。。。 足够大容量的U盘/ssd 成本太高。足够便宜的移动硬盘因为已知原因文件系统容易损坏。使用外置供电的移动硬盘,又过于庞大。占用面积。

点评

既然你都已经想到了用 nfs 来提供存储,那我也来提供一个思路,通过 iscsi 来提供存储  详情 回复 发表于 2018-7-24 09:31
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2018-7-24 09:31 | 显示全部楼层
本帖最后由 achaoge 于 2018-7-24 09:49 编辑
anjoah 发表于 2018-7-24 01:37
已经试过了,仅仅只修改脚本里这几个值是还不够。

我一共想到三个办法来扩大分区:

既然你都已经想到了用 nfs 来提供存储,那我也来提供一个思路,通过 iscsi 来提供存储
另外,在 nfs 上面,docker 用 aufs 存储应该是行得通的。

ref: How can I run docker on diskless machines?

点评

已经搞定了部分工作 1. 先用脚本更新成dietpi. 2. 将rootfs 迁移到/dev/system 3. 修改uEnv.ini, S905_autoscript 内容,并且根据命令生成相关的配置信息 4. 修改fstab, 挂载/dev/data等。 5. 完成一些必须包的  详情 回复 发表于 2018-7-28 18:17
我的恩山、我的无线 The best wifi forum is right here.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )|网站地图

GMT+8, 2020-2-28 20:38

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表