找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
楼主: achaoge

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

 火... [复制链接]
发表于 2018-8-18 23:50 来自手机 | 显示全部楼层
感谢分享。。。。。。。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-8-15 16:11 | 显示全部楼层
真的很牛。楼主都是怎么做到的?是因为linux太好的原因么
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-7-31 20:20 | 显示全部楼层
anjoah 发表于 2018-7-28 18:17
已经搞定了部分工作
1. 先用脚本更新成dietpi.
2. 将rootfs 迁移到/dev/system

期待你的详细教程、
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-7-28 18:17 | 显示全部楼层
本帖最后由 anjoah 于 2018-7-28 18:18 编辑
achaoge 发表于 2018-7-24 09:31
既然你都已经想到了用 nfs 来提供存储,那我也来提供一个思路,通过 iscsi 来提供存储
另外,在 nfs 上 ...

已经搞定了部分工作
1. 先用脚本更新成dietpi.
2. 将rootfs 迁移到/dev/system
3. 修改uEnv.ini, S905_autoscript 内容,并且根据命令生成相关的配置信息
4. 修改fstab, 挂载/dev/data等。
5. 完成一些必须包的安装
6. 配置memcached
7. 验证测试恢复。
接下来要完成的工作:
1. 配置无线网络驱动
2. 配置ss,配置docker swarm这些。
3. 搞定web面板
4. 打包成标准镜像,制作成自动恢复系统。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

点评

期待你的详细教程、  详情 回复 发表于 2018-7-31 20:20
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-7-27 22:07 | 显示全部楼层
本帖最后由 20927469 于 2018-7-27 22:17 编辑

说一下我的移植emmc步骤 :
1、把附件中的install.sh拷贝到root目录下,一定要覆盖原来root下的,

2、执行nand-sata-install

3、执行e2label /dev/sda2 ""

4、执行e2label /dev/data "ROOTFS"

5、关机,拔掉u盘

6、开机 ,直接从emmc启动。




现在我遇到一个问题:


现在我u盘里面的的系统应该也是好的, 可是为啥插入u盘,还是从emmc启动了
我现在想重新做一次emmc移植 ,有办法吗?








我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-7-27 22:01 | 显示全部楼层
achaoge 发表于 2018-7-10 15:02
格式化 data 分区,再用U盘启动重新安装。

格式化data分区前必须用u盘引导,不然你是没办法自己格式化自己的
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-7-27 11:32 | 显示全部楼层
一看就是觉得高端、大气、上档次!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-7-24 09:41 | 显示全部楼层
来个硬改,换个容量大一点的emmc就可以愉快地玩耍了~

点评

我已经硬改64G了  详情 回复 发表于 2018-8-19 15:52
我的恩山、我的无线 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.
回复

使用道具 举报

发表于 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-23 10:48 | 显示全部楼层
我的想法是把 rootfs放在/dev/system下, 把/var 放在/dev/data下,把/opt 放在/dev/cache/下。。n1就用来跑容器了。

这个想法好, 期待成品啊!
我的恩山、我的无线 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 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-20 18:52 | 显示全部楼层
还是不太懂 感谢分享
我的恩山、我的无线 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.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-3-28 23:15

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

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