Linux系统移植
个人学习记录
STM32MP157开发板,它是A7核+M4核的
系统移植:
通过TF卡移植步骤:
1.Ubuntu识别TF卡
1.1TF插入读卡器,再装在电脑上,选择连接位置为虚拟机
.2找到TF在系统中的位置
ls /dev/sdUbuntu中磁盘类设备 也叫块设备, 都在dev/sd下面
这里TF卡被识别到了名叫sdb,后面的sdb1\2\3\4相当于该TF卡的磁盘分区
2.将准备好的Linux系统镜像文件《sdcard.img》拷贝到TF卡
dd 命令
sudo dd if=sdcard.img of=/dev/sdb bs=4M conv=fdatasync,nocreatdd命令 :按块(block)复制和转换文件
dd会从“源”(if=)读取数据,然后写入到“目标”(of=)
3.TF插入开发板中,boot启动模式为101, 串口打印,成功启动Linux
块设备,分区,文件系统,挂载啥意思?
块设备,即磁盘类设备(一栋大楼)
分区,就类似于磁盘分区(分割区域)
文件系统,即在一个分区内的管理系统 (管理制度)
之所以前面要用dd命令拷贝,而不是CP命令,是因为CP命令是基于文件系统的。
挂载:通过挂载在某个目录下,来访问该设备 (商场大门)
mount /dev/sda1 /mnt/shop访问/mnt/shop,就等于进入 A
Linux系统移植要移哪些东西:
- Bootloader:负责开机,把内核从硬盘/Flash里读出来
- Linux内核: 操作系统的核心
- 根文件系统(rootfs): 包含所有应用程序、配置文件、库文件
怎么移?
1.Bootloader怎么移?
Bootloader是什么?(常见代表U-Boot)
上电后第一段运行的程序,负责初始化硬件,然后把内核读出来并启动它。
具体怎么移?u-boot你原来在哪里啊?
- 在U-Boot源码里,找到和你开发板最相似的参考板配置文件
- 修改内存地址、时钟频率、串口引脚等参数
- 编译:
make CROSS_COMPILE=arm-linux-gnueabihf- myboard_config- 烧写到SD卡或NAND Flash,上电测试(看串口是否有输出)
2.内核移植
内核是什么?
内核原来在哪里啊?
怎么移啊?
3.根文件系统移植
根文件系统是什么?
原来在哪里啊?
根文件系统制作
