找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[其他设备] 记一次S912章鱼星球安装官方OpenWrt 19.07.2的尝试

  [复制链接]
发表于 2020-6-11 05:47 | 显示全部楼层
数不清 发表于 2020-6-10 12:33
感觉s905的温度都高,手头另一S905d外贸盒子刷coreelec开机就55.

刷op很低啊
章鱼44,n1最多47
尽管也是armbian做的低包
回复 支持 反对

使用道具 举报

发表于 2020-6-11 06:48 | 显示全部楼层
理论上效果都一样。
回复 支持 反对

使用道具 举报

发表于 2020-6-17 23:35 | 显示全部楼层
数不清 发表于 2020-5-31 14:39
只要确认emmc armbian能正常启动工作,就可以用U盘或SD卡armbian引导开始op写入流程,按照我52#的步骤写入o ...

请问u盘里跑的是op系统,可以直接用命令  .inst-to-emmc.sh直接写到emmc吗?用的是f大的改版,就是n1的支持写入emmc的系统

点评

f大的OP系统,用在章鱼上面,要修改哪几项东西1.修改U盘uEnv.txt,修改为章鱼适用的dtb文件,  详情 回复 发表于 2020-8-26 13:45
脚本对应的N1 bootloader要改  详情 回复 发表于 2020-6-18 10:50
回复 支持 反对

使用道具 举报

发表于 2020-6-18 10:50 | 显示全部楼层
本帖最后由 数不清 于 2020-6-18 10:59 编辑
klly163 发表于 2020-6-17 23:35
请问u盘里跑的是op系统,可以直接用命令  .inst-to-emmc.sh直接写到emmc吗?用的是f大的改版,就是n1的支 ...

脚本对应的N1 dtb 和 bootloader要改

点评

章鱼刷op到emmc没n1方便  详情 回复 发表于 2020-6-18 13:09
回复 支持 反对

使用道具 举报

发表于 2020-6-18 13:09 | 显示全部楼层
数不清 发表于 2020-6-18 10:50
脚本对应的N1 dtb 和 bootloader要改

章鱼刷op到emmc没n1方便

点评

章鱼用户量没N1多,开发者少也不奇怪。  详情 回复 发表于 2020-6-18 19:46
回复 支持 反对

使用道具 举报

发表于 2020-6-18 19:46 | 显示全部楼层
klly163 发表于 2020-6-18 13:09
章鱼刷op到emmc没n1方便

章鱼用户量没N1多,开发者少也不奇怪。
回复 支持 反对

使用道具 举报

发表于 2020-6-20 22:31 | 显示全部楼层
本帖最后由 数不清 于 2020-6-24 08:42 编辑

章鱼eMMC现在可以随便刷入N1 OP镜像



基本步骤:
修改dtb和u-boot,修改U盘uEnv.txt,修改为章鱼适用的dtb文件,其次是将镜像中的N1 u-boot换为章鱼 u-boot(这一步可以等u盘启动后通过scp拷贝过去)。

  1. 修改两处:
  2. DTB_FILE="meson-gxm-vega-s96.dtb"
  3. BLDR_ORIG=u-boot-s912.bin
复制代码


U盘引导后手动编辑emmc写入脚本inst-to-emmc.sh,将文件中dtb和u-boot路径替换为新文件即可

用./inst-to-emmc.sh写入章鱼emmc



本帖子中包含更多资源

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

×

点评

能分享一下u-boot-s912.bin这个文件吗?  详情 回复 发表于 2020-10-14 01:56
U盘启动也是一样吗  详情 回复 发表于 2020-8-25 11:03
回复 支持 反对

使用道具 举报

发表于 2020-6-20 22:33 | 显示全部楼层
章鱼星球 s912 八核跑分

单线程运行 openssl speed -evp aes-128-gcm

type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-gcm      59572.14k   178859.14k   383915.58k   532502.19k   598637.93k   600435.37k


多线程运行openssl speed -multi $(cat /proc/cpuinfo |grep processor | wc -l) -evp aes-128-gcm

evp             398804.41k  1218187.01k  2595544.83k  3608193.37k  4061418.84k  4080178.52k

点评

这个跑分,单线程跟N1几乎一摸一样 这是我N1的 type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes aes-128-gcm 70405.50k 206025.03k 407253.70k 54389  详情 回复 发表于 2020-8-26 23:32
回复 支持 反对

使用道具 举报

发表于 2020-6-20 22:36 | 显示全部楼层
本帖最后由 数不清 于 2020-7-23 15:09 编辑

