1、重启指令
systemctl start network
或者
systemctl start systemd-networkd
1、重启指令
systemctl start network
或者
systemctl start systemd-networkd
1、驱动安装
2、查询pcie port码
root@ssss:~# lspci
0000:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 8d90 (rev 20)
0000:01:00.0 Ethernet controller: Device 1ec4:555 (rev 01)
0001:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 8d90 (rev 20)
0002:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 8d90 (rev 20)
3、删除pcie设备
echo 1 > /sys/bus/pci/devices/0000\:03\:00.0/remove
4、重新加载pcie设备
echo 1 > /sys/bus/pci/rescan
1、错误提示:
“mkimage” command not found – U-Boot images will not be built
2、解决方式
sudo apt-get install uboot-mkimage
sudo apt-get install u-boot-tools
1、安装依赖库
apt-get install ntfs-3g
2、查看所有插入优盘
lsblk
3、格式化优盘(根据以上查到的结果)
mkfs.ext4 /dev/sda
4、安装可视化管理WEB
apt update && apt install cockpit cockpit-storaged -y
访问管理页面
http://路由器IP地址:9090
如
http://192.168.1.100:9090
登录管理,账户为armbian本身登录账户密码


5、打开/etc/fstab文件,修改参数。
/dev/sda1 /mnts ext4 defaults,nofail 0 2
/dev/sda1 u盘位置
/mnts 挂载位置(甜糖要挂载在这里)
ext4 u盘格式 vfat ntfs ext4…
defaults,nofail 自动挂载并忽略失败
0 2 顺序之类的
内核变更(升级或者降级)
检查目标内核版本是否存在
sudo apt search 'linux-image-5.11.0-44-generic'
若存在,继续安装
sudo apt install 'linux-image-5.11.0-44-generic’
更新
sudo vi /etc/default/grub
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 5.11.0-44-generic"
执行内核锁定步骤
sudo update-initramfs -u -k all
sudo update-grub
reboot
安装新版本内核头文件,用于开发编译
sudo apt install linux-headers-5.11.0-44-generic
锁定内核版本
sudo apt-mark hold linux-headers-5.11.0-44-generic linux-image-5.11.0-44-generic
/*****************************************************************************
* linux fdisk tf卡分区操作解析说明
* 说明:
* 本文主要是解析linux fdisk命令的使用,是一个朋友留下的自动化脚本。
*
* 2015-9-16 晴 深圳 南山平山村 曾剑锋
****************************************************************************/
#! /bin/sh
# 卸载接下来需要分区的设备
umount /dev/mmcblk1boot0
umount /dev/mmcblk1boot1
umount /dev/mmcblk1p1
umount /dev/mmcblk1p2
sync # 同步上面的操作
sleep # 等待1秒
fdisk /dev/mmcblk1 << EOF # 开始分区
d # 删除操作
# 删除分区1
d # 删除操作
# 删除分区2,其实只剩下2,这里会出现menu
m # 显示操作menu,相当于帮助
m # 显示操作menu,相当于帮助
n # 创建新分区,相当于new
p # 创建primary分区
# 创建primary分区1
# First sector (-, default ):
+50M # Last sector, +sectors or +size{K,M,G} (-, default ): +50M, Partition of type Linux and of size MiB is set
a # toggle a bootable flag, 选择启动分区
# 选择分区1作为启动分区
t # change a partition's system id, 改变分区类型
c # c W95 FAT32 (LBA),选择FAT32格式
n # 创建新分区,相当于new
p # 创建primary分区
# 创建primary分区2
# First sector (-, default ):
# Last sector, +sectors or +size{K,M,G} (-, default ): Using default value , Partition of type Linux and of size 3.7 GiB is set
p # 查看创建结果
w # 保存退出
EOF
sync # 同步以上操作
sleep
umount /dev/mmcblk1p1 # 卸载创建的分区
umount /dev/mmcblk1p2 # 卸载创建的分区
sync # 同步以上操作
sleep
mkdosfs -F /dev/mmcblk1p1 # 以FAT32格式化mmcblk1p1分区
sync
sleep
mkfs.ext3 /dev/mmcblk1p2 # 以ext3格式化mmcblk1p2分区
sync
sleep
echo "finish make tf card" # 输出提示信息
一、UBOOT学习
进入uboot,查询到dram 起始地址为0x80000000,大小为0x20000000(512Mb)
bdinfo
arch_number = 0x00000000
boot_params = 0x80000100
DRAM bank = 0x00000000
-> start = 0x80000000
-> size = 0x20000000
eth0name = FEC1
ethaddr = 88:30:6D:AF:F4:8F
current eth = FEC1
ip_addr = 192.168.1.3
baudrate = 115200 bps
TLB addr = 0x9FFF0000
relocaddr = 0x9FF55000
reloc off = 0x18755000
irq_sp = 0x9EF52EA0
sp start = 0x9EF52E90
| DDR ADDR | 程序 |
|---|---|
| 0x80800000 | zImage |
| 0x83000000 | dtb |
由 IVT + Boot Data + DCD + bin 构成,在DDR中的存放地址如下:
| DDR ADDR | 内容 |
|---|---|
| 0x877ff000 | boot load start |
| …(+ 1KB, block 0, block 1) | reserve |
| 0x877ff400 (bolck 2) | IVT(u-boot.imx) |
| … | Boot data |
| … | DCD |
| (+ 3Kb) | ( IVT+BOOTDATA+DCD) |
| 0x87800000 | bin |
①IVT内容
TAG、指定IVT大小
bin PC指针
DCD地址(ddr)
boot data地址(ddr)
IVT地址(ddr)
②Boot Data内容
xxx.imx起始地址
镜像大小
③DCD内容
TAG、DCD大小、版本
寄存器及值,配置基础功能(时钟、DDR等)
①从linux用户空间直接将uboot.imx烧录到SD/EMMC设备
烧录到SD卡
#将SD卡插入开发板或者ubunto开发环境
$ sudo fdisk -l #查看SD卡/dev名
$ sudo dd if=u-boot.imx of=/dev/yourSdName bs=1024 seek=1 conv=fsync
烧录到EMMC
$ echo 0 > /sys/block/mmcblk1boot0/force_ro #开启emmc写功能
$ dd if=u-boot.imx of=/dev/mmcblk1boot0 bs=1024 seek=1 conv=fsync
$ echo 1 >/sys/block/mmcblk1boot0/force_ro #关闭写
$ mmc bootpart enable 1 1 /dev/mmcblk1 #使能分区1
②从uboot中下载后,再写入到SD/EMMC设备block 2处
=> setenv serverip 192.168.1.101
=> tftp 80800000 u-boot.imx
Using FEC1 device
TFTP from server 192.168.1.101; our IP address is 192.168.1.3
Filename 'u-boot.imx'.
Load address: 0x80800000
Loading: #########################
938.5 KiB/s
done
Bytes transferred = 363520 (58c00 hex)
=> mmc dev 0 0
switch to partitions #0, OK
mmc0 is current device
=> mmc write 80800000 2 2c6 #363520/512
MMC write: dev # 0, block # 2, count 710 ... 710 blocks written: OK
#emmc需要这一步
=>mmc partconf 1 1 0 0
#重启后,查看版本
=> version
1、配置BOOT_CFG 为01000000
2、连接串口
3、烧录
1、插入SD卡
2、找到/dev名
3、./imxdownload u-boot.bin /dev/sdd
=> mmc info #查看当前mmc设备信息
=> mmc list #查看mmc设备列表
=> mmc dev 1 [可选part]#切换到mmc设备1(默认到分区part=0)
=> mmc part #查看当前设备分区
=> mmc read/write/erase 80800000 600 10 #读取0x600块开始10个块到80800000ddr addr.
=> nand info
=> nand device
=> nand erase addr size
=> nand wrete/read addr off size
=> fatinfo mmc 0:1 #产看分区文件系统信息
=> fat[ext2/ext4]ls mmc 0:1 #查看mmc0分区1下文件
=> fat[ext]load mmc 0:1 80800000 file #将文件读取到ddr
=> fdt addr 80800000 #设置设备树地址
=> fdt print #查看设备树文件内容
=> bootz 80800000 - 83000000 #从ddr启动linux镜像zImage(808) 、inidrd(-)、dtb(830)
=> bootm 80800000 #从ddr启动镜像uImage
=> boot #从bootcmd读取,并执行命令
=> reset #重启
=> go addr #跳转到addr并运行bin程序
=> run xxxcmd #运行自定义的xxxcmd(类似于bootcmd)
GPIO号为416具体转换看芯片手册。
echo 416 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio416/direction
echo 1 > /sys/class/gpio/gpio416/value
echo 0 > /sys/class/gpio/gpio416/value
echo in > /sys/class/gpio/gpio416/direction
cat /sys/class/gpio/gpio416/value
echo falling > /sys/class/gpio/gpio416/edge
cat /proc/interrupts |grep gpio
1、安装工具链
sudo apt-get install device-tree-compiler
2、解包dtb->dts
dtc -I dtb -O dts -o xxx.dts xxx.dtb
3、压包dts->dtb
dtc -I dts -O dtb -o xxx.dtb xxx.dts
arm系统不同于x86服务器,可能是因为外设驱动的问题,无法在启动阶段通过编辑grub进入单用户模式而得以修改root的密码。所以,可如下操作:
1、用其他外置启动盘启动系统,通常是U盘
2、挂载原系统(在eMMC)上的文件系统的 /etc目录
3、vi该目录下的shadow,删除其中root之后两个冒号之间的加密密码
4、保存、退出vi,sync并且shutdown系统
5、拔除外置启动盘,重加电启动原系统
6、此时root已无需密码即可登录,登录后及时passwd修改密码