本文转自恩山,不为别的只是怕什么时候再被河蟹了感谢小狮子原文地址
下载Armbian的官方底包IMG ,比如你可以下载了Ubuntu 5.77 401的底包
(个人推荐用这个修改的底包)Armbian_5.77_Aml-s905_Ubuntu_bionic_default_5.0.2_20190401.img 本帖隐藏的内容在虚拟机的Ubuntu系统下,输入命令
fdisk -l Armbian_5.77_Aml-s905_Ubuntu_bionic_default_5.0.2_20190401.img
会出现如下信息
1 | root@ubuntu:/mnt# fdisk -l Armbian_5.77_Aml-s905_Ubuntu_bionic_default_5.0.2_20190401.img |
我们要关注的是最后两句。img1是我们的boot区,.img2是文件区,比如我们要把去高负载的.dtb文件加入到boot区
那么首先就要加载boot区,然后把文件拷贝进去,再做修改。
那么怎么加载boot区呢,执行如下命令1
mount -o loop,offset=4194304 Armbian_5.77_Aml-s905_Ubuntu_bionic_default_5.0.2_20190401.img /media
上面的4194304怎么得来的,是8192*512,.img1的offset的Start从8192开始,这条语句就是把boot区的内容加载到/media里
然后在/media里就可以看到boot的内容,比如dtb文件夹,uEnv.ini文件,
把xiangsm大神在帖子里分享的5.77的dtb文件弄进去,就可以去高负载
下载地址
链接: https://pan.baidu.com/s/1UL1VQ5tfuKmBBS-PM-Mwhg 提取码: m68p
下载附件 –> 解开dtb文件 –> 复制到armbian的/boot/dtb/ 目录 –> 相应修改/boot/uEnv.ini中的dtb文件路径设置。
同理,我们可以加载.img2的文件分区,在里面修改sysctl.conf实现bbr的默认开启,
在/etc/sysctl.conf末尾添加下面两行:
1 | net.core.default_qdisc=fq |
在rc.local里添加modprobe pppoe实现pppoe的开机加载。
修改完毕后 ,用umount /media 退出,然后原开始你加载的IMG其实已经是你已经修改好的IMG了,此后可以自己刷入U盘试试了!
dtb文件修改方法
从https://yadi.sk/d/srrtn6kpnsKz2/Linux/ARMBIAN/5.77/S905下载由@150balbes编译好的镜像,我选的是debian/desktop版,您请随意。
解压镜像并写入U盘,以linux系统为例:
1
$ 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
将写好armbian的U盘插入关机状态的n1,通电启动,armbian就运行起来了。初次运行时会提示修改root密码和创建一个常规用户。
此时,armbian用的是kdahas-vim开发板的dtb,所以不完全适配n1,一些设备不工作,这是正常的,我们只需修改/boot/uEnv.ini指向n1的dtb即可。
1
2- 修改前的uEnv.ini: dtb_name=/dtb/meson-gxl-s905x-khadas-vim.dtb
- 修改后的uEnv.ini: dtb_name=/dtb/meson-gxl-s905d-phicomm-n1.dtb修改完成后重启系统,重启后所有设备(lan/wifi/bluetooth/etc.)全部能工作!除了系统负载有点高。
1
$ sudo reboot
下面解决系统负载问题,关键:修改随镜像文件自带的dtb文件中的一项与中断处理有关的设置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16反编译原始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
==========================================================
[注1] 在n1运行android时,务!必!不!要!将armbian u盘插入n1,否则armbian u盘的ext4分区内的文件权限和所有者会被android系统篡改,引起各种异常。
[注2] 开始用CZ600 u盘,可能是速度太慢,导致bootloader超时,fallback到emmc启动了,然后就要从头来过,因为U盘里的文件系统已经被污染。后用cz43,正常。