- 博客(24)
- 收藏
- 关注
原创 最简根文件系统 配置
LD_LIBRARY_PATH 为库路径,如果需要运行某些应用程序,调用依赖的库的路径。根文件系统只是一个整体的,根文件目录其下的每一个文件夹都可以挂载别的文件系统做特殊的用途。/bin/mount -a #挂载 /etc/fstab文件指定的所有文件系统 ,默认只有proc。在板子上访问 /proc 下会有很多文件,而在对应的虚拟机中 /nfs/rootfs/proc 中为空。原因是 proc文件为伪根文件系统,为启动后的的内核虚拟创建的本地文件,不同步至虚拟机中。
2025-07-28 01:58:36
287
原创 启动盘的优先顺序&从U盘启动内核
英伟达jetson nano将image与rootfs整合起来,image作为根文件系统中的某个文件,可以在系统启动后的作为应用层的普通文件进行更改。uboot启动后,从flash中搬移内核到内存中,内核启动后再加载根文件系统。pri输出环境变量,boot_targets 表述的boot下启动内核顺序。dictro_bootcmd ...... 为uboot下默认的启动配置。flash大致分为uboot、image内核、rootfs根文件系统。uboot会自启动进入内核。uboot下设置u盘启动。
2025-07-23 00:08:06
263
原创 板子从NFS启动
根据uboot引导时传入的参数,对应uboot下 bootargs来设置。错误发生在内核挂载根文件系统中,uboot传参——根文件配置错误,根文件指向的网络地址错误,网络本身错误?$ fstype mmc 1:1 //查看emmc设备(flash) 1号设备(emmc1)的1号分区。Uboot引导内核,将内核第一个应用程序相关信息保存至内核,包括根文件系统。pri 中有标明默认的拉取地址,内核运行还需要配合设备树,同样方法拉取设备树。错误发生在内核本身启动过程中,内核的报错?
2025-07-04 03:02:23
151
原创 内核源码跟踪
在源码make完成后,会在kernel-4.9文件夹下生成System.map文件,用于描述各个函数名编译源码的源头位置和代码段数据段的分配。kernel-4.9/arch/arm64/kernel/vmlinux.lds.S 为我们使用的链接脚本,ENTRY为入口。fg回到上次中断程序, :e . 回到vim编辑主目录,找到目标文件vim进入后 :83跳转,:f查看当前文件名名称。vim . 搜索 进入System.map 找到_text地址,Ctrl + Z 中断当前任务回到命令行,反向追踪。
2025-07-03 01:15:23
157
原创 源码追踪Vim操作技巧
CTRL + F 、 CTRL + B 来上下翻页。生成对应几个文件,辅助后续vim下的源码跟踪。SHIFT + G 翻到末尾 GG回到头部。进入kernel-4.9文件夹下,执行。vim进入某个文本文件后。
2025-07-02 01:02:21
143
原创 文件系统介绍 & Busybox最简根文件系统制作
boot 根文件系统很大不会在系统启动时全部加载到内存中,一般会有一个精简版初始的根文件系统initrd,在启动时加载到内存中,之后才会加载正式的根文件系统。/dev 早期版本下的设备管理比较混乱,现在已经用/sys 设备分组划分取代。/lib/modules 存放加载的内核ko模块。文件系统就是操作文件的工具。根文件系统属于应用层。
2025-06-27 00:26:13
172
原创 BSP下编译烧写
仅刷U-boot,将编译好的二进制文件拷入BSP框架下对应位置,在 Linux_for_Tegra下执行刷机命令。解压编译U-boot源码。U-boot的编译烧写。
2025-06-25 01:10:31
196
原创 BSP框架创建
/否则后面安装 modules_install后, rootfs/lib/modules下不是4.9.253-tegra 而是4.9.253, //导致内核模块.ko 都不能加载, 启动后用lsmod可查看是空的。注 //修改Makefile 直接写死,简单方便,但是是侵入时的。如果编译匹配别的板子,不方便。$ export LOCALVERSION=-tegra //导入配置前需设置它,/*直接指定ARCH CROSS_COMPILE (写死的)
2025-06-23 22:19:58
162
原创 Jetson Nano 烧写刷机
参考 //https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3261/index.html -> 快速开始 -> 强制恢复模式。//刷机添加了goraw命令的u-boot 断开强制恢复模式 的短线帽,重启板子 Tegra210 (P3450-0000) # goraw //能看到帮助信息,表示添加U-BOOT命令成功。载板 B01,J50 的引脚 9 和 10 需插入跳线帽(GND和REC)//用usb线来刷机 $ lsusb。
2025-06-19 00:45:23
183
原创 C语言嵌入汇编 u-boot异常/中断试验
/在自定义的命令里添加下面代码,触发系统调用(同步异常陷入) asm volatile("svc #0");//asm: 声明是嵌入汇编 volatile:声明易变的,避免编译器优化 # yhai。//运行后,能看到Synchronous Abort信息输出,说明同步异常的 有触发执行。//详见 arch/arm/lib/interrupts_64.c 的 do_sync。c函数封装成uboot下的一个指令,内存中调试,指令调用。asm 触发系统调用—— 一个同步异常。c函数封装对汇编指令的调用。
2025-06-18 18:01:33
156
原创 Uboot下网卡的移植
*激活 并扫描pci总线(网卡一般走PCI总线) 电路图 从网卡 GBE_MDI0_P GBE_MDI0_N 配对 对应的是PCI总线的差分信号,-> 有线网卡是接PCI的,需激活pci,网卡才生效。涉及到两种驱动:PCIE控制器的驱动/XUSB控制器驱动(负责解析协议)、网卡的驱动(负责识别设备,不同型号的硬件是不一样的)Wifi无线网卡、有线网卡通过Pcie接口 ——》Pcie总线控制器 ——》内部数据总线 ——》CPU。虚拟机 ——》可移动设备 ——》找到插入的网卡名称。
2025-06-17 00:01:48
208
原创 虚拟机Tftp环境搭建
Received 7 bytes in 0.0 seconds //有下载到文件,表示tftp服务安装成功。$ sudo /etc/init.d/xinetd restart //老系统的重启服务。$ sudo mkdir /tftpboot //根文件目录下。$ vim /tfpboot/test //创建测试文件。$ tftp localhost //自环测试。cat test //查看文件。*文件拷入tftpboot中。tftp> q //退出。
2025-05-29 14:46:08
309
原创 Led.bin的最简Makefile
Ubuntu下交叉编译Led.bin,Tftp至arm测试版,在uboot下执行寄存器操作点灯。Led.s 寄存器测试。Makefile文件。
2025-05-29 14:15:01
178
原创 Ubuntu VMware挂载共享文件夹
mkdir win_share //自己创建共享文件夹(不用/mnt/hgfs),如果已存在文件夹把它删掉,重新建 vmhgfs-fuse .host:/ win_share //挂载共享目录。vmware-hgfsclient //启动共享文件夹服务。VMware中 虚拟机 - 设置 -选项 - 共享文件夹。ls win_share //看到共享的内容,表示成功。
2025-05-27 15:10:54
301
原创 aarch交叉编译链的安装
在其末尾添加export PATH=/home/jetson/bsp/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin:$PATH。5.加入到命令行启动脚本中,每次命令行启动自动添加PATH。3.写入路径到PATH,不要有空格,结尾有:$PATH。4.重启命令行,测试输入aar后tab补全是否有用。1.不在VMware共享文件夹下解压使用。3.进入到bin文件,pwd获取当前路径。4.测试输入aar后tab补全是否有用。2.tar -xvf 解压。
2025-05-27 15:04:54
118
原创 Ubuntu VMware 桥接网络配置
此时就已经完成所有配置,ping网络进行验证。VMware桥接网络可视为将VMware接入本地局域网,VMware内部Ubuntu接入后单独申请独立IP达到和宿主机隔离使用的效果。选取某一虚拟网卡如VMnet2,选择桥接模式,确定使用网卡硬件(根据具体需求选择有线网卡或wifi网卡)网络能ping通宿主机,但无法ping通外网www.baidu.com?某些情况下保存设置后未能生效,Ubuntu中关闭网络功能,再打开。网络连接选择自定义,明确指向VMnet2,避免出错。网络配置完成后未能ping通宿主机?
2025-05-27 10:55:20
228
原创 Ubuntu VMware NAT网络配置
VMware 中虚拟网络编辑器选择一个设置为NAT模式,此处为VMnet8,下方子网ip设置为192.168.137.0,此IP为windows中网络适配器共享网络强制子网ip,该功能不开启也能配置成功NAT。测试Windows中ping通适配器ip和虚机内ip,虚拟器内ip和适配器不可相同,适配器ip只是作为转发角色,逻辑为:win——》vmnet8———》ubuntu。下放端口转发为Windows上的端口号通过NAT网络映射到ubuntu内的ip:port,从而实现虚拟器内外通信,虚拟机内部署服务器。
2024-07-02 14:25:19
566
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人