[N1盒子] [2018-6-9] 斐讯T1/N1 U盘启动基于 Linux 的第三方系统,简介贴

发布时间:2019年06月29日 阅读:3491 次

浅谈斐讯Amlogic平台 U盘启动基于 Linux 的第三方系统
2018-5-31 by webpad

全文pdf,2018-6-16修订,下载链接:https://share.weiyun.com/5b3UsXM 密码:0wym55

喜闻乐见,又是简(扫)介(盲)帖~
本帖部分内容发自于 Armbian 上的 firefox 浏览器

0、制作U盘和启动
Amlogic  S9xxx  Armbian 5.44 需要U盘容量最小为4GB,
建议使用SLC闪存芯片的U盘,8GB起步!

①、制作U盘

若是Ubuntu 16.04/18 操作系统的电脑,直接点击 xxx.img.xz 写入u盘;

若是windows操作系统的电脑,先解压  xxx.img.xz 的得到  xxx.img 镜像文件;
再使用 USB Image Tool 或 Win32DiskImager(Win32磁盘映像工具)加载 .img 写入U盘;

注意,据恩山论坛网友 anisiping 前后半个月的折腾,win8/win10 写入u盘镜像后可能会弹出要求格式化u盘的对话框,忽略无视勿格式化!

     

②、设置机型对应dtb.img

写好U盘后,访问U盘第一分区(卷标名称为BOOT),将机型对应的 dtb 文件拷贝到BOOT分区根目录并重命名为 dtb.img ;
机型选择关键字如下:
N1  --->   S905D ,  p230 , gxl , 2G
T1  --->    S912  , q201 ,   gxm , 2G

好吧, 方便小白,  送佛送到家
kernel 3.14.29  , dtb-3.14.29 目录下:
N1  --->     gxl_p230_2g.dtb 
T1   --->    gxm_q201_2g.dtb

kernel 4.16.1 , dtb-4.16.1-amlogics905x 目录下:
N1  --->   meson-gxl-s905d-p230.dtb
T1   --->   meson-gxm-q201.dtb

③、启动Armbian

刷入官改固件的N1 或 T1关机状态下插入U盘,T1 最好接入USB2.0 hub,方便同时用鼠标键盘;

盒子加电后自动加载U盘上的Armbian;
若盒子加电后仍然直接进入安卓,请在盒子终端模拟器命令行中、或 adb / telnet / ssh 终端命令行中,输入运行 " reboot update " ;


首次启动后,在终端字符界面输入用户名(root)密码(1234),会立即要求更改root密码;

再次输入 1234,然后输入两遍自定义的root新密码;

接下来提示创建常用用户名和密码,用户信息可以不填写,一路回车跳过;

初始化文件系统/硬件信息/修正第二分区大小后,Armbian 重启;

重启后进入Linux桌面或终端提示符(server版),输入常用用户名和密码登录。


1、Shell/桌面/窗口管理器对比

server为没有桌面的服务器版,侧重于高效率高性能运行各种服务,也叫headless版;

桌面占用内存对比: mate > xfce > icewm

①、icewm桌面
icewm为轻量级桌面,以快速见长,内置应用较少;
操作流畅度最高,当然桌面定制功能和集成的应用就会很少,中文化较麻烦;

实测截图
测试版本 : Armbian_5.44_S9xxx_Ubuntu_bionic_3.14.29_icewm_20180523.img
 

②、mate桌面
Ubuntu MATE 桌面继承于传统的 gnome2,内置许多实用应用;
界面美观,各种桌面主题/色彩/墙纸定制设置非常丰富 ;
Language Support 安装中文本地化很方便 ,在 T1 和 N1 上较流畅;

实测截图
测试版本 :Armbian_5.44_S9xxx_Ubuntu_xenial_4.16.1_mate_20180515.img
蓝牙不可用  
 

    

 

测试版本 : Armbian_5.44_S9xxx_Ubuntu_bionic_4.16.1_mate_20180523.img
蓝牙不可用, 首次启动错误警告提示,详见 6、③、
 

③、xfce
xfce4 桌面资源占用少于mate,较mate流畅 ;
桌面预装应用没有mate丰富,中文化不方便 ;


实测截图 
测试版本  : Armbian_5.44_S9xxx_Debian_stretch_4.16.1_xfce_20180515.img
 
 
 


2、Linux版本和内核


Ubuntu脱胎于Debian,所以两者的软件仓库相互兼容,都是pkg系统,Ubuntu适合家用办公娱乐,Debian适合工作开发;

xenial 是Ubuntu 16.04的代号,同理bionic是Ubuntu 18.04代号,stretch 是Debian 9代号;

内核就不展开说了,3.14.29和4.16.1都是稳定版本,都支持Arm(aarch64)架构,理论上高版本内核支持更多的功能和硬件设备,
具体到斐讯T1/N1 , kernel 4.16.1 不支持蓝牙;



