N1装@150balbes制作的armbian镜像,我遇到的、以及论坛里讨论的问题大体有:有线网断流,无线网无法用,蓝牙无驱动,emmc分区不可见,系统负载高,视频无法硬解,nfs服务无法启动,xrdp服务无法启动等。
有的版本的armbian解决了问题A,但留下了问题B,有的解决了问题B,但留下问题A。总之,在之前我试过的各个版本,还没有一个是完全省心的。
这些问题,硬件方面的基本和dtb有关(lan/wlan/bluetooth/loadavg),软件方面则多数和kernel编译的config有关(如nfs不能用是因为@150balbes在kernel config中把nfsd模块给跳过了)。
昨天在n1上装了最新的Armbian_5.77_Aml-s905_Debian_stretch_default_5.0.2_desktop_20190318.img.xz,简单试用下来是迄今为止最省心的。具体来说:
1.- lan:OK. (断流问题由于原因已被linux社区找到,见https://patchwork.kernel.org/cover/10712163,故今后再也不会出现了!)
2.- wlan: OK
3.- bluetooth: OK (没蓝牙键盘/鼠标,只是和手机配对测试过)
4.- nfs: OK (5.77的kernel config中包含了nfsd模块)
5.- xrdp: OK
6.- 音/视频播放:partially OK (能播放,但不支持硬解,未来很长一段时期内也看不到希望,因为没人去写s905 vpu的va-api backend)
7.- 系统负载:高(loadavg始终在2.0以上,irq和kworker高占用,中断和上下文切换高,但机器发热并不高)
8.- emmc分区:不可见(能看到mmcblk1/8G, mmcblk1boot0/4M, mmcblk1boot1/4M,但看不到mmcblk1下的boot/data/system分区,这个问题还不确定是否和armbian有关)
到上面这个程度,我认为已经比较接近完美了,于是又动手修改了一下dtb,解决了系统负载高的问题,修改后空闲时loadavg为0。
安装armbian 5.77到n1的具体步骤
======================================
1. 从https://yadi.sk/d/srrtn6kpnsKz2/Linux/ARMBIAN/5.77/S905下载由@150balbes编译好的镜像,我选的是debian/desktop版,您请随意。
2. 解压镜像并写入U盘,以linux系统为例:
$ xzcat --keep Armbian_5.77_Aml-s905_Debian_stretch_default_5.0.2_desktop_20190318.img.xz | sudo dd of=/dev/sdX bs=1M && sync
3. 将写好armbian的U盘插入关机状态的n1,通电启动,armbian就运行起来了。初次运行时会提示修改root密码和创建一个常规用户。
4. 此时,armbian用的是kdahas-vim开发板的dtb,所以不完全适配n1,一些设备不工作,这是正常的
我们只需修改/boot/uEnv.ini指向n1的dtb即可。
- 修改前的uEnv.ini: dtb_name=/dtb/meson-gxl-s905x-khadas-vim.dtb - 修改后的uEnv.ini: dtb_name=/dtb/meson-gxl-s905d-phicomm-n1.dtb
5. 修改完成后重启系统,重启后所有设备(lan/wifi/bluetooth/etc.)全部能工作!除了系统负载有点高。
$ sudo reboot
6. 下面解决系统负载问题,关键:修改随镜像文件自带的dtb文件中的一项与中断处理有关的设置:
# 反编译原始n1 dtb文件为n1.dts $ dtc -I dtb -O dts -o n1.dts /boot/meson-gxl-s905d-phicomm-n1.dtb # 用vi 或 nano打开n1.dts,将第183行注释掉。修改前:phandle = <0x1e>; 修改后: #phandle = <0x1e>; $ vi n1.dts ... # 编译新的n1.dtb $ dtc -I dts -O dtb -o n1.dtb n1.dts # 复制n1.dtb到/boot/dtb中并修改相应uEnv.ini文件 $ sudo cp -av n1.dtb /boot/dtb/meson-gxl-s905d-phicomm-n1-xiangsm.dtb $ sudo sed -i -e 's/-n1/-n1-xiangsm/' /boot/uEnv.ini # 或用vi/nano可视化编辑 # 好了,可以重启系统了,重启后,系统负载终于正常,并且各项硬件应该依然都能正常工作。 $ sudo reboot
6a. 对于觉得怕修改和编译dtb麻烦的,附件里提供了已经修改过的dtb,md5:82a5d7。操作方法:
下载附件 –> 解开dtb文件 –> 复制到armbian的/boot/dtb/ 目录 –> 相应修改/boot/uEnv.ini中的dtb文件路径设置
meson-gxl-s905d-phicomm-n1-xiangsm.dtb.tarhttps://sn9.us/file/1397394-422256731
备用链接: https://pan.baidu.com/s/1wLXHOG2jExkrR9ik5iygdA提取码: w928
=========================
[注1] 在n1运行android时,务!必!不!要!将armbian u盘插入n1,否则armbian u盘的ext4分区内的文件权限和所有者会被android系统篡改,引起各种异常。
[注2] 开始用CZ600 u盘,可能是速度太慢,导致bootloader超时,fallback到emmc启动了,然后就要从头来过,因为U盘里的文件系统已经被污染。后用cz43,正常。
常见问题
Q: 我应该下哪个版本,debian还是ubuntu,desktop还是non-desktop?
A: 随意。如果需要图形环境,下desktop版,否则non-desktop版(以后如果需要的话还是可以通过apt安装桌面环境的)。用ubuntu还是debian则看你的个人偏好,区别其实很小。但armbian-config的github主页显示ubuntu版暂不支持通过softy安装ncp和omv(截至2019-03-26),当然,你完全可以用其它方式安装。另外,如果是linux新手,还是从desktop版开始吧,设置蓝牙和网络会比较直观一些。
Q: 如果不能刷入emmc,用u盘跑系统影响性能吗?
A: 影响启动速度,但启动之后对性能没什么影响,因为系统正常运行期间很少读写u盘。而且,使用u盘的有两个好处:保留电视盒子功能 + 方便折腾(各种linux/xxxelec/openwrt/etc)。
Q: 蓝牙怎么启用?
A: @turtlepeak写了一份详细的说明:斐讯N1盒子armbian 5.77蓝牙连接详细步骤
原文地址:https://www.right.com.cn/forum/thread-510423-1-1.html
官方QQ群号码:922069959(空)、1093596563(空)