放上修改好的写入脚本




  1. #!/bin/sh

  2. # you can change this size >= 72
  3. TARGET_BOOT_SIZE_MB=128
  4. # you can change this size >= 320
  5. TARGET_ROOTFS_SIZE_MB=512
  6. # shared partition can be ext4, xfs, btrfs
  7. TARGET_SHARED_FSTYPE=btrfs
  8. DTB_FILE="meson-gxm-vega-s96.dtb"

  9. # EMMC DEVICE MAJOR
  10. DST_MAJ=179

  11. DST_NAME=$(lsblk -l -b -I $DST_MAJ -o NAME,MAJ:MIN,SIZE | grep "${DST_MAJ}:0" | awk '{print $1}')
  12. DST_SIZE=$(lsblk -l -b -I $DST_MAJ -o NAME,MAJ:MIN,SIZE | grep "${DST_MAJ}:0" | awk '{print $3}')
  13. #echo $DST_NAME $DST_SIZE

  14. ROOT_NAME=$(lsblk -l -o NAME,MAJ:MIN,MOUNTPOINT | grep -e '/

  15. | awk '{print $1}')
  16. ROOT_MAJ=$(lsblk -l -o NAME,MAJ:MIN,MOUNTPOINT | grep -e '/

  17. | awk '{print $2}' | awk -F ':' '{print $1}')
  18. #echo $ROOT_NAME $ROOT_MAJ

  19. BOOT_NAME=$(lsblk -l -o NAME,MAJ:MIN,MOUNTPOINT | grep -e '/boot

  20. | awk '{print $1}')
  21. BOOT_MAJ=$(lsblk -l -o NAME,MAJ:MIN,MOUNTPOINT | grep -e '/boot

  22. | awk '{print $2}' | awk -F ':' '{print $1}')
  23. #echo $BOOT_NAME $BOOT_MAJ

  24. if [ "$BOOT_MAJ" == "$DST_MAJ" ];then
  25.         echo "the boot is on emmc, cannot install!"
  26.         exit 1
  27. else
  28.         if [ "$ROOT_MAJ" == "$DST_MAJ" ];then
  29.                 echo "the rootfs is on emmc, cannot install!"
  30.                 exit 1
  31.         fi
  32. fi

  33. echo "The following steps will overwrite the original data, please be sure to confirm!"
  34. echo "Remind again, remember to back up your important data!"
  35. echo -ne "Select y to install openwrt to emmc disk, are you sure?  y/n [n]\b\b"
  36. read yn
  37. case $yn in
  38.         y|Y) yn='y';;
  39.         *)   yn='n';;
  40. esac

  41. if [ "$yn" == "n" ];then
  42.         echo "Bye bye!"
  43.         exit 0
  44. fi

  45. # backup old bootloader
  46. if [ ! -f bootloader-backup.bin ];then
  47.         echo -n "backup the bootloader ->  bootloader-backup.bin ... "
  48.         dd if=/dev/$DST_NAME of=bootloader-backup.bin bs=1M count=4
  49.         sync
  50.         echo "done"
  51.         echo
  52. fi

  53. # swapoff -a
  54. swapoff -a

  55. # umount all other mount points
  56. MOUNTS=$(lsblk -l -o MOUNTPOINT)
  57. for mnt in $MOUNTS;do
  58.         if [ "$mnt" == "MOUNTPOINT" ];then
  59.                 continue
  60.         fi
  61.         if [ "$mnt" == "" ];then
  62.                 continue
  63.         fi
  64.         if [ "$mnt" == "/" ];then
  65.                 continue
  66.         fi
  67.         if [ "$mnt" == "/boot" ];then
  68.                 continue
  69.         fi
  70.         if [ "$mnt" == "[SWAP]" ];then
  71.                 echo "swapoff -a"
  72.                 swapoff -a
  73.                 continue
  74.         fi
  75.         echo "umount -f $mnt"
  76.         umount -f $mnt
  77.         if [ $? -ne 0 ];then
  78.                 echo "$mnt can not be umount, install abort"
  79.                 exit 1
  80.         fi
  81. done

  82. # Delete old partition if exists
  83. p=$(lsblk -l | grep -e "${DST_NAME}p" | wc -l)
  84. echo "total $p partions will be deleted"
  85. >/tmp/fdisk.script
  86. while [ $p -ge 1 ];do
  87.         echo "d" >> /tmp/fdisk.script
  88.         if [ $p -gt 1 ];then
  89.                 echo "$p" >> /tmp/fdisk.script
  90.         fi
  91.         p=$((p-1))
  92. done

  93. # Create new partition
  94. SKIP_MB=700
  95. DST_TOTAL_MB=$((DST_SIZE/1024/1024))

  96. start1=$(( SKIP_MB * 2048 ))
  97. end1=$(( start1 + (TARGET_BOOT_SIZE_MB * 2048) - 1 ))

  98. start2=$(( end1 + 1 ))
  99. end2=$(( start2 + (TARGET_ROOTFS_SIZE_MB * 2048) -1 ))

  100. start3=$(( end2 + 1 ))
  101. end3=$(( DST_TOTAL_MB * 2048 -1 ))

  102. cat >> /tmp/fdisk.script <<EOF
  103. n
  104. p
  105. 1
  106. $start1
  107. $end1
  108. n
  109. p
  110. 2
  111. $start2
  112. $end2
  113. n
  114. p
  115. 3
  116. $start3
  117. $end3
  118. t
  119. 1
  120. c
  121. t
  122. 2
  123. 83
  124. t
  125. 3
  126. 83
  127. w
  128. q
  129. EOF

  130. # write some zero data to part begin
  131. seek=$((start1 / 2048))
  132. dd if=/dev/zero of=/dev/${DST_NAME} bs=1M count=1 seek=$seek
  133. sync

  134. seek=$((start2 / 2048))
  135. dd if=/dev/zero of=/dev/${DST_NAME} bs=1M count=1 seek=$seek
  136. sync

  137. seek=$((start3 / 2048))
  138. dd if=/dev/zero of=/dev/${DST_NAME} bs=1M count=1 seek=$seek
  139. sync

  140. fdisk /dev/$DST_NAME < /tmp/fdisk.script
  141. if [ $? -ne 0 ];then
  142.         echo "fdisk failed, restore the backup bootloader, and abort"
  143.         dd if=bootloader-backup.bin of=$DST_NAME
  144.         sync
  145.         exit 1
  146. fi
  147. echo "fdisk done"
  148. echo

  149. BLDR_ORIG=u-boot-s912.bin
  150. if [ -f "${BLDR_ORIG}" ];then
  151.         dd if=${BLDR_ORIG} of="${DST_NAME}" conv=fsync bs=1 count=442
  152.         dd if=${BLDR_ORIG} of="${DST_NAME}" conv=fsync bs=512 skip=1 seek=1
  153.         sync
  154. fi

  155. # mkfs
  156. echo "begin to create filesystems ... "
  157. echo "create boot filesystem ... "
  158. mkfs.fat -n EMMC_BOOT -F 32 /dev/${DST_NAME}p1
  159. mkdir -p /mnt/${DST_NAME}p1
  160. sleep 2
  161. umount -f /mnt/${DST_NAME}p1 2>/dev/null

  162. echo "create rootfs filesystems ... "
  163. ROOTFS_UUID=$(/usr/bin/uuidgen)
  164. mkfs.btrfs -f -U ${ROOTFS_UUID} -L EMMC_ROOTFS /dev/${DST_NAME}p2
  165. mkdir -p /mnt/${DST_NAME}p2
  166. sleep 2
  167. umount -f /mnt/${DST_NAME}p2 2>/dev/null
  168. echo "filesystem succeed created!"

  169. # mount and copy
  170. echo "wait for boot partition mounted ... "
  171. i=1
  172. max_try=10
  173. while [ $i -le $max_try ]; do
  174.         mount -t vfat /dev/${DST_NAME}p1 /mnt/${DST_NAME}p1 2>/dev/null
  175.         sleep 2
  176.         mnt=$(lsblk -l -o MOUNTPOINT | grep /mnt/${DST_NAME}p1)
  177.         if [ "$mnt" == "" ];then
  178.                 if [ $i -lt $max_try ];then
  179.                         echo "can not mount boot partition, try again ..."
  180.                         i=$((i+1))
  181.                 else
  182.                         echo "can not mount boot partition, abort!"
  183.                         exit 1
  184.                 fi
  185.         else
  186.                 echo "mount ok"
  187.                 echo -n "copy boot ..."
  188.                 cd /mnt/${DST_NAME}p1
  189.                 rm -rf /boot/'System Volume Information/'
  190.                 (cd /boot && tar cf - .) | tar xf -
  191.                 sync
  192.                 echo "done"
  193.                 echo -n "Write uEnv.txt ... "
  194.                 cat > uEnv.txt <<EOF
  195. LINUX=/zImage
  196. INITRD=/uInitrd
  197. FDT=/dtb/amlogic/${DTB_FILE}
  198. APPEND=root=UUID=${ROOTFS_UUID} rootfstype=btrfs rootflags=compress=zstd console=ttyAML0,115200n8 c
  199. onsole=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0 cgroup_ena
  200. ble=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1
  201. EOF

  202. # 旧版本
  203.                 #cat > uEnv.ini <<EOF
  204. #dtb_name=/dtb/amlogic/${DTB_FILE}
  205. #bootargs=root=UUID=${ROOTFS_UUID} rootfstype=btrfs rootflags=compress=zstd console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0 cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1
  206. #EOF
  207.                 rm -f s905_autoscript* aml_autoscript*
  208.                 sync
  209.                 echo "done."
  210.                 cd /
  211.                 umount -f /mnt/${DST_NAME}p1
  212.                 break
  213.         fi
  214. done
  215. echo "done"
  216. echo

  217. echo "wait for root partition mounted ... "
  218. i=1
  219. while [ $i -le $max_try ]; do
  220.         mount -t btrfs -o compress=zstd /dev/${DST_NAME}p2 /mnt/${DST_NAME}p2 2>/dev/null
  221.         sleep 2
  222.         mnt=$(lsblk -l -o MOUNTPOINT | grep /mnt/${DST_NAME}p2)
  223.         if [ "$mnt" == "" ];then
  224.                 if [ $i -lt $max_try ];then
  225.                         echo "can not mount root partition, try again ..."
  226.                         i=$((i+1))
  227.                 else
  228.                         echo "can not mount root partition, abort!"
  229.                         exit 1
  230.                 fi
  231.         else
  232.                 echo "mount ok"
  233.                 echo -n "make dirs ... "
  234.                 cd /mnt/${DST_NAME}p2
  235.                 mkdir -p bin boot dev etc lib opt mnt overlay proc rom root run sbin sys tmp usr www
  236.                 ln -sf lib/ lib64
  237.                 ln -sf tmp/ var
  238.                 echo "done"
  239.                
  240.                 COPY_SRC="root etc bin sbin lib opt usr www"
  241.                 echo "copy data ... "
  242.                 for src in $COPY_SRC;do
  243.                         echo -n "copy $src ... "
  244.                         (cd / && tar cf - $src) | tar xf -
  245.                         sync
  246.                         echo "done"
  247.                 done
  248.                 rm -rf opt/docker && ln -sf /mnt/${DST_NAME}p3/docker/ opt/docker
  249.                 echo "copy done"
  250.                
  251.                 echo -n "Edit other config files ... "
  252.                 cd /mnt/${DST_NAME}p2/root
  253.                 rm -f inst-to-emmc.sh update-to-emmc.sh
  254.                 cd /mnt/${DST_NAME}p2/etc/rc.d
  255.                 ln -sf ../init.d/dockerd S99dockerd
  256.                 cd /mnt/${DST_NAME}p2/etc
  257.                 cat > fstab <<EOF
  258. UUID=${ROOTFS_UUID} / btrfs compress=zstd 0 1
  259. LABEL=EMMC_BOOT /boot vfat defaults 0 2
  260. #tmpfs /tmp tmpfs defaults,nosuid 0 0
  261. EOF
  262.                
  263.                 cd /mnt/${DST_NAME}p2/etc/config
  264.                 cat > fstab <<EOF
  265. config global
  266.         option anon_swap '0'
  267.         option anon_mount '1'
  268.         option auto_swap '0'
  269.         option auto_mount '1'
  270.         option delay_root '5'
  271.         option check_fs '0'

  272. config mount
  273.         option target '/overlay'
  274.         option uuid '${ROOTFS_UUID}'
  275.         option enabled '1'
  276.         option enabled_fsck '1'
  277.         option fstype 'btrfs'
  278.         option options 'compress=zstd'

  279. config mount
  280.         option target '/boot'
  281.         option label 'EMMC_BOOT'
  282.         option enabled '1'
  283.         option enabled_fsck '0'
  284.         option fstype 'vfat'
  285.                
  286. EOF
  287.                 cd /
  288.                 umount -f /mnt/${DST_NAME}p2
  289.                 break
  290.         fi
  291. done
  292. echo "done"
  293. echo

  294. echo "create shared filesystem ... "
  295. mkdir -p /mnt/${DST_NAME}p3
  296. case $TARGET_SHARED_FSTYPE in
  297.         xfs) mkfs.xfs -f -L EMMC_SHARED /dev/${DST_NAME}p3
  298.              mount -t xfs /dev/${DST_NAME}p3 /mnt/${DST_NAME}p3
  299.              ;;
  300.       btrfs) mkfs.btrfs -L EMMC_SHARED /dev/${DST_NAME}p3
  301.              mount -t btrfs /dev/${DST_NAME}p3 /mnt/${DST_NAME}p3
  302.              ;;
  303.           *) mkfs.ext4 -L EMMC_SHARED  /dev/${DST_NAME}p3
  304.              mount -t ext4 /dev/${DST_NAME}p3 /mnt/${DST_NAME}p3
  305.              ;;
  306. esac
  307. sleep 1
  308. [ -d /mnt/${DST_NAME}p3 ] || ( mkdir -p /mnt/${DST_NAME}p3 && mount /dev/${DST_NAME}p3 /mnt/${DST_NAME}p3 )
  309. mkdir -p /mnt/${DST_NAME}p3/docker
  310. if [ -f /mnt/${DST_NAME}p2/etc/config/AdGuardHome ];then
  311.         mkdir -p /mnt/${DST_NAME}p3/AdGuardHome/data
  312.         rm -rf /mnt/${DST_NAME}p2/usr/bin/AdGuardHome
  313.         ln -sf /mnt/${DST_NAME}p3/AdGuardHome /mnt/${DST_NAME}p2/usr/bin/AdGuardHome
  314. fi
  315. echo "done"
  316. echo

  317. echo "All done, please reboot!"
复制代码


本帖子中包含更多资源

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

×

点评

脚本219行:“tar -mxf”有问题,没有-m选项,应该是“tar -xf”。  详情 回复 发表于 2020-7-21 11:09
回复 支持 反对

使用道具 举报

发表于 2020-6-23 23:05 来自手机 | 显示全部楼层
感谢脚本,写入emmc和up区别大不大,n1都写了三四次,日常折腾固件还是U盘用的多,几乎不用emmc
回复 支持 反对

使用道具 举报

发表于 2020-7-21 11:09 | 显示全部楼层
数不清 发表于 2020-6-20 22:36
放上修改好的写入脚本

脚本219行:“tar mxf”有问题,没有-m选项,应该是“tar xf”。

点评

原始脚本来自https://www.right.com.cn/forum/thread-3160780-1-2.html 只修改了刷入章鱼btd、u-boot文件名。 刷入时没留意到报错信息,还好不影响使用。  详情 回复 发表于 2020-7-21 14:16
回复 支持 反对

使用道具 举报

发表于 2020-7-21 14:16 | 显示全部楼层
xxtgly 发表于 2020-7-21 11:09
脚本219行:“tar mxf”有问题,没有-m选项,应该是“tar xf”。

原始脚本来自https://www.right.com.cn/forum/thread-3160780-1-2.html 只修改了刷入章鱼btd、u-boot文件名。

刷入时没留意到报错信息,还好不影响使用。

点评

应该有影响。 这条语句是写uEnv.txt文件,主要是分区UUID部分。  详情 回复 发表于 2020-7-21 14:38
回复 支持 反对

使用道具 举报

发表于 2020-7-21 14:38 | 显示全部楼层
本帖最后由 xxtgly 于 2020-7-21 14:42 编辑
数不清 发表于 2020-7-21 14:16
原始脚本来自https://www.right.com.cn/forum/thread-3160780-1-2.html 只修改了刷入章鱼btd、u-boot文件 ...

可能、应该有影响。
这条语句是写uEnv.txt文件,主要是分区UUID部分。

点评

应该和275行一样,多了m ( tar xf - )  详情 回复 发表于 2020-7-23 15:08
回头刷新版本试试  详情 回复 发表于 2020-7-22 16:16
回复 支持 反对

使用道具 举报

发表于 2020-7-22 16:16 | 显示全部楼层
本帖最后由 数不清 于 2020-7-22 16:19 编辑
xxtgly 发表于 2020-7-21 14:38
可能、应该有影响。
这条语句是写uEnv.txt文件,主要是分区UUID部分。
功能倒没影响



回头刷新版本试试

本帖子中包含更多资源

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

×
回复 支持 反对

使用道具 举报

发表于 2020-7-23 15:08 | 显示全部楼层
xxtgly 发表于 2020-7-21 14:38
可能、应该有影响。
这条语句是写uEnv.txt文件,主要是分区UUID部分。

应该和275行一样,多了m ( tar xf - )
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

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

GMT+8, 2024-6-21 06:45

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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

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