3、U盘或SD/TF卡启动的原理
看得懂就看
setenv bootargs "root=LABEL=ROOTFS rootflags=data=writeback rw ${condev} fsck.repair=yes net.ifnames=0 mac=${mac}"
setenv boot_start booti ${kernel_loadaddr} ${initrd_loadaddr} ${dtb_mem_addr}
if fatload usb 0 ${initrd_loadaddr} uInitrd; then if fatload usb 0 ${kernel_loadaddr} zImage; then 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;
if fatload usb 1 ${initrd_loadaddr} uInitrd; then if fatload usb 1 ${kernel_loadaddr} zImage; then 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;
if fatload usb 2 ${initrd_loadaddr} uInitrd; then if fatload usb 2 ${kernel_loadaddr} zImage; then if fatload usb 2 ${dtb_mem_addr} dtb.img; then run boot_start; else store dtb read ${dtb_mem_addr}; run boot_start;fi;fi;fi;
if fatload usb 3 ${initrd_loadaddr} uInitrd; then if fatload usb 3 ${kernel_loadaddr} zImage; then if fatload usb 3 ${dtb_mem_addr} dtb.img; then run boot_start; else store dtb read ${dtb_mem_addr}; run boot_start;fi;fi;fi;
if fatload mmc 0 ${initrd_loadaddr} uInitrd; then if fatload mmc 0 ${kernel_loadaddr} zImage; then if fatload mmc 0 ${dtb_mem_addr} dtb.img; then run boot_start; else store dtb read ${dtb_mem_addr}; run boot_start;fi;fi;fi;

4、Armbian U盘无法启动的解决方法

①、U盘第二分区文件系统损坏
启动日志出现类似于这样的信息:

  1. .

  2. .

  3. .


  4. Begin: Will now check root file system ... fsck from util-linux 2.27.1

  5. .

  6. .

  7. .

  8. fsck exited with status code 8

  9. done.

  10. Warning: File system check failed but did not detect errors

  11. [   10.844457] EXT4-fs (sda2): bad geometry: block count 913408 exeed size of device (903424 blocks)

  12. mount: mounting /dev/sda2 on /root failed: Invalid argument

  13. .

  14. .

  15. .

  16. No init found. Try passing init= bootarg.


复制代码

最终无法加载桌面而是直接进入了内核ash终端;
解决方法:
盒子断电,拔下U盘,盒子加电正常启动安卓系统后再插上U盘,
电脑端 telnet 或 ssh 连上盒子后在终端输入运行以下命令:

  1. e2fsck  -f  /dev/block/sda2

  2. resize2fs   /dev/block/sda2

复制代码

如果是正常制作的Armbian镜像U盘,第二分区一般为sda2,注意运行e2fsck时若出现提示 Abort(y) 要输入n不要中断;
sda2修复完毕后即可再次尝试启动Armbian


5、安装到内部emmc

S9xxx 系列 Armbian 编译发布者为 balbes150

Armbian 5.44 kernel 4.16.1 内核版本不支持安装到内部emmc ,
这是 balbes150 的原话 :" Kernel 4.16 does not support internal eMMC memory.  Do not  attempt to install to the eMMC. You get problems. "

kernel 3.14.29 内核版本可以将 ROOTFS 分区(第二分区)所有文件安装到T1、N1的data分区中,
如此操作后盒子原来的安卓系统不受影响,启动到Armbian仍然需要U盘引导,
注意需要修改安装脚本 install.sh 以免破坏原厂关键分区;
详见  --->  https://www.right.com.cn/forum/thread-323194-1-1.html


6、T1、N1上运行Armbian的bug

①、kodi 
经测试,运行在T1、N1上的 5.44  Armbian Bionic Mate,作者提供的 kodi(libmali:mali7)17/18 无法正常运行,
会造成画面冻结黑屏,kodi log 如下:

  1. 11:25:03.392 T:281473533911040 NOTICE: InitWindowSystem: Using EGL Implementation: amlogic

  2. 11:25:03.392 T:281473533911040 ERROR: GetString: error reading /sys/class/display/mode

  3. 11:25:03.426 T:281473533911040 ERROR: EGL error in InitDisplay: 3003

  4. 11:25:03.426 T:281473533911040 ERROR: InitWindowSystem: Could not create display

  5. 11:25:03.426 T:281473533911040 FATAL: CApplication::Create: Unable to init windowing system


复制代码


若安装Debian源的 kodi 15/17.6 ,会发现始终是软解模式,无法硬解,
kodi检测到的 T1 GPU硬件信息非常奇怪,也许采用了 VMware 部分技术? 截图如下:
 
 
 


②、和kodi一样,桌面显示和内置视频播放器也是软解,
安装 vlc player 运行异常 ;


③、原作者  balbes150  指出,5.44  Armbian Bionic Mate 有bug
(例如: Armbian_5.44_S9xxx_Ubuntu_bionic_4.16.1_mate_20180523.img ),
首次进入桌面会有 BriskMenu 错误,需要手动添加 “Mate Bar” 到面板(panel)上;
另外我还发现在T1上运行该版本,鼠标指针会不停抖动。
 
 


部分资源下载链接

不要轻易覆盖盒子emmc上的bootloader分区,注意风险!

个人推荐使用 

Armbian_5.44_S9xxx_Debian_stretch_3.14.29_xfce_20180601.img ,
Armbian_5.44_S9xxx_Ubuntu_bionic_3.14.29_mate_20180601.img ,

以上版本在N1 和 T1 易用性和流畅度都不错,蓝牙、wifi、有线网卡都正常。

百度盘链接: 一键提取   密码:axov

国外网盘下载:
Amlogic s9xxx Armbian AltLinux ArchLinux Yocto openSUSE --->Amlogic Linux

Armbian S9xxx (S905 S905X S912)  --->https://yadi.sk/d/srrtn6kpnsKz2


Tag:
相关文章
发表评论

发表评论: